@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
@@ -0,0 +1,24 @@
1
+ import * as Context from '../context/all';
2
+ import * as LogAbstract from '../logabstract/all';
3
+ import * as FSM from '../fsm/all';
4
+ import * as Storage from '../storage/all';
5
+ import { LogKey } from './logkey';
6
+ interface Environment {
7
+ context: Context.IContext;
8
+ log: LogAbstract.ILog;
9
+ fsmManager: FSM.FsmManager;
10
+ storageManager: Storage.StorageManager;
11
+ }
12
+ export declare class LogBlob extends Storage.StorageBlob {
13
+ key: LogKey;
14
+ constructor(env: Environment, params: Storage.BlobParams);
15
+ get env(): Environment;
16
+ get result(): string;
17
+ static createForDownload(env: Environment, id: string): LogBlob;
18
+ static createForUpload(env: Environment, id: string, data: string): LogBlob;
19
+ static createForDelete(env: Environment, id: string): LogBlob;
20
+ static createForLs(env: Environment): LogBlob;
21
+ filter(s: string): boolean;
22
+ asString(): string;
23
+ }
24
+ export {};
@@ -0,0 +1,55 @@
1
+ import * as Context from '../context/all';
2
+ import * as LogAbstract from '../logabstract/all';
3
+ import * as FSM from '../fsm/all';
4
+ import * as Storage from '../storage/all';
5
+ import { LogBlob } from './logblob';
6
+ interface Environment {
7
+ context: Context.IContext;
8
+ log: LogAbstract.ILog;
9
+ fsmManager: FSM.FsmManager;
10
+ storageManager: Storage.StorageManager;
11
+ }
12
+ export declare class FsmCompact extends FSM.Fsm {
13
+ blobLs: LogBlob;
14
+ clusters: {
15
+ [key: string]: string[];
16
+ };
17
+ constructor(env: Environment);
18
+ get env(): Environment;
19
+ gatherLogList(logs: string[]): void;
20
+ tick(): void;
21
+ }
22
+ declare class Permuter {
23
+ tag: string;
24
+ entries: {
25
+ [key: string]: {
26
+ key: string;
27
+ to: string;
28
+ from: string;
29
+ };
30
+ };
31
+ mapper: {
32
+ [from: string]: string;
33
+ };
34
+ length: number;
35
+ constructor(tag: string);
36
+ reset(): void;
37
+ add(fields: string[]): void;
38
+ map(from: string): string;
39
+ asCSV(): string[];
40
+ }
41
+ export declare class FsmCompactOne extends FSM.Fsm {
42
+ key: string;
43
+ cluster: string[];
44
+ blobs: LogBlob[];
45
+ csv: string[];
46
+ schemas: Permuter;
47
+ templates: Permuter;
48
+ constructor(env: Environment, key: string, cluster: string[]);
49
+ get env(): Environment;
50
+ loadBlobs(): void;
51
+ saveBlobs(): void;
52
+ deleteBlobs(): void;
53
+ tick(): void;
54
+ }
55
+ export {};
@@ -0,0 +1,28 @@
1
+ export declare function dateToKey(d: Date): string;
2
+ export declare function dateToMonthKey(d: Date): string;
3
+ export declare function dateToYearKey(d: Date): string;
4
+ export declare class LogKey {
5
+ kind: string;
6
+ mode: string;
7
+ date: string;
8
+ dateKey: string;
9
+ monthKey: string;
10
+ yearKey: string;
11
+ count: string;
12
+ instance: string;
13
+ ext: string;
14
+ constructor();
15
+ static root(): LogKey;
16
+ static create(s: string): LogKey;
17
+ yearClosed(): boolean;
18
+ monthClosed(): boolean;
19
+ dateClosed(): boolean;
20
+ get closed(): boolean;
21
+ get yearID(): string;
22
+ get monthID(): string;
23
+ get dateID(): string;
24
+ get isYear(): boolean;
25
+ get isMonth(): boolean;
26
+ get isDate(): boolean;
27
+ get isLog(): boolean;
28
+ }
@@ -0,0 +1,4 @@
1
+ export * from './queue';
2
+ export * from './client';
3
+ export * from './server';
4
+ export * from './loopback';
@@ -0,0 +1,13 @@
1
+ import * as Q from './queue';
2
+ export declare type SQSCallback = (err: any, result: Q.QMessages) => void;
3
+ export declare class SQSClient {
4
+ private targeturl?;
5
+ private httpoptions?;
6
+ private agentPool?;
7
+ constructor(urlstring?: string);
8
+ setOptions(queueid: string, options: Q.QQueueOptions, cb: SQSCallback): void;
9
+ claim(queueid: string, owner: string, groupid: string, cb: SQSCallback): void;
10
+ send(queueid: string, m: Q.QMessage, cb: SQSCallback): void;
11
+ remove(queueid: string, m: Q.QMessage, cb: SQSCallback): void;
12
+ receive(queueid: string, owner: string, cb: SQSCallback): void;
13
+ }
@@ -0,0 +1,11 @@
1
+ import * as Q from './queue';
2
+ import * as C from './client';
3
+ export declare class SQSClientLoopback {
4
+ constructor(urlstring?: string);
5
+ setOptions(queueid: string, options: Q.QQueueOptions, cb: C.SQSCallback): void;
6
+ claim(queueid: string, owner: string, groupid: string, cb: C.SQSCallback): void;
7
+ send(queueid: string, m: Q.QMessage, cb: C.SQSCallback): void;
8
+ remove(queueid: string, m: Q.QMessage, cb: C.SQSCallback): void;
9
+ receive(queueid: string, owner: string, cb: C.SQSCallback): void;
10
+ doReceive(): void;
11
+ }
@@ -0,0 +1,19 @@
1
+ export interface OrderedListEntry<T> {
2
+ prev: OrderedListEntry<T>;
3
+ next: OrderedListEntry<T>;
4
+ value: T;
5
+ }
6
+ export declare type OrderedListIndex<T> = {
7
+ [key: string]: OrderedListEntry<T>;
8
+ };
9
+ export declare class OrderedList<T> {
10
+ head: OrderedListEntry<T>;
11
+ tail: OrderedListEntry<T>;
12
+ index: OrderedListIndex<T>;
13
+ constructor();
14
+ isempty(): boolean;
15
+ clear(): void;
16
+ insert(key: string, value: T): string;
17
+ remove(key: string): string;
18
+ forEach(cb: (value: T) => boolean): void;
19
+ }
@@ -0,0 +1,84 @@
1
+ import * as Util from '../util/all';
2
+ import * as OL from './orderedlist';
3
+ export declare const DefaultPort: number;
4
+ export declare const DefaultServerUrl: string;
5
+ export interface QMessage {
6
+ messageid: string;
7
+ groupid: string;
8
+ seqno?: number;
9
+ contents?: any;
10
+ blobid?: string;
11
+ }
12
+ export declare type QMessages = QMessage[];
13
+ interface QMessageHolder {
14
+ m: QMessage;
15
+ pending: boolean;
16
+ deadline: Util.Deadline;
17
+ }
18
+ declare type QMessageList = OL.OrderedList<QMessageHolder>;
19
+ declare type QMessageIndex = {
20
+ [key: string]: boolean;
21
+ };
22
+ interface QVisibility {
23
+ owner: string;
24
+ deadline: Util.Deadline;
25
+ index: QMessageIndex;
26
+ }
27
+ interface QGroup {
28
+ id: string;
29
+ messages: QMessageList;
30
+ visibility: QVisibility;
31
+ }
32
+ declare type QGroupIndex = {
33
+ [id: string]: QGroup;
34
+ };
35
+ export interface QQueueOptions {
36
+ timeoutVisibility: number;
37
+ timeoutDead: number;
38
+ timeoutQueueDead: number;
39
+ receiveLimit: number;
40
+ longpoll: boolean;
41
+ }
42
+ declare class QQueue {
43
+ id: string;
44
+ groups: QGroupIndex;
45
+ seqno: number;
46
+ options: QQueueOptions;
47
+ nHeld: number;
48
+ lastActive: Util.Elapsed;
49
+ constructor(id: string, options?: QQueueOptions);
50
+ dumpLog(): void;
51
+ setOptions(options: QQueueOptions): void;
52
+ _group(id: string): QGroup;
53
+ forEachGroup(cb: (g: QGroup) => boolean): void;
54
+ forEachMessageHolder(g: QGroup, cb: (h: QMessageHolder) => boolean): void;
55
+ get isActive(): boolean;
56
+ checkTimeout(): void;
57
+ send(m: QMessage): string;
58
+ claim(owner: string, groupid: string): string;
59
+ receive(owner: string, result: QMessages): void;
60
+ removeFromGroup(g: QGroup, m: QMessage): string;
61
+ remove(m: QMessage): string;
62
+ }
63
+ declare type QQueueIndex = {
64
+ [id: string]: QQueue;
65
+ };
66
+ export declare class QQueueManager {
67
+ queues: QQueueIndex;
68
+ nSent: number;
69
+ nReceived: number;
70
+ nRemoved: number;
71
+ nCulled: number;
72
+ constructor();
73
+ _queue(queueid: string): QQueue;
74
+ checkTimeout(): void;
75
+ forEach(cb: (q: QQueue) => void): void;
76
+ dumpLog(): void;
77
+ setOptions(queueid: string, options: QQueueOptions): void;
78
+ isLongpoll(queueid: string): boolean;
79
+ claim(queueid: string, owner: string, groupid: string): string;
80
+ send(queueid: string, m: QMessage): string;
81
+ receive(queueid: string, owner: string, result: QMessages): void;
82
+ remove(queueid: string, m: QMessage): string;
83
+ }
84
+ export {};
@@ -0,0 +1,37 @@
1
+ import * as JS from '../jsonstream/all';
2
+ import * as Q from './queue';
3
+ export declare class SQSServer {
4
+ private port;
5
+ private server;
6
+ queuemanager: Q.QQueueManager;
7
+ longpoll: LongPoll;
8
+ constructor(port?: number);
9
+ get running(): boolean;
10
+ close(): void;
11
+ }
12
+ interface LongPollRequest {
13
+ deadline: number;
14
+ request: OneRequest;
15
+ }
16
+ declare class LongPoll {
17
+ requests: LongPollRequest[];
18
+ constructor();
19
+ check(): void;
20
+ tick(): void;
21
+ add(one: OneRequest): void;
22
+ }
23
+ declare class OneRequest {
24
+ server: SQSServer;
25
+ req: any;
26
+ res: any;
27
+ jsonstream: JS.JSONStreamReader;
28
+ json: any;
29
+ body: any;
30
+ constructor(server: SQSServer, req: any, res: any);
31
+ isDone(): boolean;
32
+ onRetry(): boolean;
33
+ onDone(): void;
34
+ onError(s: string): void;
35
+ onFinish(): void;
36
+ }
37
+ export {};
@@ -20,7 +20,6 @@ export declare const FilterRecent: number;
20
20
  export declare const FilterTrash: number;
21
21
  export declare const FilterPublic: number;
22
22
  export declare const FilterOfficial: number;
23
- export declare const FilterCOI: number;
24
23
  export declare const FilterCount: number;
25
24
  export declare type Filter = number;
26
25
  export declare const PermNone: number;
@@ -84,8 +83,6 @@ export interface SessionProps {
84
83
  loadFailed: boolean;
85
84
  accessMap: AccessMap;
86
85
  revisions: RevisionList;
87
- expunged?: boolean;
88
- expungeDate?: string;
89
86
  xprops?: {
90
87
  [prop: string]: string;
91
88
  };
@@ -2,7 +2,6 @@ import * as FSM from '../fsm/all';
2
2
  import * as Poly from './poly';
3
3
  import * as Q from './quad';
4
4
  export declare function polyIntersects(p1: any, p2: any): boolean;
5
- export declare function polyDifference(main: any, parts: any[]): any;
6
5
  declare class FsmDifference extends FSM.Fsm {
7
6
  accum: any;
8
7
  polys: any[];
@@ -0,0 +1,4 @@
1
+ export * from './env';
2
+ export * from './storage';
3
+ export * from './datablob';
4
+ export * from './splitsblob';
@@ -0,0 +1,9 @@
1
+ import { Environment } from './env';
2
+ import * as Storage from './storage';
3
+ export declare class DataBlob extends Storage.StorageBlob {
4
+ constructor(env: Environment, params: Storage.BlobParams);
5
+ get env(): Environment;
6
+ get json(): any;
7
+ static createForJSON(env: Environment, id: string): DataBlob;
8
+ static createForStream(env: Environment, id: string, bucket?: string): DataBlob;
9
+ }
@@ -0,0 +1,10 @@
1
+ import * as Context from '../context/all';
2
+ import * as FSM from '../fsm/all';
3
+ import * as LogAbstract from '../logabstract/all';
4
+ import * as Storage from './storage';
5
+ export interface Environment {
6
+ context: Context.IContext;
7
+ log: LogAbstract.ILog;
8
+ fsmManager: FSM.FsmManager;
9
+ storageManager: Storage.StorageManager;
10
+ }
@@ -0,0 +1,13 @@
1
+ import { Environment } from './env';
2
+ import * as Storage from './storage';
3
+ export declare class SplitsBlob extends Storage.StorageBlob {
4
+ ls: {
5
+ [key: string]: Storage.BlobProperties;
6
+ };
7
+ constructor(env: Environment, params: Storage.BlobParams);
8
+ get env(): Environment;
9
+ get collection(): any;
10
+ static createForLs(env: Environment): SplitsBlob;
11
+ static createForUpload(env: Environment, id: string, collection: any): SplitsBlob;
12
+ static createForDownload(env: Environment, id: string): SplitsBlob;
13
+ }
@@ -0,0 +1,166 @@
1
+ /// <reference types="node" />
2
+ import * as stream from 'stream';
3
+ import * as FSM from '../fsm/all';
4
+ import { Environment } from './env';
5
+ export declare const ESuccess: number;
6
+ export declare const EFail: number;
7
+ export declare const ENotFound: number;
8
+ export declare const EPending: number;
9
+ export declare const EBadFormat: number;
10
+ export declare type StorageState = number;
11
+ export declare const StorageStateClean = 0;
12
+ export declare const StorageStateDirty = 1;
13
+ export declare const StorageStateSaving = 2;
14
+ export declare const StorageStateLoading = 4;
15
+ export declare const StorageStateLoadCanceled = 8;
16
+ export declare const StorageStateLoadFailed = 16;
17
+ export declare const StorageStateDeleting = 32;
18
+ export declare const StorageStateDeleted = 64;
19
+ export declare const StorageStateListing = 128;
20
+ export declare type BucketMap = {
21
+ [key: string]: string;
22
+ };
23
+ export declare const BucketDefault = "default";
24
+ export declare const BucketDev = "development";
25
+ export declare const BucketProd = "production";
26
+ export declare const BucketLogs = "logs";
27
+ export declare type TransferUrlOp = 'putObject' | 'getObject';
28
+ export interface TransferParams {
29
+ op: TransferUrlOp;
30
+ contentType?: string;
31
+ }
32
+ export declare type DispositionType = 'object' | 'string' | 'buffer' | 'stream' | 'filepath';
33
+ export declare type LoadToFilter = (blob: StorageBlob, a: any) => any;
34
+ export interface BlobParams {
35
+ id: string;
36
+ bucket?: string;
37
+ saveFromType?: DispositionType;
38
+ saveFrom?: any;
39
+ loadToType?: DispositionType;
40
+ loadTo?: any;
41
+ loadToFilter?: LoadToFilter;
42
+ deleteAfterLoad?: boolean;
43
+ suppressDeleteError?: boolean;
44
+ ContentEncoding?: string;
45
+ ContentType?: string;
46
+ CacheControl?: string;
47
+ }
48
+ export declare class FsmTransferUrl extends FSM.Fsm {
49
+ bucket: string;
50
+ key: string;
51
+ params: TransferParams;
52
+ url: string;
53
+ constructor(env: Environment, bucket: string, params: TransferParams);
54
+ }
55
+ export interface BlobProperties {
56
+ Key?: string;
57
+ ContentLength?: number;
58
+ ContentDisposition?: string;
59
+ ContentEncoding?: string;
60
+ ContentType?: string;
61
+ ContentLanguage?: string;
62
+ LastModified?: string;
63
+ ETag?: string;
64
+ }
65
+ export interface MultiBufferList {
66
+ buf: Buffer;
67
+ next: MultiBufferList;
68
+ }
69
+ export declare class MultiBufferPassThrough extends stream.Duplex {
70
+ _dopush: boolean;
71
+ _head: MultiBufferList;
72
+ _tail: MultiBufferList;
73
+ constructor();
74
+ _read(): void;
75
+ _dopushing(): void;
76
+ _pushChunk(chunk: any): void;
77
+ _write(chunk: any, encoding: string, cb: any): void;
78
+ _done(): void;
79
+ _flush(cb: any): void;
80
+ _transform(chunk: any, encoding: string, cb: any): void;
81
+ }
82
+ export declare class StorageBlob {
83
+ _env: Environment;
84
+ params: BlobParams;
85
+ state: StorageState;
86
+ tStarted: Date;
87
+ fsmSave: FSM.Fsm;
88
+ fsmLoad: FSM.Fsm;
89
+ fsmDel: FSM.Fsm;
90
+ fsmList: FSM.Fsm;
91
+ _props: FSM.FsmArray;
92
+ _keys: FSM.FsmArray;
93
+ constructor(env: Environment, params: BlobParams);
94
+ get env(): Environment;
95
+ get keys(): string[];
96
+ get props(): BlobProperties[];
97
+ resetList(): void;
98
+ get fsmArray(): FSM.Fsm;
99
+ setSaveFrom(t: DispositionType, data: any): void;
100
+ setLoadTo(t: DispositionType): void;
101
+ needSave(): boolean;
102
+ isSaving(): boolean;
103
+ isLoading(): boolean;
104
+ isListing(): boolean;
105
+ setListing(): void;
106
+ setListed(): void;
107
+ isDeleting(): boolean;
108
+ isDeleted(): boolean;
109
+ isLoadFailed(): boolean;
110
+ isValid(): boolean;
111
+ isReadable(): boolean;
112
+ isDirty(): boolean;
113
+ isSafeToUnload(): boolean;
114
+ setDirty(): void;
115
+ setInit(): void;
116
+ setLoading(): void;
117
+ setLoaded(result: number): void;
118
+ setSaving(): void;
119
+ setSaved(result: number): void;
120
+ setDeleting(): void;
121
+ setDeleted(result: number): void;
122
+ startLoad(sm: StorageManager): void;
123
+ startHead(sm: StorageManager): void;
124
+ checkSave(sm: StorageManager): void;
125
+ startDelete(sm: StorageManager): void;
126
+ endSave(br: BlobRequest): void;
127
+ endLoad(br: BlobRequest): void;
128
+ endHead(br: BlobRequest): void;
129
+ endDelete(br: BlobRequest): void;
130
+ startList(sm: StorageManager, continuationToken?: string): void;
131
+ endList(br: BlobRequest): void;
132
+ toLoadStream(): stream.Readable;
133
+ setLoadStream(rs: stream.Readable): void;
134
+ }
135
+ export interface BlobRequest {
136
+ blob: StorageBlob;
137
+ result(): number;
138
+ asBuffer(): Buffer;
139
+ asString(): string;
140
+ asError(): string;
141
+ asProps(): BlobProperties[];
142
+ continuationToken(): string;
143
+ }
144
+ export interface BlobRequestIndex {
145
+ [key: string]: BlobRequest;
146
+ }
147
+ export declare class StorageManager {
148
+ _env: Environment;
149
+ saveBlobIndex: BlobRequestIndex;
150
+ loadBlobIndex: BlobRequestIndex;
151
+ headBlobIndex: BlobRequestIndex;
152
+ delBlobIndex: BlobRequestIndex;
153
+ lsBlobIndex: BlobRequestIndex;
154
+ onList: any;
155
+ bucketMap: BucketMap;
156
+ constructor(env: Environment, bucketMap?: BucketMap);
157
+ save(blob: StorageBlob): void;
158
+ load(blob: StorageBlob): void;
159
+ del(blob: StorageBlob): void;
160
+ head(blob: StorageBlob): void;
161
+ ls(blob: StorageBlob, continuationToken?: string): void;
162
+ createTransferUrl(params: TransferParams): FsmTransferUrl;
163
+ on(eventName: string, cb: any): void;
164
+ off(eventName: string, cb: any): void;
165
+ emit(eventName: string, blob: StorageBlob): void;
166
+ }
@@ -0,0 +1 @@
1
+ export * from './s3';
@@ -0,0 +1,62 @@
1
+ /// <reference types="node" />
2
+ import * as Context from '../context/all';
3
+ import * as Storage from '../storage/all';
4
+ import * as LogAbstract from '../logabstract/all';
5
+ import * as FSM from '../fsm/all';
6
+ export interface Environment {
7
+ context: Context.IContext;
8
+ log: LogAbstract.ILog;
9
+ fsmManager: FSM.FsmManager;
10
+ storageManager: Storage.StorageManager;
11
+ }
12
+ declare class S3Request implements Storage.BlobRequest {
13
+ blob: Storage.StorageBlob;
14
+ req: any;
15
+ res: any;
16
+ data: any;
17
+ err: any;
18
+ constructor(blob: Storage.StorageBlob);
19
+ continuationToken(): string;
20
+ result(): number;
21
+ decode(): void;
22
+ asString(): string;
23
+ asBuffer(): Buffer;
24
+ _dataToProps(data: any): Storage.BlobProperties;
25
+ asProps(): Storage.BlobProperties[];
26
+ asError(): string;
27
+ }
28
+ export declare class FsmStreamLoader extends FSM.Fsm {
29
+ sm: StorageManager;
30
+ blob: Storage.StorageBlob;
31
+ param: any;
32
+ err: any;
33
+ contentLength: number;
34
+ contentPos: number;
35
+ readStream: Storage.MultiBufferPassThrough;
36
+ passThrough: Storage.MultiBufferPassThrough;
37
+ constructor(env: Environment, sm: StorageManager, blob: Storage.StorageBlob);
38
+ get env(): Environment;
39
+ setStreamError(): void;
40
+ tick(): void;
41
+ }
42
+ export declare class FsmTransferUrl extends Storage.FsmTransferUrl {
43
+ storageManager: StorageManager;
44
+ constructor(env: Environment, bucket: string, params: Storage.TransferParams);
45
+ }
46
+ export declare class StorageManager extends Storage.StorageManager {
47
+ s3: any;
48
+ count: number;
49
+ constructor(env: Environment, bucketMap?: Storage.BucketMap);
50
+ get env(): Environment;
51
+ lookupBucket(s: string): string;
52
+ blobBucket(blob: Storage.StorageBlob): string;
53
+ load(blob: Storage.StorageBlob): void;
54
+ _finishLoad(blob: Storage.StorageBlob, id: string, rq: S3Request, err: any, data: any): void;
55
+ head(blob: Storage.StorageBlob): void;
56
+ safeSaveFromPath(blob: Storage.StorageBlob, rq: S3Request, id: string, trace: LogAbstract.AsyncTimer): any;
57
+ save(blob: Storage.StorageBlob): void;
58
+ del(blob: Storage.StorageBlob): void;
59
+ ls(blob: Storage.StorageBlob, continuationToken?: string): void;
60
+ createTransferUrl(params: Storage.TransferParams): Storage.FsmTransferUrl;
61
+ }
62
+ export {};
@@ -0,0 +1,2 @@
1
+ # dbabstract
2
+ Abstract database layer to allow local mock.
@@ -0,0 +1,2 @@
1
+ # dbdynamo
2
+ Dynamo abstraction layer
@@ -0,0 +1,2 @@
1
+ # fsmfile
2
+ FSM interface for asynchronous file APIs, including JSON streaming.
@@ -0,0 +1,44 @@
1
+ # jsonstream
2
+ Streaming replacement for JSON.parse and JSON.stringify for NodeJS projects.
3
+
4
+ ## JSONStreamReader
5
+
6
+ Initialize with optional parameters to set maximum token sizes.
7
+ Call start() with a stream in Buffer mode to start parsing.
8
+ The following standard events are emitted.
9
+ Note: If the 'error' event is emitted, no 'end' event is emitted.
10
+
11
+ ### 'error'
12
+
13
+ Passes an object of type Error with detailed information about parsing error.
14
+
15
+ ### 'end'
16
+
17
+ Passes an object of type any that contains the fully parsed object.
18
+
19
+
20
+ ### 'close'
21
+
22
+ Passed after 'end' event when stream is closed.
23
+
24
+ ### reader.emitIncremental(name: string)
25
+
26
+ If emitIncremental is called, individual properties associated with the given named property are returned
27
+ incrementally rather than appended to the aggregate object.
28
+
29
+ The following events are emitted when encountering a value in such a field.
30
+
31
+ ### 'array'
32
+
33
+ Passes the name of the field passed to emitIncremental that caused this event and the value that would have
34
+ been pushed into the array.
35
+
36
+ ### 'object'
37
+
38
+ Passes the name of the field passed to emitIncremental that caused this event, the property name that would
39
+ have been added to the object and the property value.
40
+
41
+
42
+ ## JSONStreamWriter
43
+
44
+ Initialize with optional parameters and then call start() with a writeable stream and the object to write.
package/docs/lambda.md ADDED
@@ -0,0 +1,2 @@
1
+ # lambda
2
+ Implementation of lambda abstraction against AWS Lambda
@@ -0,0 +1,2 @@
1
+ # log
2
+ Accept logging information and save to storage in CSV format as necessary.
@@ -0,0 +1,2 @@
1
+ # storage
2
+ Abstract for storage state management
@@ -0,0 +1,2 @@
1
+ # storages3
2
+ Implementation of storage abstraction against AWS S3