@restorecommerce/resource-base-interface 1.6.4 → 1.7.0

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 (65) hide show
  1. package/eslint.config.mjs +22 -0
  2. package/lib/core/GraphResourcesServiceBase.d.ts +9 -5
  3. package/lib/core/GraphResourcesServiceBase.d.ts.map +1 -0
  4. package/lib/core/GraphResourcesServiceBase.js +79 -110
  5. package/lib/core/GraphResourcesServiceBase.js.map +1 -1
  6. package/lib/core/ResourcesAPI.d.ts +26 -19
  7. package/lib/core/ResourcesAPI.d.ts.map +1 -0
  8. package/lib/core/ResourcesAPI.js +275 -398
  9. package/lib/core/ResourcesAPI.js.map +1 -1
  10. package/lib/core/ServiceBase.d.ts +29 -10
  11. package/lib/core/ServiceBase.d.ts.map +1 -0
  12. package/lib/core/ServiceBase.js +137 -242
  13. package/lib/core/ServiceBase.js.map +1 -1
  14. package/lib/core/index.d.ts +5 -0
  15. package/lib/core/index.d.ts.map +1 -0
  16. package/lib/core/index.js +21 -0
  17. package/lib/core/index.js.map +1 -0
  18. package/lib/core/interfaces.d.ts +6 -72
  19. package/lib/core/interfaces.d.ts.map +1 -0
  20. package/lib/core/interfaces.js +18 -31
  21. package/lib/core/interfaces.js.map +1 -1
  22. package/lib/core/utils.d.ts +3 -1
  23. package/lib/core/utils.d.ts.map +1 -0
  24. package/lib/core/utils.js +28 -32
  25. package/lib/core/utils.js.map +1 -1
  26. package/lib/experimental/AccessControlledServiceBase.d.ts +30 -0
  27. package/lib/experimental/AccessControlledServiceBase.d.ts.map +1 -0
  28. package/lib/experimental/AccessControlledServiceBase.js +232 -0
  29. package/lib/experimental/AccessControlledServiceBase.js.map +1 -0
  30. package/lib/experimental/ClientRegister.d.ts +22 -0
  31. package/lib/experimental/ClientRegister.d.ts.map +1 -0
  32. package/lib/experimental/ClientRegister.js +33 -0
  33. package/lib/experimental/ClientRegister.js.map +1 -0
  34. package/lib/experimental/Pipe.d.ts +6 -0
  35. package/lib/experimental/Pipe.d.ts.map +1 -0
  36. package/lib/experimental/Pipe.js +14 -0
  37. package/lib/experimental/Pipe.js.map +1 -0
  38. package/lib/experimental/ResourceAggregator.d.ts +35 -0
  39. package/lib/experimental/ResourceAggregator.d.ts.map +1 -0
  40. package/lib/experimental/ResourceAggregator.js +94 -0
  41. package/lib/experimental/ResourceAggregator.js.map +1 -0
  42. package/lib/experimental/ResourceAwaitQueue.d.ts +12 -0
  43. package/lib/experimental/ResourceAwaitQueue.d.ts.map +1 -0
  44. package/lib/experimental/ResourceAwaitQueue.js +34 -0
  45. package/lib/experimental/ResourceAwaitQueue.js.map +1 -0
  46. package/lib/experimental/ResourceMap.d.ts +16 -0
  47. package/lib/experimental/ResourceMap.d.ts.map +1 -0
  48. package/lib/experimental/ResourceMap.js +51 -0
  49. package/lib/experimental/ResourceMap.js.map +1 -0
  50. package/lib/{core → experimental}/WorkerBase.d.ts +10 -14
  51. package/lib/experimental/WorkerBase.d.ts.map +1 -0
  52. package/lib/{core → experimental}/WorkerBase.js +44 -30
  53. package/lib/experimental/WorkerBase.js.map +1 -0
  54. package/lib/experimental/index.d.ts +7 -0
  55. package/lib/experimental/index.d.ts.map +1 -0
  56. package/lib/experimental/index.js +23 -0
  57. package/lib/experimental/index.js.map +1 -0
  58. package/lib/index.d.ts +5 -7
  59. package/lib/index.d.ts.map +1 -0
  60. package/lib/index.js +84 -144
  61. package/lib/index.js.map +1 -1
  62. package/lib/tsconfig.tsbuildinfo +1 -0
  63. package/package.json +23 -28
  64. package/tsconfig.json +11 -25
  65. package/lib/core/WorkerBase.js.map +0 -1
@@ -1,54 +1,51 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.ServiceBase = void 0;
27
- const _ = __importStar(require("lodash"));
28
4
  const index_1 = require("../index");
29
5
  const resource_base_1 = require("@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/resource_base");
30
6
  // Mapping of arangodb error codes to standard HTTP error codes
31
- const arangoHttpErrCodeMap = new Map([
32
- [1210, 409], // ERROR_ARANGO_UNIQUE_CONSTRAINT_VIOLATED
33
- [1200, 409], // ERROR_ARANGO_CONFLICT
34
- [1201, 400], // ERROR_ARANGO_DATADIR_INVALID
35
- [1202, 404], // ERROR_ARANGO_DOCUMENT_NOT_FOUND
36
- [1203, 404], // ERROR_ARANGO_DATA_SOURCE_NOT_FOUND
37
- [1204, 400], // ERROR_ARANGO_COLLECTION_PARAMETER_MISSING
38
- [1205, 400], // ERROR_ARANGO_DOCUMENT_HANDLE_BAD
39
- [1207, 409], // ERROR_ARANGO_DUPLICATE_NAME
40
- [1228, 404], // ERROR_ARANGO_DATABASE_NOT_FOUND
41
- ]);
7
+ const ArangoHttpErrCodeMap = {
8
+ 1210: 409, // ERROR_ARANGO_UNIQUE_CONSTRAINT_VIOLATED
9
+ 1200: 409, // ERROR_ARANGO_CONFLICT
10
+ 1201: 400, // ERROR_ARANGO_DATADIR_INVALID
11
+ 1202: 404, // ERROR_ARANGO_DOCUMENT_NOT_FOUND
12
+ 1203: 404, // ERROR_ARANGO_DATA_SOURCE_NOT_FOUND
13
+ 1204: 400, // ERROR_ARANGO_COLLECTION_PARAMETER_MISSING
14
+ 1205: 400, // ERROR_ARANGO_DOCUMENT_HANDLE_BAD
15
+ 1207: 409, // ERROR_ARANGO_DUPLICATE_NAME
16
+ 1228: 404, // ERROR_ARANGO_DATABASE_NOT_FOUND
17
+ };
42
18
  /**
43
19
  * A microservice chassis ready class which provides endpoints for
44
20
  * CRUD resource operations.
45
21
  */
46
22
  class ServiceBase {
23
+ name;
24
+ events;
25
+ logger;
26
+ resourceapi;
27
+ isEventsEnabled;
28
+ StatusCodes = {
29
+ OK: {
30
+ code: 200,
31
+ message: 'success',
32
+ },
33
+ };
34
+ OperationStatusCodes = {
35
+ SUCCESS: {
36
+ code: 200,
37
+ message: 'success',
38
+ },
39
+ MULTI_STATUS: {
40
+ code: 207,
41
+ message: 'Multi status - response may include errors!',
42
+ },
43
+ };
47
44
  /**
48
45
  * @constructor
49
46
  * @param name entityName Name of the resource.
50
47
  * @param events entityEvents Event topic for the resource.
51
- * @param logger logger Chassis logger.
48
+ * @param logger logger Chassis logger?.
52
49
  * @param resourceapi resourceapi ResourceAPI object.
53
50
  * @param isEventsEnabled.
54
51
  */
@@ -64,35 +61,24 @@ class ServiceBase {
64
61
  * Return resources based on provided filter and options.
65
62
  */
66
63
  async read(request, context) {
67
- let docs = {};
68
64
  try {
69
- let objectEntities = [];
70
- let sort;
71
- if (!_.isEmpty(request.sorts)) {
72
- sort = {};
73
- _.forEach(request.sorts, (s) => {
74
- switch (s.order) {
75
- case resource_base_1.Sort_SortOrder.ASCENDING:
76
- sort[s.field] = 'ASC';
77
- break;
78
- case resource_base_1.Sort_SortOrder.DESCENDING:
79
- sort[s.field] = 'DESC';
80
- break;
81
- }
82
- });
83
- }
84
- let limit = request.limit;
85
- if (request.limit <= 0) {
86
- limit = 1000;
87
- }
65
+ const sort = request.sorts?.reduce((a, s) => {
66
+ switch (s.order) {
67
+ default:
68
+ case resource_base_1.Sort_SortOrder.ASCENDING:
69
+ a[s.field] = 'ASC';
70
+ break;
71
+ case resource_base_1.Sort_SortOrder.DESCENDING:
72
+ a[s.field] = 'DESC';
73
+ break;
74
+ }
75
+ return a;
76
+ }, {});
77
+ const limit = request.limit;
88
78
  const offset = request.offset;
89
- let filter = {};
90
- // convert the filter from proto structure (field, operation, value and operand) to {field: value } mapping
91
- if (!_.isEmpty(request.filters)) {
92
- filter = (0, index_1.toObject)(request.filters);
93
- }
79
+ const filter = request.filters?.length ? (0, index_1.toObject)(request) : {};
94
80
  const field = {};
95
- _.forEach(request.fields, (f) => {
81
+ request.fields?.forEach((f) => {
96
82
  if (f.include) {
97
83
  field[f.name] = 1;
98
84
  return;
@@ -100,9 +86,9 @@ class ServiceBase {
100
86
  field[f.name] = 0;
101
87
  });
102
88
  const customQueries = request.custom_queries;
103
- const customArgs = request.custom_arguments || {};
89
+ const customArgs = request.custom_arguments;
104
90
  const search = request?.search;
105
- objectEntities = (await this.resourceapi.read(filter, limit, offset, sort, field, customQueries, customArgs, search)) || [];
91
+ const objectEntities = (await this.resourceapi.read(filter, limit, offset, sort, field, customQueries, customArgs, search)) ?? [];
106
92
  const readResponseWithStatus = objectEntities.map((object) => ({
107
93
  payload: object,
108
94
  status: {
@@ -119,144 +105,99 @@ class ServiceBase {
119
105
  }
120
106
  };
121
107
  }
122
- catch (e) {
123
- this.logger.error('Error caught while processing read request', { code: e.code, message: e.message, stack: e.stack });
124
- if (!docs.status) {
125
- docs.status = {};
126
- }
127
- docs.status = {
128
- id: '',
129
- code: e.code,
130
- message: e.details ? e.details : e.message
108
+ catch (error) {
109
+ this.logger?.error('Error caught while processing read request', error);
110
+ return {
111
+ operation_status: {
112
+ code: error.code,
113
+ message: error.details ?? error.message
114
+ }
131
115
  };
132
- return docs;
133
116
  }
134
117
  }
135
- generateStatusResponse(responseItems, inputItems, deleteIds) {
136
- let statusArray = [];
137
- if (!_.isArray(responseItems)) {
118
+ generateStatusResponse(responseItems) {
119
+ if (!Array.isArray(responseItems)) {
138
120
  responseItems = [responseItems];
139
121
  }
140
- if (!_.isArray(inputItems)) {
141
- inputItems = [inputItems];
142
- }
143
- for (let i = 0; i < responseItems.length; i++) {
144
- const item = responseItems[i];
122
+ const statusArray = responseItems.map((item) => {
145
123
  if (item.error) {
146
- let code;
147
- let id;
148
- if (!deleteIds) {
149
- id = inputItems[i].id;
150
- }
151
- else {
152
- id = inputItems[i]; // for delete operation ids is a string and not object
153
- }
154
- // map arango error code to http error code
155
- arangoHttpErrCodeMap.forEach((value, key) => {
156
- if (key === item.errorNum) {
157
- code = value;
158
- }
159
- });
160
- statusArray.push({
161
- id,
162
- code: code ? code : item.errorNum,
163
- message: item.errorMessage
164
- });
124
+ const code = ArangoHttpErrCodeMap[item.errorNum] ?? item.errorNum;
125
+ return {
126
+ id: item.id,
127
+ code: Number.isInteger(code) ? code : 500,
128
+ message: item.errorMessage,
129
+ };
165
130
  }
166
131
  else {
167
- statusArray.push({
132
+ return {
133
+ ...this.StatusCodes.OK,
168
134
  id: item.id,
169
- code: 200,
170
- message: 'success'
171
- });
135
+ };
172
136
  }
173
- }
137
+ });
174
138
  return statusArray;
175
139
  }
176
- generateResponseWithStatus(responseItems, inputItems, deleteIds) {
177
- let statusArray = [];
178
- let responseItemsWithStatus = [];
140
+ generateResponseWithStatus(responseItems) {
179
141
  if (!Array.isArray(responseItems)) {
180
142
  responseItems = responseItems ? [responseItems] : [];
181
143
  }
182
- if (!Array.isArray(inputItems)) {
183
- inputItems = [inputItems];
184
- }
185
- for (let i = 0; i < responseItems.length; i++) {
186
- const item = responseItems[i];
144
+ const responseItemsWithStatus = responseItems.map((item) => {
187
145
  if (item.error) {
188
- let code;
189
- let id;
190
- if (!deleteIds) {
191
- id = inputItems[i].id;
192
- }
193
- else {
194
- id = inputItems[i]; // for delete operation ids is a string and not object
195
- }
196
- // map arango error code to http error code
197
- arangoHttpErrCodeMap.forEach((value, key) => {
198
- if (key === item.errorNum) {
199
- code = value;
200
- }
201
- });
202
- responseItemsWithStatus.push({
203
- payload: undefined,
146
+ const code = ArangoHttpErrCodeMap[item.errorNum] ?? item.errorNum;
147
+ return {
204
148
  status: {
205
- id,
206
- code: code ? code : item.errorNum,
207
- message: item.errorMessage
149
+ id: item.id,
150
+ code: Number.isInteger(code) ? code : 500,
151
+ message: item.errorMessage,
208
152
  }
209
- });
210
- statusArray.push();
153
+ };
211
154
  }
212
155
  else {
213
- responseItemsWithStatus.push({
156
+ return {
214
157
  payload: item,
215
158
  status: {
159
+ ...this.StatusCodes.OK,
216
160
  id: item.id,
217
- code: 200,
218
- message: 'success'
219
161
  }
220
- });
162
+ };
221
163
  }
222
- }
164
+ });
223
165
  return responseItemsWithStatus;
224
166
  }
167
+ generateResourceResponseList(items) {
168
+ if (items.some(item => item.status?.code !== 200)) {
169
+ return {
170
+ items,
171
+ total_count: items.length ?? 0,
172
+ operation_status: this.OperationStatusCodes.MULTI_STATUS,
173
+ };
174
+ }
175
+ else {
176
+ return {
177
+ items,
178
+ total_count: items.length ?? 0,
179
+ operation_status: this.OperationStatusCodes.SUCCESS,
180
+ };
181
+ }
182
+ }
225
183
  /**
226
184
  * Endpoint create.
227
185
  * Inserts resources.
228
186
  */
229
187
  async create(request, context) {
230
- let docs = {};
231
188
  try {
232
- const createDocs = _.cloneDeep(request.items);
233
- let createResponse = await this.resourceapi.create(createDocs, request.subject);
234
- const dispatch = [];
235
- const events = this.events;
236
- if (this.isEventsEnabled) {
237
- _.forEach(createResponse, (item) => {
238
- if (!item.error) {
239
- dispatch.push(events.emit(`${this.name}Created`, item));
240
- }
241
- });
242
- await Promise.all(dispatch);
243
- }
244
- let createResponseWithStatus = this.generateResponseWithStatus(createResponse, createDocs);
245
- const operation_status = {
246
- code: 200,
247
- message: 'success'
248
- };
249
- docs = { items: createResponseWithStatus, total_count: createResponseWithStatus.length, operation_status };
250
- this.logger.info(this.name + ' create response', docs);
189
+ const createResponse = await this.resourceapi.create(request.items, request.subject, this.isEventsEnabled && this.events);
190
+ const items = this.generateResponseWithStatus(createResponse);
191
+ const docs = this.generateResourceResponseList(items);
192
+ this.logger?.info(this.name + ' create response', docs);
251
193
  return docs;
252
194
  }
253
- catch (e) {
254
- this.logger.error('Error caught while processing create request', { code: e.code, message: e.message, stack: e.stack });
195
+ catch (error) {
196
+ this.logger?.error('Error caught while processing create request', error);
255
197
  return {
256
- ...docs,
257
198
  operation_status: {
258
- code: e.code,
259
- message: e.details ? e.details : e.message
199
+ code: error.code,
200
+ message: error.details ?? error.message
260
201
  }
261
202
  };
262
203
  }
@@ -266,59 +207,37 @@ class ServiceBase {
266
207
  * Removes resources specified by id or all resources.
267
208
  */
268
209
  async delete(request, context) {
269
- let deleteResponse = { status: [], operation_status: {} };
270
210
  try {
271
- const events = this.events;
272
211
  let docs;
273
212
  if (request.collection) {
274
- docs = await this.resourceapi.deleteCollection();
275
- this.logger.info(`${this.name} deleted`);
213
+ await this.resourceapi.deleteCollection(this.isEventsEnabled && this.events);
214
+ this.logger?.info(`${this.name} deleted`);
276
215
  }
277
216
  else {
278
- docs = await this.resourceapi.delete(request.ids);
217
+ docs = await this.resourceapi.delete(request.ids, this.isEventsEnabled && this.events);
279
218
  }
280
- // sanitize delete response for docs
281
- docs.map((doc) => {
219
+ docs?.forEach((doc) => {
282
220
  if (doc._id && doc._key && doc._rev) {
283
- delete doc._id;
284
221
  doc.id = doc._key;
285
- ;
222
+ delete doc._id;
286
223
  delete doc._key;
287
224
  delete doc._rev;
288
225
  }
289
226
  });
290
- if (this.isEventsEnabled) {
291
- const dispatch = [];
292
- _.forEach(docs, (id) => {
293
- if (typeof id == 'string') {
294
- id = { id };
295
- }
296
- if (!id.error) {
297
- dispatch.push(events.emit(`${this.name}Deleted`, id));
298
- }
299
- });
300
- await Promise.all(dispatch);
301
- }
302
- // if complete collection is dropped then there are no input ids provided,
303
- // iterate docs and put ids to call.request.ids
304
- if (request.collection && (_.isNil(request.ids) || _.isEmpty(request.ids))) {
305
- request.ids = [];
306
- docs.map((doc) => request.ids.push(doc.id));
307
- }
308
- let statusArray = this.generateStatusResponse(docs, request.ids, true);
309
- const operation_status = {
310
- code: 200,
311
- message: 'success'
227
+ const status = docs ? this.generateStatusResponse(docs) : undefined;
228
+ return {
229
+ status,
230
+ operation_status: status?.some(status => status.code !== 200)
231
+ ? this.OperationStatusCodes.MULTI_STATUS
232
+ : this.OperationStatusCodes.SUCCESS
312
233
  };
313
- return { status: statusArray, operation_status };
314
234
  }
315
- catch (e) {
316
- this.logger.error('Error caught while processing delete request', { code: e.code, message: e.message, stack: e.stack });
235
+ catch (error) {
236
+ this.logger?.error('Error caught while processing delete request:', error);
317
237
  return {
318
- ...deleteResponse,
319
238
  operation_status: {
320
- code: e.code,
321
- message: e.details ? e.details : e.message
239
+ code: error.code,
240
+ message: error.details ?? error.message
322
241
  }
323
242
  };
324
243
  }
@@ -328,36 +247,19 @@ class ServiceBase {
328
247
  * Updates resources.
329
248
  */
330
249
  async update(request, context) {
331
- let docs = {};
332
250
  try {
333
- let updateDocs = _.cloneDeep(request.items);
334
- let updateResponse = await this.resourceapi.update(updateDocs, request.subject);
335
- if (this.isEventsEnabled) {
336
- const dispatch = [];
337
- const events = this.events;
338
- _.forEach(updateResponse, (update) => {
339
- if (!update.error) {
340
- dispatch.push(events.emit(`${this.name}Modified`, update));
341
- }
342
- });
343
- await Promise.all(dispatch);
344
- }
345
- let responseWithStatus = this.generateResponseWithStatus(updateResponse, updateDocs);
346
- const operation_status = {
347
- code: 200,
348
- message: 'success'
349
- };
350
- docs = { items: responseWithStatus, total_count: responseWithStatus.length, operation_status };
351
- this.logger.info(this.name + ' update response', docs);
251
+ const updateResponse = await this.resourceapi.update(request.items, request.subject, this.isEventsEnabled && this.events);
252
+ const items = this.generateResponseWithStatus(updateResponse);
253
+ const docs = this.generateResourceResponseList(items);
254
+ this.logger?.info(this.name + ' update response', docs);
352
255
  return docs;
353
256
  }
354
- catch (e) {
355
- this.logger.error('Error caught while processing update request', { code: e.code, message: e.message, stack: e.stack });
257
+ catch (error) {
258
+ this.logger?.error('Error caught while processing update request', error);
356
259
  return {
357
- ...docs,
358
260
  operation_status: {
359
- code: e.code,
360
- message: e.details ? e.details : e.message
261
+ code: Number.isInteger(error.code) ? error.code : 500,
262
+ message: error.details ?? error.message
361
263
  }
362
264
  };
363
265
  }
@@ -367,26 +269,19 @@ class ServiceBase {
367
269
  * Upserts resources.
368
270
  */
369
271
  async upsert(request, context) {
370
- let docs = {};
371
272
  try {
372
- let upsertDocs = _.cloneDeep(request.items);
373
- let upsertResponse = await this.resourceapi.upsert(upsertDocs, this.isEventsEnabled && this.events, this.name, request.subject);
374
- let responseWithStatus = this.generateResponseWithStatus(upsertResponse, upsertDocs);
375
- const operation_status = {
376
- code: 200,
377
- message: 'success'
378
- };
379
- docs = { items: responseWithStatus, total_count: responseWithStatus.length, operation_status };
380
- this.logger.info(`${this.name} upsert response`, { items: upsertResponse });
273
+ const upsertResponse = await this.resourceapi.upsert(request.items, request.subject, this.isEventsEnabled && this.events);
274
+ const items = this.generateResponseWithStatus(upsertResponse);
275
+ const docs = this.generateResourceResponseList(items);
276
+ this.logger?.info(`${this.name} upsert response`, { items: upsertResponse });
381
277
  return docs;
382
278
  }
383
- catch (e) {
384
- this.logger.error('Error caught while processing upsert request', { code: e.code, message: e.message, stack: e.stack });
279
+ catch (error) {
280
+ this.logger?.error('Error caught while processing upsert request', error);
385
281
  return {
386
- ...docs,
387
282
  operation_status: {
388
- code: e.code,
389
- message: e.details ? e.details : e.message
283
+ code: Number.isInteger(error.code) ? error.code : 500,
284
+ message: error.details ?? error.message
390
285
  }
391
286
  };
392
287
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceBase.js","sourceRoot":"","sources":["../../src/core/ServiceBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceBase.js","sourceRoot":"","sources":["../../src/core/ServiceBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './ResourcesAPI';
2
+ export * from './ServiceBase';
3
+ export * from './GraphResourcesServiceBase';
4
+ export * from './interfaces';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ResourcesAPI"), exports);
18
+ __exportStar(require("./ServiceBase"), exports);
19
+ __exportStar(require("./GraphResourcesServiceBase"), exports);
20
+ __exportStar(require("./interfaces"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,gDAA8B;AAC9B,8DAA4C;AAC5C,+CAA6B"}