@dra2020/baseclient 1.0.11 → 1.0.14

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 (95) hide show
  1. package/README.md +16 -5
  2. package/dist/all/all.d.ts +18 -2
  3. package/dist/all/allclient.d.ts +18 -0
  4. package/dist/base.js +33010 -0
  5. package/dist/base.js.map +1 -0
  6. package/dist/baseclient.js +166 -1279
  7. package/dist/baseclient.js.map +1 -1
  8. package/dist/dbabstract/all.d.ts +1 -0
  9. package/dist/dbabstract/db.d.ts +83 -0
  10. package/dist/dbdynamo/all.d.ts +1 -0
  11. package/dist/dbdynamo/dbdynamo.d.ts +190 -0
  12. package/dist/filterexpr/filterexpr.d.ts +0 -3
  13. package/dist/fsm/fsm.d.ts +0 -1
  14. package/dist/fsmfile/all.d.ts +1 -0
  15. package/dist/fsmfile/fsmfile.d.ts +47 -0
  16. package/dist/jsonstream/all.d.ts +1 -0
  17. package/dist/jsonstream/jsonstream.d.ts +130 -0
  18. package/dist/lambda/all.d.ts +1 -0
  19. package/dist/lambda/env.d.ts +10 -0
  20. package/dist/lambda/lambda.d.ts +18 -0
  21. package/dist/logserver/all.d.ts +5 -0
  22. package/dist/logserver/log.d.ts +11 -0
  23. package/dist/logserver/logaccum.d.ts +154 -0
  24. package/dist/logserver/logblob.d.ts +24 -0
  25. package/dist/logserver/logconcat.d.ts +55 -0
  26. package/dist/logserver/logkey.d.ts +28 -0
  27. package/dist/memsqs/all.d.ts +4 -0
  28. package/dist/memsqs/client.d.ts +13 -0
  29. package/dist/memsqs/loopback.d.ts +11 -0
  30. package/dist/memsqs/orderedlist.d.ts +19 -0
  31. package/dist/memsqs/queue.d.ts +84 -0
  32. package/dist/memsqs/server.d.ts +37 -0
  33. package/dist/ot-js/otsession.d.ts +0 -3
  34. package/dist/poly/union.d.ts +0 -1
  35. package/dist/storage/all.d.ts +4 -0
  36. package/dist/storage/datablob.d.ts +9 -0
  37. package/dist/storage/env.d.ts +10 -0
  38. package/dist/storage/splitsblob.d.ts +13 -0
  39. package/dist/storage/storage.d.ts +166 -0
  40. package/dist/storages3/all.d.ts +1 -0
  41. package/dist/storages3/s3.d.ts +62 -0
  42. package/docs/dbabstract.md +2 -0
  43. package/docs/dbdynamo.md +2 -0
  44. package/docs/fsmfile.md +2 -0
  45. package/docs/jsonstream.md +44 -0
  46. package/docs/lambda.md +2 -0
  47. package/docs/logserver.md +2 -0
  48. package/docs/storage.md +2 -0
  49. package/docs/storages3.md +2 -0
  50. package/lib/all/all.ts +22 -2
  51. package/lib/all/allclient.ts +19 -0
  52. package/lib/dbabstract/all.ts +1 -0
  53. package/lib/dbabstract/db.ts +246 -0
  54. package/lib/dbdynamo/all.ts +1 -0
  55. package/lib/dbdynamo/dbdynamo.ts +1551 -0
  56. package/lib/filterexpr/filterexpr.ts +5 -79
  57. package/lib/fsm/fsm.ts +2 -12
  58. package/lib/fsmfile/all.ts +1 -0
  59. package/lib/fsmfile/fsmfile.ts +236 -0
  60. package/lib/jsonstream/all.ts +1 -0
  61. package/lib/jsonstream/jsonstream.ts +940 -0
  62. package/lib/lambda/all.ts +1 -0
  63. package/lib/lambda/env.ts +13 -0
  64. package/lib/lambda/lambda.ts +120 -0
  65. package/lib/logserver/all.ts +5 -0
  66. package/lib/logserver/log.ts +565 -0
  67. package/lib/logserver/logaccum.ts +1445 -0
  68. package/lib/logserver/logblob.ts +84 -0
  69. package/lib/logserver/logconcat.ts +313 -0
  70. package/lib/logserver/logkey.ts +125 -0
  71. package/lib/memsqs/all.ts +4 -0
  72. package/lib/memsqs/client.ts +268 -0
  73. package/lib/memsqs/loopback.ts +64 -0
  74. package/lib/memsqs/orderedlist.ts +74 -0
  75. package/lib/memsqs/queue.ts +395 -0
  76. package/lib/memsqs/server.ts +262 -0
  77. package/lib/ot-js/otsession.ts +1 -4
  78. package/lib/poly/hash.ts +1 -1
  79. package/lib/poly/topo.ts +41 -15
  80. package/lib/poly/union.ts +0 -17
  81. package/lib/storage/all.ts +4 -0
  82. package/lib/storage/datablob.ts +36 -0
  83. package/lib/storage/env.ts +14 -0
  84. package/lib/storage/splitsblob.ts +63 -0
  85. package/lib/storage/storage.ts +604 -0
  86. package/lib/storages3/all.ts +1 -0
  87. package/lib/storages3/s3.ts +576 -0
  88. package/package.json +10 -9
  89. package/dist/geo/all.d.ts +0 -2
  90. package/dist/geo/geo.d.ts +0 -67
  91. package/dist/geo/vfeature.d.ts +0 -4
  92. package/docs/filterexpr.md +0 -22
  93. package/lib/geo/all.ts +0 -2
  94. package/lib/geo/geo.ts +0 -452
  95. package/lib/geo/vfeature.ts +0 -34
package/lib/all/all.ts CHANGED
@@ -17,5 +17,25 @@ import * as OTE from '../ot-editutil/all';
17
17
  export { OTE };
18
18
  import { FilterExpr } from '../filterexpr/all';
19
19
  export { FilterExpr }
20
- import * as G from '../geo/all';
21
- export { G };
20
+
21
+ // Server Only
22
+ import * as DB from '../dbabstract/all';
23
+ export { DB };
24
+ import * as Storage from '../storage/all';
25
+ export { Storage };
26
+ import * as JS from '../jsonstream/all';
27
+ export { JS };
28
+ import * as FsmFile from '../fsmfile/all';
29
+ export { FsmFile };
30
+
31
+ import * as LogServer from '../logserver/all';
32
+ export { LogServer };
33
+
34
+ import * as S3 from '../storages3/all';
35
+ export { S3 };
36
+ import * as DBDynamo from '../dbdynamo/all';
37
+ export { DBDynamo };
38
+ import * as Lambda from '../lambda/all';
39
+ export { Lambda };
40
+ import * as Memsqs from '../memsqs/all';
41
+ export { Memsqs };
@@ -0,0 +1,19 @@
1
+ // Client and Server
2
+ import * as Util from '../util/all';
3
+ export { Util };
4
+ import * as Context from '../context/all';
5
+ export { Context };
6
+ import * as FSM from '../fsm/all';
7
+ export { FSM };
8
+ import * as Poly from '../poly/all';
9
+ export { Poly };
10
+ import * as LogAbstract from '../logabstract/all';
11
+ export { LogAbstract };
12
+ import * as LogClient from '../logclient/all';
13
+ export { LogClient };
14
+ import * as OT from '../ot-js/all';
15
+ export { OT };
16
+ import * as OTE from '../ot-editutil/all';
17
+ export { OTE };
18
+ import { FilterExpr } from '../filterexpr/all';
19
+ export { FilterExpr }
@@ -0,0 +1 @@
1
+ export * from './db';
@@ -0,0 +1,246 @@
1
+ // Shared libraries
2
+ import * as LogAbstract from '../logabstract/all';
3
+ import * as Context from '../context/all';
4
+ import * as Storage from '../storage/all';
5
+ import * as FSM from '../fsm/all';
6
+
7
+ // Custom DB state codes
8
+ export const FSM_CREATING: number = FSM.FSM_CUSTOM1;
9
+ export const FSM_NEEDRELEASE: number = FSM.FSM_CUSTOM2;
10
+ export const FSM_RELEASING: number = FSM.FSM_CUSTOM3;
11
+ export const FSM_READING: number = FSM.FSM_CUSTOM4;
12
+
13
+ type CollectionIndex = { [key: string]: DBCollection };
14
+
15
+ export interface DBEnvironment
16
+ {
17
+ context: Context.IContext;
18
+ log: LogAbstract.ILog;
19
+ fsmManager: FSM.FsmManager;
20
+ storageManager: Storage.StorageManager;
21
+ }
22
+
23
+ export function fromCompactSchema(c: any): any
24
+ {
25
+ let s: any = [];
26
+
27
+ if (c && !Array.isArray(c))
28
+ {
29
+ for (let p in c) if (c.hasOwnProperty(p))
30
+ s.push({ AttributeName: p, AttributeType: c[p] });
31
+ }
32
+ else
33
+ s = c;
34
+ return s;
35
+ }
36
+
37
+ export function fromCompactKey(c: any): any
38
+ {
39
+ let s: any = [];
40
+
41
+ if (c && !Array.isArray(c))
42
+ {
43
+ for (let p in c) if (c.hasOwnProperty(p))
44
+ s.push({ AttributeName: p, KeyType: c[p] });
45
+ }
46
+ else
47
+ s = c;
48
+ return s;
49
+ }
50
+
51
+ function findHash(c: any): string
52
+ {
53
+ let h: string = null;
54
+
55
+ Object.keys(c).forEach((k: string) => { if (c[k] === 'HASH') h = k } );
56
+ while (h && h.length < 3)
57
+ h = `_${h}`;
58
+ return h;
59
+ }
60
+
61
+ export function fromCompactIndex(c: any): any
62
+ {
63
+ return { KeySchema: fromCompactKey(c), IndexName: findHash(c) };
64
+ }
65
+
66
+ export function toCompactSchema(s: any): any
67
+ {
68
+ let c: any = {};
69
+
70
+ if (s && Array.isArray(s))
71
+ {
72
+ for (let i: number = 0; i < s.length; i++)
73
+ c[s[i].AttributeName] = s[i].AttributeType;
74
+ }
75
+ else
76
+ c = s;
77
+
78
+ return c;
79
+ }
80
+
81
+ export class DBClient extends FSM.Fsm
82
+ {
83
+ constructor(env: DBEnvironment)
84
+ {
85
+ super(env);
86
+ }
87
+
88
+ get env(): DBEnvironment { return this._env as DBEnvironment; }
89
+
90
+ createCollection(name: string, options: any): DBCollection { return new DBCollection(this.env, this, name, options); }
91
+ createStream(col: DBCollection): FSM.FsmArray { return null; }
92
+ closeStream(col: DBCollection): void {}
93
+ createUpdate(col: DBCollection, query: any, values: any): DBUpdate { return new DBUpdate(this.env, col, query, values); }
94
+ createUnset(col: DBCollection, query: any, values: any): DBUnset { return new DBUnset(this.env, col, query, values); }
95
+ createDelete(col: DBCollection, query: any): DBDelete { return new DBDelete(this.env, col, query); }
96
+ createFind(col: DBCollection, filter: any): DBFind { return new DBFind(this.env, col, filter); }
97
+ createQuery(col: DBCollection, filter: any): DBQuery { return new DBQuery(this.env, col, filter); }
98
+ createIndex(col: DBCollection, uid: string): DBIndex { return new DBIndex(this.env, col, uid); }
99
+ createClose(): DBClose { return new DBClose(this.env, this); }
100
+
101
+ close(): void
102
+ {
103
+ if (this.state == FSM.FSM_DONE)
104
+ this.setState(FSM_NEEDRELEASE);
105
+ }
106
+ }
107
+
108
+ export class DBCollection extends FSM.Fsm
109
+ {
110
+ name: string;
111
+ options: any;
112
+ col: any;
113
+ client: DBClient;
114
+
115
+ constructor(env: DBEnvironment, client: DBClient, name: string, options: any)
116
+ {
117
+ super(env);
118
+ this.waitOn(client);
119
+ this.client = client;
120
+ this.name = name;
121
+ this.options = options;
122
+ this.col = null;
123
+ }
124
+ }
125
+
126
+ export class DBUpdate extends FSM.Fsm
127
+ {
128
+ col: DBCollection;
129
+ query: any;
130
+ values: any;
131
+ result: any;
132
+
133
+ constructor(env: DBEnvironment, col: DBCollection, query: any, values: any)
134
+ {
135
+ super(env);
136
+ this.waitOn(col);
137
+ this.col = col;
138
+ this.query = query;
139
+ this.values = values;
140
+ this.result = undefined;
141
+ }
142
+ }
143
+
144
+ export class DBUnset extends FSM.Fsm
145
+ {
146
+ col: DBCollection;
147
+ query: any;
148
+ values: any;
149
+ result: any;
150
+
151
+ constructor(env: DBEnvironment, col: DBCollection, query: any, values: any)
152
+ {
153
+ super(env);
154
+ this.waitOn(col);
155
+ this.col = col;
156
+ this.query = query;
157
+ this.values = values;
158
+ this.result = undefined;
159
+ }
160
+ }
161
+
162
+ export class DBDelete extends FSM.Fsm
163
+ {
164
+ col: DBCollection;
165
+ query: any;
166
+ result: any;
167
+
168
+ constructor(env: DBEnvironment, col: DBCollection, query: any)
169
+ {
170
+ super(env);
171
+ this.waitOn(col);
172
+ this.col = col;
173
+ this.query = query;
174
+ this.result = null;
175
+ }
176
+ }
177
+
178
+ export class DBFind extends FSM.Fsm
179
+ {
180
+ col: DBCollection;
181
+ filter: any;
182
+ result: any;
183
+
184
+ constructor(env: DBEnvironment, col: DBCollection, filter: any)
185
+ {
186
+ super(env);
187
+ this.waitOn(col);
188
+ this.col = col;
189
+ this.filter = filter;
190
+ this.result = null;
191
+ }
192
+ }
193
+
194
+ export class DBQuery extends FSM.Fsm
195
+ {
196
+ col: DBCollection;
197
+ filter: any;
198
+ fsmResult: FSM.FsmArray;
199
+
200
+ constructor(env: DBEnvironment, col: DBCollection, filter: any)
201
+ {
202
+ super(env);
203
+ this.waitOn(col);
204
+ this.col = col;
205
+ this.filter = filter;
206
+ this.fsmResult = new FSM.FsmArray(env);;
207
+ }
208
+
209
+ get result(): any[] { return this.fsmResult.a }
210
+ }
211
+
212
+ export class DBIndex extends FSM.Fsm
213
+ {
214
+ col: DBCollection;
215
+ uid: string;
216
+
217
+ constructor(env: DBEnvironment, col: DBCollection, uid: string)
218
+ {
219
+ super(env);
220
+ this.waitOn(col);
221
+ this.col = col;
222
+ this.uid = uid;
223
+ }
224
+ }
225
+
226
+ export class DBClose extends FSM.Fsm
227
+ {
228
+ client: DBClient;
229
+
230
+ constructor(env: DBEnvironment, client: DBClient)
231
+ {
232
+ super(env);
233
+ this.client = client;
234
+ }
235
+
236
+ tick(): void
237
+ {
238
+ if (this.ready && this.isDependentError)
239
+ this.setState(FSM.FSM_ERROR);
240
+ else if (this.ready && this.state == FSM.FSM_STARTING)
241
+ {
242
+ this.client.close();
243
+ this.setState(FSM.FSM_DONE);
244
+ }
245
+ }
246
+ }
@@ -0,0 +1 @@
1
+ export * from './dbdynamo';