@versori/run 0.2.26 → 0.2.28

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 (43) hide show
  1. package/esm/src/context/ContextProvider.d.ts +1 -1
  2. package/esm/src/context/ContextProvider.d.ts.map +1 -1
  3. package/esm/src/context/ContextProvider.js +2 -5
  4. package/esm/src/dsl/http/default.d.ts.map +1 -1
  5. package/esm/src/dsl/http/default.js +1 -0
  6. package/esm/src/dsl/http/versori/proxyroundtripper.d.ts +2 -2
  7. package/esm/src/dsl/http/versori/proxyroundtripper.d.ts.map +1 -1
  8. package/esm/src/dsl/http/versori/proxyroundtripper.js +4 -1
  9. package/esm/src/dsl/http/versori/roundtripper.d.ts +1 -0
  10. package/esm/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
  11. package/esm/src/dsl/http/versori/roundtripper.js +37 -9
  12. package/esm/src/dsl/triggers/WebhookTrigger.d.ts +10 -0
  13. package/esm/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
  14. package/esm/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  15. package/esm/src/interpreter/durable/DurableInterpreter.js +0 -9
  16. package/esm/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
  17. package/esm/src/interpreter/durable/compilers/webhook.js +27 -4
  18. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  19. package/esm/src/interpreter/memory/MemoryInterpreter.js +0 -9
  20. package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  21. package/esm/src/interpreter/memory/compilers/webhook.js +27 -4
  22. package/package.json +2 -1
  23. package/script/src/context/ContextProvider.d.ts +1 -1
  24. package/script/src/context/ContextProvider.d.ts.map +1 -1
  25. package/script/src/context/ContextProvider.js +2 -5
  26. package/script/src/dsl/http/default.d.ts.map +1 -1
  27. package/script/src/dsl/http/default.js +1 -0
  28. package/script/src/dsl/http/versori/proxyroundtripper.d.ts +2 -2
  29. package/script/src/dsl/http/versori/proxyroundtripper.d.ts.map +1 -1
  30. package/script/src/dsl/http/versori/proxyroundtripper.js +4 -1
  31. package/script/src/dsl/http/versori/roundtripper.d.ts +1 -0
  32. package/script/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
  33. package/script/src/dsl/http/versori/roundtripper.js +37 -9
  34. package/script/src/dsl/triggers/WebhookTrigger.d.ts +10 -0
  35. package/script/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
  36. package/script/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  37. package/script/src/interpreter/durable/DurableInterpreter.js +0 -9
  38. package/script/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
  39. package/script/src/interpreter/durable/compilers/webhook.js +27 -4
  40. package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  41. package/script/src/interpreter/memory/MemoryInterpreter.js +0 -9
  42. package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  43. package/script/src/interpreter/memory/compilers/webhook.js +27 -4
@@ -16,6 +16,6 @@ export declare class ContextProviderImpl implements ContextProvider {
16
16
  queue?: QueueAPI;
17
17
  constructor(log: Logger, kvp: KeyValueProvider, creds: CredentialsProvider, issues: IssueAPI, queue?: QueueAPI | undefined);
18
18
  create<D>(data: D, options?: ContextOptions): ContextImpl<D>;
19
- destroy(ctx: Context<any>): Promise<void>;
19
+ destroy(_: Context<any>): Promise<void>;
20
20
  }
21
21
  //# sourceMappingURL=ContextProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../../../src/src/context/ContextProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;gBAGb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,QAAQ,EAChB,KAAK,GAAE,QAAQ,GAAG,SAAqB;IAS3C,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,CAAC;IAyBhE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAM5C"}
1
+ {"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../../../src/src/context/ContextProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;gBAGb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,QAAQ,EAChB,KAAK,GAAE,QAAQ,GAAG,SAAqB;IAS3C,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,CAAC;IAyBhE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
@@ -49,10 +49,7 @@ export class ContextProviderImpl {
49
49
  }
50
50
  return new ContextImpl(logger, this.kvp, this.creds, executionId, new Date(), data, this.issues, this.queue, options);
51
51
  }
52
- destroy(ctx) {
53
- return this.kvp.destroy({
54
- scope: ':execution:',
55
- executionId: ctx.executionId,
56
- });
52
+ destroy(_) {
53
+ return Promise.resolve();
57
54
  }
58
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/http/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAClE;;OAEG;;IAIH;;;;;;;OAOG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,CAAC;IAIhD,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMnE,WAAW,IAAI,mBAAmB;IAWlC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;CAK/E"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/http/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAOtE;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAClE;;OAEG;;IAIH;;;;;;;OAOG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,CAAC;IAIhD,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMnE,WAAW,IAAI,mBAAmB;IAalC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;CAK/E"}
@@ -33,6 +33,7 @@ export class DefaultRoundTripperFactory {
33
33
  tokenType: '',
34
34
  expiry: undefined,
35
35
  }),
36
+ getOAuth1Metadata: () => Promise.resolve(GetAuthorizationMetadataResponse), // ???? what even is this
36
37
  };
37
38
  }
38
39
  baseUrlFetcher(_connName) {
@@ -1,7 +1,7 @@
1
- import { BaseUrlFetcher, ConfigReader, DynamicFetcher, RoundTripperFactory } from '../types.js';
2
- import { PlatformAPIClient } from './platformapi.js';
3
1
  import { Logger } from '../../../observability/mod.js';
2
+ import { BaseUrlFetcher, ConfigReader, DynamicFetcher, RoundTripperFactory } from '../types.js';
4
3
  import { CredentialsProvider } from './contextcredentials.js';
4
+ import { PlatformAPIClient } from './platformapi.js';
5
5
  export declare class ProxyRoundTripper implements RoundTripperFactory {
6
6
  private platformApiBaseUrl;
7
7
  private cfgReader;
@@ -1 +1 @@
1
- {"version":3,"file":"proxyroundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/proxyroundtripper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAK9D,qBAAa,iBAAkB,YAAW,mBAAmB;IACzD,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,GAAG,CAAS;gBAGhB,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,YAAY;IAS3B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;IA0B9C,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;YA6BR,aAAa;IA4B3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC;IAoB3D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAqCxE,WAAW,IAAI,mBAAmB;IAelC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;CAKxD"}
1
+ {"version":3,"file":"proxyroundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/proxyroundtripper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAEH,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAO9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,qBAAa,iBAAkB,YAAW,mBAAmB;IACzD,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,GAAG,CAAS;gBAGhB,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,YAAY;IAS3B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;IA0B9C,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;YA6BR,aAAa;IA4B3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC;IAoB3D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAqCxE,WAAW,IAAI,mBAAmB;IAoBlC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;CAKxD"}
@@ -1,8 +1,8 @@
1
1
  import { VersoriConfigReader } from './configloader.js';
2
- import { PlatformAPIClient } from './platformapi.js';
3
2
  import { envVarEnvId, envVarOrgId, envVarPlatformApiBaseURL } from './constants.js';
4
3
  import { isValidURL } from './helpers.js';
5
4
  import { InternalAuth } from './internalauth.js';
5
+ import { PlatformAPIClient } from './platformapi.js';
6
6
  // ProxyRoundTripper is a factory for creating roundtrippers that use the Versori Platform API proxy endpoints.
7
7
  // this should allow code from the platform to be run locally.
8
8
  export class ProxyRoundTripper {
@@ -160,6 +160,9 @@ export class ProxyRoundTripper {
160
160
  getAccessToken: (_name, _forceRefresh, _actId) => {
161
161
  return Promise.reject(new Error('Not implemented, getAccessToken is not supported in proxy mode'));
162
162
  },
163
+ getOAuth1Metadata(_credId) {
164
+ return Promise.reject(new Error('Not implemented, getOAuth1Metadata is not supported in proxy mode'));
165
+ }
163
166
  };
164
167
  }
165
168
  baseUrlFetcher(_templateName) {
@@ -36,6 +36,7 @@ export declare class VersoriCredentialsFactory implements RoundTripperFactory {
36
36
  private basicAuthFetcherStatic;
37
37
  private bearerTokenFetcherStatic;
38
38
  private getOAuth2Token;
39
+ private checkExpiry;
39
40
  private oauth2FetcherStatic;
40
41
  private oauth1FetcherStatic;
41
42
  private mtlsFetcherStatic;
@@ -1 +1 @@
1
- {"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AAElE,OAAO,EAIH,cAAc,EACd,YAAY,EAGZ,cAAc,EACd,mBAAmB,EACtB,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,KAAK,SAAS,GAAG,CACb,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAA;CAAE,KAChD,OAAO,CAAC,QAAQ,CAAC,CAAC;AAavB;;;;;;;;;;GAUG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IACjE,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,WAAW,CAAuC;IAE1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;gBAGE,WAAW,EAAE,uBAAuB,EACpC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY;IAe3B,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,yBAAyB;IAoCzE,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,aAAa;IAwBf,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAuG9D,OAAO,CAAC,mBAAmB;IAoD3B,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,wBAAwB;YA6BlB,cAAc;IAiB5B,OAAO,CAAC,mBAAmB;IA2D3B,OAAO,CAAC,mBAAmB;IAuE3B,OAAO,CAAC,iBAAiB;IAqBzB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAyDxE,OAAO,CAAC,UAAU;IAqClB,WAAW,IAAI,mBAAmB;IAQlC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc;IAyC9C,cAAc,CAChB,IAAI,EAAE,MAAM,EACZ,YAAY,UAAQ,EACpB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,KAAK,CAAC;IAiBX,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAqB9D,uBAAuB;IAoDrC,OAAO,CAAC,aAAa;IAoDrB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,aAAa;IAqErB,OAAO,CAAC,aAAa;IAyErB,OAAO,CAAC,WAAW;YA6BL,QAAQ;YA2BR,MAAM;YA2BN,iBAAiB;CA0BlC"}
1
+ {"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AAElE,OAAO,EAGH,cAAc,EACd,YAAY,EAGZ,cAAc,EACd,mBAAmB,EACtB,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,KAAK,SAAS,GAAG,CACb,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAA;CAAE,KAChD,OAAO,CAAC,QAAQ,CAAC,CAAC;AAcvB;;;;;;;;;;GAUG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IACjE,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,WAAW,CAAoC;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;gBAGE,WAAW,EAAE,uBAAuB,EACpC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY;IAoB3B,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,yBAAyB;IAoCzE,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,aAAa;IAwBf,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAuG9D,OAAO,CAAC,mBAAmB;IAoD3B,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,wBAAwB;YA6BlB,cAAc;IAqC5B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,mBAAmB;IA+D3B,OAAO,CAAC,mBAAmB;IAuE3B,OAAO,CAAC,iBAAiB;IAqBzB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAyDxE,OAAO,CAAC,UAAU;IAqClB,WAAW,IAAI,mBAAmB;IAQlC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc;IAyC9C,cAAc,CAChB,IAAI,EAAE,MAAM,EACZ,YAAY,UAAQ,EACpB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,KAAK,CAAC;IAiBX,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAqB9D,uBAAuB;IAoDrC,OAAO,CAAC,aAAa;IAoDrB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,aAAa;IAqErB,OAAO,CAAC,aAAa;IAyErB,OAAO,CAAC,WAAW;YA6BL,QAAQ;YA2BR,MAAM;YA2BN,iBAAiB;CA0BlC"}
@@ -7,6 +7,8 @@ import { isValidURL } from './helpers.js';
7
7
  import { PlatformAPIClient } from './platformapi.js';
8
8
  import { URLSearchParams } from 'node:url';
9
9
  import { createHmac } from 'node:crypto';
10
+ import { LRUCache } from 'lru-cache';
11
+ import { timestampMs } from '@bufbuild/protobuf/wkt';
10
12
  import OAuth from 'oauth-1.0a'; // Importing the OAuth class as default export
11
13
  /**
12
14
  * VersoriRoundTripper is an implementation of the RoundTripperFactory interface for Versori connections.
@@ -61,7 +63,7 @@ export class VersoriCredentialsFactory {
61
63
  enumerable: true,
62
64
  configurable: true,
63
65
  writable: true,
64
- value: {}
66
+ value: void 0
65
67
  });
66
68
  Object.defineProperty(this, "defaultDynamic", {
67
69
  enumerable: true,
@@ -80,6 +82,10 @@ export class VersoriCredentialsFactory {
80
82
  this.cfgReader = cfgReader;
81
83
  this.log = logger;
82
84
  this.tracer = tracer;
85
+ this.oauth2Cache = new LRUCache({
86
+ max: 1000,
87
+ ttl: 2000 * 60 * 5,
88
+ });
83
89
  // lost 15 minutes because of this one
84
90
  this.traceFetch = this.traceFetch.bind(this);
85
91
  this.credentials = this.credentials.bind(this);
@@ -339,16 +345,38 @@ export class VersoriCredentialsFactory {
339
345
  // getOauth2Token fetches an OAuth2 token, stores the result in a cache, and returns the token.
340
346
  // If forceRefresh is true, it will bypass the cache and fetch a new token then update the cache.
341
347
  async getOAuth2Token(credId, forceRefresh = false) {
342
- if (credId in this.oauth2Cache && !forceRefresh) {
343
- return Promise.resolve(this.oauth2Cache[credId]);
348
+ if (!forceRefresh && this.oauth2Cache.has(credId)) {
349
+ // we do cache.has so it will be there, hence the ! operator
350
+ const cached = this.oauth2Cache.get(credId);
351
+ // check the expiry: if the oauth2 token has an expiry and it is going to expire
352
+ // after the next 10 minutes, then simply return. Otherswise set forceRefresh to true,
353
+ // get a new token and update the cache
354
+ if (cached.expiry) {
355
+ if (this.checkExpiry(cached.expiry)) {
356
+ return Promise.resolve(cached);
357
+ }
358
+ else {
359
+ forceRefresh = true;
360
+ }
361
+ }
344
362
  }
345
- const tokenResponse = await this.getToken(credId, forceRefresh);
346
- this.oauth2Cache[credId] = {
363
+ let tokenResponse = await this.getToken(credId, forceRefresh);
364
+ // we need to check the expiry of this new token in case it is going to expire soon.
365
+ if (tokenResponse?.token?.expiry && !this.checkExpiry(tokenResponse.token.expiry)) {
366
+ tokenResponse = await this.getToken(credId, true);
367
+ }
368
+ const newOauthTokenData = {
347
369
  token: tokenResponse.token?.accessToken || '',
348
370
  tokenType: tokenResponse.token?.tokenType,
371
+ expiry: tokenResponse.token?.expiry,
349
372
  };
350
- this.log.debug('Refreshed OAuth2 token and updating cache');
351
- return this.oauth2Cache[credId];
373
+ this.oauth2Cache.set(credId, newOauthTokenData);
374
+ return Promise.resolve(newOauthTokenData);
375
+ }
376
+ // Check if the given timestamp is expiring in the next 10 minutes.
377
+ // Returns true if not expiring, false otherwise
378
+ checkExpiry(ts) {
379
+ return timestampMs(ts) > (Date.now() + 10 * 60 * 1000);
352
380
  }
353
381
  oauth2FetcherStatic(credId, fn) {
354
382
  const refreshFn = async (input, init, forceRefresh = false) => {
@@ -389,8 +417,8 @@ export class VersoriCredentialsFactory {
389
417
  };
390
418
  const _fn = async (input, init) => {
391
419
  const resp = await refreshFn(input, init);
392
- if (resp.status === 401) {
393
- this.log.debug('Received 401 Unauthorized response, attempting refresh', {
420
+ if (resp.status === 401 || resp.status === 403) {
421
+ this.log.debug('Received unauthorized response, attempting to refresh token', {
394
422
  url: input,
395
423
  status: resp.status,
396
424
  });
@@ -10,6 +10,14 @@ export type WebhookCorsOptions = boolean | {
10
10
  exposedHeaders: string[];
11
11
  credentials: boolean;
12
12
  };
13
+ export type WebhookRequestOptions = {
14
+ /**
15
+ * If true, the raw body of the request will be passed to the context. Users will need to
16
+ * handle the parsing of the body themselves, and `data` in context will be undefined. Instead,
17
+ * you should call `const req = await ctx.request()` to retrieve the raw request.
18
+ */
19
+ rawBody?: boolean;
20
+ };
13
21
  export type WebhookResponseOptions = {
14
22
  /**
15
23
  * Mode determines how the response is sent to the client. The response can be customized by
@@ -44,6 +52,8 @@ export type WebhookOptions = {
44
52
  cors?: WebhookCorsOptions;
45
53
  response?: WebhookResponseOptions;
46
54
  connection?: string;
55
+ method?: "all" | "get" | "post" | "put" | "delete" | "patch" | "options" | "head";
56
+ request?: WebhookRequestOptions;
47
57
  };
48
58
  export declare class WebhookTrigger implements Trigger<WebhookData> {
49
59
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/WebhookTrigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAE7C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;CAC9C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAA;AAED,qBAAa,cAAe,YAAW,OAAO,CAAC,WAAW,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IAExB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAa;gBAEtB,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAKpD,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;CAG1D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAElF"}
1
+ {"version":3,"file":"WebhookTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/WebhookTrigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAE7C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;CAC9C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAClF,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC,CAAA;AAED,qBAAa,cAAe,YAAW,OAAO,CAAC,WAAW,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IAExB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAa;gBAEtB,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAKpD,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;CAG1D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAElF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DurableInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/DurableInterpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DurableInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/DurableInterpreter.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
3
3
  import { resourceFromAttributes } from '@opentelemetry/resources';
4
4
  import { NodeSDK } from '@opentelemetry/sdk-node';
5
5
  import express from 'express';
6
- import xmlparser from 'express-xml-bodyparser';
7
6
  import { catchError, EMPTY, mergeMap, of, tap } from 'rxjs';
8
7
  import { ContextProviderImpl } from '../../context/ContextProvider.js';
9
8
  import { DefaultRoundTripperFactory } from '../../dsl/http/default.js';
@@ -251,16 +250,8 @@ export class DurableInterpreter {
251
250
  const port = Deno.env.get('PORT') || 3000;
252
251
  const cronPort = Deno.env.get('CRON_PORT') || 3001;
253
252
  const webhookApp = express();
254
- webhookApp.use(express.json({ limit: '50mb' })); // Add JSON body parser middleware
255
253
  const cronApp = express();
256
254
  cronApp.use(express.json());
257
- const xml2jsDefaults = {
258
- explicitArray: false,
259
- normalize: false,
260
- normalizeTags: false,
261
- trim: true,
262
- };
263
- webhookApp.use(xmlparser(xml2jsDefaults));
264
255
  // Add health check route
265
256
  this.webhookRouter.get('/health', (_req, res) => {
266
257
  res.json({ status: 'healthy' });
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/webhook.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAgD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA8RxE,CAAC"}
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/webhook.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA2SxE,CAAC"}
@@ -1,8 +1,16 @@
1
1
  import cors from 'cors';
2
+ import express from 'express';
2
3
  import { pipeline } from 'node:stream/promises';
3
4
  import { Observable } from 'rxjs';
4
5
  import { createActIdDynamicWebhookMiddleware, createStaticWebhookMiddleware, createUserIdDynamicWebhookMiddleware, } from '../../../dsl/http/versori/webhookmiddleware.js';
5
6
  import { WebhookTrigger } from '../../../dsl/triggers/WebhookTrigger.js';
7
+ import xmlparser from 'express-xml-bodyparser';
8
+ const xml2jsDefaults = {
9
+ explicitArray: false,
10
+ normalize: false,
11
+ normalizeTags: false,
12
+ trim: true,
13
+ };
6
14
  const DEFAULT_SYNC_ON_SUCCESS = (ctx) => new Response(JSON.stringify(ctx.data), {
7
15
  status: 200,
8
16
  headers: {
@@ -40,12 +48,20 @@ const DEFAULT_ASYNC_ON_ERROR = (ctx) => new Response(JSON.stringify({
40
48
  export const webhookCompiler = {
41
49
  ctor: WebhookTrigger,
42
50
  compile: (ctx, trigger, signal) => {
43
- const { response: { mode = 'async', } = {}, cors: corsOptions, } = trigger.options;
51
+ const { response: { mode = 'async' } = {}, cors: corsOptions } = trigger.options;
44
52
  const isSync = mode === 'sync';
45
53
  const isAsync = mode === 'async';
46
54
  if (!isSync && !isAsync) {
47
55
  throw new Error('Invalid response mode, must be either "sync" or "async"');
48
56
  }
57
+ const method = trigger.options.method || 'post';
58
+ const validMethods = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head'];
59
+ if (method !== method.toLowerCase()) {
60
+ throw new Error(`HTTP method must be in lowercase: ${method} on webhook ${trigger.id}`);
61
+ }
62
+ if (!validMethods.includes(method)) {
63
+ throw new Error(`Unsupported HTTP method: ${method} on webhook ${trigger.id}. Must be one of: ${validMethods.join(', ')}`);
64
+ }
49
65
  let onSuccess = isSync ? DEFAULT_SYNC_ON_SUCCESS : DEFAULT_ASYNC_ON_SUCCESS;
50
66
  let onError = isSync ? DEFAULT_SYNC_ON_ERROR : DEFAULT_ASYNC_ON_ERROR;
51
67
  if (trigger.options.response?.onSuccess) {
@@ -67,6 +83,13 @@ export const webhookCompiler = {
67
83
  },
68
84
  request: req,
69
85
  });
86
+ if (!trigger.options.request?.rawBody) {
87
+ ctx.webhookRouter.use(express.json({ limit: '50mb' }));
88
+ ctx.webhookRouter.use(xmlparser(xml2jsDefaults));
89
+ }
90
+ else {
91
+ ctx.webhookRouter.use(express.raw({ type: '*/*', limit: '50mb' }));
92
+ }
70
93
  return new Observable((subscriber) => {
71
94
  if (!ctx.webhookRouter) {
72
95
  throw new Error('Router not available in compiler context');
@@ -82,7 +105,7 @@ export const webhookCompiler = {
82
105
  }
83
106
  }
84
107
  // endpoint for sans user because I'm not quite sure how the dynamic routing works
85
- ctx.webhookRouter.post(`/${trigger.id}`, createStaticWebhookMiddleware({
108
+ ctx.webhookRouter[method](`/${trigger.id}`, createStaticWebhookMiddleware({
86
109
  id: trigger.id,
87
110
  connName: trigger.options.connection,
88
111
  credentials: ctx.roundTripperFactory.credentials(),
@@ -119,7 +142,7 @@ export const webhookCompiler = {
119
142
  });
120
143
  });
121
144
  // this endpoint will trigger the workflow for each activation given by the external user ID
122
- ctx.webhookRouter.post(`/${trigger.id}/users/:userId`, createUserIdDynamicWebhookMiddleware({
145
+ ctx.webhookRouter[method](`/${trigger.id}/users/:userId`, createUserIdDynamicWebhookMiddleware({
123
146
  id: trigger.id,
124
147
  connName: trigger.options.connection,
125
148
  credentials: ctx.roundTripperFactory.credentials(),
@@ -177,7 +200,7 @@ export const webhookCompiler = {
177
200
  });
178
201
  });
179
202
  // this endpoint will trigger the workflow only for the activation given by its ID
180
- ctx.webhookRouter.post(`/${trigger.id}/activations/:activationId`, createActIdDynamicWebhookMiddleware({
203
+ ctx.webhookRouter[method](`/${trigger.id}/activations/:activationId`, createActIdDynamicWebhookMiddleware({
181
204
  id: trigger.id,
182
205
  connName: trigger.options.connection,
183
206
  credentials: ctx.roundTripperFactory.credentials(),
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
3
3
  import { resourceFromAttributes } from '@opentelemetry/resources';
4
4
  import { NodeSDK } from '@opentelemetry/sdk-node';
5
5
  import express from 'express';
6
- import xmlparser from 'express-xml-bodyparser';
7
6
  import { catchError, EMPTY, mergeMap, of, tap } from 'rxjs';
8
7
  import { ContextProviderImpl } from '../../context/ContextProvider.js';
9
8
  import { DefaultRoundTripperFactory } from '../../dsl/http/default.js';
@@ -240,16 +239,8 @@ export class MemoryInterpreter {
240
239
  const port = Deno.env.get('PORT') || 3000;
241
240
  const cronPort = Deno.env.get('CRON_PORT') || 3001;
242
241
  const webhookApp = express();
243
- webhookApp.use(express.json({ limit: '50mb' })); // Add JSON body parser middleware
244
242
  const cronApp = express();
245
243
  cronApp.use(express.json());
246
- const xml2jsDefaults = {
247
- explicitArray: false,
248
- normalize: false,
249
- normalizeTags: false,
250
- trim: true,
251
- };
252
- webhookApp.use(xmlparser(xml2jsDefaults));
253
244
  // Add health check route
254
245
  this.webhookRouter.get('/health', (_req, res) => {
255
246
  res.json({ status: 'healthy' });
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/webhook.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAgD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA8RxE,CAAC"}
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/webhook.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA2SxE,CAAC"}
@@ -1,8 +1,16 @@
1
1
  import cors from 'cors';
2
+ import express from 'express';
2
3
  import { pipeline } from 'node:stream/promises';
3
4
  import { Observable } from 'rxjs';
4
5
  import { createActIdDynamicWebhookMiddleware, createStaticWebhookMiddleware, createUserIdDynamicWebhookMiddleware, } from '../../../dsl/http/versori/webhookmiddleware.js';
5
6
  import { WebhookTrigger } from '../../../dsl/triggers/WebhookTrigger.js';
7
+ import xmlparser from 'express-xml-bodyparser';
8
+ const xml2jsDefaults = {
9
+ explicitArray: false,
10
+ normalize: false,
11
+ normalizeTags: false,
12
+ trim: true,
13
+ };
6
14
  const DEFAULT_SYNC_ON_SUCCESS = (ctx) => new Response(JSON.stringify(ctx.data), {
7
15
  status: 200,
8
16
  headers: {
@@ -40,12 +48,20 @@ const DEFAULT_ASYNC_ON_ERROR = (ctx) => new Response(JSON.stringify({
40
48
  export const webhookCompiler = {
41
49
  ctor: WebhookTrigger,
42
50
  compile: (ctx, trigger, signal) => {
43
- const { response: { mode = 'async', } = {}, cors: corsOptions, } = trigger.options;
51
+ const { response: { mode = 'async' } = {}, cors: corsOptions } = trigger.options;
44
52
  const isSync = mode === 'sync';
45
53
  const isAsync = mode === 'async';
46
54
  if (!isSync && !isAsync) {
47
55
  throw new Error('Invalid response mode, must be either "sync" or "async"');
48
56
  }
57
+ const method = trigger.options.method || 'post';
58
+ const validMethods = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head'];
59
+ if (method !== method.toLowerCase()) {
60
+ throw new Error(`HTTP method must be in lowercase: ${method} on webhook ${trigger.id}`);
61
+ }
62
+ if (!validMethods.includes(method)) {
63
+ throw new Error(`Unsupported HTTP method: ${method} on webhook ${trigger.id}. Must be one of: ${validMethods.join(', ')}`);
64
+ }
49
65
  let onSuccess = isSync ? DEFAULT_SYNC_ON_SUCCESS : DEFAULT_ASYNC_ON_SUCCESS;
50
66
  let onError = isSync ? DEFAULT_SYNC_ON_ERROR : DEFAULT_ASYNC_ON_ERROR;
51
67
  if (trigger.options.response?.onSuccess) {
@@ -67,6 +83,13 @@ export const webhookCompiler = {
67
83
  },
68
84
  request: req,
69
85
  });
86
+ if (!trigger.options.request?.rawBody) {
87
+ ctx.webhookRouter.use(express.json({ limit: '50mb' }));
88
+ ctx.webhookRouter.use(xmlparser(xml2jsDefaults));
89
+ }
90
+ else {
91
+ ctx.webhookRouter.use(express.raw({ type: '*/*', limit: '50mb' }));
92
+ }
70
93
  return new Observable((subscriber) => {
71
94
  if (!ctx.webhookRouter) {
72
95
  throw new Error('Router not available in compiler context');
@@ -82,7 +105,7 @@ export const webhookCompiler = {
82
105
  }
83
106
  }
84
107
  // endpoint for sans user because I'm not quite sure how the dynamic routing works
85
- ctx.webhookRouter.post(`/${trigger.id}`, createStaticWebhookMiddleware({
108
+ ctx.webhookRouter[method](`/${trigger.id}`, createStaticWebhookMiddleware({
86
109
  id: trigger.id,
87
110
  connName: trigger.options.connection,
88
111
  credentials: ctx.roundTripperFactory.credentials(),
@@ -119,7 +142,7 @@ export const webhookCompiler = {
119
142
  });
120
143
  });
121
144
  // this endpoint will trigger the workflow for each activation given by the external user ID
122
- ctx.webhookRouter.post(`/${trigger.id}/users/:userId`, createUserIdDynamicWebhookMiddleware({
145
+ ctx.webhookRouter[method](`/${trigger.id}/users/:userId`, createUserIdDynamicWebhookMiddleware({
123
146
  id: trigger.id,
124
147
  connName: trigger.options.connection,
125
148
  credentials: ctx.roundTripperFactory.credentials(),
@@ -177,7 +200,7 @@ export const webhookCompiler = {
177
200
  });
178
201
  });
179
202
  // this endpoint will trigger the workflow only for the activation given by its ID
180
- ctx.webhookRouter.post(`/${trigger.id}/activations/:activationId`, createActIdDynamicWebhookMiddleware({
203
+ ctx.webhookRouter[method](`/${trigger.id}/activations/:activationId`, createActIdDynamicWebhookMiddleware({
181
204
  id: trigger.id,
182
205
  connName: trigger.options.connection,
183
206
  credentials: ctx.roundTripperFactory.credentials(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versori/run",
3
- "version": "v0.2.26",
3
+ "version": "v0.2.28",
4
4
  "description": "Versori Run",
5
5
  "homepage": "https://github.com/versori/versori-run#readme",
6
6
  "repository": {
@@ -34,6 +34,7 @@
34
34
  "cors": "^2.8.5",
35
35
  "express": "^4.18.3",
36
36
  "express-xml-bodyparser": "^0.3.0",
37
+ "lru-cache": "^11.1.0",
37
38
  "oauth-1.0a": "^2.2.6",
38
39
  "rxjs": "^7.8.1",
39
40
  "tweetnacl": "1.0.3"
@@ -16,6 +16,6 @@ export declare class ContextProviderImpl implements ContextProvider {
16
16
  queue?: QueueAPI;
17
17
  constructor(log: Logger, kvp: KeyValueProvider, creds: CredentialsProvider, issues: IssueAPI, queue?: QueueAPI | undefined);
18
18
  create<D>(data: D, options?: ContextOptions): ContextImpl<D>;
19
- destroy(ctx: Context<any>): Promise<void>;
19
+ destroy(_: Context<any>): Promise<void>;
20
20
  }
21
21
  //# sourceMappingURL=ContextProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../../../src/src/context/ContextProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;gBAGb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,QAAQ,EAChB,KAAK,GAAE,QAAQ,GAAG,SAAqB;IAS3C,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,CAAC;IAyBhE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAM5C"}
1
+ {"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../../../src/src/context/ContextProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;gBAGb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,QAAQ,EAChB,KAAK,GAAE,QAAQ,GAAG,SAAqB;IAS3C,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,CAAC;IAyBhE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
@@ -52,11 +52,8 @@ class ContextProviderImpl {
52
52
  }
53
53
  return new Context_js_1.ContextImpl(logger, this.kvp, this.creds, executionId, new Date(), data, this.issues, this.queue, options);
54
54
  }
55
- destroy(ctx) {
56
- return this.kvp.destroy({
57
- scope: ':execution:',
58
- executionId: ctx.executionId,
59
- });
55
+ destroy(_) {
56
+ return Promise.resolve();
60
57
  }
61
58
  }
62
59
  exports.ContextProviderImpl = ContextProviderImpl;
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/http/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAClE;;OAEG;;IAIH;;;;;;;OAOG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,CAAC;IAIhD,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMnE,WAAW,IAAI,mBAAmB;IAWlC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;CAK/E"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/http/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAOtE;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAClE;;OAEG;;IAIH;;;;;;;OAOG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,CAAC;IAIhD,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMnE,WAAW,IAAI,mBAAmB;IAalC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;CAK/E"}
@@ -36,6 +36,7 @@ class DefaultRoundTripperFactory {
36
36
  tokenType: '',
37
37
  expiry: undefined,
38
38
  }),
39
+ getOAuth1Metadata: () => Promise.resolve(authorization_service_pb_js_1.GetAuthorizationMetadataResponse), // ???? what even is this
39
40
  };
40
41
  }
41
42
  baseUrlFetcher(_connName) {
@@ -1,7 +1,7 @@
1
- import { BaseUrlFetcher, ConfigReader, DynamicFetcher, RoundTripperFactory } from '../types.js';
2
- import { PlatformAPIClient } from './platformapi.js';
3
1
  import { Logger } from '../../../observability/mod.js';
2
+ import { BaseUrlFetcher, ConfigReader, DynamicFetcher, RoundTripperFactory } from '../types.js';
4
3
  import { CredentialsProvider } from './contextcredentials.js';
4
+ import { PlatformAPIClient } from './platformapi.js';
5
5
  export declare class ProxyRoundTripper implements RoundTripperFactory {
6
6
  private platformApiBaseUrl;
7
7
  private cfgReader;
@@ -1 +1 @@
1
- {"version":3,"file":"proxyroundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/proxyroundtripper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAK9D,qBAAa,iBAAkB,YAAW,mBAAmB;IACzD,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,GAAG,CAAS;gBAGhB,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,YAAY;IAS3B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;IA0B9C,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;YA6BR,aAAa;IA4B3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC;IAoB3D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAqCxE,WAAW,IAAI,mBAAmB;IAelC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;CAKxD"}
1
+ {"version":3,"file":"proxyroundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/proxyroundtripper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAEH,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAO9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,qBAAa,iBAAkB,YAAW,mBAAmB;IACzD,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,GAAG,CAAS;gBAGhB,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,YAAY;IAS3B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;IA0B9C,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;YA6BR,aAAa;IA4B3B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC;IAoB3D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAqCxE,WAAW,IAAI,mBAAmB;IAoBlC,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;CAKxD"}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProxyRoundTripper = void 0;
4
4
  const configloader_js_1 = require("./configloader.js");
5
- const platformapi_js_1 = require("./platformapi.js");
6
5
  const constants_js_1 = require("./constants.js");
7
6
  const helpers_js_1 = require("./helpers.js");
8
7
  const internalauth_js_1 = require("./internalauth.js");
8
+ const platformapi_js_1 = require("./platformapi.js");
9
9
  // ProxyRoundTripper is a factory for creating roundtrippers that use the Versori Platform API proxy endpoints.
10
10
  // this should allow code from the platform to be run locally.
11
11
  class ProxyRoundTripper {
@@ -163,6 +163,9 @@ class ProxyRoundTripper {
163
163
  getAccessToken: (_name, _forceRefresh, _actId) => {
164
164
  return Promise.reject(new Error('Not implemented, getAccessToken is not supported in proxy mode'));
165
165
  },
166
+ getOAuth1Metadata(_credId) {
167
+ return Promise.reject(new Error('Not implemented, getOAuth1Metadata is not supported in proxy mode'));
168
+ }
166
169
  };
167
170
  }
168
171
  baseUrlFetcher(_templateName) {
@@ -36,6 +36,7 @@ export declare class VersoriCredentialsFactory implements RoundTripperFactory {
36
36
  private basicAuthFetcherStatic;
37
37
  private bearerTokenFetcherStatic;
38
38
  private getOAuth2Token;
39
+ private checkExpiry;
39
40
  private oauth2FetcherStatic;
40
41
  private oauth1FetcherStatic;
41
42
  private mtlsFetcherStatic;
@@ -1 +1 @@
1
- {"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AAElE,OAAO,EAIH,cAAc,EACd,YAAY,EAGZ,cAAc,EACd,mBAAmB,EACtB,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,KAAK,SAAS,GAAG,CACb,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAA;CAAE,KAChD,OAAO,CAAC,QAAQ,CAAC,CAAC;AAavB;;;;;;;;;;GAUG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IACjE,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,WAAW,CAAuC;IAE1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;gBAGE,WAAW,EAAE,uBAAuB,EACpC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY;IAe3B,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,yBAAyB;IAoCzE,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,aAAa;IAwBf,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAuG9D,OAAO,CAAC,mBAAmB;IAoD3B,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,wBAAwB;YA6BlB,cAAc;IAiB5B,OAAO,CAAC,mBAAmB;IA2D3B,OAAO,CAAC,mBAAmB;IAuE3B,OAAO,CAAC,iBAAiB;IAqBzB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAyDxE,OAAO,CAAC,UAAU;IAqClB,WAAW,IAAI,mBAAmB;IAQlC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc;IAyC9C,cAAc,CAChB,IAAI,EAAE,MAAM,EACZ,YAAY,UAAQ,EACpB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,KAAK,CAAC;IAiBX,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAqB9D,uBAAuB;IAoDrC,OAAO,CAAC,aAAa;IAoDrB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,aAAa;IAqErB,OAAO,CAAC,aAAa;IAyErB,OAAO,CAAC,WAAW;YA6BL,QAAQ;YA2BR,MAAM;YA2BN,iBAAiB;CA0BlC"}
1
+ {"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AAElE,OAAO,EAGH,cAAc,EACd,YAAY,EAGZ,cAAc,EACd,mBAAmB,EACtB,MAAM,aAAa,CAAC;AAQrB,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,KAAK,SAAS,GAAG,CACb,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAA;CAAE,KAChD,OAAO,CAAC,QAAQ,CAAC,CAAC;AAcvB;;;;;;;;;;GAUG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IACjE,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,WAAW,CAAoC;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;gBAGE,WAAW,EAAE,uBAAuB,EACpC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,YAAY;IAoB3B,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,yBAAyB;IAoCzE,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,aAAa;IAwBf,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAuG9D,OAAO,CAAC,mBAAmB;IAoD3B,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,wBAAwB;YA6BlB,cAAc;IAqC5B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,mBAAmB;IA+D3B,OAAO,CAAC,mBAAmB;IAuE3B,OAAO,CAAC,iBAAiB;IAqBzB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAyDxE,OAAO,CAAC,UAAU;IAqClB,WAAW,IAAI,mBAAmB;IAQlC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc;IAyC9C,cAAc,CAChB,IAAI,EAAE,MAAM,EACZ,YAAY,UAAQ,EACpB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,KAAK,CAAC;IAiBX,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAqB9D,uBAAuB;IAoDrC,OAAO,CAAC,aAAa;IAoDrB,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,aAAa;IAqErB,OAAO,CAAC,aAAa;IAyErB,OAAO,CAAC,WAAW;YA6BL,QAAQ;YA2BR,MAAM;YA2BN,iBAAiB;CA0BlC"}
@@ -13,6 +13,8 @@ const helpers_js_1 = require("./helpers.js");
13
13
  const platformapi_js_1 = require("./platformapi.js");
14
14
  const node_url_1 = require("node:url");
15
15
  const node_crypto_1 = require("node:crypto");
16
+ const lru_cache_1 = require("lru-cache");
17
+ const wkt_1 = require("@bufbuild/protobuf/wkt");
16
18
  const oauth_1_0a_1 = __importDefault(require("oauth-1.0a")); // Importing the OAuth class as default export
17
19
  /**
18
20
  * VersoriRoundTripper is an implementation of the RoundTripperFactory interface for Versori connections.
@@ -67,7 +69,7 @@ class VersoriCredentialsFactory {
67
69
  enumerable: true,
68
70
  configurable: true,
69
71
  writable: true,
70
- value: {}
72
+ value: void 0
71
73
  });
72
74
  Object.defineProperty(this, "defaultDynamic", {
73
75
  enumerable: true,
@@ -86,6 +88,10 @@ class VersoriCredentialsFactory {
86
88
  this.cfgReader = cfgReader;
87
89
  this.log = logger;
88
90
  this.tracer = tracer;
91
+ this.oauth2Cache = new lru_cache_1.LRUCache({
92
+ max: 1000,
93
+ ttl: 2000 * 60 * 5,
94
+ });
89
95
  // lost 15 minutes because of this one
90
96
  this.traceFetch = this.traceFetch.bind(this);
91
97
  this.credentials = this.credentials.bind(this);
@@ -345,16 +351,38 @@ class VersoriCredentialsFactory {
345
351
  // getOauth2Token fetches an OAuth2 token, stores the result in a cache, and returns the token.
346
352
  // If forceRefresh is true, it will bypass the cache and fetch a new token then update the cache.
347
353
  async getOAuth2Token(credId, forceRefresh = false) {
348
- if (credId in this.oauth2Cache && !forceRefresh) {
349
- return Promise.resolve(this.oauth2Cache[credId]);
354
+ if (!forceRefresh && this.oauth2Cache.has(credId)) {
355
+ // we do cache.has so it will be there, hence the ! operator
356
+ const cached = this.oauth2Cache.get(credId);
357
+ // check the expiry: if the oauth2 token has an expiry and it is going to expire
358
+ // after the next 10 minutes, then simply return. Otherswise set forceRefresh to true,
359
+ // get a new token and update the cache
360
+ if (cached.expiry) {
361
+ if (this.checkExpiry(cached.expiry)) {
362
+ return Promise.resolve(cached);
363
+ }
364
+ else {
365
+ forceRefresh = true;
366
+ }
367
+ }
350
368
  }
351
- const tokenResponse = await this.getToken(credId, forceRefresh);
352
- this.oauth2Cache[credId] = {
369
+ let tokenResponse = await this.getToken(credId, forceRefresh);
370
+ // we need to check the expiry of this new token in case it is going to expire soon.
371
+ if (tokenResponse?.token?.expiry && !this.checkExpiry(tokenResponse.token.expiry)) {
372
+ tokenResponse = await this.getToken(credId, true);
373
+ }
374
+ const newOauthTokenData = {
353
375
  token: tokenResponse.token?.accessToken || '',
354
376
  tokenType: tokenResponse.token?.tokenType,
377
+ expiry: tokenResponse.token?.expiry,
355
378
  };
356
- this.log.debug('Refreshed OAuth2 token and updating cache');
357
- return this.oauth2Cache[credId];
379
+ this.oauth2Cache.set(credId, newOauthTokenData);
380
+ return Promise.resolve(newOauthTokenData);
381
+ }
382
+ // Check if the given timestamp is expiring in the next 10 minutes.
383
+ // Returns true if not expiring, false otherwise
384
+ checkExpiry(ts) {
385
+ return (0, wkt_1.timestampMs)(ts) > (Date.now() + 10 * 60 * 1000);
358
386
  }
359
387
  oauth2FetcherStatic(credId, fn) {
360
388
  const refreshFn = async (input, init, forceRefresh = false) => {
@@ -395,8 +423,8 @@ class VersoriCredentialsFactory {
395
423
  };
396
424
  const _fn = async (input, init) => {
397
425
  const resp = await refreshFn(input, init);
398
- if (resp.status === 401) {
399
- this.log.debug('Received 401 Unauthorized response, attempting refresh', {
426
+ if (resp.status === 401 || resp.status === 403) {
427
+ this.log.debug('Received unauthorized response, attempting to refresh token', {
400
428
  url: input,
401
429
  status: resp.status,
402
430
  });
@@ -10,6 +10,14 @@ export type WebhookCorsOptions = boolean | {
10
10
  exposedHeaders: string[];
11
11
  credentials: boolean;
12
12
  };
13
+ export type WebhookRequestOptions = {
14
+ /**
15
+ * If true, the raw body of the request will be passed to the context. Users will need to
16
+ * handle the parsing of the body themselves, and `data` in context will be undefined. Instead,
17
+ * you should call `const req = await ctx.request()` to retrieve the raw request.
18
+ */
19
+ rawBody?: boolean;
20
+ };
13
21
  export type WebhookResponseOptions = {
14
22
  /**
15
23
  * Mode determines how the response is sent to the client. The response can be customized by
@@ -44,6 +52,8 @@ export type WebhookOptions = {
44
52
  cors?: WebhookCorsOptions;
45
53
  response?: WebhookResponseOptions;
46
54
  connection?: string;
55
+ method?: "all" | "get" | "post" | "put" | "delete" | "patch" | "options" | "head";
56
+ request?: WebhookRequestOptions;
47
57
  };
48
58
  export declare class WebhookTrigger implements Trigger<WebhookData> {
49
59
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/WebhookTrigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAE7C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;CAC9C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAA;AAED,qBAAa,cAAe,YAAW,OAAO,CAAC,WAAW,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IAExB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAa;gBAEtB,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAKpD,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;CAG1D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAElF"}
1
+ {"version":3,"file":"WebhookTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/WebhookTrigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAE7C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;CAC9C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAClF,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC,CAAA;AAED,qBAAa,cAAe,YAAW,OAAO,CAAC,WAAW,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IAExB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAa;gBAEtB,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAKpD,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;CAG1D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAElF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DurableInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/DurableInterpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DurableInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/DurableInterpreter.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,6 @@ const exporter_trace_otlp_proto_1 = require("@opentelemetry/exporter-trace-otlp-
9
9
  const resources_1 = require("@opentelemetry/resources");
10
10
  const sdk_node_1 = require("@opentelemetry/sdk-node");
11
11
  const express_1 = __importDefault(require("express"));
12
- const express_xml_bodyparser_1 = __importDefault(require("express-xml-bodyparser"));
13
12
  const rxjs_1 = require("rxjs");
14
13
  const ContextProvider_js_1 = require("../../context/ContextProvider.js");
15
14
  const default_js_1 = require("../../dsl/http/default.js");
@@ -257,16 +256,8 @@ class DurableInterpreter {
257
256
  const port = Deno.env.get('PORT') || 3000;
258
257
  const cronPort = Deno.env.get('CRON_PORT') || 3001;
259
258
  const webhookApp = (0, express_1.default)();
260
- webhookApp.use(express_1.default.json({ limit: '50mb' })); // Add JSON body parser middleware
261
259
  const cronApp = (0, express_1.default)();
262
260
  cronApp.use(express_1.default.json());
263
- const xml2jsDefaults = {
264
- explicitArray: false,
265
- normalize: false,
266
- normalizeTags: false,
267
- trim: true,
268
- };
269
- webhookApp.use((0, express_xml_bodyparser_1.default)(xml2jsDefaults));
270
261
  // Add health check route
271
262
  this.webhookRouter.get('/health', (_req, res) => {
272
263
  res.json({ status: 'healthy' });
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/webhook.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAgD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA8RxE,CAAC"}
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/webhook.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA2SxE,CAAC"}
@@ -5,10 +5,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.webhookCompiler = void 0;
7
7
  const cors_1 = __importDefault(require("cors"));
8
+ const express_1 = __importDefault(require("express"));
8
9
  const promises_1 = require("node:stream/promises");
9
10
  const rxjs_1 = require("rxjs");
10
11
  const webhookmiddleware_js_1 = require("../../../dsl/http/versori/webhookmiddleware.js");
11
12
  const WebhookTrigger_js_1 = require("../../../dsl/triggers/WebhookTrigger.js");
13
+ const express_xml_bodyparser_1 = __importDefault(require("express-xml-bodyparser"));
14
+ const xml2jsDefaults = {
15
+ explicitArray: false,
16
+ normalize: false,
17
+ normalizeTags: false,
18
+ trim: true,
19
+ };
12
20
  const DEFAULT_SYNC_ON_SUCCESS = (ctx) => new Response(JSON.stringify(ctx.data), {
13
21
  status: 200,
14
22
  headers: {
@@ -46,12 +54,20 @@ const DEFAULT_ASYNC_ON_ERROR = (ctx) => new Response(JSON.stringify({
46
54
  exports.webhookCompiler = {
47
55
  ctor: WebhookTrigger_js_1.WebhookTrigger,
48
56
  compile: (ctx, trigger, signal) => {
49
- const { response: { mode = 'async', } = {}, cors: corsOptions, } = trigger.options;
57
+ const { response: { mode = 'async' } = {}, cors: corsOptions } = trigger.options;
50
58
  const isSync = mode === 'sync';
51
59
  const isAsync = mode === 'async';
52
60
  if (!isSync && !isAsync) {
53
61
  throw new Error('Invalid response mode, must be either "sync" or "async"');
54
62
  }
63
+ const method = trigger.options.method || 'post';
64
+ const validMethods = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head'];
65
+ if (method !== method.toLowerCase()) {
66
+ throw new Error(`HTTP method must be in lowercase: ${method} on webhook ${trigger.id}`);
67
+ }
68
+ if (!validMethods.includes(method)) {
69
+ throw new Error(`Unsupported HTTP method: ${method} on webhook ${trigger.id}. Must be one of: ${validMethods.join(', ')}`);
70
+ }
55
71
  let onSuccess = isSync ? DEFAULT_SYNC_ON_SUCCESS : DEFAULT_ASYNC_ON_SUCCESS;
56
72
  let onError = isSync ? DEFAULT_SYNC_ON_ERROR : DEFAULT_ASYNC_ON_ERROR;
57
73
  if (trigger.options.response?.onSuccess) {
@@ -73,6 +89,13 @@ exports.webhookCompiler = {
73
89
  },
74
90
  request: req,
75
91
  });
92
+ if (!trigger.options.request?.rawBody) {
93
+ ctx.webhookRouter.use(express_1.default.json({ limit: '50mb' }));
94
+ ctx.webhookRouter.use((0, express_xml_bodyparser_1.default)(xml2jsDefaults));
95
+ }
96
+ else {
97
+ ctx.webhookRouter.use(express_1.default.raw({ type: '*/*', limit: '50mb' }));
98
+ }
76
99
  return new rxjs_1.Observable((subscriber) => {
77
100
  if (!ctx.webhookRouter) {
78
101
  throw new Error('Router not available in compiler context');
@@ -88,7 +111,7 @@ exports.webhookCompiler = {
88
111
  }
89
112
  }
90
113
  // endpoint for sans user because I'm not quite sure how the dynamic routing works
91
- ctx.webhookRouter.post(`/${trigger.id}`, (0, webhookmiddleware_js_1.createStaticWebhookMiddleware)({
114
+ ctx.webhookRouter[method](`/${trigger.id}`, (0, webhookmiddleware_js_1.createStaticWebhookMiddleware)({
92
115
  id: trigger.id,
93
116
  connName: trigger.options.connection,
94
117
  credentials: ctx.roundTripperFactory.credentials(),
@@ -125,7 +148,7 @@ exports.webhookCompiler = {
125
148
  });
126
149
  });
127
150
  // this endpoint will trigger the workflow for each activation given by the external user ID
128
- ctx.webhookRouter.post(`/${trigger.id}/users/:userId`, (0, webhookmiddleware_js_1.createUserIdDynamicWebhookMiddleware)({
151
+ ctx.webhookRouter[method](`/${trigger.id}/users/:userId`, (0, webhookmiddleware_js_1.createUserIdDynamicWebhookMiddleware)({
129
152
  id: trigger.id,
130
153
  connName: trigger.options.connection,
131
154
  credentials: ctx.roundTripperFactory.credentials(),
@@ -183,7 +206,7 @@ exports.webhookCompiler = {
183
206
  });
184
207
  });
185
208
  // this endpoint will trigger the workflow only for the activation given by its ID
186
- ctx.webhookRouter.post(`/${trigger.id}/activations/:activationId`, (0, webhookmiddleware_js_1.createActIdDynamicWebhookMiddleware)({
209
+ ctx.webhookRouter[method](`/${trigger.id}/activations/:activationId`, (0, webhookmiddleware_js_1.createActIdDynamicWebhookMiddleware)({
187
210
  id: trigger.id,
188
211
  connName: trigger.options.connection,
189
212
  credentials: ctx.roundTripperFactory.credentials(),
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"AAAA,OAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAgB,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAG7D,OAAO,EAA+B,UAAU,EAAM,YAAY,EAAO,MAAM,MAAM,CAAC;AACtF,OAAO,EAAE,eAAe,EAAuB,MAAM,kCAAkC,CAAC;AAExF,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACtB,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,EAAE,QAAQ,EAAgB,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAa,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAoB,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAmB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7C,KAAK,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,oBAAoB,EAAE,eAAe,CAAC;IACtC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AAiCF,qBAAa,iBAAiB;IAQtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAnB7B,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,cAAc,CAAS;gBAGV,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,kBAAkB,EAC5B,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,QAAQ,EACxB,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,OAAO,YAAA;WAWzB,WAAW,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyF5F,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,wBAAwB;IAkD/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyMtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO9B"}
1
+ {"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"AAAA,OAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAgB,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAG7D,OAAO,EAA+B,UAAU,EAAM,YAAY,EAAO,MAAM,MAAM,CAAC;AACtF,OAAO,EAAE,eAAe,EAAuB,MAAM,kCAAkC,CAAC;AAExF,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACtB,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,EAAE,QAAQ,EAAgB,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAa,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAoB,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAmB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7C,KAAK,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,oBAAoB,EAAE,eAAe,CAAC;IACtC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AAiCF,qBAAa,iBAAiB;IAQtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAnB7B,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,cAAc,CAAS;gBAGV,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,kBAAkB,EAC5B,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,QAAQ,EACxB,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,OAAO,YAAA;WAWzB,WAAW,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyF5F,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,wBAAwB;IAkD/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+LtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAO9B"}
@@ -9,7 +9,6 @@ const exporter_trace_otlp_proto_1 = require("@opentelemetry/exporter-trace-otlp-
9
9
  const resources_1 = require("@opentelemetry/resources");
10
10
  const sdk_node_1 = require("@opentelemetry/sdk-node");
11
11
  const express_1 = __importDefault(require("express"));
12
- const express_xml_bodyparser_1 = __importDefault(require("express-xml-bodyparser"));
13
12
  const rxjs_1 = require("rxjs");
14
13
  const ContextProvider_js_1 = require("../../context/ContextProvider.js");
15
14
  const default_js_1 = require("../../dsl/http/default.js");
@@ -246,16 +245,8 @@ class MemoryInterpreter {
246
245
  const port = Deno.env.get('PORT') || 3000;
247
246
  const cronPort = Deno.env.get('CRON_PORT') || 3001;
248
247
  const webhookApp = (0, express_1.default)();
249
- webhookApp.use(express_1.default.json({ limit: '50mb' })); // Add JSON body parser middleware
250
248
  const cronApp = (0, express_1.default)();
251
249
  cronApp.use(express_1.default.json());
252
- const xml2jsDefaults = {
253
- explicitArray: false,
254
- normalize: false,
255
- normalizeTags: false,
256
- trim: true,
257
- };
258
- webhookApp.use((0, express_xml_bodyparser_1.default)(xml2jsDefaults));
259
250
  // Add health check route
260
251
  this.webhookRouter.get('/health', (_req, res) => {
261
252
  res.json({ status: 'healthy' });
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/webhook.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAgD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA8RxE,CAAC"}
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/webhook.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAwD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA2SxE,CAAC"}
@@ -5,10 +5,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.webhookCompiler = void 0;
7
7
  const cors_1 = __importDefault(require("cors"));
8
+ const express_1 = __importDefault(require("express"));
8
9
  const promises_1 = require("node:stream/promises");
9
10
  const rxjs_1 = require("rxjs");
10
11
  const webhookmiddleware_js_1 = require("../../../dsl/http/versori/webhookmiddleware.js");
11
12
  const WebhookTrigger_js_1 = require("../../../dsl/triggers/WebhookTrigger.js");
13
+ const express_xml_bodyparser_1 = __importDefault(require("express-xml-bodyparser"));
14
+ const xml2jsDefaults = {
15
+ explicitArray: false,
16
+ normalize: false,
17
+ normalizeTags: false,
18
+ trim: true,
19
+ };
12
20
  const DEFAULT_SYNC_ON_SUCCESS = (ctx) => new Response(JSON.stringify(ctx.data), {
13
21
  status: 200,
14
22
  headers: {
@@ -46,12 +54,20 @@ const DEFAULT_ASYNC_ON_ERROR = (ctx) => new Response(JSON.stringify({
46
54
  exports.webhookCompiler = {
47
55
  ctor: WebhookTrigger_js_1.WebhookTrigger,
48
56
  compile: (ctx, trigger, signal) => {
49
- const { response: { mode = 'async', } = {}, cors: corsOptions, } = trigger.options;
57
+ const { response: { mode = 'async' } = {}, cors: corsOptions } = trigger.options;
50
58
  const isSync = mode === 'sync';
51
59
  const isAsync = mode === 'async';
52
60
  if (!isSync && !isAsync) {
53
61
  throw new Error('Invalid response mode, must be either "sync" or "async"');
54
62
  }
63
+ const method = trigger.options.method || 'post';
64
+ const validMethods = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head'];
65
+ if (method !== method.toLowerCase()) {
66
+ throw new Error(`HTTP method must be in lowercase: ${method} on webhook ${trigger.id}`);
67
+ }
68
+ if (!validMethods.includes(method)) {
69
+ throw new Error(`Unsupported HTTP method: ${method} on webhook ${trigger.id}. Must be one of: ${validMethods.join(', ')}`);
70
+ }
55
71
  let onSuccess = isSync ? DEFAULT_SYNC_ON_SUCCESS : DEFAULT_ASYNC_ON_SUCCESS;
56
72
  let onError = isSync ? DEFAULT_SYNC_ON_ERROR : DEFAULT_ASYNC_ON_ERROR;
57
73
  if (trigger.options.response?.onSuccess) {
@@ -73,6 +89,13 @@ exports.webhookCompiler = {
73
89
  },
74
90
  request: req,
75
91
  });
92
+ if (!trigger.options.request?.rawBody) {
93
+ ctx.webhookRouter.use(express_1.default.json({ limit: '50mb' }));
94
+ ctx.webhookRouter.use((0, express_xml_bodyparser_1.default)(xml2jsDefaults));
95
+ }
96
+ else {
97
+ ctx.webhookRouter.use(express_1.default.raw({ type: '*/*', limit: '50mb' }));
98
+ }
76
99
  return new rxjs_1.Observable((subscriber) => {
77
100
  if (!ctx.webhookRouter) {
78
101
  throw new Error('Router not available in compiler context');
@@ -88,7 +111,7 @@ exports.webhookCompiler = {
88
111
  }
89
112
  }
90
113
  // endpoint for sans user because I'm not quite sure how the dynamic routing works
91
- ctx.webhookRouter.post(`/${trigger.id}`, (0, webhookmiddleware_js_1.createStaticWebhookMiddleware)({
114
+ ctx.webhookRouter[method](`/${trigger.id}`, (0, webhookmiddleware_js_1.createStaticWebhookMiddleware)({
92
115
  id: trigger.id,
93
116
  connName: trigger.options.connection,
94
117
  credentials: ctx.roundTripperFactory.credentials(),
@@ -125,7 +148,7 @@ exports.webhookCompiler = {
125
148
  });
126
149
  });
127
150
  // this endpoint will trigger the workflow for each activation given by the external user ID
128
- ctx.webhookRouter.post(`/${trigger.id}/users/:userId`, (0, webhookmiddleware_js_1.createUserIdDynamicWebhookMiddleware)({
151
+ ctx.webhookRouter[method](`/${trigger.id}/users/:userId`, (0, webhookmiddleware_js_1.createUserIdDynamicWebhookMiddleware)({
129
152
  id: trigger.id,
130
153
  connName: trigger.options.connection,
131
154
  credentials: ctx.roundTripperFactory.credentials(),
@@ -183,7 +206,7 @@ exports.webhookCompiler = {
183
206
  });
184
207
  });
185
208
  // this endpoint will trigger the workflow only for the activation given by its ID
186
- ctx.webhookRouter.post(`/${trigger.id}/activations/:activationId`, (0, webhookmiddleware_js_1.createActIdDynamicWebhookMiddleware)({
209
+ ctx.webhookRouter[method](`/${trigger.id}/activations/:activationId`, (0, webhookmiddleware_js_1.createActIdDynamicWebhookMiddleware)({
187
210
  id: trigger.id,
188
211
  connName: trigger.options.connection,
189
212
  credentials: ctx.roundTripperFactory.credentials(),