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.
Files changed (189) hide show
  1. package/README.md +13 -21
  2. package/dist/common/test-helper.js +19 -11
  3. package/dist/common/test-helper.js.map +1 -1
  4. package/dist/controllers/dummy-controller.d.ts +1 -1
  5. package/dist/controllers/dummy-controller.js +2 -2
  6. package/dist/controllers/dummy-controller.js.map +1 -1
  7. package/dist/controllers/general-api-controller.d.ts +1 -1
  8. package/dist/controllers/general-api-controller.js +5 -5
  9. package/dist/controllers/general-api-controller.js.map +1 -1
  10. package/dist/controllers/general-controller.js +2 -1
  11. package/dist/controllers/general-controller.js.map +1 -1
  12. package/dist/controllers/index.js +6 -2
  13. package/dist/controllers/index.js.map +1 -1
  14. package/dist/cores/api/api-service.d.ts +239 -0
  15. package/dist/cores/api/api-service.js +674 -0
  16. package/dist/cores/api/api-service.js.map +1 -0
  17. package/dist/cores/api/index.d.ts +10 -0
  18. package/dist/cores/api/index.js +27 -0
  19. package/dist/cores/api/index.js.map +1 -0
  20. package/dist/cores/api-service.js +19 -18
  21. package/dist/cores/api-service.js.map +1 -1
  22. package/dist/cores/aws/aws-kms-service.d.ts +53 -2
  23. package/dist/cores/aws/aws-kms-service.js +112 -29
  24. package/dist/cores/aws/aws-kms-service.js.map +1 -1
  25. package/dist/cores/aws/aws-s3-service.js +19 -18
  26. package/dist/cores/aws/aws-s3-service.js.map +1 -1
  27. package/dist/cores/aws/aws-sns-service.js +10 -10
  28. package/dist/cores/aws/aws-sns-service.js.map +1 -1
  29. package/dist/cores/aws/aws-sqs-service.js +12 -12
  30. package/dist/cores/aws/aws-sqs-service.js.map +1 -1
  31. package/dist/cores/aws/index.js +1 -1
  32. package/dist/cores/cache/cache-service.d.ts +440 -0
  33. package/dist/cores/cache/cache-service.js +967 -0
  34. package/dist/cores/cache/cache-service.js.map +1 -0
  35. package/dist/cores/cache/index.d.ts +10 -0
  36. package/dist/cores/cache/index.js +27 -0
  37. package/dist/cores/cache/index.js.map +1 -0
  38. package/dist/cores/cache-service.d.ts +54 -18
  39. package/dist/cores/cache-service.js +56 -45
  40. package/dist/cores/cache-service.js.map +1 -1
  41. package/dist/cores/config/config-service.js +11 -10
  42. package/dist/cores/config/config-service.js.map +1 -1
  43. package/dist/cores/core-services.js +6 -2
  44. package/dist/cores/core-services.js.map +1 -1
  45. package/dist/cores/core-types.d.ts +42 -12
  46. package/dist/cores/dynamo/dynamo-query-service.d.ts +52 -0
  47. package/dist/cores/dynamo/dynamo-query-service.js +127 -0
  48. package/dist/cores/dynamo/dynamo-query-service.js.map +1 -0
  49. package/dist/cores/dynamo/dynamo-scan-service.d.ts +70 -0
  50. package/dist/cores/dynamo/dynamo-scan-service.js +164 -0
  51. package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -0
  52. package/dist/cores/dynamo/dynamo-service.d.ts +192 -0
  53. package/dist/cores/dynamo/dynamo-service.js +525 -0
  54. package/dist/cores/dynamo/dynamo-service.js.map +1 -0
  55. package/dist/cores/dynamo/index.d.ts +12 -0
  56. package/dist/cores/dynamo/index.js +29 -0
  57. package/dist/cores/dynamo/index.js.map +1 -0
  58. package/dist/cores/dynamo-query-service.js +7 -7
  59. package/dist/cores/dynamo-query-service.js.map +1 -1
  60. package/dist/cores/dynamo-scan-service.js +8 -8
  61. package/dist/cores/dynamo-scan-service.js.map +1 -1
  62. package/dist/cores/dynamo-service.js +19 -19
  63. package/dist/cores/dynamo-service.js.map +1 -1
  64. package/dist/cores/elastic/elastic6-query-service.d.ts +104 -0
  65. package/dist/cores/elastic/elastic6-query-service.js +510 -0
  66. package/dist/cores/elastic/elastic6-query-service.js.map +1 -0
  67. package/dist/cores/elastic/elastic6-service.d.ts +273 -0
  68. package/dist/cores/elastic/elastic6-service.js +903 -0
  69. package/dist/cores/elastic/elastic6-service.js.map +1 -0
  70. package/dist/cores/elastic/hangul-service.d.ts +102 -0
  71. package/dist/cores/elastic/hangul-service.js +205 -0
  72. package/dist/cores/elastic/hangul-service.js.map +1 -0
  73. package/dist/cores/elastic/index.d.ts +12 -0
  74. package/dist/cores/elastic/index.js +29 -0
  75. package/dist/cores/elastic/index.js.map +1 -0
  76. package/dist/cores/elastic6-query-service.js +7 -7
  77. package/dist/cores/elastic6-query-service.js.map +1 -1
  78. package/dist/cores/elastic6-service.js +57 -65
  79. package/dist/cores/elastic6-service.js.map +1 -1
  80. package/dist/cores/hangul-service.d.ts +17 -3
  81. package/dist/cores/hangul-service.js +17 -8
  82. package/dist/cores/hangul-service.js.map +1 -1
  83. package/dist/cores/http-storage-service.js +1 -1
  84. package/dist/cores/http-storage-service.js.map +1 -1
  85. package/dist/cores/index.d.ts +9 -15
  86. package/dist/cores/index.js +14 -15
  87. package/dist/cores/index.js.map +1 -1
  88. package/dist/cores/lambda/index.js +8 -4
  89. package/dist/cores/lambda/index.js.map +1 -1
  90. package/dist/cores/lambda/lambda-cognito-handler.js +2 -2
  91. package/dist/cores/lambda/lambda-cognito-handler.js.map +1 -1
  92. package/dist/cores/lambda/lambda-cron-handler.js +2 -2
  93. package/dist/cores/lambda/lambda-cron-handler.js.map +1 -1
  94. package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +2 -2
  95. package/dist/cores/lambda/lambda-dynamo-stream-handler.js +20 -20
  96. package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
  97. package/dist/cores/lambda/lambda-handler.js +12 -11
  98. package/dist/cores/lambda/lambda-handler.js.map +1 -1
  99. package/dist/cores/lambda/lambda-notification-handler.js +10 -10
  100. package/dist/cores/lambda/lambda-notification-handler.js.map +1 -1
  101. package/dist/cores/lambda/lambda-sns-handler.js +13 -13
  102. package/dist/cores/lambda/lambda-sns-handler.js.map +1 -1
  103. package/dist/cores/lambda/lambda-sqs-handler.js +13 -13
  104. package/dist/cores/lambda/lambda-sqs-handler.js.map +1 -1
  105. package/dist/cores/lambda/lambda-web-handler.d.ts +158 -8
  106. package/dist/cores/lambda/lambda-web-handler.js +330 -119
  107. package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
  108. package/dist/cores/lambda/lambda-wss-handler.js +16 -12
  109. package/dist/cores/lambda/lambda-wss-handler.js.map +1 -1
  110. package/dist/cores/model-manager.js +11 -11
  111. package/dist/cores/model-manager.js.map +1 -1
  112. package/dist/cores/protocol/protocol-service.d.ts +4 -0
  113. package/dist/cores/protocol/protocol-service.js +46 -40
  114. package/dist/cores/protocol/protocol-service.js.map +1 -1
  115. package/dist/cores/proxy-storage-service.js +7 -10
  116. package/dist/cores/proxy-storage-service.js.map +1 -1
  117. package/dist/cores/redis-storage-service.js +13 -13
  118. package/dist/cores/redis-storage-service.js.map +1 -1
  119. package/dist/cores/storage/http-storage-service.d.ts +22 -0
  120. package/dist/cores/storage/http-storage-service.js +129 -0
  121. package/dist/cores/storage/http-storage-service.js.map +1 -0
  122. package/dist/cores/storage/index.d.ts +14 -0
  123. package/dist/cores/storage/index.js +31 -0
  124. package/dist/cores/storage/index.js.map +1 -0
  125. package/dist/cores/storage/model-manager.d.ts +93 -0
  126. package/dist/cores/storage/model-manager.js +192 -0
  127. package/dist/cores/storage/model-manager.js.map +1 -0
  128. package/dist/cores/storage/proxy-storage-service.d.ts +573 -0
  129. package/dist/cores/storage/proxy-storage-service.js +913 -0
  130. package/dist/cores/storage/proxy-storage-service.js.map +1 -0
  131. package/dist/cores/storage/redis-storage-service.d.ts +183 -0
  132. package/dist/cores/storage/redis-storage-service.js +391 -0
  133. package/dist/cores/storage/redis-storage-service.js.map +1 -0
  134. package/dist/cores/storage/storage-service.d.ts +169 -0
  135. package/dist/cores/storage/storage-service.js +374 -0
  136. package/dist/cores/storage/storage-service.js.map +1 -0
  137. package/dist/cores/storage-service.d.ts +1 -1
  138. package/dist/cores/storage-service.js +10 -8
  139. package/dist/cores/storage-service.js.map +1 -1
  140. package/dist/engine/builder.js +27 -20
  141. package/dist/engine/builder.js.map +1 -1
  142. package/dist/engine/engine.js +53 -44
  143. package/dist/engine/engine.js.map +1 -1
  144. package/dist/engine/index.js +8 -4
  145. package/dist/engine/index.js.map +1 -1
  146. package/dist/engine/utilities.d.ts +4 -3
  147. package/dist/engine/utilities.js +32 -37
  148. package/dist/engine/utilities.js.map +1 -1
  149. package/dist/environ.d.ts +2 -2
  150. package/dist/environ.js +20 -10
  151. package/dist/environ.js.map +1 -1
  152. package/dist/exec-cli.js +26 -26
  153. package/dist/exec-cli.js.map +1 -1
  154. package/dist/extended/abstract-service.d.ts +533 -0
  155. package/dist/extended/abstract-service.js +915 -0
  156. package/dist/extended/abstract-service.js.map +1 -0
  157. package/dist/extended/index.d.ts +10 -0
  158. package/dist/extended/index.js +27 -0
  159. package/dist/extended/index.js.map +1 -0
  160. package/dist/helpers/helpers.d.ts +273 -0
  161. package/dist/helpers/helpers.js +613 -0
  162. package/dist/helpers/helpers.js.map +1 -0
  163. package/dist/helpers/index.d.ts +10 -0
  164. package/dist/helpers/index.js +27 -0
  165. package/dist/helpers/index.js.map +1 -0
  166. package/dist/index.d.ts +7 -5
  167. package/dist/index.js +11 -4
  168. package/dist/index.js.map +1 -1
  169. package/dist/lib/dynamo/expressions.js +35 -27
  170. package/dist/lib/dynamo/expressions.js.map +1 -1
  171. package/dist/lib/dynamo/query.js +24 -20
  172. package/dist/lib/dynamo/query.js.map +1 -1
  173. package/dist/lib/dynamo/scan.js +17 -13
  174. package/dist/lib/dynamo/scan.js.map +1 -1
  175. package/dist/lib/dynamo/serializer.js +11 -7
  176. package/dist/lib/dynamo/serializer.js.map +1 -1
  177. package/dist/lib/dynamo/utils.js +19 -14
  178. package/dist/lib/dynamo/utils.js.map +1 -1
  179. package/dist/lib/dynamodb-value.js +3 -3
  180. package/dist/lib/dynamodb-value.js.map +1 -1
  181. package/dist/lib/index.js +6 -2
  182. package/dist/lib/index.js.map +1 -1
  183. package/dist/tools/express.js +21 -15
  184. package/dist/tools/express.js.map +1 -1
  185. package/dist/tools/index.js +6 -2
  186. package/dist/tools/index.js.map +1 -1
  187. package/dist/tools/shared.js +12 -6
  188. package/dist/tools/shared.js.map +1 -1
  189. package/package.json +16 -15
@@ -1 +1 @@
1
- {"version":3,"file":"exec-cli.js","sourceRoot":"","sources":["../src/exec-cli.ts"],"names":[],"mappings":"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"}
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
+ };