statebus 6.2.3 → 6.2.5

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 (98) hide show
  1. package/client.js +2 -2
  2. package/extras/tests.js +60 -0
  3. package/package.json +9 -2
  4. package/server.js +4 -4
  5. package/statebus.js +39 -7
  6. package/extras/#test_save_delay.js# +0 -11
  7. package/extras/abort-test.html +0 -10
  8. package/extras/abort-test.js +0 -17
  9. package/extras/backups/db.2021-11-13 +0 -12
  10. package/extras/backups/db.2021-11-14 +0 -12
  11. package/extras/backups/db.2021-11-15 +0 -25
  12. package/extras/backups/db.2021-11-16 +0 -25
  13. package/extras/backups/db.2022-01-14 +0 -24
  14. package/extras/backups/db.2022-01-15 +0 -29
  15. package/extras/backups/db.2022-01-16 +0 -29
  16. package/extras/backups/db.2022-01-17 +0 -29
  17. package/extras/backups/db.2022-01-18 +0 -29
  18. package/extras/backups/db.2022-01-19 +0 -29
  19. package/extras/backups/db.2022-01-20 +0 -32
  20. package/extras/backups/db.2022-01-21 +0 -32
  21. package/extras/backups/db.2022-01-22 +0 -47
  22. package/extras/backups/db.2022-01-23 +0 -47
  23. package/extras/backups/db.2022-02-20 +0 -53
  24. package/extras/backups/db.2022-09-08 +0 -48
  25. package/extras/backups/db.2022-09-09 +0 -48
  26. package/extras/backups/db.2022-09-10 +0 -48
  27. package/extras/backups/db.2022-09-11 +0 -48
  28. package/extras/backups/db.2022-09-12 +0 -48
  29. package/extras/backups/db.2022-09-13 +0 -48
  30. package/extras/backups/db.2022-09-14 +0 -48
  31. package/extras/backups/pdb.2017-08-21 +0 -46
  32. package/extras/braid-client.html +0 -12
  33. package/extras/braid-client2.html +0 -9
  34. package/extras/braid-client3.html +0 -0
  35. package/extras/braid-server.js +0 -37
  36. package/extras/braid-server2.js +0 -35
  37. package/extras/chokitest.js +0 -142
  38. package/extras/clientless.js +0 -4
  39. package/extras/css.html +0 -4
  40. package/extras/ct.js +0 -24
  41. package/extras/ctests.js +0 -8
  42. package/extras/db +0 -48
  43. package/extras/ds.html +0 -8
  44. package/extras/ds.js +0 -17
  45. package/extras/email.html +0 -12
  46. package/extras/express-experiment.js +0 -15
  47. package/extras/f.js +0 -21
  48. package/extras/file-test.js +0 -12
  49. package/extras/flash.html +0 -8
  50. package/extras/flash.js +0 -7
  51. package/extras/fullnode-test.html +0 -4
  52. package/extras/fullnode-test.js +0 -26
  53. package/extras/hello-react/index.html +0 -24
  54. package/extras/hello-react.html +0 -4
  55. package/extras/hello.html +0 -4
  56. package/extras/k.js +0 -12
  57. package/extras/load-from-file.html +0 -4
  58. package/extras/multi-chat/1.html +0 -39
  59. package/extras/multicriteria +0 -52054
  60. package/extras/nested +0 -425965
  61. package/extras/new-react.html +0 -20
  62. package/extras/pdb +0 -46
  63. package/extras/perf.js +0 -68
  64. package/extras/perf2.js +0 -69
  65. package/extras/perf3.js +0 -14
  66. package/extras/pgt.js +0 -61
  67. package/extras/pointers-test.js +0 -17
  68. package/extras/pointers-test2.js +0 -83
  69. package/extras/ptest.js +0 -19
  70. package/extras/react-example.html +0 -32
  71. package/extras/react-example.jsx.html +0 -41
  72. package/extras/react.12.js +0 -18116
  73. package/extras/react.12.min.js +0 -16
  74. package/extras/react.15.min.js +0 -28
  75. package/extras/react.3.min.js +0 -19
  76. package/extras/remote-hello.html +0 -9
  77. package/extras/reset_pass.coffee +0 -101
  78. package/extras/reset_pass.html +0 -116
  79. package/extras/rocks-test.js +0 -6
  80. package/extras/s4.js +0 -2
  81. package/extras/sbdb +0 -4
  82. package/extras/slideboard +0 -4
  83. package/extras/smaller-file.js +0 -8
  84. package/extras/sqls-test.js +0 -6
  85. package/extras/stateb.us.coffee +0 -92
  86. package/extras/syncie.html +0 -31
  87. package/extras/syncie.js +0 -15
  88. package/extras/test2.js +0 -48
  89. package/extras/test_client.html +0 -8
  90. package/extras/test_client.js +0 -19
  91. package/extras/test_save_delay.js +0 -11
  92. package/extras/test_timeouts.js +0 -10
  93. package/extras/tests-val.js +0 -1572
  94. package/extras/tests.html +0 -5
  95. package/extras/uni.js +0 -7
  96. package/extras/usage_test.html +0 -3
  97. package/extras/usage_test.js +0 -32
  98. package/extras/vtest.js +0 -17
@@ -1,20 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="UTF-8" />
5
- <title>Hello World</title>
6
- <script src="https://unpkg.com/react@latest/dist/react.js"></script>
7
- <script src="https://unpkg.com/react-dom@latest/dist/react-dom.js"></script>
8
- </head>
9
- <body>
10
- <div id="root"></div>
11
- <script>
12
-
13
- ReactDOM.render(
14
- React.createElement('h1', null, 'hello world'),
15
- document.getElementById('root')
16
- );
17
-
18
- </script>
19
- </body>
20
- </html>
package/extras/pdb DELETED
@@ -1,46 +0,0 @@
1
- {
2
- "connections": {
3
- "key": "connections"
4
- },
5
- "foo": {
6
- "key": "foo",
7
- "array": [
8
- {
9
- "_key": "foo1"
10
- },
11
- {
12
- "_key": "foo2"
13
- },
14
- {
15
- "_key": "foo3"
16
- }
17
- ]
18
- },
19
- "foo1": {
20
- "key": "foo1",
21
- "thing": 1
22
- },
23
- "foo2": {
24
- "key": "foo2",
25
- "thing": [
26
- {
27
- "_key": "foo2.1"
28
- },
29
- {
30
- "_key": "foo2.2"
31
- }
32
- ]
33
- },
34
- "foo2.1": {
35
- "key": "foo2.1",
36
- "thing": 2.1
37
- },
38
- "foo2.2": {
39
- "key": "foo2.2",
40
- "thing": 2.2
41
- },
42
- "foo3": {
43
- "key": "foo3",
44
- "thing": 3
45
- }
46
- }
package/extras/perf.js DELETED
@@ -1,68 +0,0 @@
1
- bus = require('../statebus.js')()
2
-
3
- thing1 = {
4
- key: 'something',
5
- array: [1,3,5,
6
- {a: 'that',
7
- b: 'this'},
8
- "hello aldfkjaldskfj alsdkfj alsdkfj alsdkfj asldfkj ",
9
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
10
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
11
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
12
-
13
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
14
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
15
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
16
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
17
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
18
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
19
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
20
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
21
- 2,4,25,235,24,234,234,234,234,23,423,423,423,
22
- ],
23
- alpha: {a:'b', c: 3, d: 4, b:5,
24
- gay: {a:'b', c: 3, d: 4, b:5, 5: ["lsakfjalsdkfj",3234234]},
25
- straight: 'adsflkjalsdfjkasdf'
26
- }
27
- }
28
- thing2 = bus.clone(thing1)
29
-
30
- function cloned_deep_equals (a, b) {
31
- return bus.deep_equals(bus.clone(a), bus.clone(b))
32
- }
33
- function json_equals (a, b) {
34
- return JSON.stringify(a) === JSON.stringify(b)
35
- }
36
-
37
-
38
-
39
- console.time('json_equals')
40
- for (var i=0; i<100000; i++)
41
- console.assert(json_equals(thing1, thing2))
42
- console.timeEnd('json_equals')
43
-
44
- console.time('deep_equals')
45
- for (var i=0; i<100000; i++)
46
- console.assert(bus.deep_equals(thing1, thing2))
47
- console.timeEnd('deep_equals')
48
-
49
- console.time('cloned_deep_equals')
50
- for (var i=0; i<100000; i++)
51
- console.assert(cloned_deep_equals(thing1, thing2))
52
- console.timeEnd('cloned_deep_equals')
53
-
54
-
55
- console.time('json_equals')
56
- for (var i=0; i<100000; i++)
57
- console.assert(json_equals(thing1, thing2))
58
- console.timeEnd('json_equals')
59
-
60
- console.time('deep_equals')
61
- for (var i=0; i<100000; i++)
62
- console.assert(bus.deep_equals(thing1, thing2))
63
- console.timeEnd('deep_equals')
64
-
65
- console.time('cloned_deep_equals')
66
- for (var i=0; i<100000; i++)
67
- console.assert(cloned_deep_equals(thing1, thing2))
68
- console.timeEnd('cloned_deep_equals')
package/extras/perf2.js DELETED
@@ -1,69 +0,0 @@
1
- bus = require('../statebus.js')()
2
-
3
-
4
- var iters = 100000,
5
- l2 = 2,
6
- l3 = 2
7
- var things = []
8
- for (var i=0; i<things.length; i++)
9
- things.push(math.random())
10
-
11
- var o2d = new bus.One_To_Many()
12
- var j2d = new bus.Set()
13
- var j3d = new bus.Set()
14
-
15
- console.time('onetomany_2')
16
- for (var i=0; i<iters; i++) {
17
- var key = things[i],
18
- bus = things[Math.floor(i/l2)]
19
- o2d.add(key, bus)
20
- o2d.has(key, bus)
21
- }
22
- console.timeEnd('onetomany_2')
23
-
24
- console.time('jsonset_2')
25
- for (var i=0; i<iters; i++) {
26
- var key = things[i],
27
- bus = things[Math.floor(i/l2)]
28
- var ting = JSON.stringify([key, bus])
29
- j2d.add(ting)
30
- j2d.has(ting)
31
- JSON.parse(ting)
32
- }
33
- console.timeEnd('jsonset_2')
34
-
35
- console.time('jsonset_3')
36
- for (var i=0; i<iters; i++) {
37
- var key = things[i],
38
- bus = things[Math.floor(i/l2)],
39
- version = things[Math.floor(i/l3)]
40
- var ting = JSON.stringify([key, bus, version])
41
- j3d.add(ting)
42
- j3d.has(ting)
43
- JSON.parse(ting)
44
- }
45
- console.timeEnd('jsonset_3')
46
-
47
- console.time('jsonset_2 stringify twice')
48
- for (var i=0; i<iters; i++) {
49
- var key = things[i],
50
- bus = things[Math.floor(i/l2)]
51
- var ting = JSON.stringify([key, bus])
52
- j2d.add(ting)
53
- j2d.has(JSON.stringify([key, bus]))
54
- JSON.parse(ting)
55
- }
56
- console.timeEnd('jsonset_2 stringify twice')
57
-
58
- console.time('jsonset_3 stringify twice')
59
- for (var i=0; i<iters; i++) {
60
- var key = things[i],
61
- bus = things[Math.floor(i/l2)],
62
- version = things[Math.floor(i/l3)]
63
- var ting = JSON.stringify([key, bus, version])
64
- j3d.add(ting)
65
- j3d.has(JSON.stringify([key, bus, version]))
66
- JSON.parse(ting)
67
- }
68
- console.timeEnd('jsonset_3 stringify twice')
69
-
package/extras/perf3.js DELETED
@@ -1,14 +0,0 @@
1
- bus = require('../statebus.js')()
2
-
3
-
4
- var iters = 8000
5
- var s = '0'
6
- for (var i=0; i<iters; i++)
7
- s += '|(' + i + ')'
8
- var r = new RegExp(s)
9
-
10
- console.time('1')
11
- for (var i=0; i<1000; i++)
12
- r.exec('' + i)
13
- console.timeEnd('1')
14
-
package/extras/pgt.js DELETED
@@ -1,61 +0,0 @@
1
- // tcp_wrap = process.binding('tcp_wrap')
2
- // new tcp_wrap.TCP(tcp_wrap.constants.SERVER)
3
-
4
- // var bind = require('tcp-bind')
5
- // console.log('about to bind')
6
- // bind(80)
7
- // console.log('this line will not be reached')
8
-
9
-
10
- // One-off test
11
- if (false) {
12
- master = require('../statebus')()
13
- master.pg_store({url: 'postgresql://toomim@localhost:5432/toomim'})
14
-
15
- client = require('../statebus')()
16
- client.serve_email(master)
17
-
18
- console.log('emails are', JSON.stringify(client.fetch('emails')))
19
- }
20
-
21
- // Running server for client
22
- if (true) {
23
- master = require('../statebus').serve({
24
- file_store: false,
25
- client: (client) => {client.serve_email(master,
26
- {domain:'invisible.college'})}
27
- })
28
- master.pg_store({url: 'postgresql://toomim@localhost:5432/toomim'})
29
- master.serve_client_coffee()
30
- //master.honk = true
31
- }
32
-
33
- // function search (q) {
34
- // q = "select value from cache where value @> '" + JSON.stringify(q) + "'"
35
- // // console.log('Searching with:\n', q)
36
- // return bus.pg_db.querySync(q)
37
- // }
38
-
39
- // console.log('Search gets us',
40
- // search({_: {to: ['public']}}))
41
-
42
- // function email_for (user) {
43
- // var terms = [{_: {to: [user]}},
44
- // {_: {cc: ['public']}},
45
- // {_: {cc: [user]}},
46
- // {_: {from: [user]}}]
47
-
48
- // for (var i=0; i<terms.length; i++)
49
- // terms[i] = "value @> '" + JSON.stringify(terms[i]) + "'"
50
- // terms = terms.join(' or ')
51
-
52
- // var q = "select value from cache where " + terms
53
- // //console.log('Searching for', user, 'with:\n', q)
54
- // return bus.pg_db.querySync(q).map(x=>x.value)
55
- // }
56
-
57
- // ['user/mike', 'user/zan', 'user/travis', 'user/ppham'].forEach(
58
- // u => console.log('Emails for', u, email_for(u).map(x=>x.key)))
59
-
60
-
61
- // select value from cache where value -> '_' -> 'to' ?| array['foobar','public'] or value -> 'cc' ? 'public';
@@ -1,17 +0,0 @@
1
- pointerify = true
2
- bus = require('../statebus').serve({file_store: {filename: 'pdb', save_delay: 1}})
3
-
4
- if (!bus.cache.foo)
5
- bus.save({key: 'foo',
6
- array: [{key: 'foo1', thing: 1},
7
- {key: 'foo2', thing: [
8
- {key: 'foo2.1', thing: 2.1},
9
- {key: 'foo2.2', thing: 2.2}
10
- ]},
11
- {key: 'foo3', thing: 3}
12
- ]})
13
-
14
-
15
- setTimeout(()=>{
16
- console.log(JSON.stringify(bus.fetch('foo')))
17
- }, 1000)
@@ -1,83 +0,0 @@
1
- bus = require('../statebus')()
2
-
3
- function inline_pointers (db) {
4
- return bus.deep_map(db, (o) => {
5
- //console.log('processing', (o.key && 'o('+o.key+')') || o)
6
- if (o && o._key) {
7
- console.log('inlining', o._key, 'to', db[o._key])
8
- return db[o._key]
9
- } else return o
10
- })
11
- }
12
-
13
- var db = {
14
- "foo": {
15
- "key": "foo",
16
- "array": [
17
- {
18
- "_key": "bar"
19
- }
20
- ]
21
- },
22
- "bar": {
23
- "thing": 1
24
- }}
25
-
26
- console.log(JSON.stringify(db))
27
- var r = inline_pointers(db)
28
- console.log(JSON.stringify(r))
29
-
30
-
31
- console.log('\n\n\n')
32
-
33
-
34
- db = {
35
- "connections": {
36
- "key": "connections"
37
- },
38
- "foo": {
39
- "key": "foo",
40
- "array": [
41
- {
42
- "_key": "foo1"
43
- },
44
- {
45
- "_key": "foo2"
46
- },
47
- {
48
- "_key": "foo3"
49
- }
50
- ]
51
- },
52
- "foo1": {
53
- "key": "foo1",
54
- "thing": 1
55
- },
56
- "foo2": {
57
- "key": "foo2",
58
- "thing": [
59
- {
60
- "_key": "foo2.1"
61
- },
62
- {
63
- "_key": "foo2.2"
64
- }
65
- ]
66
- },
67
- "foo2.1": {
68
- "key": "foo2.1",
69
- "thing": 2.1
70
- },
71
- "foo2.2": {
72
- "key": "foo2.2",
73
- "thing": 2.2
74
- },
75
- "foo3": {
76
- "key": "foo3",
77
- "thing": 3
78
- }
79
- }
80
- console.log(JSON.stringify(db))
81
- r = inline_pointers(db)
82
- console.log('\n\n')
83
- console.log(JSON.stringify(r))
package/extras/ptest.js DELETED
@@ -1,19 +0,0 @@
1
- bus = require('../server')()
2
- db = bus.sb
3
- db.foo.a = 3
4
- console.assert(db.foo.a == 3)
5
- db.foo.a = [1,3,5, 'hello']
6
- db.foo.a.push({key: 'bar', 4:4})
7
-
8
- console.log('Now foo is', db.foo)
9
- console.log('And bar is', db.bar)
10
-
11
-
12
- db.f = 3
13
- console.assert(bus.validate(bus.cache['f'], {key: 'f', _: 3}),
14
- bus.cache['f'], 'should be', {key: 'f', _: 3})
15
- console.assert(db.f === 3)
16
-
17
- db.g = [1,2,4,5]
18
- console.assert(bus.cache['g']._.length = 4)
19
-
@@ -1,32 +0,0 @@
1
- <html>
2
- <body></body>
3
-
4
- <script src="http://localhost:3007/client.js"></script>
5
-
6
- <script>
7
- var foo;
8
- // This example connects statebus to React. This is with React v0.12.2.
9
- //
10
- // This uses statebus.create_react_class() instead of React.createClass(),
11
- // which instruments the component to automatically react to statebus state
12
- // changes in addition to setState() changes.
13
- //
14
- //
15
- var body = statebus.create_react_class({
16
- render: () => {
17
- var foo = fetch('state://invisible.college/foo')
18
- return React.DOM.div(
19
- {style: {margin: 20}},
20
- React.DOM.textarea({
21
- onChange: (e) => {
22
- foo.text = e.target.value;
23
- save(foo)},
24
- value: foo.text
25
- }),
26
- React.DOM.div({}, 'The current text is:', PRE({}, foo.text)))
27
- },
28
- displayName: 'body'
29
- })
30
-
31
- React.render(body(), document.body)
32
- </script>
@@ -1,41 +0,0 @@
1
- <html>
2
- <body></body>
3
-
4
- <script src="http://localhost:3007/client.js"></script>
5
- <script src="https://unpkg.com/react@0.12.2/dist/JSXTransformer.js"></script>
6
-
7
- <script type="text/jsx">
8
-
9
- // This example connects a React component to Statebus. The component will
10
- // automatically re-render whenever any state it's fetched has changed.
11
- //
12
- // To connect the component to Statebus, we use statebus.create_react_class()
13
- // instead of React.createClass(). This function calls createClass()
14
- // internally, and just instruments the component to automatically react to
15
- // statebus state changes in addition to setState() changes.
16
-
17
- var body = statebus.createReactClass({
18
- render: () => {
19
- var foo = fetch('/foo')
20
- var size = foo.is_big ? 300 : 50
21
- return <div style={{
22
- width: size,
23
- height: size,
24
- padding: 20,
25
- backgroundColor: 'lightgrey'
26
- }}
27
- onClick={ (e) => {
28
- foo.is_big = !foo.is_big
29
- save(foo)
30
- }}
31
- >Click me!</div>
32
- },
33
-
34
- // Oh, and the current implementation of statebus.create_react_class()
35
- // expects a displayName to be set.
36
- displayName: 'body'
37
- })
38
-
39
- React.render(body(), document.body)
40
- </script>
41
- </html>