@fjell/client-api 4.4.2 → 4.4.3

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 (71) hide show
  1. package/dist/AItemAPI.js +6 -1
  2. package/dist/AItemAPI.js.map +1 -1
  3. package/dist/CItemAPI.d.ts +12 -11
  4. package/dist/CItemAPI.js +1 -0
  5. package/dist/CItemAPI.js.map +1 -1
  6. package/dist/ClientApi.d.ts +12 -12
  7. package/dist/ClientApiOptions.d.ts +5 -0
  8. package/dist/PItemAPI.d.ts +13 -12
  9. package/dist/PItemAPI.js +13 -11
  10. package/dist/PItemAPI.js.map +1 -1
  11. package/dist/index.cjs +132 -91
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/ops/action.d.ts +2 -2
  14. package/dist/ops/action.js +6 -5
  15. package/dist/ops/action.js.map +1 -1
  16. package/dist/ops/all.d.ts +2 -2
  17. package/dist/ops/all.js +7 -6
  18. package/dist/ops/all.js.map +1 -1
  19. package/dist/ops/allAction.d.ts +2 -2
  20. package/dist/ops/allAction.js +6 -5
  21. package/dist/ops/allAction.js.map +1 -1
  22. package/dist/ops/allFacet.d.ts +5 -0
  23. package/dist/ops/allFacet.js +24 -0
  24. package/dist/ops/allFacet.js.map +1 -0
  25. package/dist/ops/create.d.ts +2 -2
  26. package/dist/ops/create.js +6 -5
  27. package/dist/ops/create.js.map +1 -1
  28. package/dist/ops/facet.d.ts +2 -2
  29. package/dist/ops/facet.js +7 -5
  30. package/dist/ops/facet.js.map +1 -1
  31. package/dist/ops/find.d.ts +2 -2
  32. package/dist/ops/find.js +10 -9
  33. package/dist/ops/find.js.map +1 -1
  34. package/dist/ops/findOne.d.ts +2 -2
  35. package/dist/ops/findOne.js +8 -7
  36. package/dist/ops/findOne.js.map +1 -1
  37. package/dist/ops/get.d.ts +2 -2
  38. package/dist/ops/get.js +6 -5
  39. package/dist/ops/get.js.map +1 -1
  40. package/dist/ops/index.js +2 -0
  41. package/dist/ops/index.js.map +1 -1
  42. package/dist/ops/one.d.ts +2 -2
  43. package/dist/ops/one.js +7 -6
  44. package/dist/ops/one.js.map +1 -1
  45. package/dist/ops/remove.d.ts +2 -2
  46. package/dist/ops/remove.js +6 -5
  47. package/dist/ops/remove.js.map +1 -1
  48. package/dist/ops/update.d.ts +2 -2
  49. package/dist/ops/update.js +6 -5
  50. package/dist/ops/update.js.map +1 -1
  51. package/dist/util/general.d.ts +4 -0
  52. package/package.json +6 -6
  53. package/src/AItemAPI.ts +5 -0
  54. package/src/CItemAPI.ts +12 -19
  55. package/src/ClientApi.ts +59 -65
  56. package/src/ClientApiOptions.ts +5 -0
  57. package/src/PItemAPI.ts +34 -51
  58. package/src/ops/action.ts +19 -23
  59. package/src/ops/all.ts +17 -19
  60. package/src/ops/allAction.ts +18 -21
  61. package/src/ops/allFacet.ts +46 -0
  62. package/src/ops/create.ts +21 -23
  63. package/src/ops/facet.ts +4 -5
  64. package/src/ops/find.ts +20 -23
  65. package/src/ops/findOne.ts +4 -5
  66. package/src/ops/get.ts +17 -20
  67. package/src/ops/index.ts +6 -0
  68. package/src/ops/one.ts +3 -5
  69. package/src/ops/remove.ts +17 -20
  70. package/src/ops/update.ts +17 -19
  71. package/src/util/general.ts +65 -0
package/dist/index.cjs CHANGED
@@ -8,74 +8,78 @@ const deepmerge = require('deepmerge');
8
8
 
9
9
  const LibLogger = Logging.getLogger('@fjell/client-api');
10
10
 
11
- const logger$e = LibLogger.get('client-api', 'ops', 'all');
11
+ const logger$f = LibLogger.get('client-api', 'ops', 'all');
12
12
  const getAllOperation = (api, apiOptions, utilities)=>{
13
- const all = async (query = {}, options = {}, locations = [])=>{
14
- logger$e.default('all', {
15
- query,
16
- locations
17
- });
13
+ const all = async (query = {}, locations = [])=>{
18
14
  utilities.verifyLocations(locations);
19
15
  const loc = locations;
20
16
  const params = core.queryToParams(query);
21
- const requestOptions = Object.assign({}, options, {
17
+ const requestOptions = Object.assign({}, apiOptions.getOptions, {
22
18
  isAuthenticated: apiOptions.allAuthenticated,
23
19
  params
24
20
  });
21
+ logger$f.default('all', {
22
+ query,
23
+ locations,
24
+ requestOptions
25
+ });
25
26
  return utilities.validatePK(await utilities.processArray(api.httpGet(utilities.getPath(loc), requestOptions)));
26
27
  };
27
28
  return all;
28
29
  };
29
30
 
30
- const logger$d = LibLogger.get('client-api', 'ops', 'action');
31
+ const logger$e = LibLogger.get('client-api', 'ops', 'action');
31
32
  const getActionOperation = (api, apiOptions, utilities)=>{
32
- const action = async (ik, action, body = {}, options = {})=>{
33
- logger$d.default('action', {
33
+ const action = async (ik, action, body = {})=>{
34
+ const requestOptions = Object.assign({}, apiOptions.postOptions, {
35
+ isAuthenticated: apiOptions.writeAuthenticated
36
+ });
37
+ logger$e.default('action', {
34
38
  ik,
35
39
  action,
36
- body
37
- });
38
- const requestOptions = Object.assign({}, options, {
39
- isAuthenticated: apiOptions.writeAuthenticated
40
+ body,
41
+ requestOptions
40
42
  });
41
43
  return utilities.validatePK(await utilities.processOne(api.httpPost(`${utilities.getPath(ik)}/${action}`, body, requestOptions)));
42
44
  };
43
45
  return action;
44
46
  };
45
47
 
46
- const logger$c = LibLogger.get('client-api', 'ops', 'allAction');
48
+ const logger$d = LibLogger.get('client-api', 'ops', 'allAction');
47
49
  const getAllActionOperation = (api, apiOptions, utilities)=>{
48
- const allAction = async (action, body = {}, options = {}, locations = [])=>{
49
- logger$c.default('allAction', {
50
+ const allAction = async (action, body = {}, locations = [])=>{
51
+ const requestOptions = Object.assign({}, apiOptions.postOptions, {
52
+ isAuthenticated: apiOptions.writeAuthenticated
53
+ });
54
+ logger$d.default('allAction', {
50
55
  action,
51
56
  body,
52
- locations
57
+ locations,
58
+ requestOptions
53
59
  });
54
60
  utilities.verifyLocations(locations);
55
61
  const loc = locations;
56
- const requestOptions = Object.assign({}, options, {
57
- isAuthenticated: apiOptions.writeAuthenticated
58
- });
59
62
  // TODO: This should respond to either a single object, or multiple objects in an array.
60
63
  return utilities.validatePK(await utilities.processArray(api.httpPost(utilities.getPath(loc), body, requestOptions)));
61
64
  };
62
65
  return allAction;
63
66
  };
64
67
 
65
- const logger$b = LibLogger.get('client-api', 'ops', 'one');
68
+ const logger$c = LibLogger.get('client-api', 'ops', 'one');
66
69
  const getOneOperation = (api, apiOptions, utilities)=>{
67
- const one = async (query = {}, options = {}, locations = [])=>{
68
- logger$b.default('one', {
69
- query,
70
- locations
71
- });
70
+ const one = async (query = {}, locations = [])=>{
72
71
  utilities.verifyLocations(locations);
73
72
  const loc = locations;
74
73
  const params = core.queryToParams(query);
75
- const requestOptions = Object.assign({}, options, {
74
+ const requestOptions = Object.assign({}, apiOptions.getOptions, {
76
75
  isAuthenticated: apiOptions.readAuthenticated,
77
76
  params
78
77
  });
78
+ logger$c.default('one', {
79
+ query,
80
+ locations,
81
+ requestOptions
82
+ });
79
83
  let item = null;
80
84
  const items = utilities.validatePK(await utilities.processArray(api.httpGet(utilities.getPath(loc), requestOptions)));
81
85
  if (items.length > 0) {
@@ -86,109 +90,115 @@ const getOneOperation = (api, apiOptions, utilities)=>{
86
90
  return one;
87
91
  };
88
92
 
89
- const logger$a = LibLogger.get('client-api', 'ops', 'create');
93
+ const logger$b = LibLogger.get('client-api', 'ops', 'create');
90
94
  const getCreateOperation = (api, apiOptions, utilities)=>{
91
- const create = async (item, options = {}, locations = [])=>{
92
- logger$a.default('create', {
95
+ const create = async (item, locations = [])=>{
96
+ const requestOptions = Object.assign({}, apiOptions.postOptions, {
97
+ isAuthenticated: apiOptions.writeAuthenticated
98
+ });
99
+ logger$b.default('create', {
93
100
  item,
94
- locations
101
+ locations,
102
+ requestOptions
95
103
  });
96
104
  utilities.verifyLocations(locations);
97
105
  const loc = locations;
98
- const requestOptions = Object.assign({}, options, {
99
- isAuthenticated: apiOptions.writeAuthenticated
100
- });
101
106
  const created = utilities.validatePK(await utilities.processOne(api.httpPost(utilities.getPath(loc), item, requestOptions)));
102
107
  return created;
103
108
  };
104
109
  return create;
105
110
  };
106
111
 
107
- const logger$9 = LibLogger.get('client-api', 'ops', 'update');
112
+ const logger$a = LibLogger.get('client-api', 'ops', 'update');
108
113
  const getUpdateOperation = (api, apiOptions, utilities)=>{
109
- const update = async (ik, item, options = {})=>{
110
- logger$9.default('update', {
111
- ik,
112
- item
113
- });
114
- const requestOptions = Object.assign({}, options, {
114
+ const update = async (ik, item)=>{
115
+ const requestOptions = Object.assign({}, apiOptions.putOptions, {
115
116
  isAuthenticated: apiOptions.writeAuthenticated
116
117
  });
118
+ logger$a.default('update', {
119
+ ik,
120
+ item,
121
+ requestOptions
122
+ });
117
123
  return utilities.validatePK(await utilities.processOne(api.httpPut(utilities.getPath(ik), item, requestOptions)));
118
124
  };
119
125
  return update;
120
126
  };
121
127
 
122
- const logger$8 = LibLogger.get('client-api', 'ops', 'get');
128
+ const logger$9 = LibLogger.get('client-api', 'ops', 'get');
123
129
  const getGetOperation = (api, apiOptions, utilities)=>{
124
- const get = async (ik, options = {})=>{
125
- logger$8.default('get', {
126
- ik
127
- });
128
- const requestOptions = Object.assign({}, options, {
130
+ const get = async (ik)=>{
131
+ const requestOptions = Object.assign({}, apiOptions.getOptions, {
129
132
  isAuthenticated: apiOptions.readAuthenticated
130
133
  });
134
+ logger$9.default('get', {
135
+ ik,
136
+ requestOptions
137
+ });
131
138
  return utilities.validatePK(await utilities.processOne(api.httpGet(utilities.getPath(ik), requestOptions)));
132
139
  };
133
140
  return get;
134
141
  };
135
142
 
136
- const logger$7 = LibLogger.get('client-api', 'ops', 'remove');
143
+ const logger$8 = LibLogger.get('client-api', 'ops', 'remove');
137
144
  const getRemoveOperation = (api, apiOptions, utilities)=>{
138
- const remove = async (ik, options = {})=>{
139
- logger$7.default('remove', {
140
- ik
141
- });
142
- const requestOptions = Object.assign({}, options, {
145
+ const remove = async (ik)=>{
146
+ const requestOptions = Object.assign({}, apiOptions.deleteOptions, {
143
147
  isAuthenticated: apiOptions.writeAuthenticated
144
148
  });
149
+ logger$8.default('remove', {
150
+ ik,
151
+ requestOptions
152
+ });
145
153
  return api.httpDelete(utilities.getPath(ik), requestOptions);
146
154
  };
147
155
  return remove;
148
156
  };
149
157
 
150
- const logger$6 = LibLogger.get('client-api', 'ops', 'find');
158
+ const logger$7 = LibLogger.get('client-api', 'ops', 'find');
151
159
  const getFindOperation = (api, apiOptions, utilities)=>{
152
- const find = async (finder, finderParams, options = {}, locations = [])=>{
153
- logger$6.default('find', {
154
- finder,
155
- finderParams,
156
- locations
157
- });
160
+ const find = async (finder, finderParams = {}, locations = [])=>{
158
161
  utilities.verifyLocations(locations);
159
162
  const loc = locations;
160
- const params = finderToParams(finder, finderParams);
161
- const requestOptions = Object.assign({}, options, {
163
+ const mergedParams = finderToParams(finder, finderParams);
164
+ const requestOptions = Object.assign({}, apiOptions.getOptions, {
162
165
  isAuthenticated: apiOptions.allAuthenticated,
163
- params
166
+ params: mergedParams
167
+ });
168
+ logger$7.default('find', {
169
+ finder,
170
+ finderParams,
171
+ locations,
172
+ requestOptions
164
173
  });
165
174
  return utilities.validatePK(await utilities.processArray(api.httpGet(utilities.getPath(loc), requestOptions)));
166
175
  };
167
176
  return find;
168
177
  };
169
178
 
170
- const logger$5 = LibLogger.get('client-api', 'ops', 'find');
179
+ const logger$6 = LibLogger.get('client-api', 'ops', 'find');
171
180
  const getFindOneOperation = (api, apiOptions, utilities)=>{
172
- const findOne = async (finder, finderParams, options = {}, locations = [])=>{
173
- logger$5.default('findOne', {
174
- finder,
175
- finderParams,
176
- locations
177
- });
181
+ const findOne = async (finder, finderParams = {}, locations = [])=>{
178
182
  utilities.verifyLocations(locations);
179
183
  const loc = locations;
180
184
  const params = finderToParams(finder, finderParams);
181
185
  params.one = true;
182
- const requestOptions = Object.assign({}, options, {
186
+ const requestOptions = Object.assign({}, apiOptions.getOptions, {
183
187
  isAuthenticated: apiOptions.allAuthenticated,
184
188
  params
185
189
  });
190
+ logger$6.default('findOne', {
191
+ finder,
192
+ finderParams,
193
+ locations,
194
+ requestOptions
195
+ });
186
196
  return utilities.validatePK(await utilities.processArray(api.httpGet(utilities.getPath(loc), requestOptions)))[0];
187
197
  };
188
198
  return findOne;
189
199
  };
190
200
 
191
- const logger$4 = LibLogger.get('client-api', 'ops', 'facet');
201
+ const logger$5 = LibLogger.get('client-api', 'ops', 'facet');
192
202
  const getFacetOperation = (api, apiOptions, utilities)=>{
193
203
  /**
194
204
  * Executes a facet operation on an item.
@@ -203,24 +213,47 @@ const getFacetOperation = (api, apiOptions, utilities)=>{
203
213
  * @param body - Optional request body for the facet operation
204
214
  * @param options - Optional HTTP request options
205
215
  * @returns Promise resolving to the facet data
206
- */ const facet = async (ik, facet, options = {})=>{
207
- logger$4.default('facet', {
208
- ik,
209
- facet
216
+ */ const facet = async (ik, facet, params = {})=>{
217
+ const requestOptions = Object.assign({}, apiOptions.getOptions, {
218
+ isAuthenticated: apiOptions.writeAuthenticated,
219
+ params
210
220
  });
211
- const requestOptions = Object.assign({}, options, {
212
- isAuthenticated: apiOptions.writeAuthenticated
221
+ logger$5.default('facet', {
222
+ ik,
223
+ facet,
224
+ requestOptions
213
225
  });
214
226
  return api.httpGet(`${utilities.getPath(ik)}/${facet}`, requestOptions);
215
227
  };
216
228
  return facet;
217
229
  };
218
230
 
231
+ const logger$4 = LibLogger.get('client-api', 'ops', 'allFacet');
232
+ const getAllFacetOperation = (api, apiOptions, utilities)=>{
233
+ const allFacet = async (facet, params = {}, locations = [])=>{
234
+ const requestOptions = Object.assign({}, apiOptions.getOptions, {
235
+ isAuthenticated: apiOptions.writeAuthenticated,
236
+ params
237
+ });
238
+ logger$4.default('allFacet', {
239
+ facet,
240
+ locations,
241
+ requestOptions
242
+ });
243
+ utilities.verifyLocations(locations);
244
+ const loc = locations;
245
+ // TODO: This should respond to either a single object, or multiple objects in an array.
246
+ return api.httpGet(utilities.getPath(loc), requestOptions);
247
+ };
248
+ return allFacet;
249
+ };
250
+
219
251
  const getOperations = (api, apiOptions, utilities)=>{
220
252
  return {
221
253
  action: getActionOperation(api, apiOptions, utilities),
222
254
  all: getAllOperation(api, apiOptions, utilities),
223
255
  allAction: getAllActionOperation(api, apiOptions, utilities),
256
+ allFacet: getAllFacetOperation(api, apiOptions, utilities),
224
257
  create: getCreateOperation(api, apiOptions, utilities),
225
258
  facet: getFacetOperation(api, apiOptions, utilities),
226
259
  findOne: getFindOneOperation(api, apiOptions, utilities),
@@ -396,7 +429,11 @@ const createAItemAPI = (api, pkType, pathNames, options)=>{
396
429
  const defaultOptions = {
397
430
  readAuthenticated: true,
398
431
  allAuthenticated: true,
399
- writeAuthenticated: true
432
+ writeAuthenticated: true,
433
+ getOptions: {},
434
+ postOptions: {},
435
+ putOptions: {},
436
+ deleteOptions: {}
400
437
  };
401
438
  if (options) {
402
439
  mergedOptions = Object.assign({}, defaultOptions, options);
@@ -409,6 +446,7 @@ const createAItemAPI = (api, pkType, pathNames, options)=>{
409
446
  action: operations.action,
410
447
  all: operations.all,
411
448
  allAction: operations.allAction,
449
+ allFacet: operations.allFacet,
412
450
  create: operations.create,
413
451
  facet: operations.facet,
414
452
  find: operations.find,
@@ -433,6 +471,7 @@ const createCItemApi = (api, type, pathNames, options)=>{
433
471
  action: aItemAPI.action,
434
472
  all: aItemAPI.all,
435
473
  allAction: aItemAPI.allAction,
474
+ allFacet: aItemAPI.allFacet,
436
475
  one: aItemAPI.one,
437
476
  get: aItemAPI.get,
438
477
  create: aItemAPI.create,
@@ -454,22 +493,24 @@ const createPItemApi = (api, type, pathName, options)=>{
454
493
  const aItemAPI = createAItemAPI(api, type, [
455
494
  pathName
456
495
  ], options);
457
- const action = async (ik, action, body = {}, options = {})=>await aItemAPI.action(ik, action, body, options);
458
- const all = async (query = {}, options = {})=>await aItemAPI.all(query, options, []);
459
- const allAction = async (action, body = {}, options = {})=>await aItemAPI.allAction(action, body, options, []);
460
- const one = async (query = {}, options = {})=>await aItemAPI.one(query, options, []);
461
- const get = async (ik, options = {})=>await aItemAPI.get(ik, options);
462
- const create = async (item, options = {})=>await aItemAPI.create(item, options, []);
463
- const remove = async (ik, options = {})=>await aItemAPI.remove(ik, options);
464
- const update = async (ik, item, options = {})=>await aItemAPI.update(ik, item, options);
465
- const facet = async (ik, facet, options = {})=>await aItemAPI.facet(ik, facet, options);
466
- const find = async (finder, finderParams, options = {})=>await aItemAPI.find(finder, finderParams, options, []);
467
- const findOne = async (finder, finderParams, options = {})=>await aItemAPI.findOne(finder, finderParams, options, []);
496
+ const action = async (ik, action, body = {})=>await aItemAPI.action(ik, action, body);
497
+ const all = async (query = {})=>await aItemAPI.all(query, []);
498
+ const allAction = async (action, body = {})=>await aItemAPI.allAction(action, body, []);
499
+ const allFacet = async (facet, params = {})=>await aItemAPI.allFacet(facet, params);
500
+ const one = async (query = {})=>await aItemAPI.one(query, []);
501
+ const get = async (ik)=>await aItemAPI.get(ik);
502
+ const create = async (item)=>await aItemAPI.create(item, []);
503
+ const remove = async (ik)=>await aItemAPI.remove(ik);
504
+ const update = async (ik, item)=>await aItemAPI.update(ik, item);
505
+ const facet = async (ik, facet, params = {})=>await aItemAPI.facet(ik, facet, params);
506
+ const find = async (finder, finderParams = {})=>await aItemAPI.find(finder, finderParams);
507
+ const findOne = async (finder, finderParams = {})=>await aItemAPI.findOne(finder, finderParams);
468
508
  return {
469
509
  ...aItemAPI,
470
510
  action,
471
511
  all,
472
512
  allAction,
513
+ allFacet,
473
514
  one,
474
515
  get,
475
516
  create,