@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
@@ -484,45 +484,6 @@ function wordyDate(s: string): string
484
484
  return s;
485
485
  }
486
486
 
487
- function clauseEqual(c1: Clause, c2: Clause): boolean
488
- {
489
- if (c1 == null && c2 == null) return true;
490
- if (c1 == null || c2 == null) return false;
491
- if (c1.op.tt === c2.op.tt)
492
- {
493
- if (c1.op.tt === TokType.Text)
494
- return c1.op.text === c2.op.text;
495
- else
496
- return clauseEqual(c1.operand1, c2.operand1) && clauseEqual(c1.operand2, c2.operand2);
497
- }
498
- else
499
- return false;
500
- }
501
-
502
- function containsClause(c: Clause, s: Clause): boolean
503
- {
504
- if (clauseEqual(c, s))
505
- return true;
506
- if (c == null || s == null) return false;
507
- return containsClause(c.operand1, s) || containsClause(c.operand2, s);
508
- }
509
-
510
- function removeClause(c: Clause, s: Clause): Clause
511
- {
512
- if (c == null || (c.op.tt === TokType.Text && c.op.tt !== s.op.tt))
513
- return c;
514
- else if (clauseEqual(c, s))
515
- return null;
516
- else
517
- {
518
- c.operand1 = removeClause(c.operand1, s);
519
- c.operand2 = removeClause(c.operand2, s);
520
- if ((c.op.tt === TokType.And || c.op.tt === TokType.Or) && (c.operand1 == null || c.operand2 == null))
521
- return c.operand1 || c.operand2;
522
- return c;
523
- }
524
- }
525
-
526
487
  export class FilterExpr
527
488
  {
528
489
  lexer: Lexer;
@@ -551,47 +512,12 @@ export class FilterExpr
551
512
  return this.asStringClause(this.parser.clause);
552
513
  }
553
514
 
554
- containsClause(expr: string): boolean
555
- {
556
- let sub = new FilterExpr(this.lexer.coder, expr);
557
- return containsClause(this.parser.clause, sub.parser.clause);
558
- }
559
-
560
- addClause(expr: string): void
561
- {
562
- let sub = new FilterExpr(this.lexer.coder, expr);
563
- if (! containsClause(this.parser.clause, sub.parser.clause))
564
- {
565
- if (this.parser.clause)
566
- this.parser.clauses = [ { op: { tt: TokType.And }, operand1: this.parser.clause, operand2: sub.parser.clause } ];
567
- else
568
- this.parser.clauses = [ sub.parser.clause ];
569
- }
570
- }
571
-
572
- removeClause(expr: string): void
573
- {
574
- if (this.containsClause(expr))
575
- {
576
- let sub = new FilterExpr(this.lexer.coder, expr);
577
- this.parser.clauses = [ removeClause(this.parser.clause, sub.parser.clause) ];
578
- }
579
- }
580
-
581
515
  asStringClause(clause: Clause): string
582
516
  {
583
517
  if (clause == null) return '';
584
- if (clause.op.tt == TokType.Text)
585
- {
586
- this.lexer.set(clause.op.text);
587
- if (this.lexer.tokens.length == 1 && this.lexer.tokens[0].tt === TokType.Text)
588
- return clause.op.text;
589
- else
590
- return `'${clause.op.text}'`;
591
- }
518
+ if (clause.op.tt == TokType.Text) return `'${clause.op.text}'`;
592
519
  let a: string[] = [];
593
- if (clause !== this.parser.clause)
594
- a.push('(');
520
+ a.push('(');
595
521
  switch (clause.op.tt)
596
522
  {
597
523
  case TokType.And:
@@ -609,7 +535,8 @@ export class FilterExpr
609
535
  a.push(this.asStringClause(clause.operand1));
610
536
  break;
611
537
  case TokType.Colon:
612
- a.push(`${this.asStringClause(clause.operand1)}:`);
538
+ a.push(this.asStringClause(clause.operand1));
539
+ a.push(':');
613
540
  a.push(this.asStringClause(clause.operand2));
614
541
  break;
615
542
  case TokType.Equal:
@@ -624,8 +551,7 @@ export class FilterExpr
624
551
  default:
625
552
  throw 'Unexpected token in asString';
626
553
  }
627
- if (clause !== this.parser.clause)
628
- a.push(')');
554
+ a.push(')');
629
555
  return a.join(' ');
630
556
  }
631
557
 
package/lib/fsm/fsm.ts CHANGED
@@ -291,7 +291,6 @@ export class FsmOnDone extends Fsm
291
291
  export class FsmSleep extends Fsm
292
292
  {
293
293
  delay: number;
294
- timeoutHandle: any;
295
294
 
296
295
  constructor(env: FsmEnvironment, delay: number)
297
296
  {
@@ -301,19 +300,10 @@ export class FsmSleep extends Fsm
301
300
 
302
301
  tick(): void
303
302
  {
304
- // This allows canceling by simply setting state to done
305
- if (this.done && this.timeoutHandle !== undefined)
306
- {
307
- clearTimeout(this.timeoutHandle);
308
- delete this.timeoutHandle;
309
- }
310
- else if (this.ready && this.state === FSM_STARTING)
303
+ if (this.ready && this.state === FSM_STARTING)
311
304
  {
312
305
  this.setState(FSM_PENDING);
313
- this.timeoutHandle = setTimeout(() => {
314
- delete this.timeoutHandle;
315
- this.setState(FSM_DONE)
316
- }, this.delay);
306
+ setTimeout(() => { this.setState(FSM_DONE); }, this.delay);
317
307
  }
318
308
  }
319
309
  }
@@ -0,0 +1 @@
1
+ export * from './fsmfile';
@@ -0,0 +1,236 @@
1
+ // Node libraries
2
+ import * as fs from 'fs';
3
+
4
+ // Shared libraries
5
+ import * as LogAbstract from '../logabstract/all';
6
+ import * as FSM from '../fsm/all';
7
+
8
+ export interface Environment
9
+ {
10
+ log: LogAbstract.ILog;
11
+ fsmManager: FSM.FsmManager;
12
+ }
13
+
14
+ const FSM_READING = FSM.FSM_CUSTOM1;
15
+ const FSM_WRITING = FSM.FSM_CUSTOM1;
16
+
17
+ export class FsmUnlink extends FSM.Fsm
18
+ {
19
+ path: string;
20
+ err: any;
21
+
22
+ constructor(env: Environment, path: string)
23
+ {
24
+ super(env);
25
+ this.path = path;
26
+ this.err = null;
27
+ }
28
+
29
+ tick(): void
30
+ {
31
+ if (this.ready && this.state === FSM.FSM_STARTING)
32
+ {
33
+ this.setState(FSM.FSM_PENDING);
34
+ fs.unlink(this.path, (err: any) => {
35
+ if (err)
36
+ {
37
+ this.setState(FSM.FSM_ERROR);
38
+ this.err = err;
39
+ }
40
+ else
41
+ this.setState(FSM.FSM_DONE);
42
+ });
43
+ }
44
+ }
45
+ }
46
+
47
+ export class FsmMkdir extends FSM.Fsm
48
+ {
49
+ dir: string;
50
+ bAllowExist: boolean;
51
+ err: any;
52
+
53
+ constructor(env: Environment, dir: string, bAllowExist: boolean = true)
54
+ {
55
+ super(env);
56
+ this.dir = dir;
57
+ this.err = null;
58
+ this.bAllowExist = true;
59
+ }
60
+
61
+ tick(): void
62
+ {
63
+ if (this.ready && this.state == FSM.FSM_STARTING)
64
+ {
65
+ this.err = null;
66
+ this.setState(FSM.FSM_PENDING);
67
+ fs.mkdir(this.dir, 0o777, (err: any) => {
68
+ // ignore EEXISTS errors
69
+ if (err === null || (this.bAllowExist && err.code === 'EEXIST'))
70
+ this.setState(FSM.FSM_DONE);
71
+ else
72
+ {
73
+ this.err = err;
74
+ this.setState(FSM.FSM_ERROR);
75
+ }
76
+ });
77
+ }
78
+ }
79
+ }
80
+
81
+ export class FsmRmdir extends FSM.Fsm
82
+ {
83
+ dir: string;
84
+ err: any;
85
+
86
+ constructor(env: Environment, dir: string)
87
+ {
88
+ super(env);
89
+ this.dir = dir;
90
+ }
91
+
92
+ tick(): void
93
+ {
94
+ if (this.ready && this.state == FSM.FSM_STARTING)
95
+ {
96
+ this.err = null;
97
+ this.setState(FSM.FSM_PENDING);
98
+ fs.rmdir(this.dir, (err: any) => {
99
+ // ignore ENOENT errors
100
+ if (err === null || err.code === 'ENOENT')
101
+ this.setState(FSM.FSM_DONE);
102
+ else
103
+ {
104
+ this.err = err;
105
+ this.setState(FSM.FSM_ERROR);
106
+ }
107
+ });
108
+ }
109
+ }
110
+ }
111
+
112
+ export class FsmLs extends FSM.Fsm
113
+ {
114
+ dir: string;
115
+ err: any;
116
+ entries: string[];
117
+
118
+ constructor(env: Environment, dir: string)
119
+ {
120
+ super(env);
121
+ this.dir = dir;
122
+ this.err = null;
123
+ }
124
+
125
+ tick(): void
126
+ {
127
+ if (this.ready)
128
+ {
129
+ switch (this.state)
130
+ {
131
+ case FSM.FSM_STARTING:
132
+ this.setState(FSM.FSM_PENDING);
133
+ fs.readdir(this.dir, (err: any, entries: string[]) => {
134
+ if (err)
135
+ {
136
+ this.err = err;
137
+ this.setState(FSM.FSM_ERROR);
138
+ }
139
+ else
140
+ {
141
+ this.entries = entries;
142
+ this.setState(FSM.FSM_DONE);
143
+ }
144
+ });
145
+ break;
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ export class FsmReadFile extends FSM.Fsm
152
+ {
153
+ path: string;
154
+ result: string;
155
+ err: any;
156
+
157
+ constructor(env: Environment, path: string)
158
+ {
159
+ super(env);
160
+
161
+ this.path = path;
162
+ this.result = null;
163
+ this.err = null;
164
+ }
165
+
166
+ tick(): void
167
+ {
168
+ if (this.ready)
169
+ {
170
+ switch (this.state)
171
+ {
172
+ case FSM.FSM_STARTING:
173
+ this.err = null;
174
+ this.result = null;
175
+ this.setState(FSM_READING);
176
+ fs.readFile(this.path, 'utf8', (err: any, data: string) => {
177
+ if (err)
178
+ {
179
+ this.result = null;
180
+ this.err = err;
181
+ this.setState(FSM.FSM_ERROR);
182
+ }
183
+ else
184
+ {
185
+ this.err = null;
186
+ this.result = data;
187
+ this.setState(FSM.FSM_DONE);
188
+ }
189
+ });
190
+ break;
191
+ }
192
+ }
193
+ }
194
+ }
195
+
196
+ export class FsmWriteFile extends FSM.Fsm
197
+ {
198
+ path: string;
199
+ contents: string | Buffer;
200
+ err: any;
201
+
202
+ constructor(env: Environment, path: string, contents: string | Buffer)
203
+ {
204
+ super(env);
205
+
206
+ this.path = path;
207
+ this.contents = contents;
208
+ this.err = null;
209
+ }
210
+
211
+ tick(): void
212
+ {
213
+ if (this.ready)
214
+ {
215
+ switch (this.state)
216
+ {
217
+ case FSM.FSM_STARTING:
218
+ this.err = null;
219
+ this.setState(FSM_WRITING);
220
+ fs.writeFile(this.path, this.contents, (err: any) => {
221
+ if (err)
222
+ {
223
+ this.err = err;
224
+ this.setState(FSM.FSM_ERROR);
225
+ }
226
+ else
227
+ {
228
+ this.err = null;
229
+ this.setState(FSM.FSM_DONE);
230
+ }
231
+ });
232
+ break;
233
+ }
234
+ }
235
+ }
236
+ }
@@ -0,0 +1 @@
1
+ export * from './jsonstream';