onecore 0.0.42 → 0.0.44

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/lib/index.js CHANGED
@@ -32,6 +32,14 @@ var ViewManager = (function () {
32
32
  return ViewManager;
33
33
  }());
34
34
  exports.ViewManager = ViewManager;
35
+ var DefaultViewService = (function (_super) {
36
+ __extends(DefaultViewService, _super);
37
+ function DefaultViewService() {
38
+ return _super !== null && _super.apply(this, arguments) || this;
39
+ }
40
+ return DefaultViewService;
41
+ }(ViewManager));
42
+ exports.DefaultViewService = DefaultViewService;
35
43
  var ViewSearchManager = (function (_super) {
36
44
  __extends(ViewSearchManager, _super);
37
45
  function ViewSearchManager(find, repo) {
@@ -86,6 +94,30 @@ var GenericManager = (function (_super) {
86
94
  return GenericManager;
87
95
  }(ViewManager));
88
96
  exports.GenericManager = GenericManager;
97
+ var DefaultGenericService = (function (_super) {
98
+ __extends(DefaultGenericService, _super);
99
+ function DefaultGenericService() {
100
+ return _super !== null && _super.apply(this, arguments) || this;
101
+ }
102
+ return DefaultGenericService;
103
+ }(GenericManager));
104
+ exports.DefaultGenericService = DefaultGenericService;
105
+ var DefaultService = (function (_super) {
106
+ __extends(DefaultService, _super);
107
+ function DefaultService() {
108
+ return _super !== null && _super.apply(this, arguments) || this;
109
+ }
110
+ return DefaultService;
111
+ }(GenericManager));
112
+ exports.DefaultService = DefaultService;
113
+ var DefaultGenericSearchService = (function (_super) {
114
+ __extends(DefaultGenericSearchService, _super);
115
+ function DefaultGenericSearchService() {
116
+ return _super !== null && _super.apply(this, arguments) || this;
117
+ }
118
+ return DefaultGenericSearchService;
119
+ }(GenericManager));
120
+ exports.DefaultGenericSearchService = DefaultGenericSearchService;
89
121
  var Manager = (function (_super) {
90
122
  __extends(Manager, _super);
91
123
  function Manager(find, repo) {
@@ -100,16 +132,20 @@ var Manager = (function (_super) {
100
132
  return Manager;
101
133
  }(GenericManager));
102
134
  exports.Manager = Manager;
103
- exports.DefaultViewService = ViewManager;
104
- exports.DefaultGenericService = GenericManager;
105
- exports.GenericSearchManager = Manager;
106
- exports.DefaultService = GenericManager;
107
- exports.DefaultGenericSearchService = GenericManager;
135
+ var GenericSearchManager = (function (_super) {
136
+ __extends(GenericSearchManager, _super);
137
+ function GenericSearchManager() {
138
+ return _super !== null && _super.apply(this, arguments) || this;
139
+ }
140
+ return GenericSearchManager;
141
+ }(Manager));
142
+ exports.GenericSearchManager = GenericSearchManager;
108
143
  var SavedService = (function () {
109
- function SavedService(repository, query, max) {
144
+ function SavedService(repository, query, max, autoRemove) {
110
145
  this.repository = repository;
111
146
  this.query = query;
112
147
  this.max = max;
148
+ this.autoRemove = autoRemove;
113
149
  this.load = this.load.bind(this);
114
150
  this.save = this.save.bind(this);
115
151
  this.remove = this.remove.bind(this);
@@ -136,9 +172,17 @@ var SavedService = (function () {
136
172
  else {
137
173
  items.push(itemId);
138
174
  if (items.length > _this.max) {
139
- items.shift();
175
+ if (_this.autoRemove) {
176
+ items.shift();
177
+ return _this.repository.update(id, items);
178
+ }
179
+ else {
180
+ return Promise.resolve(-1);
181
+ }
182
+ }
183
+ else {
184
+ return _this.repository.update(id, items);
140
185
  }
141
- return _this.repository.update(id, items);
142
186
  }
143
187
  }
144
188
  });
@@ -165,3 +209,11 @@ var SavedService = (function () {
165
209
  return SavedService;
166
210
  }());
167
211
  exports.SavedService = SavedService;
212
+ var SavedManager = (function (_super) {
213
+ __extends(SavedManager, _super);
214
+ function SavedManager() {
215
+ return _super !== null && _super.apply(this, arguments) || this;
216
+ }
217
+ return SavedManager;
218
+ }(SavedService));
219
+ exports.SavedManager = SavedManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "onecore",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "description": "onecore",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
package/src/index.ts CHANGED
@@ -67,6 +67,40 @@ import { ViewService } from './service/ViewService';
67
67
  export type Search<T, F> = (s: F, limit?: number, offset?: number | string, fields?: string[]) => Promise<SearchResult<T>>;
68
68
  export type SearchFunc<T, F> = Search<T, F>;
69
69
 
70
+ export interface KeypairResult {
71
+ rsaEncrypted: string;
72
+ data: {
73
+ shareKey: string;
74
+ salt: string;
75
+ };
76
+ }
77
+ export interface CryptoOption {
78
+ isEncoded64?: boolean;
79
+ convertKey2Bytes?: boolean;
80
+ }
81
+ export interface CryptoPort {
82
+ exchangeKeypair: (pk: string) => Promise<KeypairResult>;
83
+ encryptAESMessage: (aesKey: string, salt: string, dataJSON: string, options?: CryptoOption) => Promise<string>;
84
+ decryptAESMessage: <T>(messageEncrypted: string, clientShKey: string, clientSalt: string, options?: CryptoOption) => Promise<T | string>;
85
+ encrypt: (pk: any, message: string) => string;
86
+ decrypt: (sk: any, data: string) => string;
87
+ encryptAES: (key: string, message: string) => string;
88
+ decryptAES: (key: string, ciphertext: string, iv: string) => string;
89
+ hashHMAC: (key: string, data: string) => string;
90
+ hashData: (text: string) => string;
91
+ }
92
+ export interface CryptoService {
93
+ exchangeKeypair: (pk: string) => Promise<KeypairResult>;
94
+ encryptAESMessage: (aesKey: string, salt: string, dataJSON: string, options?: CryptoOption) => Promise<string>;
95
+ decryptAESMessage: <T>(messageEncrypted: string, clientShKey: string, clientSalt: string, options?: CryptoOption) => Promise<T | string>;
96
+ encrypt: (pk: any, message: string) => string;
97
+ decrypt: (sk: any, data: string) => string;
98
+ encryptAES: (key: string, message: string) => string;
99
+ decryptAES: (key: string, ciphertext: string, iv: string) => string;
100
+ hashHMAC: (key: string, data: string) => string;
101
+ hashData: (text: string) => string;
102
+ }
103
+
70
104
  export interface ExceptionHandler {
71
105
  handleException(rs: string, err: any, i?: number, filename?: string): void;
72
106
  }
@@ -108,6 +142,10 @@ export class ViewManager<T, ID> implements ViewService<T, ID> {
108
142
  return this.r.load(id, ctx);
109
143
  }
110
144
  }
145
+ // tslint:disable-next-line:max-classes-per-file
146
+ export class DefaultViewService<T, ID> extends ViewManager<T, ID> {
147
+ }
148
+
111
149
  // tslint:disable-next-line:max-classes-per-file
112
150
  export class ViewSearchManager<T, ID, F extends Filter> extends ViewManager<T, ID> implements ViewSearchService<T, ID, F> {
113
151
  constructor(public find: Search<T, F>, repo: ViewRepository<T, ID>) {
@@ -151,6 +189,15 @@ export class GenericManager<T, ID> extends ViewManager<T, ID> implements Generic
151
189
  }
152
190
  }
153
191
  // tslint:disable-next-line:max-classes-per-file
192
+ export class DefaultGenericService<T, ID> extends GenericManager<T, ID> {
193
+ }
194
+ // tslint:disable-next-line:max-classes-per-file
195
+ export class DefaultService<T, ID> extends GenericManager<T, ID> {
196
+ }
197
+ // tslint:disable-next-line:max-classes-per-file
198
+ export class DefaultGenericSearchService<T, ID> extends GenericManager<T, ID> {
199
+ }
200
+ // tslint:disable-next-line:max-classes-per-file
154
201
  export class Manager<T, ID, F extends Filter> extends GenericManager<T, ID> implements GenericSearchService<T, ID, number, F> {
155
202
  constructor(public find: Search<T, F>, repo: GenericRepository<T, ID>) {
156
203
  super(repo);
@@ -160,11 +207,9 @@ export class Manager<T, ID, F extends Filter> extends GenericManager<T, ID> impl
160
207
  return this.find(s, limit, offset, fields);
161
208
  }
162
209
  }
163
- export const DefaultViewService = ViewManager;
164
- export const DefaultGenericService = GenericManager;
165
- export const GenericSearchManager = Manager;
166
- export const DefaultService = GenericManager;
167
- export const DefaultGenericSearchService = GenericManager;
210
+ // tslint:disable-next-line:max-classes-per-file
211
+ export class GenericSearchManager<T, ID, F extends Filter> extends Manager<T, ID, F> {
212
+ }
168
213
  export interface SavedRepository<ID> {
169
214
  load(id: ID): Promise<string[]|null>;
170
215
  insert(id: ID, arr: string[]): Promise<number>;
@@ -172,7 +217,7 @@ export interface SavedRepository<ID> {
172
217
  }
173
218
  // tslint:disable-next-line:max-classes-per-file
174
219
  export class SavedService<ID, T> {
175
- constructor(protected repository: SavedRepository<ID>, protected query: (ids: string[]) => Promise<T[]>, public max: number) {
220
+ constructor(protected repository: SavedRepository<ID>, protected query: (ids: string[]) => Promise<T[]>, public max: number, public autoRemove?: boolean) {
176
221
  this.load = this.load.bind(this);
177
222
  this.save = this.save.bind(this);
178
223
  this.remove = this.remove.bind(this);
@@ -195,9 +240,15 @@ export class SavedService<ID, T> {
195
240
  } else {
196
241
  items.push(itemId);
197
242
  if (items.length > this.max) {
198
- items.shift();
243
+ if (this.autoRemove) {
244
+ items.shift();
245
+ return this.repository.update(id, items);
246
+ } else {
247
+ return Promise.resolve(-1);
248
+ }
249
+ } else {
250
+ return this.repository.update(id, items);
199
251
  }
200
- return this.repository.update(id, items);
201
252
  }
202
253
  }
203
254
  });
@@ -219,3 +270,6 @@ export class SavedService<ID, T> {
219
270
  });
220
271
  }
221
272
  }
273
+ // tslint:disable-next-line:max-classes-per-file
274
+ export class SavedManager<ID, T> extends SavedService<ID, T> {
275
+ }
package/src/metadata.ts CHANGED
@@ -50,6 +50,7 @@ export interface Attribute {
50
50
  typeof?: Attributes;
51
51
  true?: string|number;
52
52
  false?: string|number;
53
+ noValidate?: boolean;
53
54
  getString?: (v: any) => string;
54
55
  }
55
56
  export interface Attributes {