lemon-core 3.0.0 → 3.1.1
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.
- package/README.md +13 -21
- package/dist/common/test-helper.js +19 -11
- package/dist/common/test-helper.js.map +1 -1
- package/dist/controllers/dummy-controller.d.ts +1 -1
- package/dist/controllers/dummy-controller.js +2 -2
- package/dist/controllers/dummy-controller.js.map +1 -1
- package/dist/controllers/general-api-controller.d.ts +1 -1
- package/dist/controllers/general-api-controller.js +5 -5
- package/dist/controllers/general-api-controller.js.map +1 -1
- package/dist/controllers/general-controller.js +2 -1
- package/dist/controllers/general-controller.js.map +1 -1
- package/dist/controllers/index.js +6 -2
- package/dist/controllers/index.js.map +1 -1
- package/dist/cores/api/api-service.d.ts +239 -0
- package/dist/cores/api/api-service.js +674 -0
- package/dist/cores/api/api-service.js.map +1 -0
- package/dist/cores/api/index.d.ts +10 -0
- package/dist/cores/api/index.js +27 -0
- package/dist/cores/api/index.js.map +1 -0
- package/dist/cores/api-service.js +19 -18
- package/dist/cores/api-service.js.map +1 -1
- package/dist/cores/aws/aws-kms-service.d.ts +53 -2
- package/dist/cores/aws/aws-kms-service.js +112 -29
- package/dist/cores/aws/aws-kms-service.js.map +1 -1
- package/dist/cores/aws/aws-s3-service.js +19 -18
- package/dist/cores/aws/aws-s3-service.js.map +1 -1
- package/dist/cores/aws/aws-sns-service.js +10 -10
- package/dist/cores/aws/aws-sns-service.js.map +1 -1
- package/dist/cores/aws/aws-sqs-service.js +12 -12
- package/dist/cores/aws/aws-sqs-service.js.map +1 -1
- package/dist/cores/aws/index.js +1 -1
- package/dist/cores/cache/cache-service.d.ts +440 -0
- package/dist/cores/cache/cache-service.js +967 -0
- package/dist/cores/cache/cache-service.js.map +1 -0
- package/dist/cores/cache/index.d.ts +10 -0
- package/dist/cores/cache/index.js +27 -0
- package/dist/cores/cache/index.js.map +1 -0
- package/dist/cores/cache-service.d.ts +54 -18
- package/dist/cores/cache-service.js +56 -45
- package/dist/cores/cache-service.js.map +1 -1
- package/dist/cores/config/config-service.js +11 -10
- package/dist/cores/config/config-service.js.map +1 -1
- package/dist/cores/core-services.js +6 -2
- package/dist/cores/core-services.js.map +1 -1
- package/dist/cores/core-types.d.ts +42 -12
- package/dist/cores/dynamo/dynamo-query-service.d.ts +52 -0
- package/dist/cores/dynamo/dynamo-query-service.js +127 -0
- package/dist/cores/dynamo/dynamo-query-service.js.map +1 -0
- package/dist/cores/dynamo/dynamo-scan-service.d.ts +70 -0
- package/dist/cores/dynamo/dynamo-scan-service.js +164 -0
- package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -0
- package/dist/cores/dynamo/dynamo-service.d.ts +192 -0
- package/dist/cores/dynamo/dynamo-service.js +525 -0
- package/dist/cores/dynamo/dynamo-service.js.map +1 -0
- package/dist/cores/dynamo/index.d.ts +12 -0
- package/dist/cores/dynamo/index.js +29 -0
- package/dist/cores/dynamo/index.js.map +1 -0
- package/dist/cores/dynamo-query-service.js +7 -7
- package/dist/cores/dynamo-query-service.js.map +1 -1
- package/dist/cores/dynamo-scan-service.js +8 -8
- package/dist/cores/dynamo-scan-service.js.map +1 -1
- package/dist/cores/dynamo-service.js +19 -19
- package/dist/cores/dynamo-service.js.map +1 -1
- package/dist/cores/elastic/elastic6-query-service.d.ts +104 -0
- package/dist/cores/elastic/elastic6-query-service.js +510 -0
- package/dist/cores/elastic/elastic6-query-service.js.map +1 -0
- package/dist/cores/elastic/elastic6-service.d.ts +273 -0
- package/dist/cores/elastic/elastic6-service.js +903 -0
- package/dist/cores/elastic/elastic6-service.js.map +1 -0
- package/dist/cores/elastic/hangul-service.d.ts +102 -0
- package/dist/cores/elastic/hangul-service.js +205 -0
- package/dist/cores/elastic/hangul-service.js.map +1 -0
- package/dist/cores/elastic/index.d.ts +12 -0
- package/dist/cores/elastic/index.js +29 -0
- package/dist/cores/elastic/index.js.map +1 -0
- package/dist/cores/elastic6-query-service.js +7 -7
- package/dist/cores/elastic6-query-service.js.map +1 -1
- package/dist/cores/elastic6-service.js +57 -65
- package/dist/cores/elastic6-service.js.map +1 -1
- package/dist/cores/hangul-service.d.ts +17 -3
- package/dist/cores/hangul-service.js +17 -8
- package/dist/cores/hangul-service.js.map +1 -1
- package/dist/cores/http-storage-service.js +1 -1
- package/dist/cores/http-storage-service.js.map +1 -1
- package/dist/cores/index.d.ts +9 -15
- package/dist/cores/index.js +14 -15
- package/dist/cores/index.js.map +1 -1
- package/dist/cores/lambda/index.js +8 -4
- package/dist/cores/lambda/index.js.map +1 -1
- package/dist/cores/lambda/lambda-cognito-handler.js +2 -2
- package/dist/cores/lambda/lambda-cognito-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-cron-handler.js +2 -2
- package/dist/cores/lambda/lambda-cron-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +2 -2
- package/dist/cores/lambda/lambda-dynamo-stream-handler.js +20 -20
- package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-handler.js +12 -11
- package/dist/cores/lambda/lambda-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-notification-handler.js +10 -10
- package/dist/cores/lambda/lambda-notification-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-sns-handler.js +13 -13
- package/dist/cores/lambda/lambda-sns-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-sqs-handler.js +13 -13
- package/dist/cores/lambda/lambda-sqs-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-web-handler.d.ts +158 -8
- package/dist/cores/lambda/lambda-web-handler.js +330 -119
- package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-wss-handler.js +16 -12
- package/dist/cores/lambda/lambda-wss-handler.js.map +1 -1
- package/dist/cores/model-manager.js +11 -11
- package/dist/cores/model-manager.js.map +1 -1
- package/dist/cores/protocol/protocol-service.d.ts +4 -0
- package/dist/cores/protocol/protocol-service.js +46 -40
- package/dist/cores/protocol/protocol-service.js.map +1 -1
- package/dist/cores/proxy-storage-service.js +7 -10
- package/dist/cores/proxy-storage-service.js.map +1 -1
- package/dist/cores/redis-storage-service.js +13 -13
- package/dist/cores/redis-storage-service.js.map +1 -1
- package/dist/cores/storage/http-storage-service.d.ts +22 -0
- package/dist/cores/storage/http-storage-service.js +129 -0
- package/dist/cores/storage/http-storage-service.js.map +1 -0
- package/dist/cores/storage/index.d.ts +14 -0
- package/dist/cores/storage/index.js +31 -0
- package/dist/cores/storage/index.js.map +1 -0
- package/dist/cores/storage/model-manager.d.ts +93 -0
- package/dist/cores/storage/model-manager.js +192 -0
- package/dist/cores/storage/model-manager.js.map +1 -0
- package/dist/cores/storage/proxy-storage-service.d.ts +573 -0
- package/dist/cores/storage/proxy-storage-service.js +913 -0
- package/dist/cores/storage/proxy-storage-service.js.map +1 -0
- package/dist/cores/storage/redis-storage-service.d.ts +183 -0
- package/dist/cores/storage/redis-storage-service.js +391 -0
- package/dist/cores/storage/redis-storage-service.js.map +1 -0
- package/dist/cores/storage/storage-service.d.ts +169 -0
- package/dist/cores/storage/storage-service.js +374 -0
- package/dist/cores/storage/storage-service.js.map +1 -0
- package/dist/cores/storage-service.d.ts +1 -1
- package/dist/cores/storage-service.js +10 -8
- package/dist/cores/storage-service.js.map +1 -1
- package/dist/engine/builder.js +27 -20
- package/dist/engine/builder.js.map +1 -1
- package/dist/engine/engine.js +53 -44
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/index.js +8 -4
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/utilities.d.ts +4 -3
- package/dist/engine/utilities.js +32 -37
- package/dist/engine/utilities.js.map +1 -1
- package/dist/environ.d.ts +2 -2
- package/dist/environ.js +20 -10
- package/dist/environ.js.map +1 -1
- package/dist/exec-cli.js +26 -26
- package/dist/exec-cli.js.map +1 -1
- package/dist/extended/abstract-service.d.ts +533 -0
- package/dist/extended/abstract-service.js +915 -0
- package/dist/extended/abstract-service.js.map +1 -0
- package/dist/extended/index.d.ts +10 -0
- package/dist/extended/index.js +27 -0
- package/dist/extended/index.js.map +1 -0
- package/dist/helpers/helpers.d.ts +273 -0
- package/dist/helpers/helpers.js +613 -0
- package/dist/helpers/helpers.js.map +1 -0
- package/dist/helpers/index.d.ts +10 -0
- package/dist/helpers/index.js +27 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/dynamo/expressions.js +35 -27
- package/dist/lib/dynamo/expressions.js.map +1 -1
- package/dist/lib/dynamo/query.js +24 -20
- package/dist/lib/dynamo/query.js.map +1 -1
- package/dist/lib/dynamo/scan.js +17 -13
- package/dist/lib/dynamo/scan.js.map +1 -1
- package/dist/lib/dynamo/serializer.js +11 -7
- package/dist/lib/dynamo/serializer.js.map +1 -1
- package/dist/lib/dynamo/utils.js +19 -14
- package/dist/lib/dynamo/utils.js.map +1 -1
- package/dist/lib/dynamodb-value.js +3 -3
- package/dist/lib/dynamodb-value.js.map +1 -1
- package/dist/lib/index.js +6 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/tools/express.js +21 -15
- package/dist/tools/express.js.map +1 -1
- package/dist/tools/index.js +6 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/shared.js +12 -6
- package/dist/tools/shared.js.map +1 -1
- package/package.json +16 -15
package/dist/exec-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec-cli.js","sourceRoot":"","sources":["../src/exec-cli.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;;;;;;;;;;GAeG;AACH,sDAA8B;AAE9B;;wHAEwH;AACxH,yBAAyB;AACzB,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAClC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAE/C,qCAAqC;AACrC,qCAAgD;AAChD,oCAAqD;AAErD,qBAAqB;AACrB,MAAM,EAAE,GAAG,WAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACjC,MAAM,KAAK,GAAG,oBAAY,
|
|
1
|
+
{"version":3,"file":"exec-cli.js","sourceRoot":"","sources":["../src/exec-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `abstract-service.ts`
|
|
3
|
+
* - common service design pattern to build micro-service backend.
|
|
4
|
+
*
|
|
5
|
+
* @author Tim Hong <tim@lemoncloud.io>
|
|
6
|
+
* @date 2021-02-23 initial version
|
|
7
|
+
* @author Steve <steve@lemoncloud.io>
|
|
8
|
+
* @date 2022-02-18 optimized search w/ ES6.8
|
|
9
|
+
* @date 2022-02-22 optimized w/ `lemon-core#3.0` and `@elastic/elasticsearch`
|
|
10
|
+
* @date 2022-02-24 use `$id` in elastic-search as `_id` in dynamo-table.
|
|
11
|
+
* @date 2022-03-15 optimized w/ `AbstractProxy`
|
|
12
|
+
* @date 2022-03-17 optimized w/ `lemon-core#3.0.2` and use `env.ES6_DOCTYPE`
|
|
13
|
+
* @date 2022-03-31 optimized w/ unit test spec.
|
|
14
|
+
* @date 2022-05-19 optimized `CacheService` w/ typed key.
|
|
15
|
+
*
|
|
16
|
+
* @origin see `lemon-accounts-api/src/service/core-service.ts`
|
|
17
|
+
* @copyright (C) 2021 LemonCloud Co Ltd. - All Rights Reserved.
|
|
18
|
+
*/
|
|
19
|
+
import { AbstractManager, CacheService, CoreModel, CoreModelFilterable, DynamoOption, DynamoStreamEvent, Elastic6Option, Elastic6QueryService, Elastic6Service, GeneralKeyMaker, NextContext, NextIdentityAccess, StorageMakeable } from '../cores/';
|
|
20
|
+
import elasticsearch from '@elastic/elasticsearch';
|
|
21
|
+
/**
|
|
22
|
+
* authentication helper - get identity-id from context
|
|
23
|
+
* @param context the current request context.
|
|
24
|
+
*/
|
|
25
|
+
export declare function asIdentityId(context: NextContext): string | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* extract field names from models
|
|
28
|
+
* - only fields start with lowercase, or all upper.
|
|
29
|
+
*/
|
|
30
|
+
export declare const filterFields: (fields: string[], base?: string[]) => string[];
|
|
31
|
+
/**
|
|
32
|
+
* interface `ModelSynchronizer`
|
|
33
|
+
*/
|
|
34
|
+
export interface ModelSynchronizer<T extends CoreModel<string> = CoreModel<string>> {
|
|
35
|
+
/**
|
|
36
|
+
* callback for filtering items
|
|
37
|
+
* @param id
|
|
38
|
+
* @param item
|
|
39
|
+
*/
|
|
40
|
+
filter?(id: string, item: T): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* callback invoked before synchronization
|
|
43
|
+
* @param id
|
|
44
|
+
* @param eventName
|
|
45
|
+
* @param item
|
|
46
|
+
* @param diff
|
|
47
|
+
* @param prev
|
|
48
|
+
*/
|
|
49
|
+
onBeforeSync?(id: string, eventName: DynamoStreamEvent, item: T, diff?: string[], prev?: T): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* callback invoked after synchronization
|
|
52
|
+
* @param id
|
|
53
|
+
* @param eventName
|
|
54
|
+
* @param item
|
|
55
|
+
* @param diff
|
|
56
|
+
* @param prev
|
|
57
|
+
*/
|
|
58
|
+
onAfterSync?(id: string, eventName: DynamoStreamEvent, item: T, diff?: string[], prev?: T): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* abstract class `CoreService`
|
|
62
|
+
* - common abstract to build user service
|
|
63
|
+
*
|
|
64
|
+
* @abstract
|
|
65
|
+
*/
|
|
66
|
+
export declare abstract class CoreService<Model extends CoreModel<ModelType>, ModelType extends string> extends GeneralKeyMaker<ModelType> implements StorageMakeable<Model, ModelType> {
|
|
67
|
+
/** dynamo table name */
|
|
68
|
+
readonly tableName: string;
|
|
69
|
+
/** global index name of elasticsearch */
|
|
70
|
+
readonly idName: string;
|
|
71
|
+
/** (optional) current timestamp */
|
|
72
|
+
protected current: number;
|
|
73
|
+
/**
|
|
74
|
+
* constructor
|
|
75
|
+
* @param tableName target table-name (or .yml dummy file-name)
|
|
76
|
+
* @param ns namespace of dataset
|
|
77
|
+
* @param idName must be `_id` unless otherwise
|
|
78
|
+
*/
|
|
79
|
+
protected constructor(tableName?: string, ns?: string, idName?: string);
|
|
80
|
+
/**
|
|
81
|
+
* override current time
|
|
82
|
+
*/
|
|
83
|
+
setCurrent: (current: number) => number;
|
|
84
|
+
/**
|
|
85
|
+
* get the current dynamo-options.
|
|
86
|
+
*/
|
|
87
|
+
get dynamoOptions(): DynamoOption;
|
|
88
|
+
/**
|
|
89
|
+
* create storage-service w/ fields list.
|
|
90
|
+
*/
|
|
91
|
+
makeStorageService<T extends Model>(type: ModelType, fields: string[], filter: CoreModelFilterable<T>): import("../cores/").TypedStorageService<T, ModelType>;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* class: `CoreManager`
|
|
95
|
+
* - shared core manager for all model
|
|
96
|
+
*
|
|
97
|
+
* @abstract
|
|
98
|
+
*/
|
|
99
|
+
export declare abstract class CoreManager<Model extends CoreModel<ModelType>, ModelType extends string, Service extends CoreService<Model, ModelType>> extends AbstractManager<Model, Service, ModelType> {
|
|
100
|
+
/**
|
|
101
|
+
* constructor
|
|
102
|
+
* @protected
|
|
103
|
+
*/
|
|
104
|
+
protected constructor(type: ModelType, parent: Service, fields: string[], uniqueField?: string);
|
|
105
|
+
/**
|
|
106
|
+
* say hello()
|
|
107
|
+
*/
|
|
108
|
+
hello: () => string;
|
|
109
|
+
/**
|
|
110
|
+
* get existence of model
|
|
111
|
+
* @param id
|
|
112
|
+
*/
|
|
113
|
+
exists(id: string): Promise<boolean>;
|
|
114
|
+
/**
|
|
115
|
+
* find model - retrieve or null
|
|
116
|
+
* @param id model-id
|
|
117
|
+
*/
|
|
118
|
+
find(id: string): Promise<Model | null>;
|
|
119
|
+
/**
|
|
120
|
+
* get model by key
|
|
121
|
+
* @param key global id(like primary-key)
|
|
122
|
+
*/
|
|
123
|
+
findByKey(key: string): Promise<Model | null>;
|
|
124
|
+
/**
|
|
125
|
+
* batch get models
|
|
126
|
+
* - retrieve multi models per each id
|
|
127
|
+
* - must be matched with idList in sequence order.
|
|
128
|
+
*
|
|
129
|
+
* @param idList list of id
|
|
130
|
+
* @param parrallel (optional) in parrallel size
|
|
131
|
+
*/
|
|
132
|
+
getMulti(idList: string[], parrallel?: number): Promise<(Model | null)[]>;
|
|
133
|
+
/**
|
|
134
|
+
* batch get models in map by idName
|
|
135
|
+
*/
|
|
136
|
+
getMulti$(idList: string[], idName?: string, parrallel?: number): Promise<{
|
|
137
|
+
[id: string]: Model;
|
|
138
|
+
}>;
|
|
139
|
+
/**
|
|
140
|
+
* get by unique field value
|
|
141
|
+
* @param uniqueValue
|
|
142
|
+
*/
|
|
143
|
+
getByUniqueField(uniqueValue: string): Promise<Model>;
|
|
144
|
+
/**
|
|
145
|
+
* find model by unique field value - retrieve or null
|
|
146
|
+
* @param uniqueValue
|
|
147
|
+
*/
|
|
148
|
+
findByUniqueField(uniqueValue: string): Promise<Model | null>;
|
|
149
|
+
/**
|
|
150
|
+
* prepare model
|
|
151
|
+
* - override `AbstractManager.prepare()`
|
|
152
|
+
*/
|
|
153
|
+
prepare(id: string, $def?: Model, isCreate?: boolean): Promise<Model>;
|
|
154
|
+
/**
|
|
155
|
+
* update model
|
|
156
|
+
* - override 'AbstractManager.insert()'
|
|
157
|
+
*
|
|
158
|
+
* @deprecated use `AbstractProxy`
|
|
159
|
+
*/
|
|
160
|
+
insert(model: Model, initSeq?: number): Promise<Model>;
|
|
161
|
+
/**
|
|
162
|
+
* create or update model
|
|
163
|
+
* @param id model id
|
|
164
|
+
* @param model model data
|
|
165
|
+
*/
|
|
166
|
+
save(id: string, model: Model): Promise<Model>;
|
|
167
|
+
/**
|
|
168
|
+
* update model
|
|
169
|
+
* - override 'AbstractManager.update()'
|
|
170
|
+
*/
|
|
171
|
+
update(id: string, model: Model, $inc?: Model): Promise<Model>;
|
|
172
|
+
/**
|
|
173
|
+
* update or create model
|
|
174
|
+
* - override 'AbstractManager.updateOrCreate()'
|
|
175
|
+
*/
|
|
176
|
+
updateOrCreate(id: string, model: Model, $inc?: Model): Promise<Model>;
|
|
177
|
+
/**
|
|
178
|
+
* delete model
|
|
179
|
+
* - override 'AbstractManager.delete()'
|
|
180
|
+
*/
|
|
181
|
+
delete(id: string, destroy?: boolean): Promise<Model>;
|
|
182
|
+
/**
|
|
183
|
+
* prepare default-model when creation
|
|
184
|
+
* @param $def base-model
|
|
185
|
+
*/
|
|
186
|
+
protected prepareDefault($def: Model): Model;
|
|
187
|
+
/**
|
|
188
|
+
* update lookup and delete old one if exists
|
|
189
|
+
*/
|
|
190
|
+
protected updateLookup(id: string, model: Model, $org?: Model): Promise<void>;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* proxy of manager
|
|
194
|
+
* - save model internally, and update only if changed properties.
|
|
195
|
+
* Model extends CoreModel<ModelType>, ModelType extends string
|
|
196
|
+
*/
|
|
197
|
+
export declare class ManagerProxy<Model extends CoreModel<ModelType>, Manager extends CoreManager<Model, ModelType, CoreService<Model, ModelType>>, ModelType extends string = string> {
|
|
198
|
+
readonly $mgr: Manager;
|
|
199
|
+
constructor(proxy: AbstractProxy<string, CoreService<Model, ModelType>>, mgr: Manager);
|
|
200
|
+
/**
|
|
201
|
+
* store the origin model.
|
|
202
|
+
* - `null` means `404 not found`
|
|
203
|
+
*/
|
|
204
|
+
protected readonly _org: {
|
|
205
|
+
[key: string]: Model;
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* store the updated one.
|
|
209
|
+
*/
|
|
210
|
+
protected readonly _new: {
|
|
211
|
+
[key: string]: Model;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* get storage linked.
|
|
215
|
+
*/
|
|
216
|
+
get storage(): import("../cores/").TypedStorageService<Model, ModelType>;
|
|
217
|
+
/**
|
|
218
|
+
* read the origin node (cloned not to change).
|
|
219
|
+
*/
|
|
220
|
+
org(id: string, raw?: boolean): Model;
|
|
221
|
+
/**
|
|
222
|
+
* check if already read.
|
|
223
|
+
*/
|
|
224
|
+
has(id: string): boolean;
|
|
225
|
+
/**
|
|
226
|
+
* read the node.
|
|
227
|
+
* @param id object-id
|
|
228
|
+
* @param defaultOrThrow (optional) create if not exists, or flag to throw error
|
|
229
|
+
*/
|
|
230
|
+
get(id: string, defaultOrThrow?: Model | boolean): Promise<Model>;
|
|
231
|
+
/**
|
|
232
|
+
* 객체 정규화 시킴.
|
|
233
|
+
* - null 에 대해서는 특별히 처리.
|
|
234
|
+
*/
|
|
235
|
+
normal: (N: Model) => Model;
|
|
236
|
+
/**
|
|
237
|
+
* override w/ model
|
|
238
|
+
* @param $org the origin model by `.get(id)`
|
|
239
|
+
* @param model the new model.
|
|
240
|
+
*/
|
|
241
|
+
override: ($org: Model, model: Model) => Model;
|
|
242
|
+
/**
|
|
243
|
+
* update the node.
|
|
244
|
+
*/
|
|
245
|
+
set(id: string, model: Model): Promise<Model>;
|
|
246
|
+
/**
|
|
247
|
+
* increment the field of Object[id]
|
|
248
|
+
* !WARN! this incremented properties should NOT be updated later.
|
|
249
|
+
*/
|
|
250
|
+
inc(id: string, model: Model): Promise<Model>;
|
|
251
|
+
/**
|
|
252
|
+
* get all the updated node.
|
|
253
|
+
*
|
|
254
|
+
* @param onlyUpdated flag to return the only updated set. (useful to check whether to update really!)
|
|
255
|
+
*/
|
|
256
|
+
alls(onlyUpdated?: boolean, onlyValid?: boolean): {
|
|
257
|
+
[key: string]: Model;
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* class: `AbstractProxy`
|
|
262
|
+
* - common abstract based class for Proxy
|
|
263
|
+
*/
|
|
264
|
+
export declare abstract class AbstractProxy<U extends string, T extends CoreService<CoreModel<U>, U>> {
|
|
265
|
+
/** parrallel factor */
|
|
266
|
+
readonly parrallel: number;
|
|
267
|
+
/** (internal) current context */
|
|
268
|
+
readonly context: NextContext;
|
|
269
|
+
/** (internal) backend-service */
|
|
270
|
+
readonly service: T;
|
|
271
|
+
/** (internal) cache service instance */
|
|
272
|
+
readonly cache?: CacheService;
|
|
273
|
+
/**
|
|
274
|
+
* constructor of proxy.
|
|
275
|
+
* @param service user service instance
|
|
276
|
+
* @param parrallel parrallel count (default 2)
|
|
277
|
+
* @param cacheScope prefix of cache-key (like `lemon:SS:` or `lemon:SS:user`)
|
|
278
|
+
*/
|
|
279
|
+
constructor(context: NextContext, service: T, parrallel?: number, cacheScope?: string);
|
|
280
|
+
/**
|
|
281
|
+
* say hello().
|
|
282
|
+
*/
|
|
283
|
+
hello: () => string;
|
|
284
|
+
/**
|
|
285
|
+
* list of manager-proxy
|
|
286
|
+
*/
|
|
287
|
+
protected _proxies: ManagerProxy<any, any>[];
|
|
288
|
+
/**
|
|
289
|
+
* get all proxies in list.
|
|
290
|
+
*/
|
|
291
|
+
protected get allProxies(): ManagerProxy<any, any, string>[];
|
|
292
|
+
/**
|
|
293
|
+
* register this.
|
|
294
|
+
*/
|
|
295
|
+
register(mgr: ManagerProxy<any, any>): void;
|
|
296
|
+
/**
|
|
297
|
+
* 업데이트할 항목을 모두 저장함
|
|
298
|
+
*/
|
|
299
|
+
saveAllUpdates(parrallel?: number): Promise<any[]>;
|
|
300
|
+
/**
|
|
301
|
+
* report via slack.
|
|
302
|
+
*/
|
|
303
|
+
report: (title: string, data: any) => Promise<string>;
|
|
304
|
+
/**
|
|
305
|
+
* featch identity-acess from `lemon-accounts-api`
|
|
306
|
+
*/
|
|
307
|
+
protected fetchIdentityAccess(identityId: string, domain?: string): Promise<{
|
|
308
|
+
identityId: string;
|
|
309
|
+
$identity: NextIdentityAccess<any>;
|
|
310
|
+
}>;
|
|
311
|
+
/**
|
|
312
|
+
* the cached identity model
|
|
313
|
+
*/
|
|
314
|
+
protected _identity: {
|
|
315
|
+
[key: string]: NextIdentityAccess;
|
|
316
|
+
};
|
|
317
|
+
getIdentity$(identityId: string): Promise<NextIdentityAccess>;
|
|
318
|
+
/**
|
|
319
|
+
* get current identity-id
|
|
320
|
+
*/
|
|
321
|
+
getCurrentIdentityId(throwable?: boolean): Promise<string>;
|
|
322
|
+
/**
|
|
323
|
+
* get the current identity object (or throw access-error)
|
|
324
|
+
*/
|
|
325
|
+
getCurrentIdentity$(throwable?: boolean): Promise<NextIdentityAccess>;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* type `SearchResult`
|
|
329
|
+
*/
|
|
330
|
+
export interface SearchResult<T, U = any> {
|
|
331
|
+
/**
|
|
332
|
+
* total count of items searched
|
|
333
|
+
*/
|
|
334
|
+
total: number;
|
|
335
|
+
/**
|
|
336
|
+
* item list
|
|
337
|
+
*/
|
|
338
|
+
list: T[];
|
|
339
|
+
/**
|
|
340
|
+
* pagination cursor
|
|
341
|
+
*/
|
|
342
|
+
last?: string[];
|
|
343
|
+
/**
|
|
344
|
+
* aggregation result
|
|
345
|
+
*/
|
|
346
|
+
aggregations?: U;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* class `Elastic6Synchronizer`
|
|
350
|
+
* - listen DynamoDBStream events and index into Elasticsearch
|
|
351
|
+
*/
|
|
352
|
+
export declare class Elastic6Synchronizer {
|
|
353
|
+
/**
|
|
354
|
+
* model synchronizer map
|
|
355
|
+
* @private
|
|
356
|
+
*/
|
|
357
|
+
private readonly synchronizerMap;
|
|
358
|
+
/**
|
|
359
|
+
* default model synchronizer
|
|
360
|
+
* @private
|
|
361
|
+
*/
|
|
362
|
+
private readonly defModelSynchronizer;
|
|
363
|
+
/**
|
|
364
|
+
* constructor
|
|
365
|
+
* @param elastic elastic6-service instance
|
|
366
|
+
* @param dynamoOptions dynamo options
|
|
367
|
+
*/
|
|
368
|
+
constructor(elastic: Elastic6Service, dynamoOptions: DynamoOption | {
|
|
369
|
+
tableName: string;
|
|
370
|
+
});
|
|
371
|
+
/**
|
|
372
|
+
* set synchronizer for the model
|
|
373
|
+
* @param type the model-type
|
|
374
|
+
* @param handler (optional) custom synchronizer.
|
|
375
|
+
*/
|
|
376
|
+
enableSynchronization(type: string, handler?: ModelSynchronizer): void;
|
|
377
|
+
/**
|
|
378
|
+
* internal callback for filtering
|
|
379
|
+
* @private
|
|
380
|
+
*/
|
|
381
|
+
private filter;
|
|
382
|
+
/**
|
|
383
|
+
* internal callback on before synchronization
|
|
384
|
+
* @private
|
|
385
|
+
*/
|
|
386
|
+
private onBeforeSync;
|
|
387
|
+
/**
|
|
388
|
+
* internal callback on after synchronization
|
|
389
|
+
* @private
|
|
390
|
+
*/
|
|
391
|
+
private onAfterSync;
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* class `ElasticInstance`
|
|
395
|
+
* - to manipulate the shared Elasticsearch resources.
|
|
396
|
+
*/
|
|
397
|
+
export declare class Elastic6Instance {
|
|
398
|
+
/**
|
|
399
|
+
* Elasticsearch client
|
|
400
|
+
*/
|
|
401
|
+
readonly client?: elasticsearch.Client;
|
|
402
|
+
/**
|
|
403
|
+
* Elastic6Service instance
|
|
404
|
+
*/
|
|
405
|
+
readonly elastic?: Elastic6Service;
|
|
406
|
+
/**
|
|
407
|
+
* Elastic6QueryService instance
|
|
408
|
+
*/
|
|
409
|
+
readonly query?: Elastic6QueryService<any>;
|
|
410
|
+
/**
|
|
411
|
+
* Elastic6Synchronizer instance
|
|
412
|
+
*/
|
|
413
|
+
readonly synchronizer?: Elastic6Synchronizer;
|
|
414
|
+
/**
|
|
415
|
+
* default constructor
|
|
416
|
+
*/
|
|
417
|
+
constructor({ endpoint, indexName, esVersion, esDocType, tableName, autocompleteFields, }: {
|
|
418
|
+
/** url endpoint */
|
|
419
|
+
endpoint: string;
|
|
420
|
+
/** name of index */
|
|
421
|
+
indexName: string;
|
|
422
|
+
/** ES engine version(6.2 ~ 7.x) */
|
|
423
|
+
esVersion: string;
|
|
424
|
+
/** doc-type (only valid under 6.2) */
|
|
425
|
+
esDocType: string;
|
|
426
|
+
/** dynamo-table to sync */
|
|
427
|
+
tableName: string;
|
|
428
|
+
/** field to make auto-complele */
|
|
429
|
+
autocompleteFields: string[];
|
|
430
|
+
});
|
|
431
|
+
/**
|
|
432
|
+
* read the current elastic6-option.
|
|
433
|
+
*/
|
|
434
|
+
get options(): Elastic6Option;
|
|
435
|
+
/**
|
|
436
|
+
* create Elasticsearch index w/ custom settings
|
|
437
|
+
*/
|
|
438
|
+
createIndex(): Promise<any>;
|
|
439
|
+
/**
|
|
440
|
+
* destroy Elasticsearch index
|
|
441
|
+
*/
|
|
442
|
+
destroyIndex(): Promise<any>;
|
|
443
|
+
/**
|
|
444
|
+
* display index settings and mappings
|
|
445
|
+
*/
|
|
446
|
+
describeIndex(): Promise<any>;
|
|
447
|
+
/**
|
|
448
|
+
* multi get
|
|
449
|
+
* @param _ids _id list
|
|
450
|
+
*/
|
|
451
|
+
mget<T>(_ids: string[]): Promise<(T | null)[]>;
|
|
452
|
+
/**
|
|
453
|
+
* search raw query
|
|
454
|
+
* @param body Elasticsearch Query DSL
|
|
455
|
+
* @param params see 'search_type' in Elasticsearch documentation
|
|
456
|
+
*/
|
|
457
|
+
search<T>(body: any, params?: {
|
|
458
|
+
indexName?: string;
|
|
459
|
+
searchType?: 'query_then_fetch' | 'dfs_query_then_fetch';
|
|
460
|
+
}): Promise<SearchResult<T>>;
|
|
461
|
+
/**
|
|
462
|
+
* create async generator that yields items queried until last
|
|
463
|
+
* @param body Elasticsearch Query DSL
|
|
464
|
+
* @param searchType see 'search_type' in Elasticsearch documentation
|
|
465
|
+
*/
|
|
466
|
+
generateSearchResult<T>(body: any, searchType?: 'query_then_fetch' | 'dfs_query_then_fetch'): AsyncGenerator<T[], void, unknown>;
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* from Elasticsearch document to model item
|
|
470
|
+
* - replace the elastic's `$id` field to `_id` of dynamo-table.
|
|
471
|
+
*
|
|
472
|
+
* @param _source from elastic-search
|
|
473
|
+
* @param idName (optional) global id of elastic. (default is `$id`)
|
|
474
|
+
*/
|
|
475
|
+
export declare function sourceToItem<T>(_source: T, idName?: string): T;
|
|
476
|
+
/**
|
|
477
|
+
* const `$ES6`
|
|
478
|
+
* - default instance as a singleton by env configuration.
|
|
479
|
+
*/
|
|
480
|
+
export declare const $ES6: {
|
|
481
|
+
/**
|
|
482
|
+
* Elasticsearch client
|
|
483
|
+
*/
|
|
484
|
+
readonly client?: elasticsearch.Client;
|
|
485
|
+
/**
|
|
486
|
+
* Elastic6Service instance
|
|
487
|
+
*/
|
|
488
|
+
readonly elastic?: Elastic6Service;
|
|
489
|
+
/**
|
|
490
|
+
* Elastic6QueryService instance
|
|
491
|
+
*/
|
|
492
|
+
readonly query?: Elastic6QueryService<any>;
|
|
493
|
+
/**
|
|
494
|
+
* Elastic6Synchronizer instance
|
|
495
|
+
*/
|
|
496
|
+
readonly synchronizer?: Elastic6Synchronizer;
|
|
497
|
+
/**
|
|
498
|
+
* read the current elastic6-option.
|
|
499
|
+
*/
|
|
500
|
+
readonly options: Elastic6Option;
|
|
501
|
+
/**
|
|
502
|
+
* create Elasticsearch index w/ custom settings
|
|
503
|
+
*/
|
|
504
|
+
createIndex(): Promise<any>;
|
|
505
|
+
/**
|
|
506
|
+
* destroy Elasticsearch index
|
|
507
|
+
*/
|
|
508
|
+
destroyIndex(): Promise<any>;
|
|
509
|
+
/**
|
|
510
|
+
* display index settings and mappings
|
|
511
|
+
*/
|
|
512
|
+
describeIndex(): Promise<any>;
|
|
513
|
+
/**
|
|
514
|
+
* multi get
|
|
515
|
+
* @param _ids _id list
|
|
516
|
+
*/
|
|
517
|
+
mget<T>(_ids: string[]): Promise<T[]>;
|
|
518
|
+
/**
|
|
519
|
+
* search raw query
|
|
520
|
+
* @param body Elasticsearch Query DSL
|
|
521
|
+
* @param params see 'search_type' in Elasticsearch documentation
|
|
522
|
+
*/
|
|
523
|
+
search<T_1>(body: any, params?: {
|
|
524
|
+
indexName?: string;
|
|
525
|
+
searchType?: 'query_then_fetch' | 'dfs_query_then_fetch';
|
|
526
|
+
}): Promise<SearchResult<T_1, any>>;
|
|
527
|
+
/**
|
|
528
|
+
* create async generator that yields items queried until last
|
|
529
|
+
* @param body Elasticsearch Query DSL
|
|
530
|
+
* @param searchType see 'search_type' in Elasticsearch documentation
|
|
531
|
+
*/
|
|
532
|
+
generateSearchResult<T_2>(body: any, searchType?: 'query_then_fetch' | 'dfs_query_then_fetch'): AsyncGenerator<T_2[], void, unknown>;
|
|
533
|
+
};
|