@live-change/db-server 0.7.3 → 0.8.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.
@@ -1,1972 +0,0 @@
1
- {
2
- "databases": {
3
- "system": {
4
- "tables": {
5
- "exchange_tables": {
6
- "uid": "c05a8f4e04593522"
7
- },
8
- "exchange_logs": {
9
- "uid": "c8da79375cca0120"
10
- },
11
- "exchange_indexes": {
12
- "uid": "7cedef38e8bddab8"
13
- },
14
- "wallet_tables": {
15
- "uid": "a1e5a8980fe499d0"
16
- },
17
- "wallet_logs": {
18
- "uid": "fb2fccc6669adf04"
19
- },
20
- "wallet_indexes": {
21
- "uid": "660466f276c61b1a"
22
- }
23
- },
24
- "indexes": {},
25
- "logs": {}
26
- },
27
- "exchange": {
28
- "tables": {
29
- "services": {
30
- "uid": "15f03d04544769df"
31
- },
32
- "eventConsumers": {
33
- "uid": "f507fda4950e66a3"
34
- },
35
- "eventReports": {
36
- "uid": "7a77f9f6d77b17dc"
37
- },
38
- "commands": {
39
- "uid": "3935a574bddc4823"
40
- },
41
- "triggerRoutes": {
42
- "uid": "53135c191d9a536a"
43
- },
44
- "timer_Timer": {
45
- "uid": "e5bb35cb970ce4a5"
46
- },
47
- "session_Session": {
48
- "uid": "174d884211742417"
49
- },
50
- "user_User": {
51
- "uid": "299c9c978e8f1bd6"
52
- },
53
- "user_AuthenticatedUser": {
54
- "uid": "11d31b1fe8b825b8"
55
- },
56
- "email_SentEmail": {
57
- "uid": "c8a11a943ce86e46"
58
- },
59
- "email_Email": {
60
- "uid": "3cdfdcf626f4933e"
61
- },
62
- "passwordAuthentication_PasswordAuthentication": {
63
- "uid": "6e21eacec5a2bf06"
64
- },
65
- "passwordAuthentication_ResetPasswordAuthentication": {
66
- "uid": "db77b38c349f5fc5"
67
- },
68
- "userIdentification_Identification": {
69
- "uid": "101bb1fccfa34d7e"
70
- },
71
- "accessControl_Access": {
72
- "uid": "b9861c48c743976a"
73
- },
74
- "accessControl_PublicAccess": {
75
- "uid": "e7c92cbfd2634220"
76
- },
77
- "accessControl_AccessRequest": {
78
- "uid": "280daf7f4c49c407"
79
- },
80
- "accessControl_AccessInvitation": {
81
- "uid": "70bacdbf4d15fd5e"
82
- },
83
- "security_Ban": {
84
- "uid": "1e87b842f345836f"
85
- },
86
- "security_Event": {
87
- "uid": "72178e262d95b521"
88
- },
89
- "notification_Notification": {
90
- "uid": "277969cabd6cc845"
91
- },
92
- "notification_NotificationSetting": {
93
- "uid": "cd3585227faadaf7"
94
- },
95
- "upload_Upload": {
96
- "uid": "8a68d7a92b71de00"
97
- },
98
- "image_Image": {
99
- "uid": "05c66b7902324720"
100
- },
101
- "secretCode_Code": {
102
- "uid": "c0adca280b4965d0"
103
- },
104
- "secretLink_Link": {
105
- "uid": "b6ee9cfeb8f8f583"
106
- },
107
- "url_Canonical": {
108
- "uid": "22655f9c05a8bc8d"
109
- },
110
- "url_Redirect": {
111
- "uid": "c21a6746a2721c5d"
112
- },
113
- "prosemirror_Document": {
114
- "uid": "8fe974c3f3eec413"
115
- },
116
- "prosemirror_StepsBucket": {
117
- "uid": "6cee7ea3cf416ece"
118
- },
119
- "prosemirror_Snapshot": {
120
- "uid": "8926d91c95a206a9"
121
- },
122
- "content_Content": {
123
- "uid": "ca2639480a182872"
124
- },
125
- "content_AdditionalContent": {
126
- "uid": "3b28c4dab79eaebf"
127
- },
128
- "content_Page": {
129
- "uid": "10ec1bf339e90c43"
130
- },
131
- "content_Metadata": {
132
- "uid": "a36cc0b43e87a544"
133
- },
134
- "walletAuthentication_Authentication": {
135
- "uid": "019e960609310185"
136
- },
137
- "ipiWallet_IpiWallet": {
138
- "uid": "760d82e736513e64"
139
- },
140
- "exchange_CryptoInputAddress": {
141
- "uid": "d7c7f8ca06ead762"
142
- },
143
- "exchange_Offer": {
144
- "uid": "0db5afd2b0b20e77"
145
- },
146
- "exchange_Payment": {
147
- "uid": "8220b548b17eedeb"
148
- },
149
- "price_Price": {
150
- "uid": "d24411e0da11e553"
151
- },
152
- "price_LastPrice": {
153
- "uid": "063ba32db52a2286"
154
- },
155
- "mlm_Link": {
156
- "uid": "84609bb581c2e4dc"
157
- },
158
- "mlm_SourceLink": {
159
- "uid": "1866fd8f22dd1e83"
160
- },
161
- "bitcoin_Address": {
162
- "uid": "cfb8bcb20f690adb"
163
- },
164
- "bitcoin_Transaction": {
165
- "uid": "bde8d651634a06e5"
166
- },
167
- "security_relations": {
168
- "uid": "310ddd6db1956e89"
169
- },
170
- "mlm_Balance": {
171
- "uid": "4f99a79dadf340b1"
172
- },
173
- "mlm_Payout": {
174
- "uid": "449d3d780045c3df"
175
- },
176
- "triggers": {
177
- "uid": "add32303a08fc6f9"
178
- }
179
- },
180
- "indexes": {
181
- "timer_Timer_timestamp": {
182
- "code": "(async function(input, output) {\n const mapper = (obj) => ({ id: (''+obj.timestamp).padStart(16, '0') + '_' + obj.id, to: obj.id })\n await input.table('timer_Timer').onChange(\n (obj, oldObj) => output.change(obj && mapper(obj), oldObj && mapper(oldObj))\n )\n })",
183
- "parameters": {},
184
- "uid": "0a75079632df6545",
185
- "sources": [
186
- {
187
- "type": "table",
188
- "name": "timer_Timer"
189
- }
190
- ]
191
- },
192
- "session_Session_byKey": {
193
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
194
- "parameters": {
195
- "properties": [
196
- [
197
- "key"
198
- ]
199
- ],
200
- "table": "session_Session"
201
- },
202
- "uid": "e137b265e87e63c3",
203
- "sources": [
204
- {
205
- "type": "table",
206
- "name": "session_Session"
207
- }
208
- ]
209
- },
210
- "user_AuthenticatedUser_byUser": {
211
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
212
- "parameters": {
213
- "properties": [
214
- [
215
- "user"
216
- ]
217
- ],
218
- "table": "user_AuthenticatedUser"
219
- },
220
- "uid": "ab1218f7cf7e8ed7",
221
- "sources": [
222
- {
223
- "type": "table",
224
- "name": "user_AuthenticatedUser"
225
- }
226
- ]
227
- },
228
- "email_Email_byUser": {
229
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
230
- "parameters": {
231
- "properties": [
232
- [
233
- "user"
234
- ]
235
- ],
236
- "table": "email_Email"
237
- },
238
- "uid": "e503af97788d01a6",
239
- "sources": [
240
- {
241
- "type": "table",
242
- "name": "email_Email"
243
- }
244
- ]
245
- },
246
- "passwordAuthentication_PasswordAuthentication_byUser": {
247
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
248
- "parameters": {
249
- "properties": [
250
- [
251
- "User"
252
- ]
253
- ],
254
- "table": "passwordAuthentication_PasswordAuthentication"
255
- },
256
- "uid": "c5dfa1ec46c4de5e",
257
- "sources": [
258
- {
259
- "type": "table",
260
- "name": "passwordAuthentication_PasswordAuthentication"
261
- }
262
- ]
263
- },
264
- "passwordAuthentication_ResetPasswordAuthentication_byKey": {
265
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
266
- "parameters": {
267
- "properties": [
268
- [
269
- "key"
270
- ]
271
- ],
272
- "table": "passwordAuthentication_ResetPasswordAuthentication"
273
- },
274
- "uid": "721a799919b86604",
275
- "sources": [
276
- {
277
- "type": "table",
278
- "name": "passwordAuthentication_ResetPasswordAuthentication"
279
- }
280
- ]
281
- },
282
- "passwordAuthentication_ResetPasswordAuthentication_byUser": {
283
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
284
- "parameters": {
285
- "properties": [
286
- [
287
- "User"
288
- ]
289
- ],
290
- "table": "passwordAuthentication_ResetPasswordAuthentication"
291
- },
292
- "uid": "270b76adbeb82880",
293
- "sources": [
294
- {
295
- "type": "table",
296
- "name": "passwordAuthentication_ResetPasswordAuthentication"
297
- }
298
- ]
299
- },
300
- "accessControl_Access_bySessionOrUser": {
301
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
302
- "parameters": {
303
- "properties": [
304
- [
305
- "sessionOrUserType"
306
- ],
307
- [
308
- "sessionOrUser"
309
- ]
310
- ],
311
- "table": "accessControl_Access"
312
- },
313
- "uid": "fbfa5616f4f542a6",
314
- "sources": [
315
- {
316
- "type": "table",
317
- "name": "accessControl_Access"
318
- }
319
- ]
320
- },
321
- "accessControl_Access_byObject": {
322
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
323
- "parameters": {
324
- "properties": [
325
- [
326
- "objectType"
327
- ],
328
- [
329
- "object"
330
- ]
331
- ],
332
- "table": "accessControl_Access"
333
- },
334
- "uid": "77205e82c58914d5",
335
- "sources": [
336
- {
337
- "type": "table",
338
- "name": "accessControl_Access"
339
- }
340
- ]
341
- },
342
- "accessControl_AccessRequest_bySessionOrUser": {
343
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
344
- "parameters": {
345
- "properties": [
346
- [
347
- "sessionOrUserType"
348
- ],
349
- [
350
- "sessionOrUser"
351
- ]
352
- ],
353
- "table": "accessControl_AccessRequest"
354
- },
355
- "uid": "47da1eee29fe1bbd",
356
- "sources": [
357
- {
358
- "type": "table",
359
- "name": "accessControl_AccessRequest"
360
- }
361
- ]
362
- },
363
- "accessControl_AccessRequest_byObject": {
364
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
365
- "parameters": {
366
- "properties": [
367
- [
368
- "objectType"
369
- ],
370
- [
371
- "object"
372
- ]
373
- ],
374
- "table": "accessControl_AccessRequest"
375
- },
376
- "uid": "8ce5f521674e78eb",
377
- "sources": [
378
- {
379
- "type": "table",
380
- "name": "accessControl_AccessRequest"
381
- }
382
- ]
383
- },
384
- "accessControl_AccessInvitation_byContactOrUser": {
385
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
386
- "parameters": {
387
- "properties": [
388
- [
389
- "contactOrUserType"
390
- ],
391
- [
392
- "contactOrUser"
393
- ]
394
- ],
395
- "table": "accessControl_AccessInvitation"
396
- },
397
- "uid": "c59ddd3a9176951d",
398
- "sources": [
399
- {
400
- "type": "table",
401
- "name": "accessControl_AccessInvitation"
402
- }
403
- ]
404
- },
405
- "accessControl_AccessInvitation_byObject": {
406
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
407
- "parameters": {
408
- "properties": [
409
- [
410
- "objectType"
411
- ],
412
- [
413
- "object"
414
- ]
415
- ],
416
- "table": "accessControl_AccessInvitation"
417
- },
418
- "uid": "3d7442e0d8a6778d",
419
- "sources": [
420
- {
421
- "type": "table",
422
- "name": "accessControl_AccessInvitation"
423
- }
424
- ]
425
- },
426
- "security_Ban_bans": {
427
- "code": "(async function(input, output, { table, property }) {\n const values = (obj) => {\n let at = obj\n for(const p of property) at = at && at[p]\n if(at === undefined) return []\n if(Array.isArray(at)) return at.map(v => JSON.stringify(v))\n return [at]\n }\n await input.table(table).onChange((obj, oldObj) => {\n if(obj && oldObj) {\n let pointers = obj && new Set(values(obj))\n let oldPointers = oldObj && new Set(values(oldObj))\n for(let pointer of pointers) {\n if(!!oldPointers.has(pointer)) output.change({ id: pointer+'_'+obj.id, to: obj.id }, null)\n }\n for(let pointer of oldPointers) {\n if(!!pointers.has(pointer)) output.change(null, { id: pointer+'_'+obj.id, to: obj.id })\n }\n } else if(obj) {\n values(obj).forEach(v => output.change({ id: v+'_'+obj.id, to: obj.id }, null))\n } else if(oldObj) {\n values(oldObj).forEach(v => output.change(null, { id: v+'_'+oldObj.id, to: oldObj.id }))\n }\n })\n })",
428
- "parameters": {
429
- "property": [
430
- "keys"
431
- ],
432
- "table": "security_Ban"
433
- },
434
- "uid": "c4dd5164ade2375c",
435
- "sources": [
436
- {
437
- "type": "table",
438
- "name": "security_Ban"
439
- }
440
- ]
441
- },
442
- "security_Ban_actionBans": {
443
- "code": "(async function(input, output) {\n function prefixes(ban) {\n //output.debug(\"BAN\", ban)\n if(!ban.keys) return []\n if(!ban.actions) return []\n const v = ban.keys.length\n const w = ban.actions.length\n let res = new Array(v * w)\n for(let i = 0; i < v; i++) {\n for(let j = 0; j < w; j++) {\n const key = ban.keys[i]\n res[i * v + j] = `${ban.actions[j]}:${key.key}:${key.value}`\n }\n }\n //output.debug(\"BAN ACTIONS\", res)\n return res\n }\n function indexObject(prefix, obj) {\n //output.debug(\"BAN\", obj)\n return {\n id: prefix+'_'+obj.id,\n to: obj.id,\n type: obj.type,\n expire: obj.expire,\n actions: obj.actions\n }\n }\n await input.table(\"security_Ban\").onChange((obj, oldObj) => {\n if(obj && oldObj) {\n //output.debug(\"CHANGE!\", obj, oldObj)\n const pointers = obj && new Set(prefixes(obj))\n const oldPointers = oldObj && new Set(prefixes(oldObj))\n for(let pointer of pointers) {\n if(!!oldPointers.has(pointer)) output.change(indexObject(pointer, obj), null)\n }\n for(let pointer of oldPointers) {\n if(!!pointers.has(pointer)) output.change(null, indexObject(pointer, oldObj))\n }\n } else if(obj) {\n //output.debug(\"CREATE!\", obj, oldObj)\n prefixes(obj).forEach(v => output.change(indexObject(v, obj), null))\n } else if(oldObj) {\n //output.debug(\"DELETE!\", obj, oldObj)\n prefixes(oldObj).forEach(v => output.change(null, indexObject(v, oldObj)))\n }\n })\n })",
444
- "parameters": {},
445
- "uid": "3cf1cccd86b0acf4",
446
- "sources": [
447
- {
448
- "type": "table",
449
- "name": "security_Ban"
450
- }
451
- ]
452
- },
453
- "security_Ban_actionBansByType": {
454
- "code": "(async function(input, output) {\n function prefixes(ban) {\n //output.debug(\"BAN\", ban)\n if(!ban.keys) return []\n if(!ban.actions) return []\n const v = ban.keys.length\n const w = ban.actions.length\n let res = new Array(v * w)\n for(let i = 0; i < v; i++) {\n for(let j = 0; j < w; j++) {\n const key = ban.keys[i]\n res[i * v + j] = `${ban.actions[j]}:${key.key}:${key.value}:${ban.type}:${ban.expire}`\n }\n }\n output.debug(\"BAN PREFIXES\", res)\n return res\n }\n function indexObject(prefix, obj) {\n //output.debug(\"BAN\", obj)\n return {\n id: prefix+'_'+obj.id,\n to: obj.id,\n type: obj.type,\n expire: obj.expire,\n actions: obj.actions\n }\n }\n await input.table(\"security_Ban\").onChange((obj, oldObj) => {\n if(obj && oldObj) {\n //output.debug(\"CHANGE!\", obj, oldObj)\n let pointers = obj && new Set(prefixes(obj))\n let oldPointers = oldObj && new Set(prefixes(oldObj))\n for(let pointer of pointers) {\n if(!!oldPointers.has(pointer)) output.change(indexObject(pointer, obj), null)\n }\n for(let pointer of oldPointers) {\n if(!!pointers.has(pointer)) output.change(null, indexObject(pointer, oldObj))\n }\n } else if(obj) {\n //output.debug(\"CREATE!\", obj, oldObj)\n prefixes(obj).forEach(v => output.change(indexObject(v, obj), null))\n } else if(oldObj) {\n //output.debug(\"DELETE!\", obj, oldObj)\n prefixes(oldObj).forEach(v => output.change(null, indexObject(v, oldObj)))\n }\n })\n })",
455
- "parameters": {},
456
- "uid": "088aa0b91edf5011",
457
- "sources": [
458
- {
459
- "type": "table",
460
- "name": "security_Ban"
461
- }
462
- ]
463
- },
464
- "security_Event_byKeyTypeAndTimestamp": {
465
- "code": "(async function(input, output) {\n async function spread(event) {\n for(const key in event.keys) {\n output.put({\n id: `${key}:${JSON.stringify(event.keys[key])}:${event.type}:${event.timestamp}_${event.id}`,\n type: event.type,\n timestamp: event.timestamp\n })\n }\n }\n await input.table('security_Event').onChange(\n (obj, oldObj) => spread(obj)\n )\n })",
466
- "parameters": {},
467
- "uid": "3ba8fe53feedf8af",
468
- "sources": [
469
- {
470
- "type": "table",
471
- "name": "security_Event"
472
- }
473
- ]
474
- },
475
- "notification_Notification_unreadNotifications": {
476
- "code": "(async function(input, output) {\n await input.table('notification_Notification')\n .map((obj) => obj && obj.readState == 'new' && ({\n id: `\"${obj.sessionOrUserType}\":\"${obj.sessionOrUser}\"_${obj.id}`,\n sessionOrUserType: obj.sessionOrUserType, sessionOrUser: obj.sessionOrUser,\n to: obj.id\n }))\n .to(output)\n })",
477
- "parameters": {},
478
- "uid": "e0264b95e1c7070a",
479
- "sources": [
480
- {
481
- "type": "table",
482
- "name": "notification_Notification"
483
- }
484
- ]
485
- },
486
- "notification_Notification_unreadNotificationsCount": {
487
- "code": "(async function(input, output) {\n const unreadIndex = await input.index('notification_Notification_unreadNotifications')\n await unreadIndex.onChange(\n async (obj, oldObj) => {\n const { sessionOrUserType, sessionOrUser } = obj || oldObj\n const group = `\"${sessionOrUserType}\":\"${sessionOrUser}\"`\n const prefix = group + '_'\n const count = await unreadIndex.count({ gt: prefix, lt: prefix + '\\xFF' })\n output.put({\n id: group,\n count\n })\n }\n )\n })",
488
- "parameters": {},
489
- "uid": "555469fcf7c3bfb7",
490
- "sources": [
491
- {
492
- "type": "index",
493
- "name": "notification_Notification_unreadNotifications"
494
- }
495
- ]
496
- },
497
- "notification_Notification_bySessionOrUser": {
498
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
499
- "parameters": {
500
- "properties": [
501
- [
502
- "sessionOrUserType"
503
- ],
504
- [
505
- "sessionOrUser"
506
- ]
507
- ],
508
- "table": "notification_Notification"
509
- },
510
- "uid": "ca2ea03d2df40ef4",
511
- "sources": [
512
- {
513
- "type": "table",
514
- "name": "notification_Notification"
515
- }
516
- ]
517
- },
518
- "notification_Notification_bySessionOrUserAndTime": {
519
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
520
- "parameters": {
521
- "properties": [
522
- [
523
- "sessionOrUserType"
524
- ],
525
- [
526
- "sessionOrUser"
527
- ],
528
- [
529
- "time"
530
- ]
531
- ],
532
- "table": "notification_Notification"
533
- },
534
- "uid": "6330c468d772c693",
535
- "sources": [
536
- {
537
- "type": "table",
538
- "name": "notification_Notification"
539
- }
540
- ]
541
- },
542
- "notification_Notification_bySessionOrUserAndReadState": {
543
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
544
- "parameters": {
545
- "properties": [
546
- [
547
- "sessionOrUserType"
548
- ],
549
- [
550
- "sessionOrUser"
551
- ],
552
- [
553
- "readState"
554
- ]
555
- ],
556
- "table": "notification_Notification"
557
- },
558
- "uid": "03d456511300a860",
559
- "sources": [
560
- {
561
- "type": "table",
562
- "name": "notification_Notification"
563
- }
564
- ]
565
- },
566
- "notification_NotificationSetting_byContact": {
567
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
568
- "parameters": {
569
- "properties": [
570
- [
571
- "contactType"
572
- ],
573
- [
574
- "contact"
575
- ]
576
- ],
577
- "table": "notification_NotificationSetting"
578
- },
579
- "uid": "da458d672fa4836a",
580
- "sources": [
581
- {
582
- "type": "table",
583
- "name": "notification_NotificationSetting"
584
- }
585
- ]
586
- },
587
- "notification_NotificationSetting_byNotification": {
588
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
589
- "parameters": {
590
- "properties": [
591
- [
592
- "notificationType"
593
- ],
594
- [
595
- "notification"
596
- ]
597
- ],
598
- "table": "notification_NotificationSetting"
599
- },
600
- "uid": "f364b9ea4efb230f",
601
- "sources": [
602
- {
603
- "type": "table",
604
- "name": "notification_NotificationSetting"
605
- }
606
- ]
607
- },
608
- "image_Image_byOwner": {
609
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
610
- "parameters": {
611
- "properties": [
612
- [
613
- "ownerType"
614
- ],
615
- [
616
- "owner"
617
- ]
618
- ],
619
- "table": "image_Image"
620
- },
621
- "uid": "320eb7e0e0165cb2",
622
- "sources": [
623
- {
624
- "type": "table",
625
- "name": "image_Image"
626
- }
627
- ]
628
- },
629
- "secretCode_Code_byAuthenticationAndSecretCode": {
630
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
631
- "parameters": {
632
- "properties": [
633
- [
634
- "authentication"
635
- ],
636
- [
637
- "secretCode"
638
- ]
639
- ],
640
- "table": "secretCode_Code"
641
- },
642
- "uid": "aaa55d700b7eec3b",
643
- "sources": [
644
- {
645
- "type": "table",
646
- "name": "secretCode_Code"
647
- }
648
- ]
649
- },
650
- "secretCode_Code_byAuthentication": {
651
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
652
- "parameters": {
653
- "properties": [
654
- [
655
- "authentication"
656
- ]
657
- ],
658
- "table": "secretCode_Code"
659
- },
660
- "uid": "3ba5543f441d5fd8",
661
- "sources": [
662
- {
663
- "type": "table",
664
- "name": "secretCode_Code"
665
- }
666
- ]
667
- },
668
- "secretLink_Link_bySecretCode": {
669
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
670
- "parameters": {
671
- "properties": [
672
- [
673
- "secretCode"
674
- ]
675
- ],
676
- "table": "secretLink_Link"
677
- },
678
- "uid": "f9390d19005088f7",
679
- "sources": [
680
- {
681
- "type": "table",
682
- "name": "secretLink_Link"
683
- }
684
- ]
685
- },
686
- "secretLink_Link_byAuthentication": {
687
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
688
- "parameters": {
689
- "properties": [
690
- [
691
- "authentication"
692
- ]
693
- ],
694
- "table": "secretLink_Link"
695
- },
696
- "uid": "e858ef350dcf3819",
697
- "sources": [
698
- {
699
- "type": "table",
700
- "name": "secretLink_Link"
701
- }
702
- ]
703
- },
704
- "url_Canonical_byUrl": {
705
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
706
- "parameters": {
707
- "properties": [
708
- [
709
- "targetType"
710
- ],
711
- [
712
- "domain"
713
- ],
714
- [
715
- "path"
716
- ]
717
- ],
718
- "table": "url_Canonical"
719
- },
720
- "uid": "f5577bc6c5d10a2a",
721
- "sources": [
722
- {
723
- "type": "table",
724
- "name": "url_Canonical"
725
- }
726
- ]
727
- },
728
- "url_Redirect_byUrl": {
729
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
730
- "parameters": {
731
- "properties": [
732
- [
733
- "targetType"
734
- ],
735
- [
736
- "domain"
737
- ],
738
- [
739
- "path"
740
- ]
741
- ],
742
- "table": "url_Redirect"
743
- },
744
- "uid": "3d60d2cf640d4b5a",
745
- "sources": [
746
- {
747
- "type": "table",
748
- "name": "url_Redirect"
749
- }
750
- ]
751
- },
752
- "url_Redirect_byTarget": {
753
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
754
- "parameters": {
755
- "properties": [
756
- [
757
- "targetType"
758
- ],
759
- [
760
- "target"
761
- ]
762
- ],
763
- "table": "url_Redirect"
764
- },
765
- "uid": "3709f1fc937a0abc",
766
- "sources": [
767
- {
768
- "type": "table",
769
- "name": "url_Redirect"
770
- }
771
- ]
772
- },
773
- "url_Urls": {
774
- "code": "(async function(input, output) {\n const urlMapper = urlType => ({targetType, domain, path, target}) =>\n ({\n id: `\"${targetType}\":${JSON.stringify(domain)}:${JSON.stringify(path)}_\"${target}\"`,\n target, domain, path,\n type: urlType\n })\n const redirectMapper = urlMapper('redirect')\n const canonicalMapper = urlMapper('canonical')\n await input.table('url_Redirect').onChange(\n (obj, oldObj) => output.change(obj && redirectMapper(obj), oldObj && redirectMapper(oldObj))\n )\n await input.table('url_Canonical').onChange(\n (obj, oldObj) => output.change(obj && canonicalMapper(obj), oldObj && canonicalMapper(oldObj))\n )\n })",
775
- "parameters": {},
776
- "uid": "26b36edb74e1e29d",
777
- "sources": [
778
- {
779
- "type": "table",
780
- "name": "url_Redirect"
781
- },
782
- {
783
- "type": "table",
784
- "name": "url_Canonical"
785
- }
786
- ]
787
- },
788
- "url_UrlsWithoutDomain": {
789
- "code": "(async function(input, output) {\n const urlMapper = urlType => ({targetType, domain, path, target}) =>\n ({\n id: `\"${targetType}\":${JSON.stringify(path)}_\"${target}\"`,\n target, domain, path,\n type: urlType\n })\n const redirectMapper = urlMapper('redirect')\n const canonicalMapper = urlMapper('canonical')\n await input.table('url_Redirect').onChange(\n (obj, oldObj) => output.change(obj && redirectMapper(obj), oldObj && redirectMapper(oldObj))\n )\n await input.table('url_Canonical').onChange(\n (obj, oldObj) => output.change(obj && canonicalMapper(obj), oldObj && canonicalMapper(oldObj))\n )\n })",
790
- "parameters": {},
791
- "uid": "3895732c7da7a2a5",
792
- "sources": [
793
- {
794
- "type": "table",
795
- "name": "url_Redirect"
796
- },
797
- {
798
- "type": "table",
799
- "name": "url_Canonical"
800
- }
801
- ]
802
- },
803
- "prosemirror_Snapshot_list": {
804
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
805
- "parameters": {
806
- "properties": [
807
- [
808
- "document"
809
- ],
810
- [
811
- "version"
812
- ]
813
- ],
814
- "table": "prosemirror_Snapshot"
815
- },
816
- "uid": "79c1e50c3415b648",
817
- "sources": [
818
- {
819
- "type": "table",
820
- "name": "prosemirror_Snapshot"
821
- }
822
- ]
823
- },
824
- "content_AdditionalContent_byContent": {
825
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
826
- "parameters": {
827
- "properties": [
828
- [
829
- "content"
830
- ]
831
- ],
832
- "table": "content_AdditionalContent"
833
- },
834
- "uid": "5d2004833779aeeb",
835
- "sources": [
836
- {
837
- "type": "table",
838
- "name": "content_AdditionalContent"
839
- }
840
- ]
841
- },
842
- "walletAuthentication_Authentication_byWallet": {
843
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
844
- "parameters": {
845
- "properties": [
846
- [
847
- "walletType"
848
- ],
849
- [
850
- "wallet"
851
- ]
852
- ],
853
- "table": "walletAuthentication_Authentication"
854
- },
855
- "uid": "bdb08fa29fdc271e",
856
- "sources": [
857
- {
858
- "type": "table",
859
- "name": "walletAuthentication_Authentication"
860
- }
861
- ]
862
- },
863
- "ipiWallet_IpiWallet_byUser": {
864
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
865
- "parameters": {
866
- "properties": [
867
- [
868
- "user"
869
- ]
870
- ],
871
- "table": "ipiWallet_IpiWallet"
872
- },
873
- "uid": "e042f1491c7d875a",
874
- "sources": [
875
- {
876
- "type": "table",
877
- "name": "ipiWallet_IpiWallet"
878
- }
879
- ]
880
- },
881
- "exchange_Offer_byStateAndCryptoInputAddress": {
882
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
883
- "parameters": {
884
- "properties": [
885
- [
886
- "state"
887
- ],
888
- [
889
- "cryptoInputAddress"
890
- ],
891
- [
892
- "created"
893
- ]
894
- ],
895
- "table": "exchange_Offer"
896
- },
897
- "uid": "695f534f20d0342b",
898
- "sources": [
899
- {
900
- "type": "table",
901
- "name": "exchange_Offer"
902
- }
903
- ]
904
- },
905
- "exchange_Offer_bySessionOrUser": {
906
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
907
- "parameters": {
908
- "properties": [
909
- [
910
- "sessionOrUserType"
911
- ],
912
- [
913
- "sessionOrUser"
914
- ]
915
- ],
916
- "table": "exchange_Offer"
917
- },
918
- "uid": "79f24e58e81ef56f",
919
- "sources": [
920
- {
921
- "type": "table",
922
- "name": "exchange_Offer"
923
- }
924
- ]
925
- },
926
- "exchange_Payment_byOffer": {
927
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
928
- "parameters": {
929
- "properties": [
930
- [
931
- "offerType"
932
- ],
933
- [
934
- "offer"
935
- ]
936
- ],
937
- "table": "exchange_Payment"
938
- },
939
- "uid": "9d2d82fcb6828ec4",
940
- "sources": [
941
- {
942
- "type": "table",
943
- "name": "exchange_Payment"
944
- }
945
- ]
946
- },
947
- "exchange_Payment_byTransaction": {
948
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
949
- "parameters": {
950
- "properties": [
951
- [
952
- "transactionType"
953
- ],
954
- [
955
- "transaction"
956
- ]
957
- ],
958
- "table": "exchange_Payment"
959
- },
960
- "uid": "65f02d15d8855345",
961
- "sources": [
962
- {
963
- "type": "table",
964
- "name": "exchange_Payment"
965
- }
966
- ]
967
- },
968
- "mlm_Link_byUser": {
969
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
970
- "parameters": {
971
- "properties": [
972
- [
973
- "user"
974
- ]
975
- ],
976
- "table": "mlm_Link"
977
- },
978
- "uid": "68d78c63d4e8be12",
979
- "sources": [
980
- {
981
- "type": "table",
982
- "name": "mlm_Link"
983
- }
984
- ]
985
- },
986
- "bitcoin_Address_byHolder": {
987
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
988
- "parameters": {
989
- "properties": [
990
- [
991
- "holderType"
992
- ],
993
- [
994
- "holder"
995
- ],
996
- [
997
- "expire"
998
- ]
999
- ],
1000
- "table": "bitcoin_Address"
1001
- },
1002
- "uid": "2959c55100269eba",
1003
- "sources": [
1004
- {
1005
- "type": "table",
1006
- "name": "bitcoin_Address"
1007
- }
1008
- ]
1009
- },
1010
- "commands_new": {
1011
- "code": "(async function(input, output, { tableName }) {\n await input.table(tableName).onChange(async (obj, oldObj) => {\n const res = obj && obj.state == 'new' ? { ...obj, id: obj.service + '_' + obj.id } : null\n const oldRes = oldObj && oldObj.state == 'new' ? { ...oldObj, id: oldObj.service + '_' + oldObj.id } : null\n //output.debug(\"CHANGE \", tableName, \"INDEX\", res, \"OLD:\", oldRes)\n await output.change(res, oldRes)\n })\n })",
1012
- "parameters": {
1013
- "tableName": "commands"
1014
- },
1015
- "uid": "8b87e051c7963280",
1016
- "sources": [
1017
- {
1018
- "type": "table",
1019
- "name": "commands"
1020
- }
1021
- ]
1022
- },
1023
- "security_relations_eventTypeAndKeys": {
1024
- "code": "(async function(input, output, { table }) {\n const mapper = (obj) => ({ id: obj.eventType+'_'+obj.keys+'_'+obj.id, to: obj.id })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1025
- "parameters": {
1026
- "table": "security_relations"
1027
- },
1028
- "uid": "500a5142c6c48e84",
1029
- "sources": [
1030
- {
1031
- "type": "table",
1032
- "name": "security_relations"
1033
- }
1034
- ]
1035
- },
1036
- "security_relations_sourceRelation": {
1037
- "code": "(async function(input, output, { table }) {\n const mapper = (obj) => ({ id: obj.source+'_'+obj.relation+'_'+obj.id, to: obj.id })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1038
- "parameters": {
1039
- "table": "security_relations"
1040
- },
1041
- "uid": "2b9588a16ba55b9c",
1042
- "sources": [
1043
- {
1044
- "type": "table",
1045
- "name": "security_relations"
1046
- }
1047
- ]
1048
- },
1049
- "exchange_Offer_byLink": {
1050
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1051
- "parameters": {
1052
- "properties": [
1053
- [
1054
- "link"
1055
- ],
1056
- [
1057
- "created"
1058
- ]
1059
- ],
1060
- "table": "exchange_Offer"
1061
- },
1062
- "uid": "755a3f23a8de2db7",
1063
- "sources": [
1064
- {
1065
- "type": "table",
1066
- "name": "exchange_Offer"
1067
- }
1068
- ]
1069
- },
1070
- "exchange_Offer_byLinkAndTimestamp": {
1071
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1072
- "parameters": {
1073
- "properties": [
1074
- [
1075
- "link"
1076
- ],
1077
- [
1078
- "created"
1079
- ]
1080
- ],
1081
- "table": "exchange_Offer"
1082
- },
1083
- "uid": "0d9eceae58408087",
1084
- "sources": [
1085
- {
1086
- "type": "table",
1087
- "name": "exchange_Offer"
1088
- }
1089
- ]
1090
- },
1091
- "exchange_Offer_byLinkStateExtended": {
1092
- "code": "(async function(input, output) {\n function mapper(obj) {\n return obj && {\n id: `\"${obj.link}\":\"${obj.state}\":\"${obj.created}\"_${obj.id}`,\n to: obj.id,\n link: obj.link,\n state: obj.state,\n created: obj.created,\n cryptoInput: obj.state == 'done' ? obj.finalCryptoInput : obj.cryptoInput,\n cryptoOutput: obj.state == 'done' ? obj.finalCryptoOutput : obj.cryptoOutput,\n fiatInput: obj.state == 'done' ? obj.finalFiatInput : obj.fiatInput,\n fiatInputCurrency: obj.fiatInputCurrency,\n cryptoInputCurrency: obj.cryptoInputCurrency,\n cryptoOutputCurrency: obj.cryptoOutputCurrency,\n }\n }\n await input.table('exchange_Offer').onChange(\n (obj, oldObj) => output.change(mapper(obj), mapper(oldObj))\n )\n })",
1093
- "parameters": {},
1094
- "uid": "6f1a1022188c86fc",
1095
- "sources": [
1096
- {
1097
- "type": "table",
1098
- "name": "exchange_Offer"
1099
- }
1100
- ]
1101
- },
1102
- "mlm_Link_byUserExtended": {
1103
- "code": "(async function(input, output) {\n function mapper(obj) {\n return obj && {\n id: `\"${obj.user}\"_${obj.id}`,\n to: obj.id,\n user: obj.user,\n useCount: obj.useCount || 0,\n offerCount: obj.offerCount || 0,\n activeCount: obj.activeCount || 0,\n doneCount: obj.doneCount || 0,\n expiredCount: obj.expiredCount || 0,\n subLinks: obj.subLinks || 0,\n income: obj.income || 0,\n output: obj.output || 0\n }\n }\n await input.table('mlm_Link').onChange(\n (obj, oldObj) => output.change(mapper(obj), mapper(oldObj))\n )\n })",
1104
- "parameters": {},
1105
- "uid": "e4dd33a6d1e9c29b",
1106
- "sources": [
1107
- {
1108
- "type": "table",
1109
- "name": "mlm_Link"
1110
- }
1111
- ]
1112
- },
1113
- "mlm_Link_userStats": {
1114
- "code": "(async function(input, output) {\n const sourceIndex = await input.index('mlm_Link_byUserExtended')\n await sourceIndex.onChange(\n async (obj, oldObj) => {\n const prefix = ((obj && obj.id) || (oldObj && oldObj.id)).split('_')[0]\n if(!prefix) {\n output.debug(\"NO PREFIX FOR CHANGE\", obj, oldObj)\n return\n }\n const user = ((obj && obj.user) || (oldObj && oldObj.user))\n const links = await sourceIndex.get({\n gt: prefix + '_',\n lt: prefix + '_\\xFF',\n limit: 1000\n })\n\n let useCount = 0\n let offerCount = 0\n let activeCount = 0\n let doneCount = 0\n let expiredCount = 0\n let subLinks = 0\n let income = 0\n let outputSum = 0\n\n for(const link of links) {\n useCount += link.useCount || 0\n offerCount += link.offerCount || 0\n activeCount += link.activeCount || 0\n doneCount += link.doneCount || 0\n expiredCount += link.expiredCount || 0\n subLinks += link.subLinks || 0\n income += link.income || 0\n outputSum += link.output || 0\n }\n output.put({\n id: prefix,\n user,\n useCount, offerCount, activeCount, doneCount, expiredCount, subLinks, income, output: outputSum\n })\n }\n )\n })",
1115
- "parameters": {},
1116
- "uid": "5d401f463697dca5",
1117
- "sources": [
1118
- {
1119
- "type": "index",
1120
- "name": "mlm_Link_byUserExtended"
1121
- }
1122
- ]
1123
- },
1124
- "mlm_Balance_byUser": {
1125
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1126
- "parameters": {
1127
- "properties": [
1128
- [
1129
- "User"
1130
- ]
1131
- ],
1132
- "table": "mlm_Balance"
1133
- },
1134
- "uid": "1a4c9ce41f799a90",
1135
- "sources": [
1136
- {
1137
- "type": "table",
1138
- "name": "mlm_Balance"
1139
- }
1140
- ]
1141
- },
1142
- "mlm_Payout_byUser": {
1143
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1144
- "parameters": {
1145
- "properties": [
1146
- [
1147
- "user"
1148
- ]
1149
- ],
1150
- "table": "mlm_Payout"
1151
- },
1152
- "uid": "82b60b7b7c3ec928",
1153
- "sources": [
1154
- {
1155
- "type": "table",
1156
- "name": "mlm_Payout"
1157
- }
1158
- ]
1159
- },
1160
- "triggers_new": {
1161
- "code": "(async function(input, output, { tableName }) {\n await input.table(tableName).onChange(async (obj, oldObj) => {\n const res = obj && obj.state == 'new' ? { ...obj, id: obj.service + '_' + obj.id } : null\n const oldRes = oldObj && oldObj.state == 'new' ? { ...oldObj, id: oldObj.service + '_' + oldObj.id } : null\n //output.debug(\"CHANGE \", tableName, \"INDEX\", res, \"OLD:\", oldRes)\n await output.change(res, oldRes)\n })\n })",
1162
- "parameters": {
1163
- "tableName": "triggers"
1164
- },
1165
- "uid": "8cafc8ba61132c8c",
1166
- "sources": [
1167
- {
1168
- "type": "table",
1169
- "name": "triggers"
1170
- }
1171
- ]
1172
- }
1173
- },
1174
- "logs": {
1175
- "events": {
1176
- "uid": "6f7cf29254450c31"
1177
- }
1178
- },
1179
- "storage": {
1180
- "noMetaSync": true,
1181
- "noSync": true
1182
- }
1183
- },
1184
- "wallet": {
1185
- "tables": {
1186
- "services": {
1187
- "uid": "55f94054c5625cbb"
1188
- },
1189
- "eventConsumers": {
1190
- "uid": "5617e5f969886c8d"
1191
- },
1192
- "eventReports": {
1193
- "uid": "519bd703e2524982"
1194
- },
1195
- "commands": {
1196
- "uid": "91d7cc1d1b763c79"
1197
- },
1198
- "triggerRoutes": {
1199
- "uid": "d0003e88beb32cf0"
1200
- },
1201
- "triggers": {
1202
- "uid": "c441d793c5dd611a"
1203
- },
1204
- "session_Session": {
1205
- "uid": "01d5674cae75befa"
1206
- },
1207
- "user_User": {
1208
- "uid": "4bba5165a9b9c06a"
1209
- },
1210
- "user_AuthenticatedUser": {
1211
- "uid": "e20adbf0cf834e3f"
1212
- },
1213
- "email_SentEmail": {
1214
- "uid": "6ba5b1c30787566d"
1215
- },
1216
- "email_Email": {
1217
- "uid": "424b2ebf1a5ad411"
1218
- },
1219
- "passwordAuthentication_PasswordAuthentication": {
1220
- "uid": "278f9380a174c859"
1221
- },
1222
- "passwordAuthentication_ResetPasswordAuthentication": {
1223
- "uid": "3f1804faf491c866"
1224
- },
1225
- "userIdentification_Identification": {
1226
- "uid": "f6ee079701d3217e"
1227
- },
1228
- "accessControl_Access": {
1229
- "uid": "9175e212c0f9100f"
1230
- },
1231
- "accessControl_PublicAccess": {
1232
- "uid": "fad77afa84e85150"
1233
- },
1234
- "accessControl_AccessRequest": {
1235
- "uid": "83eddccdbe3b7f29"
1236
- },
1237
- "accessControl_AccessInvitation": {
1238
- "uid": "5840b5d5d766ed18"
1239
- },
1240
- "security_Ban": {
1241
- "uid": "144f160773e2fad5"
1242
- },
1243
- "security_Event": {
1244
- "uid": "ad5397b155080713"
1245
- },
1246
- "notification_Notification": {
1247
- "uid": "508b966a52caf4a5"
1248
- },
1249
- "notification_NotificationSetting": {
1250
- "uid": "53134a7fd72e45d9"
1251
- },
1252
- "upload_Upload": {
1253
- "uid": "aa435e368938c4d6"
1254
- },
1255
- "image_Image": {
1256
- "uid": "413f67dc65f0b13f"
1257
- },
1258
- "content_Content": {
1259
- "uid": "a6082b16f030f765"
1260
- },
1261
- "content_AdditionalContent": {
1262
- "uid": "794e1dbee479c554"
1263
- },
1264
- "content_Page": {
1265
- "uid": "7aa9636405153ba5"
1266
- },
1267
- "content_Metadata": {
1268
- "uid": "b05d14592fed7202"
1269
- },
1270
- "secretCode_Code": {
1271
- "uid": "a48701a6e06d0692"
1272
- },
1273
- "secretLink_Link": {
1274
- "uid": "de2ac3fcd1b2544d"
1275
- },
1276
- "prosemirror_Document": {
1277
- "uid": "0113397bca752dd5"
1278
- },
1279
- "prosemirror_StepsBucket": {
1280
- "uid": "3543654811aaae13"
1281
- },
1282
- "prosemirror_Snapshot": {
1283
- "uid": "44d161d957d2fce1"
1284
- },
1285
- "walletConnect_Channel": {
1286
- "uid": "543c2084599f3046"
1287
- },
1288
- "walletConnect_Transaction": {
1289
- "uid": "a2aadafb8afc9789"
1290
- },
1291
- "security_relations": {
1292
- "uid": "6f2d104945398536"
1293
- }
1294
- },
1295
- "indexes": {
1296
- "session_Session_byKey": {
1297
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1298
- "parameters": {
1299
- "properties": [
1300
- [
1301
- "key"
1302
- ]
1303
- ],
1304
- "table": "session_Session"
1305
- },
1306
- "uid": "0113bfb99e682535",
1307
- "sources": [
1308
- {
1309
- "type": "table",
1310
- "name": "session_Session"
1311
- }
1312
- ]
1313
- },
1314
- "user_AuthenticatedUser_byUser": {
1315
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1316
- "parameters": {
1317
- "properties": [
1318
- [
1319
- "user"
1320
- ]
1321
- ],
1322
- "table": "user_AuthenticatedUser"
1323
- },
1324
- "uid": "6bab51eccd38ba17",
1325
- "sources": [
1326
- {
1327
- "type": "table",
1328
- "name": "user_AuthenticatedUser"
1329
- }
1330
- ]
1331
- },
1332
- "email_Email_byUser": {
1333
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1334
- "parameters": {
1335
- "properties": [
1336
- [
1337
- "user"
1338
- ]
1339
- ],
1340
- "table": "email_Email"
1341
- },
1342
- "uid": "6dc8ff6494fda3cc",
1343
- "sources": [
1344
- {
1345
- "type": "table",
1346
- "name": "email_Email"
1347
- }
1348
- ]
1349
- },
1350
- "passwordAuthentication_PasswordAuthentication_byUser": {
1351
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1352
- "parameters": {
1353
- "properties": [
1354
- [
1355
- "User"
1356
- ]
1357
- ],
1358
- "table": "passwordAuthentication_PasswordAuthentication"
1359
- },
1360
- "uid": "936f51da8fd98b93",
1361
- "sources": [
1362
- {
1363
- "type": "table",
1364
- "name": "passwordAuthentication_PasswordAuthentication"
1365
- }
1366
- ]
1367
- },
1368
- "passwordAuthentication_ResetPasswordAuthentication_byKey": {
1369
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1370
- "parameters": {
1371
- "properties": [
1372
- [
1373
- "key"
1374
- ]
1375
- ],
1376
- "table": "passwordAuthentication_ResetPasswordAuthentication"
1377
- },
1378
- "uid": "855e018c9224206f",
1379
- "sources": [
1380
- {
1381
- "type": "table",
1382
- "name": "passwordAuthentication_ResetPasswordAuthentication"
1383
- }
1384
- ]
1385
- },
1386
- "passwordAuthentication_ResetPasswordAuthentication_byUser": {
1387
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1388
- "parameters": {
1389
- "properties": [
1390
- [
1391
- "User"
1392
- ]
1393
- ],
1394
- "table": "passwordAuthentication_ResetPasswordAuthentication"
1395
- },
1396
- "uid": "78ffe353d64cae42",
1397
- "sources": [
1398
- {
1399
- "type": "table",
1400
- "name": "passwordAuthentication_ResetPasswordAuthentication"
1401
- }
1402
- ]
1403
- },
1404
- "accessControl_Access_bySessionOrUser": {
1405
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1406
- "parameters": {
1407
- "properties": [
1408
- [
1409
- "sessionOrUserType"
1410
- ],
1411
- [
1412
- "sessionOrUser"
1413
- ]
1414
- ],
1415
- "table": "accessControl_Access"
1416
- },
1417
- "uid": "8ec02d958cdc5ea5",
1418
- "sources": [
1419
- {
1420
- "type": "table",
1421
- "name": "accessControl_Access"
1422
- }
1423
- ]
1424
- },
1425
- "accessControl_Access_byObject": {
1426
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1427
- "parameters": {
1428
- "properties": [
1429
- [
1430
- "objectType"
1431
- ],
1432
- [
1433
- "object"
1434
- ]
1435
- ],
1436
- "table": "accessControl_Access"
1437
- },
1438
- "uid": "8cb6e67a1bf5187a",
1439
- "sources": [
1440
- {
1441
- "type": "table",
1442
- "name": "accessControl_Access"
1443
- }
1444
- ]
1445
- },
1446
- "accessControl_AccessRequest_bySessionOrUser": {
1447
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1448
- "parameters": {
1449
- "properties": [
1450
- [
1451
- "sessionOrUserType"
1452
- ],
1453
- [
1454
- "sessionOrUser"
1455
- ]
1456
- ],
1457
- "table": "accessControl_AccessRequest"
1458
- },
1459
- "uid": "b2fcc2acbe732aae",
1460
- "sources": [
1461
- {
1462
- "type": "table",
1463
- "name": "accessControl_AccessRequest"
1464
- }
1465
- ]
1466
- },
1467
- "accessControl_AccessRequest_byObject": {
1468
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1469
- "parameters": {
1470
- "properties": [
1471
- [
1472
- "objectType"
1473
- ],
1474
- [
1475
- "object"
1476
- ]
1477
- ],
1478
- "table": "accessControl_AccessRequest"
1479
- },
1480
- "uid": "6d959553b11a9fa1",
1481
- "sources": [
1482
- {
1483
- "type": "table",
1484
- "name": "accessControl_AccessRequest"
1485
- }
1486
- ]
1487
- },
1488
- "accessControl_AccessInvitation_byContactOrUser": {
1489
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1490
- "parameters": {
1491
- "properties": [
1492
- [
1493
- "contactOrUserType"
1494
- ],
1495
- [
1496
- "contactOrUser"
1497
- ]
1498
- ],
1499
- "table": "accessControl_AccessInvitation"
1500
- },
1501
- "uid": "85621569d2fa1930",
1502
- "sources": [
1503
- {
1504
- "type": "table",
1505
- "name": "accessControl_AccessInvitation"
1506
- }
1507
- ]
1508
- },
1509
- "accessControl_AccessInvitation_byObject": {
1510
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1511
- "parameters": {
1512
- "properties": [
1513
- [
1514
- "objectType"
1515
- ],
1516
- [
1517
- "object"
1518
- ]
1519
- ],
1520
- "table": "accessControl_AccessInvitation"
1521
- },
1522
- "uid": "2278cb0e0e7740a9",
1523
- "sources": [
1524
- {
1525
- "type": "table",
1526
- "name": "accessControl_AccessInvitation"
1527
- }
1528
- ]
1529
- },
1530
- "security_Ban_bans": {
1531
- "code": "(async function(input, output, { table, property }) {\n const values = (obj) => {\n let at = obj\n for(const p of property) at = at && at[p]\n if(at === undefined) return []\n if(Array.isArray(at)) return at.map(v => JSON.stringify(v))\n return [at]\n }\n await input.table(table).onChange((obj, oldObj) => {\n if(obj && oldObj) {\n let pointers = obj && new Set(values(obj))\n let oldPointers = oldObj && new Set(values(oldObj))\n for(let pointer of pointers) {\n if(!!oldPointers.has(pointer)) output.change({ id: pointer+'_'+obj.id, to: obj.id }, null)\n }\n for(let pointer of oldPointers) {\n if(!!pointers.has(pointer)) output.change(null, { id: pointer+'_'+obj.id, to: obj.id })\n }\n } else if(obj) {\n values(obj).forEach(v => output.change({ id: v+'_'+obj.id, to: obj.id }, null))\n } else if(oldObj) {\n values(oldObj).forEach(v => output.change(null, { id: v+'_'+oldObj.id, to: oldObj.id }))\n }\n })\n })",
1532
- "parameters": {
1533
- "property": [
1534
- "keys"
1535
- ],
1536
- "table": "security_Ban"
1537
- },
1538
- "uid": "6b482a9d169171ab",
1539
- "sources": [
1540
- {
1541
- "type": "table",
1542
- "name": "security_Ban"
1543
- }
1544
- ]
1545
- },
1546
- "security_Ban_actionBans": {
1547
- "code": "(async function(input, output) {\n function prefixes(ban) {\n //output.debug(\"BAN\", ban)\n if(!ban.keys) return []\n if(!ban.actions) return []\n const v = ban.keys.length\n const w = ban.actions.length\n let res = new Array(v * w)\n for(let i = 0; i < v; i++) {\n for(let j = 0; j < w; j++) {\n const key = ban.keys[i]\n res[i * v + j] = `${ban.actions[j]}:${key.key}:${key.value}`\n }\n }\n //output.debug(\"BAN ACTIONS\", res)\n return res\n }\n function indexObject(prefix, obj) {\n //output.debug(\"BAN\", obj)\n return {\n id: prefix+'_'+obj.id,\n to: obj.id,\n type: obj.type,\n expire: obj.expire,\n actions: obj.actions\n }\n }\n await input.table(\"security_Ban\").onChange((obj, oldObj) => {\n if(obj && oldObj) {\n //output.debug(\"CHANGE!\", obj, oldObj)\n const pointers = obj && new Set(prefixes(obj))\n const oldPointers = oldObj && new Set(prefixes(oldObj))\n for(let pointer of pointers) {\n if(!!oldPointers.has(pointer)) output.change(indexObject(pointer, obj), null)\n }\n for(let pointer of oldPointers) {\n if(!!pointers.has(pointer)) output.change(null, indexObject(pointer, oldObj))\n }\n } else if(obj) {\n //output.debug(\"CREATE!\", obj, oldObj)\n prefixes(obj).forEach(v => output.change(indexObject(v, obj), null))\n } else if(oldObj) {\n //output.debug(\"DELETE!\", obj, oldObj)\n prefixes(oldObj).forEach(v => output.change(null, indexObject(v, oldObj)))\n }\n })\n })",
1548
- "parameters": {},
1549
- "uid": "4a2631d0a8d9c0d0",
1550
- "sources": [
1551
- {
1552
- "type": "table",
1553
- "name": "security_Ban"
1554
- }
1555
- ]
1556
- },
1557
- "security_Ban_actionBansByType": {
1558
- "code": "(async function(input, output) {\n function prefixes(ban) {\n //output.debug(\"BAN\", ban)\n if(!ban.keys) return []\n if(!ban.actions) return []\n const v = ban.keys.length\n const w = ban.actions.length\n let res = new Array(v * w)\n for(let i = 0; i < v; i++) {\n for(let j = 0; j < w; j++) {\n const key = ban.keys[i]\n res[i * v + j] = `${ban.actions[j]}:${key.key}:${key.value}:${ban.type}:${ban.expire}`\n }\n }\n output.debug(\"BAN PREFIXES\", res)\n return res\n }\n function indexObject(prefix, obj) {\n //output.debug(\"BAN\", obj)\n return {\n id: prefix+'_'+obj.id,\n to: obj.id,\n type: obj.type,\n expire: obj.expire,\n actions: obj.actions\n }\n }\n await input.table(\"security_Ban\").onChange((obj, oldObj) => {\n if(obj && oldObj) {\n //output.debug(\"CHANGE!\", obj, oldObj)\n let pointers = obj && new Set(prefixes(obj))\n let oldPointers = oldObj && new Set(prefixes(oldObj))\n for(let pointer of pointers) {\n if(!!oldPointers.has(pointer)) output.change(indexObject(pointer, obj), null)\n }\n for(let pointer of oldPointers) {\n if(!!pointers.has(pointer)) output.change(null, indexObject(pointer, oldObj))\n }\n } else if(obj) {\n //output.debug(\"CREATE!\", obj, oldObj)\n prefixes(obj).forEach(v => output.change(indexObject(v, obj), null))\n } else if(oldObj) {\n //output.debug(\"DELETE!\", obj, oldObj)\n prefixes(oldObj).forEach(v => output.change(null, indexObject(v, oldObj)))\n }\n })\n })",
1559
- "parameters": {},
1560
- "uid": "b8ad553782842b4e",
1561
- "sources": [
1562
- {
1563
- "type": "table",
1564
- "name": "security_Ban"
1565
- }
1566
- ]
1567
- },
1568
- "security_Event_byKeyTypeAndTimestamp": {
1569
- "code": "(async function(input, output) {\n async function spread(event) {\n for(const key in event.keys) {\n output.put({\n id: `${key}:${JSON.stringify(event.keys[key])}:${event.type}:${event.timestamp}_${event.id}`,\n type: event.type,\n timestamp: event.timestamp\n })\n }\n }\n await input.table('security_Event').onChange(\n (obj, oldObj) => spread(obj)\n )\n })",
1570
- "parameters": {},
1571
- "uid": "9781518ed029b0ad",
1572
- "sources": [
1573
- {
1574
- "type": "table",
1575
- "name": "security_Event"
1576
- }
1577
- ]
1578
- },
1579
- "notification_Notification_unreadNotifications": {
1580
- "code": "(async function(input, output) {\n await input.table('notification_Notification')\n .map((obj) => obj && obj.readState == 'new' && ({\n id: `\"${obj.sessionOrUserType}\":\"${obj.sessionOrUser}\"_${obj.id}`,\n sessionOrUserType: obj.sessionOrUserType, sessionOrUser: obj.sessionOrUser,\n to: obj.id\n }))\n .to(output)\n })",
1581
- "parameters": {},
1582
- "uid": "fc786d79959b1ab7",
1583
- "sources": [
1584
- {
1585
- "type": "table",
1586
- "name": "notification_Notification"
1587
- }
1588
- ]
1589
- },
1590
- "notification_Notification_unreadNotificationsCount": {
1591
- "code": "(async function(input, output) {\n const unreadIndex = await input.index('notification_Notification_unreadNotifications')\n await unreadIndex.onChange(\n async (obj, oldObj) => {\n const { sessionOrUserType, sessionOrUser } = obj || oldObj\n const group = `\"${sessionOrUserType}\":\"${sessionOrUser}\"`\n const prefix = group + '_'\n const count = await unreadIndex.count({ gt: prefix, lt: prefix + '\\xFF' })\n output.put({\n id: group,\n count\n })\n }\n )\n })",
1592
- "parameters": {},
1593
- "uid": "d4643e0cb2cca7ec",
1594
- "sources": [
1595
- {
1596
- "type": "index",
1597
- "name": "notification_Notification_unreadNotifications"
1598
- }
1599
- ]
1600
- },
1601
- "notification_Notification_bySessionOrUser": {
1602
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1603
- "parameters": {
1604
- "properties": [
1605
- [
1606
- "sessionOrUserType"
1607
- ],
1608
- [
1609
- "sessionOrUser"
1610
- ]
1611
- ],
1612
- "table": "notification_Notification"
1613
- },
1614
- "uid": "f85ed5bf7d0ab05b",
1615
- "sources": [
1616
- {
1617
- "type": "table",
1618
- "name": "notification_Notification"
1619
- }
1620
- ]
1621
- },
1622
- "notification_Notification_bySessionOrUserAndTime": {
1623
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1624
- "parameters": {
1625
- "properties": [
1626
- [
1627
- "sessionOrUserType"
1628
- ],
1629
- [
1630
- "sessionOrUser"
1631
- ],
1632
- [
1633
- "time"
1634
- ]
1635
- ],
1636
- "table": "notification_Notification"
1637
- },
1638
- "uid": "8650c520a1bcc329",
1639
- "sources": [
1640
- {
1641
- "type": "table",
1642
- "name": "notification_Notification"
1643
- }
1644
- ]
1645
- },
1646
- "notification_Notification_bySessionOrUserAndReadState": {
1647
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1648
- "parameters": {
1649
- "properties": [
1650
- [
1651
- "sessionOrUserType"
1652
- ],
1653
- [
1654
- "sessionOrUser"
1655
- ],
1656
- [
1657
- "readState"
1658
- ]
1659
- ],
1660
- "table": "notification_Notification"
1661
- },
1662
- "uid": "c418c9547c39d30b",
1663
- "sources": [
1664
- {
1665
- "type": "table",
1666
- "name": "notification_Notification"
1667
- }
1668
- ]
1669
- },
1670
- "notification_NotificationSetting_byContact": {
1671
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1672
- "parameters": {
1673
- "properties": [
1674
- [
1675
- "contactType"
1676
- ],
1677
- [
1678
- "contact"
1679
- ]
1680
- ],
1681
- "table": "notification_NotificationSetting"
1682
- },
1683
- "uid": "78eb236eed1fa518",
1684
- "sources": [
1685
- {
1686
- "type": "table",
1687
- "name": "notification_NotificationSetting"
1688
- }
1689
- ]
1690
- },
1691
- "notification_NotificationSetting_byNotification": {
1692
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1693
- "parameters": {
1694
- "properties": [
1695
- [
1696
- "notificationType"
1697
- ],
1698
- [
1699
- "notification"
1700
- ]
1701
- ],
1702
- "table": "notification_NotificationSetting"
1703
- },
1704
- "uid": "8dc124a8ab4e38d5",
1705
- "sources": [
1706
- {
1707
- "type": "table",
1708
- "name": "notification_NotificationSetting"
1709
- }
1710
- ]
1711
- },
1712
- "image_Image_byOwner": {
1713
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1714
- "parameters": {
1715
- "properties": [
1716
- [
1717
- "ownerType"
1718
- ],
1719
- [
1720
- "owner"
1721
- ]
1722
- ],
1723
- "table": "image_Image"
1724
- },
1725
- "uid": "f4db5652b790044e",
1726
- "sources": [
1727
- {
1728
- "type": "table",
1729
- "name": "image_Image"
1730
- }
1731
- ]
1732
- },
1733
- "content_AdditionalContent_byContent": {
1734
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1735
- "parameters": {
1736
- "properties": [
1737
- [
1738
- "content"
1739
- ]
1740
- ],
1741
- "table": "content_AdditionalContent"
1742
- },
1743
- "uid": "e90c249941fc3530",
1744
- "sources": [
1745
- {
1746
- "type": "table",
1747
- "name": "content_AdditionalContent"
1748
- }
1749
- ]
1750
- },
1751
- "secretCode_Code_byAuthenticationAndSecretCode": {
1752
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1753
- "parameters": {
1754
- "properties": [
1755
- [
1756
- "authentication"
1757
- ],
1758
- [
1759
- "secretCode"
1760
- ]
1761
- ],
1762
- "table": "secretCode_Code"
1763
- },
1764
- "uid": "789cfb3e3a36233d",
1765
- "sources": [
1766
- {
1767
- "type": "table",
1768
- "name": "secretCode_Code"
1769
- }
1770
- ]
1771
- },
1772
- "secretCode_Code_byAuthentication": {
1773
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1774
- "parameters": {
1775
- "properties": [
1776
- [
1777
- "authentication"
1778
- ]
1779
- ],
1780
- "table": "secretCode_Code"
1781
- },
1782
- "uid": "7b78e313bc4dc04c",
1783
- "sources": [
1784
- {
1785
- "type": "table",
1786
- "name": "secretCode_Code"
1787
- }
1788
- ]
1789
- },
1790
- "secretLink_Link_bySecretCode": {
1791
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1792
- "parameters": {
1793
- "properties": [
1794
- [
1795
- "secretCode"
1796
- ]
1797
- ],
1798
- "table": "secretLink_Link"
1799
- },
1800
- "uid": "20e4a7fd2a2b9f07",
1801
- "sources": [
1802
- {
1803
- "type": "table",
1804
- "name": "secretLink_Link"
1805
- }
1806
- ]
1807
- },
1808
- "secretLink_Link_byAuthentication": {
1809
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1810
- "parameters": {
1811
- "properties": [
1812
- [
1813
- "authentication"
1814
- ]
1815
- ],
1816
- "table": "secretLink_Link"
1817
- },
1818
- "uid": "62a3ac6df9b60a7d",
1819
- "sources": [
1820
- {
1821
- "type": "table",
1822
- "name": "secretLink_Link"
1823
- }
1824
- ]
1825
- },
1826
- "prosemirror_Snapshot_list": {
1827
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1828
- "parameters": {
1829
- "properties": [
1830
- [
1831
- "document"
1832
- ],
1833
- [
1834
- "version"
1835
- ]
1836
- ],
1837
- "table": "prosemirror_Snapshot"
1838
- },
1839
- "uid": "ad7594d896983b92",
1840
- "sources": [
1841
- {
1842
- "type": "table",
1843
- "name": "prosemirror_Snapshot"
1844
- }
1845
- ]
1846
- },
1847
- "walletConnect_Channel_byWalletId": {
1848
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1849
- "parameters": {
1850
- "properties": [
1851
- [
1852
- "walletId"
1853
- ]
1854
- ],
1855
- "table": "walletConnect_Channel"
1856
- },
1857
- "uid": "73400904e6fb92f5",
1858
- "sources": [
1859
- {
1860
- "type": "table",
1861
- "name": "walletConnect_Channel"
1862
- }
1863
- ]
1864
- },
1865
- "walletConnect_Transaction_byWalletIdAndState": {
1866
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1867
- "parameters": {
1868
- "properties": [
1869
- [
1870
- "walletId"
1871
- ],
1872
- [
1873
- "state"
1874
- ],
1875
- [
1876
- "created"
1877
- ]
1878
- ],
1879
- "table": "walletConnect_Transaction"
1880
- },
1881
- "uid": "baf89a593763b04d",
1882
- "sources": [
1883
- {
1884
- "type": "table",
1885
- "name": "walletConnect_Transaction"
1886
- }
1887
- ]
1888
- },
1889
- "walletConnect_Transaction_byChannel": {
1890
- "code": "(async function(input, output, { table, properties }) {\n const mapper = (obj) => ({\n id: properties.map(path => {\n let at = obj\n for(const p of path) at = at && at[p]\n return at === undefined ? '' : JSON.stringify(at)\n }).join(':')+'_'+obj.id,\n to: obj.id\n })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1891
- "parameters": {
1892
- "properties": [
1893
- [
1894
- "channel"
1895
- ]
1896
- ],
1897
- "table": "walletConnect_Transaction"
1898
- },
1899
- "uid": "c32a8a93d9dd98a3",
1900
- "sources": [
1901
- {
1902
- "type": "table",
1903
- "name": "walletConnect_Transaction"
1904
- }
1905
- ]
1906
- },
1907
- "commands_new": {
1908
- "code": "(async function(input, output, { tableName }) {\n await input.table(tableName).onChange(async (obj, oldObj) => {\n const res = obj && obj.state == 'new' ? { ...obj, id: obj.service + '_' + obj.id } : null\n const oldRes = oldObj && oldObj.state == 'new' ? { ...oldObj, id: oldObj.service + '_' + oldObj.id } : null\n //output.debug(\"CHANGE \", tableName, \"INDEX\", res, \"OLD:\", oldRes)\n await output.change(res, oldRes)\n })\n })",
1909
- "parameters": {
1910
- "tableName": "commands"
1911
- },
1912
- "uid": "447e3a47977760b9",
1913
- "sources": [
1914
- {
1915
- "type": "table",
1916
- "name": "commands"
1917
- }
1918
- ]
1919
- },
1920
- "triggers_new": {
1921
- "code": "(async function(input, output, { tableName }) {\n await input.table(tableName).onChange(async (obj, oldObj) => {\n const res = obj && obj.state == 'new' ? { ...obj, id: obj.service + '_' + obj.id } : null\n const oldRes = oldObj && oldObj.state == 'new' ? { ...oldObj, id: oldObj.service + '_' + oldObj.id } : null\n //output.debug(\"CHANGE \", tableName, \"INDEX\", res, \"OLD:\", oldRes)\n await output.change(res, oldRes)\n })\n })",
1922
- "parameters": {
1923
- "tableName": "triggers"
1924
- },
1925
- "uid": "23944bc860fd76bf",
1926
- "sources": [
1927
- {
1928
- "type": "table",
1929
- "name": "triggers"
1930
- }
1931
- ]
1932
- },
1933
- "security_relations_eventTypeAndKeys": {
1934
- "code": "(async function(input, output, { table }) {\n const mapper = (obj) => ({ id: obj.eventType+'_'+obj.keys+'_'+obj.id, to: obj.id })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1935
- "parameters": {
1936
- "table": "security_relations"
1937
- },
1938
- "uid": "0b6a1ed126569060",
1939
- "sources": [
1940
- {
1941
- "type": "table",
1942
- "name": "security_relations"
1943
- }
1944
- ]
1945
- },
1946
- "security_relations_sourceRelation": {
1947
- "code": "(async function(input, output, { table }) {\n const mapper = (obj) => ({ id: obj.source+'_'+obj.relation+'_'+obj.id, to: obj.id })\n await input.table(table).onChange((obj, oldObj) =>\n output.change(obj && mapper(obj), oldObj && mapper(oldObj)) )\n })",
1948
- "parameters": {
1949
- "table": "security_relations"
1950
- },
1951
- "uid": "08f95b39ded424ad",
1952
- "sources": [
1953
- {
1954
- "type": "table",
1955
- "name": "security_relations"
1956
- }
1957
- ]
1958
- }
1959
- },
1960
- "logs": {
1961
- "events": {
1962
- "uid": "ffd0dbbd59ef4611"
1963
- }
1964
- },
1965
- "storage": {
1966
- "noMetaSync": true,
1967
- "noSync": true
1968
- }
1969
- }
1970
- },
1971
- "timestamp": 1687413815296
1972
- }