@webda/core 2.1.5 → 2.3.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 (97) hide show
  1. package/lib/application.d.ts +55 -8
  2. package/lib/application.js +27 -1
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +8 -2
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +66 -6
  7. package/lib/core.js +96 -3
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +49 -1
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/index.d.ts +1 -0
  12. package/lib/index.js +1 -0
  13. package/lib/index.js.map +1 -1
  14. package/lib/models/aclmodel.d.ts +1 -1
  15. package/lib/models/aclmodel.spec.js +10 -10
  16. package/lib/models/aclmodel.spec.js.map +1 -1
  17. package/lib/models/coremodel.d.ts +79 -24
  18. package/lib/models/coremodel.js +96 -19
  19. package/lib/models/coremodel.js.map +1 -1
  20. package/lib/models/coremodel.spec.js +32 -2
  21. package/lib/models/coremodel.spec.js.map +1 -1
  22. package/lib/models/user.d.ts +3 -3
  23. package/lib/models/user.js.map +1 -1
  24. package/lib/models/user.spec.js +1 -0
  25. package/lib/models/user.spec.js.map +1 -1
  26. package/lib/router.d.ts +1 -1
  27. package/lib/services/authentication.d.ts +1 -1
  28. package/lib/services/binary.d.ts +2 -2
  29. package/lib/services/cloudbinary.spec.js +1 -0
  30. package/lib/services/cloudbinary.spec.js.map +1 -1
  31. package/lib/services/configuration.d.ts +1 -1
  32. package/lib/services/cron.d.ts +1 -0
  33. package/lib/services/cron.js +9 -1
  34. package/lib/services/cron.js.map +1 -1
  35. package/lib/services/cron.spec.js +1 -0
  36. package/lib/services/cron.spec.js.map +1 -1
  37. package/lib/services/oauth.d.ts +1 -1
  38. package/lib/services/proxy.d.ts +7 -1
  39. package/lib/services/proxy.js +13 -4
  40. package/lib/services/proxy.js.map +1 -1
  41. package/lib/services/service.d.ts +28 -4
  42. package/lib/services/service.js +15 -11
  43. package/lib/services/service.js.map +1 -1
  44. package/lib/services/service.spec.js +55 -7
  45. package/lib/services/service.spec.js.map +1 -1
  46. package/lib/stores/aliasstore.d.ts +107 -0
  47. package/lib/stores/aliasstore.js +152 -0
  48. package/lib/stores/aliasstore.js.map +1 -0
  49. package/lib/stores/aliasstore.spec.d.ts +11 -0
  50. package/lib/stores/aliasstore.spec.js +87 -0
  51. package/lib/stores/aliasstore.spec.js.map +1 -0
  52. package/lib/stores/file.js +1 -1
  53. package/lib/stores/file.js.map +1 -1
  54. package/lib/stores/file.spec.js +12 -113
  55. package/lib/stores/file.spec.js.map +1 -1
  56. package/lib/stores/mapper.d.ts +1 -1
  57. package/lib/stores/mapper.js +1 -1
  58. package/lib/stores/mapper.js.map +1 -1
  59. package/lib/stores/memory.spec.d.ts +1 -0
  60. package/lib/stores/memory.spec.js +23 -0
  61. package/lib/stores/memory.spec.js.map +1 -1
  62. package/lib/stores/store.d.ts +76 -6
  63. package/lib/stores/store.js +116 -10
  64. package/lib/stores/store.js.map +1 -1
  65. package/lib/stores/store.spec.d.ts +2 -0
  66. package/lib/stores/store.spec.js +121 -0
  67. package/lib/stores/store.spec.js.map +1 -1
  68. package/lib/stores/webdaql/WebdaQLLexer.js +5 -5
  69. package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
  70. package/lib/stores/webdaql/WebdaQLParserLexer.js +5 -5
  71. package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
  72. package/lib/stores/webdaql/WebdaQLParserParser.js +4 -4
  73. package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
  74. package/lib/stores/webdaql/query.d.ts +16 -1
  75. package/lib/stores/webdaql/query.js +50 -1
  76. package/lib/stores/webdaql/query.js.map +1 -1
  77. package/lib/stores/webdaql/query.spec.js +20 -0
  78. package/lib/stores/webdaql/query.spec.js.map +1 -1
  79. package/lib/test.js +1 -3
  80. package/lib/test.js.map +1 -1
  81. package/lib/utils/context.d.ts +15 -4
  82. package/lib/utils/context.js +61 -26
  83. package/lib/utils/context.js.map +1 -1
  84. package/lib/utils/cookie.js +1 -1
  85. package/lib/utils/cookie.js.map +1 -1
  86. package/lib/utils/cookie.spec.js +7 -189
  87. package/lib/utils/cookie.spec.js.map +1 -1
  88. package/lib/utils/httpcontext.d.ts +2 -2
  89. package/lib/utils/throttler.d.ts +82 -0
  90. package/lib/utils/throttler.js +136 -0
  91. package/lib/utils/throttler.js.map +1 -0
  92. package/lib/utils/throttler.spec.d.ts +1 -0
  93. package/lib/utils/throttler.spec.js +47 -0
  94. package/lib/utils/throttler.spec.js.map +1 -0
  95. package/lib/utils/waiter.d.ts +2 -2
  96. package/package.json +10 -9
  97. package/webda.module.json +76 -2
@@ -1,13 +1,13 @@
1
1
  import { WorkerLogLevel, WorkerOutput } from "@webda/workout";
2
2
  import { JSONSchema7 } from "json-schema";
3
3
  import { OpenAPIV3 } from "openapi-types";
4
- import { Constructor, Context, Core, CoreModelDefinition, Service } from "./index.js";
5
- export declare type PackageDescriptorAuthor = string | {
4
+ import { Constructor, Context, Core, CoreModel, CoreModelDefinition, Service } from "./index.js";
5
+ export type PackageDescriptorAuthor = string | {
6
6
  name?: string;
7
7
  email?: string;
8
8
  url?: string;
9
9
  };
10
- export declare type Modda = ServiceConstructor<Service>;
10
+ export type Modda = ServiceConstructor<Service>;
11
11
  /**
12
12
  * Some package exists but seems pretty big for this
13
13
  * https://classic.yarnpkg.com/en/docs/package-json
@@ -71,6 +71,11 @@ export interface PackageDescriptor {
71
71
  termsOfService?: string;
72
72
  title?: string;
73
73
  }
74
+ export type ModelRelation = {
75
+ attribute: string;
76
+ model: string;
77
+ type: "";
78
+ };
74
79
  /**
75
80
  * A Webda module is a NPM package
76
81
  *
@@ -89,6 +94,21 @@ export interface Module {
89
94
  models?: {
90
95
  [key: string]: string;
91
96
  };
97
+ /**
98
+ * Models graph
99
+ */
100
+ modelsGraph?: {
101
+ [key: string]: {
102
+ parent?: Omit<ModelRelation, "type">;
103
+ links?: ModelRelation[];
104
+ queries?: {
105
+ attribute: string;
106
+ model: string;
107
+ targetAttribute: string;
108
+ };
109
+ maps?: any[];
110
+ };
111
+ };
92
112
  /**
93
113
  * Deployers provided by the module
94
114
  *
@@ -120,13 +140,13 @@ export interface CachedModule extends Module {
120
140
  */
121
141
  project: ProjectInformation;
122
142
  }
123
- export declare type StaticWebsite = {
143
+ export type StaticWebsite = {
124
144
  url: string;
125
145
  path?: string;
126
146
  index?: string;
127
147
  catchAll?: boolean;
128
148
  };
129
- export declare type UnpackedConfiguration = {
149
+ export type UnpackedConfiguration = {
130
150
  version: 3;
131
151
  /**
132
152
  * Services configuration
@@ -191,6 +211,10 @@ export declare type UnpackedConfiguration = {
191
211
  * @default 60000
192
212
  */
193
213
  requestTimeout?: number;
214
+ /**
215
+ * Define the default store
216
+ */
217
+ defaultStore?: string;
194
218
  /**
195
219
  * Allow any other type of parameters
196
220
  */
@@ -208,14 +232,14 @@ export declare type UnpackedConfiguration = {
208
232
  */
209
233
  imports?: string[];
210
234
  };
211
- export declare type Configuration = UnpackedConfiguration & {
235
+ export type Configuration = UnpackedConfiguration & {
212
236
  /**
213
237
  * Cached modules to avoid scanning node_modules
214
238
  * This is used by packagers
215
239
  */
216
240
  cachedModules?: CachedModule;
217
241
  };
218
- export declare type StoredConfiguration = Configuration;
242
+ export type StoredConfiguration = Configuration;
219
243
  /**
220
244
  * Return the gather information from the repository
221
245
  * @mermaid Make TypeDoc easy to use with mermaid.js
@@ -289,6 +313,19 @@ export interface WebdaPackageDescriptor {
289
313
  * Logo to display within the shell tty
290
314
  */
291
315
  logo?: string;
316
+ /**
317
+ * Service to replace default launcher
318
+ */
319
+ launcher?: {
320
+ /**
321
+ * Service to use for launch
322
+ */
323
+ service: string;
324
+ /**
325
+ * Method to use
326
+ */
327
+ method: string;
328
+ };
292
329
  /**
293
330
  * Information on the workspace
294
331
  */
@@ -329,7 +366,7 @@ export interface ProjectInformation {
329
366
  /**
330
367
  * Type of Section
331
368
  */
332
- export declare type Section = "moddas" | "deployers" | "models" | "beans";
369
+ export type Section = "moddas" | "deployers" | "models" | "beans";
333
370
  /**
334
371
  * Map a Webda Application
335
372
  *
@@ -515,6 +552,16 @@ export declare class Application {
515
552
  getModels(): {
516
553
  [key: string]: Constructor<Context> | CoreModelDefinition;
517
554
  };
555
+ /**
556
+ * Return the model name for a object
557
+ * @param object
558
+ */
559
+ getModelFromInstance(object: CoreModel): string | undefined;
560
+ /**
561
+ * Return the model name for a object
562
+ * @param object
563
+ */
564
+ getModelFromConstructor(model: Constructor<CoreModel>): string | undefined;
518
565
  /**
519
566
  * Return all deployers
520
567
  */
@@ -90,12 +90,15 @@ export class Application {
90
90
  * @returns
91
91
  */
92
92
  loadConfiguration(file) {
93
+ var _a, _b;
93
94
  // Check if file is a file or folder
94
95
  if (!fs.existsSync(file)) {
95
96
  throw new WebdaError("NO_WEBDA_FOLDER", `Not a webda application folder or webda.config.jsonc or webda.config.json file: ${file}`);
96
97
  }
97
98
  try {
98
99
  this.baseConfiguration = FileUtils.load(file);
100
+ (_a = this.baseConfiguration).parameters ?? (_a.parameters = {});
101
+ (_b = this.baseConfiguration.parameters).defaultStore ?? (_b.defaultStore = "Registry");
99
102
  if (this.baseConfiguration.version !== 3) {
100
103
  this.log("ERROR", "Your configuration file should use version 3, see https://docs.webda.io/");
101
104
  }
@@ -246,6 +249,24 @@ export class Application {
246
249
  getModels() {
247
250
  return this.models;
248
251
  }
252
+ /**
253
+ * Return the model name for a object
254
+ * @param object
255
+ */
256
+ getModelFromInstance(object) {
257
+ return Object.keys(this.models)
258
+ .filter(k => this.models[k] === object.constructor)
259
+ .pop();
260
+ }
261
+ /**
262
+ * Return the model name for a object
263
+ * @param object
264
+ */
265
+ getModelFromConstructor(model) {
266
+ return Object.keys(this.models)
267
+ .filter(k => this.models[k] === model)
268
+ .pop();
269
+ }
249
270
  /**
250
271
  * Return all deployers
251
272
  */
@@ -307,6 +328,11 @@ export class Application {
307
328
  let index;
308
329
  let i = 0;
309
330
  while ((index = scan.indexOf("${")) >= 0) {
331
+ // Add escape sequence
332
+ if (index > 0 && scan.substring(index - 1, 1) === "\\") {
333
+ scan = scan.substring(scan.indexOf("}", index));
334
+ continue;
335
+ }
310
336
  let next = scan.indexOf("}", index);
311
337
  let variable = scan.substring(index + 2, next);
312
338
  scan = scan.substring(next);
@@ -317,7 +343,7 @@ export class Application {
317
343
  throw new Error("Too many variables");
318
344
  }
319
345
  }
320
- return new Function("return `" + templateString.replace(/\$\{([^\}\{]+)}/g, "${this.$1}") + "`;").call({
346
+ return new Function("return `" + (" " + templateString).replace(/([^\\])\$\{([^\}\{]+)}/g, "$1${this.$2}").substring(1) + "`;").call({
321
347
  ...this.baseConfiguration.cachedModules.project,
322
348
  now: this.initTime,
323
349
  ...replacements
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ import { suite, test } from "@testdeck/mocha";
8
8
  import * as assert from "assert";
9
9
  import * as path from "path";
10
10
  import { Application, UnpackedApplication } from "./index.js";
11
+ import { CoreModel } from "./models/coremodel.js";
12
+ import { User } from "./models/user.js";
11
13
  import { TestApplication, WebdaTest } from "./test.js";
12
14
  import { getCommonJS } from "./utils/esm.js";
13
15
  const { __dirname } = getCommonJS(import.meta.url);
@@ -21,7 +23,8 @@ let ApplicationTest = class ApplicationTest extends WebdaTest {
21
23
  assert.deepStrictEqual(this.sampleApp.replaceVariables({
22
24
  test: true,
23
25
  bouzouf: {
24
- yop: "${resources.replace}"
26
+ yop: "${resources.replace}",
27
+ yop2: "\\${resources2.replace}"
25
28
  }
26
29
  }, {
27
30
  resources: {
@@ -30,7 +33,8 @@ let ApplicationTest = class ApplicationTest extends WebdaTest {
30
33
  }), {
31
34
  test: true,
32
35
  bouzouf: {
33
- yop: "Plop"
36
+ yop: "Plop",
37
+ yop2: "${resources2.replace}"
34
38
  }
35
39
  });
36
40
  }
@@ -117,6 +121,8 @@ let ApplicationTest = class ApplicationTest extends WebdaTest {
117
121
  // @ts-ignore
118
122
  unpackedApp.baseConfiguration.cachedModules.project.webda = undefined;
119
123
  assert.deepStrictEqual(unpackedApp.getPackageWebda(), { namespace: "Webda" });
124
+ assert.strictEqual(app.getModelFromInstance(new CoreModel()), "webda/coremodel");
125
+ assert.strictEqual(app.getModelFromInstance(new User()), "webda/user");
120
126
  }
121
127
  async getFullNameFromPrototype() {
122
128
  let app = new TestApplication(__dirname + "/../test/config.json");
@@ -1 +1 @@
1
- {"version":3,"file":"application.spec.js","sourceRoot":"","sources":["../src/application.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.spec.js","sourceRoot":"","sources":["../src/application.spec.ts"],"names":[],"mappings":"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"}
package/lib/core.d.ts CHANGED
@@ -24,9 +24,30 @@ export declare class ValidationError extends Error {
24
24
  * Define an operation within webda app
25
25
  */
26
26
  export interface OperationDefinition {
27
- input: string;
27
+ /**
28
+ * Id of the operation
29
+ */
30
+ id: string;
31
+ /**
32
+ * Name of the schema that defines operation input
33
+ */
34
+ input?: string;
35
+ /**
36
+ * Name of the schema that defines operation output
37
+ */
28
38
  output?: string;
39
+ /**
40
+ * WebdaQL to execute on session to know if
41
+ * operation is available to user
42
+ */
43
+ permission?: string;
44
+ /**
45
+ * Service implementing the operation
46
+ */
29
47
  service: string;
48
+ /**
49
+ * Method implementing the operation
50
+ */
30
51
  method: string;
31
52
  }
32
53
  /**
@@ -94,7 +115,7 @@ export declare class WebsiteOriginFilter implements RequestFilter<Context> {
94
115
  checkRequest(context: Context): Promise<boolean>;
95
116
  }
96
117
  export declare function Bean(constructor: Function): void;
97
- export declare type CoreEvents = {
118
+ export type CoreEvents = {
98
119
  /**
99
120
  * Emitted when new result is sent
100
121
  */
@@ -129,8 +150,8 @@ export declare type CoreEvents = {
129
150
  "Webda.NewContext": Context;
130
151
  [key: string]: unknown;
131
152
  };
132
- declare type NoSchemaResult = null;
133
- declare type SchemaValidResult = true;
153
+ type NoSchemaResult = null;
154
+ type SchemaValidResult = true;
134
155
  /**
135
156
  * This is the main class of the framework, it handles the routing, the services initialization and resolution
136
157
  *
@@ -240,10 +261,36 @@ export declare class Core<E extends CoreEvents = CoreEvents> extends events.Even
240
261
  protected operations: {
241
262
  [key: string]: OperationDefinition;
242
263
  };
264
+ /**
265
+ * Cache for model to store resolution
266
+ */
267
+ private _modelStoresCache;
268
+ /**
269
+ * Store the Core singleton
270
+ *
271
+ * The main storage is on the process itself
272
+ * This second storage allow to identify dual import
273
+ */
274
+ private static singleton;
275
+ /**
276
+ * True if the dual import warning has been sent
277
+ */
278
+ private _dualImportWarn;
243
279
  /**
244
280
  * @params {Object} config - The configuration Object, if undefined will load the configuration file
245
281
  */
246
- constructor(application: Application);
282
+ constructor(application?: Application);
283
+ /**
284
+ * Get the singleton of Webda Core
285
+ * @returns
286
+ */
287
+ static get(): Core;
288
+ /**
289
+ * Get the store assigned to this model
290
+ * @param model
291
+ * @returns
292
+ */
293
+ getModelStore(model: Constructor<CoreModel> | CoreModel): Store<CoreModel, import("./index").StoreParameters, import("./index").StoreEvents>;
247
294
  /**
248
295
  * Return Core instance id
249
296
  *
@@ -293,10 +340,23 @@ export declare class Core<E extends CoreEvents = CoreEvents> extends events.Even
293
340
  * It will resolve Services init method and autolink
294
341
  */
295
342
  init(): Promise<void>;
343
+ /**
344
+ * Pause for time ms
345
+ *
346
+ * @param time ms
347
+ */
348
+ static sleep(time: any): Promise<void>;
296
349
  /**
297
350
  * Call an operation within the framework
298
351
  */
299
352
  callOperation(context: OperationContext, operationId: string): Promise<any>;
353
+ /**
354
+ * Get available operations
355
+ * @returns
356
+ */
357
+ listOperations(): {
358
+ [key: string]: Omit<OperationDefinition, "service" | "method">;
359
+ };
300
360
  /**
301
361
  * Register a new operation within the app
302
362
  * @param operationId
@@ -386,7 +446,7 @@ export declare class Core<E extends CoreEvents = CoreEvents> extends events.Even
386
446
  * @returns {{}}
387
447
  */
388
448
  getStores(): {
389
- [key: string]: Service;
449
+ [key: string]: Store;
390
450
  };
391
451
  /**
392
452
  * Return a map of defined models
package/lib/core.js CHANGED
@@ -5,7 +5,7 @@ import * as events from "events";
5
5
  import jsonpath from "jsonpath";
6
6
  import pkg from "node-machine-id";
7
7
  import { v4 as uuidv4 } from "uuid";
8
- import { Context, Logger, Store } from "./index.js";
8
+ import { Context, Logger, Store, UnpackedApplication } from "./index.js";
9
9
  import { CoreModel } from "./models/coremodel.js";
10
10
  import { Router } from "./router.js";
11
11
  import { JSONUtils } from "./utils/serializers.js";
@@ -165,9 +165,20 @@ export class Core extends events.EventEmitter {
165
165
  * Contains all operations defined by services
166
166
  */
167
167
  this.operations = {};
168
+ /**
169
+ * Cache for model to store resolution
170
+ */
171
+ this._modelStoresCache = new Map();
172
+ /**
173
+ * True if the dual import warning has been sent
174
+ */
175
+ this._dualImportWarn = false;
176
+ // Store WebdaCore in process to avoid conflict with import
177
+ // @ts-ignore
178
+ Core.singleton = process.webda = this;
168
179
  this.workerOutput = application.getWorkerOutput();
169
180
  this.logger = new Logger(this.workerOutput, "@webda/core/lib/core.js");
170
- this.application = application;
181
+ this.application = application || new UnpackedApplication(".");
171
182
  this._initTime = new Date().getTime();
172
183
  // Schema validations
173
184
  this._ajv = new Ajv();
@@ -190,6 +201,55 @@ export class Core extends events.EventEmitter {
190
201
  this.registerCORSFilter(new WebsiteOriginFilter(this.configuration.parameters.website));
191
202
  }
192
203
  }
204
+ /**
205
+ * Get the singleton of Webda Core
206
+ * @returns
207
+ */
208
+ static get() {
209
+ // @ts-ignore
210
+ let singleton = process.webda;
211
+ if (Core.singleton !== singleton && !singleton._dualImportWarn) {
212
+ singleton._dualImportWarn = true;
213
+ singleton.log("WARN", "Several import version of WebdaCore has been identified");
214
+ }
215
+ // Store WebdaCore in process to avoid conflict with import
216
+ return singleton;
217
+ }
218
+ /**
219
+ * Get the store assigned to this model
220
+ * @param model
221
+ * @returns
222
+ */
223
+ getModelStore(model) {
224
+ if (model instanceof CoreModel) {
225
+ if (this._modelStoresCache.has(model.__class)) {
226
+ return this._modelStoresCache.get(model.__class);
227
+ }
228
+ }
229
+ else if (this._modelStoresCache.has(model)) {
230
+ return this._modelStoresCache.get(model);
231
+ }
232
+ const setCache = store => {
233
+ this._modelStoresCache.set(model instanceof CoreModel ? model.__class : model, store);
234
+ };
235
+ const stores = this.getStores();
236
+ let actualScore;
237
+ let actualStore = this.getService(this.parameter("defaultStore"));
238
+ for (let store in stores) {
239
+ let score = stores[store].handleModel(model);
240
+ // As 0 mean exact match we stop there
241
+ if (score === 0) {
242
+ setCache(stores[store]);
243
+ return stores[store];
244
+ }
245
+ else if (score > 0 && (actualScore === undefined || actualScore > score)) {
246
+ actualScore = score;
247
+ actualStore = stores[store];
248
+ }
249
+ }
250
+ setCache(actualStore);
251
+ return actualStore;
252
+ }
193
253
  /**
194
254
  * Return Core instance id
195
255
  *
@@ -319,6 +379,16 @@ export class Core extends events.EventEmitter {
319
379
  });
320
380
  return this._init;
321
381
  }
382
+ /**
383
+ * Pause for time ms
384
+ *
385
+ * @param time ms
386
+ */
387
+ static async sleep(time) {
388
+ return new Promise(resolve => {
389
+ setTimeout(resolve, time);
390
+ });
391
+ }
322
392
  /**
323
393
  * Call an operation within the framework
324
394
  */
@@ -326,15 +396,38 @@ export class Core extends events.EventEmitter {
326
396
  if (!this.operations[operationId]) {
327
397
  throw new Error(`Unknown Operation Id: ${operationId}`);
328
398
  }
399
+ let input = await context.getInput();
400
+ this.log("TRACE", `Operation ${operationId} input is '${JSONUtils.safeStringify(input, undefined, 2)}'`);
401
+ if (this.operations[operationId].input &&
402
+ (input === undefined || this.validateSchema(this.operations[operationId].input, input) !== true)) {
403
+ throw new Error("Input does not fit the operation input");
404
+ }
329
405
  return this.getService(this.operations[operationId].service)[this.operations[operationId].method](context);
330
406
  }
407
+ /**
408
+ * Get available operations
409
+ * @returns
410
+ */
411
+ listOperations() {
412
+ const list = {};
413
+ Object.keys(this.operations).forEach(o => {
414
+ list[o] = {
415
+ ...this.operations[o],
416
+ input: this.operations[o].input ? this.application.completeNamespace(this.operations[o].input) : undefined,
417
+ output: this.operations[o].output ? this.application.completeNamespace(this.operations[o].output) : undefined
418
+ };
419
+ delete list[o].service;
420
+ delete list[o].method;
421
+ });
422
+ return list;
423
+ }
331
424
  /**
332
425
  * Register a new operation within the app
333
426
  * @param operationId
334
427
  * @param definition
335
428
  */
336
429
  registerOperation(operationId, definition) {
337
- this.operations[operationId] = definition;
430
+ this.operations[operationId] = { ...definition, id: operationId };
338
431
  }
339
432
  /**
340
433
  * Register a request filtering