cliodot 1.2.3 → 1.2.4

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 (135) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +2 -0
  3. package/dist/AuthAppClient.d.ts +1 -0
  4. package/dist/AuthAppClient.d.ts.map +1 -1
  5. package/dist/AuthAppClient.js +199 -1
  6. package/dist/CommercialAppClient.d.ts +50 -9
  7. package/dist/CommercialAppClient.d.ts.map +1 -1
  8. package/dist/CommercialAppClient.js +576 -1
  9. package/dist/ConnectorBuilder.js +104 -1
  10. package/dist/Events.d.ts +2 -0
  11. package/dist/Events.d.ts.map +1 -1
  12. package/dist/Events.js +325 -1
  13. package/dist/Flosync.js +296 -1
  14. package/dist/FlosyncClient.js +429 -1
  15. package/dist/FunctionBuilder.js +65 -1
  16. package/dist/IdentityAppClient.d.ts +1 -0
  17. package/dist/IdentityAppClient.d.ts.map +1 -1
  18. package/dist/IdentityAppClient.js +197 -1
  19. package/dist/MemoryAppClient.d.ts +1 -0
  20. package/dist/MemoryAppClient.d.ts.map +1 -1
  21. package/dist/MemoryAppClient.js +149 -1
  22. package/dist/MemoryClient.js +20 -1
  23. package/dist/OAuthAppClient.d.ts +1 -0
  24. package/dist/OAuthAppClient.d.ts.map +1 -1
  25. package/dist/OAuthAppClient.js +269 -1
  26. package/dist/ProviderServicesClient.d.ts +24 -0
  27. package/dist/ProviderServicesClient.d.ts.map +1 -0
  28. package/dist/ProviderServicesClient.js +158 -0
  29. package/dist/Surface.d.ts +2 -0
  30. package/dist/Surface.d.ts.map +1 -1
  31. package/dist/Surface.js +255 -1
  32. package/dist/ValidatorBuilder.js +24 -1
  33. package/dist/Webhooks.js +61 -1
  34. package/dist/WorkflowBuilder.js +279 -1
  35. package/dist/__tests__/CommercialAppClient.test.d.ts +2 -0
  36. package/dist/__tests__/CommercialAppClient.test.d.ts.map +1 -0
  37. package/dist/__tests__/CommercialAppClient.test.js +217 -0
  38. package/dist/__tests__/Events.test.js +191 -1
  39. package/dist/__tests__/IdentityAppClient.test.js +232 -1
  40. package/dist/__tests__/OAuthAppClient.test.js +300 -1
  41. package/dist/__tests__/ProviderServicesClient.test.d.ts +2 -0
  42. package/dist/__tests__/ProviderServicesClient.test.d.ts.map +1 -0
  43. package/dist/__tests__/ProviderServicesClient.test.js +131 -0
  44. package/dist/__tests__/Surface.test.js +150 -1
  45. package/dist/__tests__/errors.test.js +54 -1
  46. package/dist/__tests__/function.test.js +58 -1
  47. package/dist/__tests__/helpers.d.ts +5 -0
  48. package/dist/__tests__/helpers.d.ts.map +1 -0
  49. package/dist/__tests__/helpers.js +10 -0
  50. package/dist/__tests__/localhost-lookup.test.d.ts +2 -0
  51. package/dist/__tests__/localhost-lookup.test.d.ts.map +1 -0
  52. package/dist/__tests__/localhost-lookup.test.js +26 -0
  53. package/dist/__tests__/parse-api-error.test.js +26 -1
  54. package/dist/__tests__/runner.test.js +156 -1
  55. package/dist/connectors/builtin.js +354 -1
  56. package/dist/connectors/registry.js +300 -1
  57. package/dist/decorators/build.js +105 -1
  58. package/dist/decorators/connector.js +56 -1
  59. package/dist/decorators/index.js +34 -1
  60. package/dist/decorators/metadata.js +338 -1
  61. package/dist/decorators/steps.js +220 -1
  62. package/dist/decorators/workflow.js +52 -1
  63. package/dist/errors.js +76 -1
  64. package/dist/http/__tests__/cliodot-request.environment.test.d.ts +2 -0
  65. package/dist/http/__tests__/cliodot-request.environment.test.d.ts.map +1 -0
  66. package/dist/http/__tests__/cliodot-request.environment.test.js +37 -0
  67. package/dist/http/__tests__/cliodot-result.test.d.ts +2 -0
  68. package/dist/http/__tests__/cliodot-result.test.d.ts.map +1 -0
  69. package/dist/http/__tests__/cliodot-result.test.js +57 -0
  70. package/dist/http/__tests__/events-instance-id.test.d.ts +2 -0
  71. package/dist/http/__tests__/events-instance-id.test.d.ts.map +1 -0
  72. package/dist/http/__tests__/events-instance-id.test.js +45 -0
  73. package/dist/http/cliodot-request.d.ts +35 -0
  74. package/dist/http/cliodot-request.d.ts.map +1 -0
  75. package/dist/http/cliodot-request.js +105 -0
  76. package/dist/http/cliodot-result.d.ts +40 -0
  77. package/dist/http/cliodot-result.d.ts.map +1 -0
  78. package/dist/http/cliodot-result.js +139 -0
  79. package/dist/http/create-client.d.ts +3 -0
  80. package/dist/http/create-client.d.ts.map +1 -0
  81. package/dist/http/create-client.js +14 -0
  82. package/dist/http/events-instance-id.d.ts +11 -0
  83. package/dist/http/events-instance-id.d.ts.map +1 -0
  84. package/dist/http/events-instance-id.js +86 -0
  85. package/dist/http/localhost-lookup.d.ts +12 -0
  86. package/dist/http/localhost-lookup.d.ts.map +1 -0
  87. package/dist/http/localhost-lookup.js +67 -0
  88. package/dist/http/parse-api-error.js +56 -1
  89. package/dist/http/sanitize-execution-headers.js +79 -1
  90. package/dist/identity-offline-verify.js +174 -1
  91. package/dist/identity-token-cache.js +51 -1
  92. package/dist/index.d.ts +1 -1
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +108 -1
  95. package/dist/runner/ProcessorEngine.js +1311 -1
  96. package/dist/runner/connector.executor.js +1786 -1
  97. package/dist/runner/utilities/math.executor.js +153 -1
  98. package/dist/runner/utilities/random.executor.js +151 -1
  99. package/dist/runner/utilities/string.executor.js +825 -1
  100. package/dist/template.js +127 -1
  101. package/dist/transformers/StepsToNodesTransformer.js +214 -1
  102. package/dist/transformers/WorkflowTransformer.js +189 -1
  103. package/dist/types/auth-app.api.d.ts +2 -0
  104. package/dist/types/auth-app.api.d.ts.map +1 -1
  105. package/dist/types/auth-app.api.js +2 -1
  106. package/dist/types/builtin.js +2 -1
  107. package/dist/types/client.api.js +2 -1
  108. package/dist/types/commercial-app.api.d.ts +407 -11
  109. package/dist/types/commercial-app.api.d.ts.map +1 -1
  110. package/dist/types/commercial-app.api.js +2 -1
  111. package/dist/types/connector.js +2 -1
  112. package/dist/types/context.js +2 -1
  113. package/dist/types/event-app.api.d.ts +8 -0
  114. package/dist/types/event-app.api.d.ts.map +1 -1
  115. package/dist/types/event-app.api.js +2 -1
  116. package/dist/types/function.js +2 -1
  117. package/dist/types/identity-app.api.d.ts +2 -0
  118. package/dist/types/identity-app.api.d.ts.map +1 -1
  119. package/dist/types/identity-app.api.js +2 -1
  120. package/dist/types/index.js +23 -1
  121. package/dist/types/memory-app.api.d.ts +2 -0
  122. package/dist/types/memory-app.api.d.ts.map +1 -1
  123. package/dist/types/memory-app.api.js +2 -1
  124. package/dist/types/oauth-app.api.d.ts +2 -0
  125. package/dist/types/oauth-app.api.d.ts.map +1 -1
  126. package/dist/types/oauth-app.api.js +105 -1
  127. package/dist/types/provider-services.api.d.ts +98 -0
  128. package/dist/types/provider-services.api.d.ts.map +1 -0
  129. package/dist/types/provider-services.api.js +2 -0
  130. package/dist/types/validator.js +2 -1
  131. package/dist/types/webhook-app.api.js +2 -1
  132. package/dist/types/workflow.js +33 -1
  133. package/dist/validators/validators.js +478 -1
  134. package/dist/variable.js +37 -1
  135. package/package.json +3 -2
@@ -1 +1,104 @@
1
- 'use strict';const _0x3f8697=_0x4ea2;function _0x5e5c(){const _0x2cb6d0=['yxv0AenVBMzPzW','x21LDge','x19LC01VzhvSzq','Dg9vChbLCKnHC2u','mZG2nJK4mJb5vgP3t2O','x2f1DgG','yMvHCMvY','yMfZzvvYBa','Cgf0y2G','nJeYntKXnvHHCfLsCW','q29UBMvJDg9YqNvPBgrLCG','zgvZy3jPChrPB24','z2v0','Cg9ZDa','yxbPs2v5','x3r5Cgu','x2rLC2nYAxb0Aw9U','qM90ia','x2vUzhbVAw50CW','zw5KCg9PBNq','uefuq0G','y3vZDg9TrMXVDW','y29UBMvJDg9Y','mtC4odvet2XvqKm','mJyXotC2nvbOq3ztuW','mtiZmMvhr1PSAG','yNvPBgq','ue9tva','yxbPx2TLEq','Bwv0yq','BgfZDf91CgrHDgvK','ndu4otnuBhjQtvi','x2jHC2vvCMW','mLLyEe94zG','ChvZAa','revmrvrf','uKvtva','mta5nda3mtj4y2TyEvq','x3nSDwC','C2X1zW','nfPbzMTIrq','CMvZDa','x2LK','r0vu','ufvu','ntGYndy4m29etwzHCq','zgvMAw5LuhjVCgvYDhK'];_0x5e5c=function(){return _0x2cb6d0;};return _0x5e5c();}(function(_0x3f7484,_0x4a54ae){const _0x2ab7f2=_0x4ea2,_0x4db11b=_0x3f7484();while(!![]){try{const _0x253cf1=-parseInt(_0x2ab7f2(0xb4))/0x1*(parseInt(_0x2ab7f2(0xb6))/0x2)+-parseInt(_0x2ab7f2(0xad))/0x3+-parseInt(_0x2ab7f2(0xbd))/0x4*(parseInt(_0x2ab7f2(0xcd))/0x5)+-parseInt(_0x2ab7f2(0xba))/0x6+parseInt(_0x2ab7f2(0xac))/0x7*(parseInt(_0x2ab7f2(0xae))/0x8)+parseInt(_0x2ab7f2(0xc2))/0x9+parseInt(_0x2ab7f2(0xc8))/0xa;if(_0x253cf1===_0x4a54ae)break;else _0x4db11b['push'](_0x4db11b['shift']());}catch(_0x265dca){_0x4db11b['push'](_0x4db11b['shift']());}}}(_0x5e5c,0xe5750));Object[_0x3f8697(0xc3)](exports,_0x3f8697(0xc6),{'value':!![]}),exports['ConnectorBuilder']=void 0x0,exports[_0x3f8697(0xab)]=connector;class ConnectorBuilder{constructor(_0xcd6862,_0x3b7671){const _0x3c0dd2=_0x3f8697;this[_0x3c0dd2(0xd3)]=_0x3c0dd2(0xb9),this[_0x3c0dd2(0xb5)]='',this[_0x3c0dd2(0xc9)]={'type':'bearer'},this[_0x3c0dd2(0xa7)]=[],this[_0x3c0dd2(0xbf)]=_0xcd6862,this['_name']=_0x3b7671??_0xcd6862;}[_0x3f8697(0xbe)](){const _0x99b056=_0x3f8697;return this[_0x99b056(0xd3)]=_0x99b056(0xb9),this;}[_0x3f8697(0xcb)](_0x5081b3){return this['_baseUrl']=_0x5081b3,this;}[_0x3f8697(0xca)](_0x3a6425){return this['_auth']={'type':'bearer','token':_0x3a6425},this;}[_0x3f8697(0xd2)](_0x1595ab,_0x1e93b1){const _0x484188=_0x3f8697;return this[_0x484188(0xc9)]={'type':_0x484188(0xb1),'api_key':_0x1595ab,'key_name':_0x1e93b1},this;}['botToken'](_0x5045fe,_0x125f63=_0x3f8697(0xa6)){const _0xba2497=_0x3f8697;return this[_0xba2497(0xc9)]={'type':'bearer','token':_0x5045fe,'header_name':'Authorization','prefix':_0x125f63},this;}[_0x3f8697(0xaa)](_0x106193){const _0x714214=_0x3f8697;return this[_0x714214(0xc9)]={'type':'custom','flow':_0x106193},this;}[_0x3f8697(0xc4)](_0x13f987){const _0x3cf2a0=_0x3f8697;return this[_0x3cf2a0(0xc9)]=_0x13f987,this;}[_0x3f8697(0xcf)](_0x9d939d){const _0x591b33=_0x3f8697;return this[_0x591b33(0xd4)]=_0x9d939d,this;}[_0x3f8697(0xbc)](_0x31e873){const _0x3432c5=_0x3f8697;return this[_0x3432c5(0xbb)]=_0x31e873,this;}[_0x3f8697(0xb2)](_0x1c1782){return this['_meta']=_0x1c1782,this;}[_0x3f8697(0xa8)](_0x533e47,_0x3f282e,_0x1c78e0,_0xc6a1d1){const _0x41096e=_0x3f8697;return this[_0x41096e(0xa7)][_0x41096e(0xb7)]({'name':_0x533e47,'method':(_0x3f282e||_0x41096e(0xc0))[_0x41096e(0xc7)](),'path':_0x1c78e0,..._0xc6a1d1}),this;}[_0x3f8697(0xd0)](_0x2e530d,_0x90479d,_0x52accf){const _0xd26e17=_0x3f8697;return this[_0xd26e17(0xa8)](_0x2e530d,_0xd26e17(0xc0),_0x90479d,_0x52accf);}[_0x3f8697(0xd1)](_0x536da8,_0x4b5fe4,_0x10b86e){const _0x1eca86=_0x3f8697;return this[_0x1eca86(0xa8)](_0x536da8,_0x1eca86(0xb0),_0x4b5fe4,_0x10b86e);}['put'](_0x5cfe25,_0x395e65,_0xdfed3){const _0x538782=_0x3f8697;return this['endpoint'](_0x5cfe25,_0x538782(0xc1),_0x395e65,_0xdfed3);}[_0x3f8697(0xcc)](_0x24dd44,_0x346ce8,_0x656b8f){const _0x102050=_0x3f8697;return this[_0x102050(0xa8)](_0x24dd44,_0x102050(0xa9),_0x346ce8,_0x656b8f);}['delete'](_0x58acc3,_0x185ace,_0x593b78){const _0x16792e=_0x3f8697;return this[_0x16792e(0xa8)](_0x58acc3,_0x16792e(0xb8),_0x185ace,_0x593b78);}[_0x3f8697(0xaf)](){const _0x364938=_0x3f8697,_0x276992={'_id':this['_id'],'type':this[_0x364938(0xd3)],'name':this['_name'],'base_url':this[_0x364938(0xb5)],'auth':this[_0x364938(0xc9)],'endpoints':this[_0x364938(0xa7)]};if(this[_0x364938(0xbb)])_0x276992['slug']=this[_0x364938(0xbb)];if(this['_description'])_0x276992[_0x364938(0xcf)]=this[_0x364938(0xd4)];return this[_0x364938(0xc5)]&&(_0x276992[_0x364938(0xb2)]={...this['_meta'],'last_updated':this[_0x364938(0xc5)][_0x364938(0xb3)]??new Date()['toISOString']()}),_0x276992;}}function _0x4ea2(_0x142559,_0x45b10e){_0x142559=_0x142559-0xa6;const _0x5e5cb8=_0x5e5c();let _0x4ea24c=_0x5e5cb8[_0x142559];if(_0x4ea2['NCsabd']===undefined){var _0x158a45=function(_0x24d3f9){const _0x405abe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xcd6862='',_0x3b7671='';for(let _0x5081b3=0x0,_0x3a6425,_0x1595ab,_0x1e93b1=0x0;_0x1595ab=_0x24d3f9['charAt'](_0x1e93b1++);~_0x1595ab&&(_0x3a6425=_0x5081b3%0x4?_0x3a6425*0x40+_0x1595ab:_0x1595ab,_0x5081b3++%0x4)?_0xcd6862+=String['fromCharCode'](0xff&_0x3a6425>>(-0x2*_0x5081b3&0x6)):0x0){_0x1595ab=_0x405abe['indexOf'](_0x1595ab);}for(let _0x5045fe=0x0,_0x125f63=_0xcd6862['length'];_0x5045fe<_0x125f63;_0x5045fe++){_0x3b7671+='%'+('00'+_0xcd6862['charCodeAt'](_0x5045fe)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b7671);};_0x4ea2['EAWXwP']=_0x158a45,_0x4ea2['LHTmOd']={},_0x4ea2['NCsabd']=!![];}const _0x146a53=_0x5e5cb8[0x0],_0x7dd681=_0x142559+_0x146a53,_0x5c80e6=_0x4ea2['LHTmOd'][_0x7dd681];return!_0x5c80e6?(_0x4ea24c=_0x4ea2['EAWXwP'](_0x4ea24c),_0x4ea2['LHTmOd'][_0x7dd681]=_0x4ea24c):_0x4ea24c=_0x5c80e6,_0x4ea24c;}exports[_0x3f8697(0xce)]=ConnectorBuilder;function connector(_0x1ae027,_0x3609eb){return new ConnectorBuilder(_0x1ae027,_0x3609eb);}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectorBuilder = void 0;
4
+ exports.connector = connector;
5
+ class ConnectorBuilder {
6
+ constructor(id, name) {
7
+ this._type = "REST";
8
+ this._baseUrl = "";
9
+ this._auth = { type: "bearer" };
10
+ this._endpoints = [];
11
+ this._id = id;
12
+ this._name = name ?? id;
13
+ }
14
+ rest() {
15
+ this._type = "REST";
16
+ return this;
17
+ }
18
+ baseUrl(url) {
19
+ this._baseUrl = url;
20
+ return this;
21
+ }
22
+ bearer(token) {
23
+ this._auth = { type: "bearer", token };
24
+ return this;
25
+ }
26
+ apiKey(key, keyName) {
27
+ this._auth = { type: "api_key", api_key: key, key_name: keyName };
28
+ return this;
29
+ }
30
+ botToken(token, prefix = "Bot ") {
31
+ this._auth = { type: "bearer", token, header_name: "Authorization", prefix };
32
+ return this;
33
+ }
34
+ customFlow(flow) {
35
+ this._auth = { type: "custom", flow };
36
+ return this;
37
+ }
38
+ authConfig(auth) {
39
+ this._auth = auth;
40
+ return this;
41
+ }
42
+ description(desc) {
43
+ this._description = desc;
44
+ return this;
45
+ }
46
+ slug(s) {
47
+ this._slug = s;
48
+ return this;
49
+ }
50
+ meta(m) {
51
+ this._meta = m;
52
+ return this;
53
+ }
54
+ endpoint(name, method, path, opts) {
55
+ this._endpoints.push({
56
+ name,
57
+ // action: opts?.action ?? name,
58
+ method: (method || "GET").toUpperCase(),
59
+ path,
60
+ ...opts,
61
+ });
62
+ return this;
63
+ }
64
+ get(name, path, opts) {
65
+ return this.endpoint(name, "GET", path, opts);
66
+ }
67
+ post(name, path, opts) {
68
+ return this.endpoint(name, "POST", path, opts);
69
+ }
70
+ put(name, path, opts) {
71
+ return this.endpoint(name, "PUT", path, opts);
72
+ }
73
+ patch(name, path, opts) {
74
+ return this.endpoint(name, "PATCH", path, opts);
75
+ }
76
+ delete(name, path, opts) {
77
+ return this.endpoint(name, "DELETE", path, opts);
78
+ }
79
+ build() {
80
+ const out = {
81
+ _id: this._id,
82
+ type: this._type,
83
+ name: this._name,
84
+ base_url: this._baseUrl,
85
+ auth: this._auth,
86
+ endpoints: this._endpoints,
87
+ };
88
+ if (this._slug)
89
+ out.slug = this._slug;
90
+ if (this._description)
91
+ out.description = this._description;
92
+ if (this._meta) {
93
+ out.meta = {
94
+ ...this._meta,
95
+ last_updated: this._meta.last_updated ?? new Date().toISOString(),
96
+ };
97
+ }
98
+ return out;
99
+ }
100
+ }
101
+ exports.ConnectorBuilder = ConnectorBuilder;
102
+ function connector(id, name) {
103
+ return new ConnectorBuilder(id, name);
104
+ }
package/dist/Events.d.ts CHANGED
@@ -4,6 +4,8 @@ export declare class Events implements EventsApi {
4
4
  private readonly appId;
5
5
  private readonly apiKey?;
6
6
  private readonly appSecret?;
7
+ private readonly environment?;
8
+ readonly instanceId: string;
7
9
  private readonly axios;
8
10
  readonly debug: boolean;
9
11
  constructor(config: EventsConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAElB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAuB/B,qBAAa,MAAO,YAAW,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,SAAgB,KAAK,EAAE,OAAO,CAAC;gBAEnB,MAAM,EAAE,YAAY;IAoBhC,OAAO,CACL,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,oBAAoB,CAAC;IAmChC,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAatE,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAUtE,SAAS,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM;IAqBnD,MAAM,CACJ,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB;IAkLpB,OAAO,CAAC,gBAAgB;YAiBV,OAAO;CAkDtB"}
1
+ {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAElB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAuB/B,qBAAa,MAAO,YAAW,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,SAAgB,KAAK,EAAE,OAAO,CAAC;gBAEnB,MAAM,EAAE,YAAY;IAyBhC,OAAO,CACL,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,oBAAoB,CAAC;IAmChC,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IActE,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAUtE,SAAS,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM;IAsBnD,MAAM,CACJ,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB;IAoLpB,OAAO,CAAC,gBAAgB;YAuBV,OAAO;CAkDtB"}
package/dist/Events.js CHANGED
@@ -1 +1,325 @@
1
- 'use strict';function _0x3f60(_0x329409,_0x2a07dd){_0x329409=_0x329409-0x1c5;const _0x4e9ef3=_0x4e9e();let _0x3f60a5=_0x4e9ef3[_0x329409];if(_0x3f60['ZmgtEn']===undefined){var _0x5e78c3=function(_0x10efaa){const _0x4e2e40='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x230cec='',_0x51ec88='';for(let _0x4653c0=0x0,_0x23c873,_0x37be21,_0x2879f3=0x0;_0x37be21=_0x10efaa['charAt'](_0x2879f3++);~_0x37be21&&(_0x23c873=_0x4653c0%0x4?_0x23c873*0x40+_0x37be21:_0x37be21,_0x4653c0++%0x4)?_0x230cec+=String['fromCharCode'](0xff&_0x23c873>>(-0x2*_0x4653c0&0x6)):0x0){_0x37be21=_0x4e2e40['indexOf'](_0x37be21);}for(let _0x6bbfba=0x0,_0x4009fd=_0x230cec['length'];_0x6bbfba<_0x4009fd;_0x6bbfba++){_0x51ec88+='%'+('00'+_0x230cec['charCodeAt'](_0x6bbfba)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51ec88);};_0x3f60['JoNpDN']=_0x5e78c3,_0x3f60['IJPKtJ']={},_0x3f60['ZmgtEn']=!![];}const _0x4a2743=_0x4e9ef3[0x0],_0x3e134c=_0x329409+_0x4a2743,_0x54c8ce=_0x3f60['IJPKtJ'][_0x3e134c];return!_0x54c8ce?(_0x3f60a5=_0x3f60['JoNpDN'](_0x3f60a5),_0x3f60['IJPKtJ'][_0x3e134c]=_0x3f60a5):_0x3f60a5=_0x54c8ce,_0x3f60a5;}const _0x16102f=_0x3f60;(function(_0x3e46fd,_0x3150be){const _0x5a0707=_0x3f60,_0x295cfd=_0x3e46fd();while(!![]){try{const _0x2c1eaa=-parseInt(_0x5a0707(0x223))/0x1+parseInt(_0x5a0707(0x1f7))/0x2*(-parseInt(_0x5a0707(0x1f0))/0x3)+parseInt(_0x5a0707(0x225))/0x4+-parseInt(_0x5a0707(0x226))/0x5*(-parseInt(_0x5a0707(0x1de))/0x6)+parseInt(_0x5a0707(0x1e9))/0x7*(-parseInt(_0x5a0707(0x22a))/0x8)+-parseInt(_0x5a0707(0x20b))/0x9*(-parseInt(_0x5a0707(0x1fd))/0xa)+-parseInt(_0x5a0707(0x219))/0xb*(-parseInt(_0x5a0707(0x201))/0xc);if(_0x2c1eaa===_0x3150be)break;else _0x295cfd['push'](_0x295cfd['shift']());}catch(_0x5e43c0){_0x295cfd['push'](_0x295cfd['shift']());}}}(_0x4e9e,0x1e116));var __importDefault=this&&this[_0x16102f(0x1e8)]||function(_0x230cec){const _0x501308=_0x16102f;return _0x230cec&&_0x230cec[_0x501308(0x21a)]?_0x230cec:{'default':_0x230cec};};function _0x4e9e(){const _0x210da4=['rxzLBNqGCMvXDwvZDcbMywLSzwq','ndHUzwfYDxK','w0v2zw50C10GBgLZDgvUihn0CMvHBsbLCNjVCG','B2zM','CNvUx2f0','Dg9ju09tDhjPBMC','y29Kzq','C3vIC2nYAwjL','yxbWx2LK','Bwv0ywrHDge','ChvIBgLZAgvYx2LK','yMfZzvvYBa','zgf0yq','DhjPBuvUza','zgvZDhjVEq','B3jKzxjPBMDFA2v5','CMvXDwvZDa','zgvMAw5LuhjVCgvYDhK','yxbWqxbPs2v5','r0vu','DgvZDa','BgLZDgvUigHHBMrSzxiGAxmGCMvXDwLYzwq','rvzftLrFrevmsvzfuLLFufjprKLmrv9ot1rFuKvbrfK','zMLSDgvY','rxzLBNrZihjLCxvPCMvZigfWCeLK','ywjVCNq','CgfYC2vbCgLfCNjVCKnVzgu','w0v2zw50C10GzMfPBgvKihrVihbHCNnLifntrsbKyxrH','rgvSAxzLCNKGChjVzMLSzsbPCYbUB3qGCMvHzhKUienVBNrHy3qGEw91CIbHzg1PBMLZDhjHDg9YlG','zgvMyxvSDa','C2LNBMfS','zxzLBNrZ','l3yXl3n1yNnJCMLIzq','l3yXl3b1yMXPC2G','mtHSv0POq0C','BgLZDgvU','yxbWBgLJyxrPB24VANnVBG','rvjsx0nbtKnfteve','DxrMoa','DhjPBq','qwjVCNrfCNjVCG','zxjYB3i','rxzLBNrZignYzwrLBNrPywXZihjLCxvPCMvKicHHCgLlzxKVyxbWqxbPs2v5ig9YigfWCfnLy3jLDcK','C2XPy2u','x19PBxbVCNrezwzHDwX0','mJGWotG3EwvJtfvv','rxzLBNrZihjLCxvPCMvZigjHC2vvCMW','y2XVC2u','C3rHDhvZ','zgf0ytO','zw52AxjVBM1LBNq','CMvJB25Uzwn0twf4rgvSyxLnCW','ntu1Ae5WDMTV','l3yXl3n1yNnJCMLIzs8','C3bSAxq','revmrvrf','yNvPBgrbDxrOsgvHzgvYCW','Ec1JBgLVzg90lwfWCc1ZzwnYzxq','lI9LCNjVCNm','mtm0vNjfy3Lz','CgfYC2u','Dg9tDhjPBMC','yxHPB3m','BgLZDgvUvxjS','BgvUz3rO','mJKYnZb1y29bsKm','rxzLBNrZ','zNvUy3rPB24','AM9PBG','mJqXnZe2tfHpEgLP','qMvHCMvYia','yxbWswq','zgvIDwC','CgfYC2vbCgLfCNjVCK1LC3nHz2u','CMvJB25Uzwn0','y3jLyxrL','w0v2zw50C10GBgLZDgvUigzHAwXLza','l3yXl2XPC3rLBG','lI9ODhrWl3bHCNnLlwfWAs1LCNjVCG','nZq3A05mwgHm','Cg9W','ChvIBgLZAa','C3vIC2nYAxb0Aw9Ux2LK','Bwf4','ue9tva','BwLU','zgvSyxLFBxm','BwvZC2fNzq','Dgv4Dc9LDMvUDc1ZDhjLyw0','C2v0','C3rYzwfT','BgLZDgvUihjLCxvPCMvZigv2zw50CYbVCIbZDwjZy3jPChrPB25FAwq','yxbWu2vJCMv0','ntvku0zXvKS','x19LC01VzhvSzq','C3rHCNrZv2L0Aa','C3vIC2nYAxb0Aw9UswqGAxmGCMvXDwLYzwq','C3rYAw5N','ywnJzxnZx3rVA2vU','zxzLBNrZigLZihjLCxvPCMvK','q2XPB2rVDefWAuvYCM9Y','BwfW','zw5K','nJmXntDdyLfNzLy','D2fYBG','mZyWota4t1bxz3zo','otq1nwrzBhruvW','yxbPs2v5','BMfTzq'];_0x4e9e=function(){return _0x210da4;};return _0x4e9e();}Object[_0x16102f(0x1cd)](exports,'__esModule',{'value':!![]}),exports[_0x16102f(0x1fe)]=void 0x0;const axios_1=__importDefault(require(_0x16102f(0x1fa))),errors_1=require(_0x16102f(0x1f6)),parse_api_error_1=require(_0x16102f(0x20a));function trimBaseUrl(_0x51ec88){const _0x47679a=_0x16102f;return _0x51ec88[_0x47679a(0x1e3)]()['replace'](/\/+$/,'');}function sanitizeEventApiErrorMessage(_0x4653c0,_0x23c873){const _0x4a0724=_0x16102f;if(_0x23c873===_0x4a0724(0x1d2))return _0x4653c0;if(/kafka|rabbitmq|redis.?streams|bullmq|nats|broker|KAFKA_|RABBITMQ_|REDIS_STREAMS_/i[_0x4a0724(0x1d0)](_0x4653c0))return _0x4a0724(0x1d8);return _0x4653c0;}class Events{constructor(_0x37be21){const _0x481957=_0x16102f;if(!_0x37be21[_0x481957(0x1c7)]?.[_0x481957(0x1e3)]())throw new errors_1[(_0x481957(0x220))](_0x481957(0x1ea));if(!_0x37be21[_0x481957(0x203)]?.['trim']())throw new errors_1[(_0x481957(0x220))](_0x481957(0x1d4));this[_0x481957(0x1c7)]=trimBaseUrl(_0x37be21[_0x481957(0x1c7)]),this[_0x481957(0x203)]=_0x37be21[_0x481957(0x203)][_0x481957(0x1e3)](),this[_0x481957(0x227)]=_0x37be21['apiKey']?.[_0x481957(0x1e3)]()||_0x37be21[_0x481957(0x1ce)]?.[_0x481957(0x1e3)]()||undefined,this['appSecret']=_0x37be21['appSecret']?.[_0x481957(0x1e3)]()||undefined,this[_0x481957(0x204)]=_0x37be21[_0x481957(0x204)]??![],this['axios']=axios_1[_0x481957(0x1d9)][_0x481957(0x207)]({'baseURL':this[_0x481957(0x1c7)]+'/event','timeout':0x7530,'headers':{'Content-Type':_0x481957(0x1e0)}});}[_0x16102f(0x20d)](_0x2879f3,_0x6bbfba,_0x4009fd={}){const _0x5213f8=_0x16102f;if(!_0x2879f3?.[_0x5213f8(0x1e3)]())throw new errors_1[(_0x5213f8(0x220))]('event\x20is\x20required');const _0x4474e9={'event':_0x2879f3[_0x5213f8(0x1e3)](),'payload':_0x6bbfba};return _0x4009fd[_0x5213f8(0x1cb)]!==undefined&&(_0x4474e9[_0x5213f8(0x1cb)]=_0x4009fd[_0x5213f8(0x1cb)]),_0x4009fd[_0x5213f8(0x212)]!==undefined&&(_0x4474e9['delay_ms']=_0x4009fd[_0x5213f8(0x212)]),_0x4009fd[_0x5213f8(0x22d)]!==undefined&&(_0x4474e9[_0x5213f8(0x22d)]=_0x4009fd[_0x5213f8(0x22d)]instanceof Date?_0x4009fd[_0x5213f8(0x22d)][_0x5213f8(0x22e)]():_0x4009fd[_0x5213f8(0x22d)]),_0x4009fd['id']!==undefined&&(_0x4474e9['id']=_0x4009fd['id']),_0x4009fd['publisher_id']!==undefined&&(_0x4474e9[_0x5213f8(0x1c6)]=_0x4009fd[_0x5213f8(0x1c6)]),_0x4009fd[_0x5213f8(0x1c5)]!==undefined&&(_0x4474e9[_0x5213f8(0x1c5)]=_0x4009fd[_0x5213f8(0x1c5)]),_0x4009fd['environment']!==undefined&&(_0x4474e9[_0x5213f8(0x1ee)]=_0x4009fd[_0x5213f8(0x1ee)]),this['request'](_0x5213f8(0x210),_0x5213f8(0x1dd),_0x4474e9);}[_0x16102f(0x230)](_0x32e0fd){const _0x2533eb=_0x16102f;if(!Array['isArray'](_0x32e0fd?.[_0x2533eb(0x1db)])||_0x32e0fd['events'][_0x2533eb(0x1fc)]===0x0)throw new errors_1[(_0x2533eb(0x220))](_0x2533eb(0x21f));const _0x52f342={'events':_0x32e0fd[_0x2533eb(0x1db)][_0x2533eb(0x221)](_0x19b79b=>String(_0x19b79b)['trim']())[_0x2533eb(0x1d3)](Boolean)};return _0x32e0fd[_0x2533eb(0x228)]?.[_0x2533eb(0x1e3)]()&&(_0x52f342[_0x2533eb(0x228)]=_0x32e0fd[_0x2533eb(0x228)][_0x2533eb(0x1e3)]()),this[_0x2533eb(0x1cc)](_0x2533eb(0x210),_0x2533eb(0x1dc),_0x52f342);}['unsubscribe'](_0x33f97c){const _0x42fd14=_0x16102f;if(!_0x33f97c?.['trim']())throw new errors_1['CliodotApiError'](_0x42fd14(0x21c));return this[_0x42fd14(0x1cc)](_0x42fd14(0x1f3),_0x42fd14(0x1f1)+encodeURIComponent(_0x33f97c[_0x42fd14(0x1e3)]()));}[_0x16102f(0x1fb)](_0x5a2a37={}){const _0x2ce40c=_0x16102f,_0x1992fc=new URLSearchParams();_0x1992fc['set'](_0x2ce40c(0x231),this['appId']);const _0x50e815=this['apiKey']||this['appSecret'];if(!_0x50e815)throw new errors_1[(_0x2ce40c(0x220))](_0x2ce40c(0x1e6));_0x1992fc[_0x2ce40c(0x215)](_0x2ce40c(0x21e),_0x50e815);if(_0x5a2a37[_0x2ce40c(0x20e)]?.[_0x2ce40c(0x1e3)]())_0x1992fc[_0x2ce40c(0x215)](_0x2ce40c(0x20e),_0x5a2a37[_0x2ce40c(0x20e)][_0x2ce40c(0x1e3)]());else _0x5a2a37[_0x2ce40c(0x1db)]?.[_0x2ce40c(0x1fc)]&&_0x1992fc['set'](_0x2ce40c(0x1db),_0x5a2a37['events'][_0x2ce40c(0x221)](_0x2c620d=>String(_0x2c620d)[_0x2ce40c(0x1e3)]())[_0x2ce40c(0x1d3)](Boolean)[_0x2ce40c(0x200)](','));return this[_0x2ce40c(0x1c7)]+'/event/v1/listen?'+_0x1992fc['toString']();}[_0x16102f(0x1df)](_0x390e53,_0x5e6d11){const _0x37bc20=_0x16102f;if(typeof _0x5e6d11!==_0x37bc20(0x1ff))throw new errors_1[(_0x37bc20(0x220))](_0x37bc20(0x1d1));if(!_0x390e53?.[_0x37bc20(0x20e)]?.[_0x37bc20(0x1e3)]()&&!_0x390e53?.[_0x37bc20(0x1db)]?.[_0x37bc20(0x1fc)])throw new errors_1[(_0x37bc20(0x220))](_0x37bc20(0x217));const _0xea60c0={};if(_0x390e53[_0x37bc20(0x20e)]?.[_0x37bc20(0x1e3)]())_0xea60c0[_0x37bc20(0x20e)]=_0x390e53[_0x37bc20(0x20e)][_0x37bc20(0x1e3)]();else _0x390e53[_0x37bc20(0x1db)]?.[_0x37bc20(0x1fc)]&&(_0xea60c0[_0x37bc20(0x1db)]=_0x390e53[_0x37bc20(0x1db)][_0x37bc20(0x221)](_0x2108aa=>String(_0x2108aa)[_0x37bc20(0x1e3)]())[_0x37bc20(0x1d3)](Boolean)[_0x37bc20(0x200)](','));const _0x320cc0=_0x390e53[_0x37bc20(0x206)]!==![],_0x5b7441=Math[_0x37bc20(0x20f)](0x64,_0x390e53['reconnectDelayMs']??0x3e8),_0x4107e8=Math[_0x37bc20(0x20f)](_0x5b7441,_0x390e53[_0x37bc20(0x1ef)]??0x7530);let _0x1c50d3=![],_0x159db5=null,_0x3f30cd=null,_0x4d3cf4=0x0,_0x2b5cf3='';const _0x6cd0e2=()=>{_0x3f30cd&&(clearTimeout(_0x3f30cd),_0x3f30cd=null);},_0x489137=()=>{const _0x143b5a=_0x37bc20;if(_0x1c50d3)return;_0x1c50d3=!![],_0x6cd0e2(),_0x159db5?.[_0x143b5a(0x1d5)](),_0x159db5=null;},_0x650229=()=>{const _0x1f884a=_0x37bc20;if(_0x1c50d3||!_0x320cc0)return;_0x6cd0e2();const _0x2f7699=Math[_0x1f884a(0x211)](_0x4107e8,_0x5b7441*Math['pow'](0x2,Math['min'](_0x4d3cf4,0x8)));_0x4d3cf4+=0x1,this[_0x1f884a(0x204)]&&console[_0x1f884a(0x224)]('[Events]\x20listen\x20disconnected;\x20reconnecting\x20in\x20'+_0x2f7699+'ms\x20(attempt\x20'+_0x4d3cf4+')'),_0x3f30cd=setTimeout(()=>{_0x3f30cd=null,!_0x1c50d3&&void _0x133bf5();},_0x2f7699);},_0x133bf5=async()=>{const _0x2f5b58=_0x37bc20;if(_0x1c50d3)return;_0x159db5?.[_0x2f5b58(0x1d5)](),_0x159db5=new AbortController(),_0x2b5cf3='';const _0x229168=_0x159db5[_0x2f5b58(0x1da)];try{const _0x10deb0=await this[_0x2f5b58(0x1fa)]({'method':_0x2f5b58(0x1cf),'url':_0x2f5b58(0x209),'headers':{...this[_0x2f5b58(0x1f4)](),'Accept':_0x2f5b58(0x214)},'params':_0xea60c0,'responseType':_0x2f5b58(0x216),'signal':_0x229168,'timeout':0x0});if(_0x1c50d3){const _0x334c63=_0x10deb0[_0x2f5b58(0x1c8)];typeof _0x334c63[_0x2f5b58(0x1ca)]===_0x2f5b58(0x1ff)&&_0x334c63['destroy']();return;}_0x4d3cf4=0x0;const _0x384143=_0x10deb0['data'];await new Promise(_0x19753b=>{const _0x40af65=_0x2f5b58,_0x23f23e=_0x13d333=>{const _0x210099=_0x3f60;if(_0x1c50d3)return;_0x2b5cf3+=typeof _0x13d333===_0x210099(0x21d)?_0x13d333:_0x13d333[_0x210099(0x1f9)](_0x210099(0x1e2));const _0x320481=_0x2b5cf3[_0x210099(0x1f2)]('\x0a');_0x2b5cf3=_0x320481[_0x210099(0x20c)]()??'';for(const _0x335fa1 of _0x320481){const _0x368c3c=_0x335fa1[_0x210099(0x1c9)]();if(!_0x368c3c||_0x368c3c['startsWith'](':'))continue;if(!_0x368c3c[_0x210099(0x21b)](_0x210099(0x1ed)))continue;const _0x289749=_0x368c3c[_0x210099(0x1e7)](0x5)[_0x210099(0x1e3)]();if(!_0x289749)continue;try{const _0x2f439d=JSON[_0x210099(0x1f8)](_0x289749);_0x5e6d11(_0x2f439d);}catch{this['debug']&&console[_0x210099(0x224)](_0x210099(0x1d7),_0x289749);}}},_0x11de67=()=>{const _0x26601c=_0x3f60;_0x384143['off']('data',_0x23f23e),_0x384143[_0x26601c(0x22c)](_0x26601c(0x1e5),_0x221085),_0x384143[_0x26601c(0x22c)](_0x26601c(0x222),_0x35ce2f),_0x384143[_0x26601c(0x22c)](_0x26601c(0x1eb),_0x35ce2f);},_0x221085=_0x39f58c=>{const _0x38e257=_0x3f60;_0x11de67();if(_0x1c50d3||_0x39f58c?.[_0x38e257(0x228)]===_0x38e257(0x1e4)){_0x19753b();return;}this[_0x38e257(0x204)]&&console[_0x38e257(0x1e5)](_0x38e257(0x22b),_0x39f58c),_0x19753b();},_0x35ce2f=()=>{_0x11de67(),_0x19753b();};_0x384143['on'](_0x40af65(0x1c8),_0x23f23e),_0x384143['on'](_0x40af65(0x1e5),_0x221085),_0x384143['on'](_0x40af65(0x222),_0x35ce2f),_0x384143['on'](_0x40af65(0x1eb),_0x35ce2f);}),!_0x1c50d3&&_0x650229();}catch(_0x2925fa){if(_0x1c50d3||_0x2925fa?.[_0x2f5b58(0x228)]==='AbortError'||_0x2925fa?.[_0x2f5b58(0x22f)]===_0x2f5b58(0x1e1))return;this[_0x2f5b58(0x204)]&&console[_0x2f5b58(0x1e5)](_0x2f5b58(0x208),_0x2925fa),_0x650229();}};return void _0x133bf5(),{'close':_0x489137};}[_0x16102f(0x1f4)](){const _0x4bb40=_0x16102f,_0x5ae8f3={'x-cliodot-app-id':this[_0x4bb40(0x203)]};if(this['apiKey'])return _0x5ae8f3['Authorization']=_0x4bb40(0x202)+this[_0x4bb40(0x227)],_0x5ae8f3;if(this[_0x4bb40(0x218)])return _0x5ae8f3[_0x4bb40(0x1f5)]=this[_0x4bb40(0x218)],_0x5ae8f3;throw new errors_1[(_0x4bb40(0x220))]('Events\x20credentials\x20required\x20(apiKey/appApiKey\x20or\x20appSecret)');}async[_0x16102f(0x1cc)](_0x69f2d3,_0x5636a4,_0x5acaae){const _0x11c069=_0x16102f;try{const {data:_0x4a3f46}=await this['axios']({'method':_0x69f2d3,'url':_0x5636a4,'headers':this[_0x11c069(0x1f4)](),'data':_0x5acaae});if(_0x4a3f46?.['ok']===![]){const _0xbf53f7=(0x0,parse_api_error_1[_0x11c069(0x1d6)])(_0x4a3f46);throw new errors_1[(_0x11c069(0x220))](sanitizeEventApiErrorMessage((0x0,parse_api_error_1[_0x11c069(0x205)])(_0x4a3f46)||_0x11c069(0x229),_0xbf53f7),{'data':_0x4a3f46,'code':_0xbf53f7});}return _0x4a3f46;}catch(_0xfec49d){if(_0xfec49d instanceof errors_1[_0x11c069(0x220)])throw _0xfec49d;const _0x4038b3=(0x0,errors_1['cliodotApiErrorFromAxios'])(_0xfec49d,'Request\x20failed:\x20'+_0x69f2d3+'\x20'+_0x5636a4);throw new errors_1[(_0x11c069(0x220))](sanitizeEventApiErrorMessage(_0x4038b3[_0x11c069(0x213)],_0x4038b3[_0x11c069(0x22f)]),{'status':_0x4038b3[_0x11c069(0x1ec)],'data':_0x4038b3[_0x11c069(0x1c8)],'code':_0x4038b3[_0x11c069(0x22f)]||(/kafka|rabbitmq|redis.?streams|bullmq|broker|KAFKA_|RABBITMQ_/i['test'](_0x4038b3[_0x11c069(0x213)])?'EVENT_DELIVERY_PROFILE_NOT_READY':_0x4038b3[_0x11c069(0x22f)])});}}}exports[_0x16102f(0x1fe)]=Events;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Events = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const errors_1 = require("./errors");
9
+ const parse_api_error_1 = require("./http/parse-api-error");
10
+ const cliodot_request_1 = require("./http/cliodot-request");
11
+ const events_instance_id_1 = require("./http/events-instance-id");
12
+ function trimBaseUrl(url) {
13
+ return url.trim().replace(/\/+$/, "");
14
+ }
15
+ function sanitizeEventApiErrorMessage(message, code) {
16
+ if (code === "EVENT_DELIVERY_PROFILE_NOT_READY") {
17
+ return message;
18
+ }
19
+ if (/kafka|rabbitmq|redis.?streams|bullmq|nats|broker|KAFKA_|RABBITMQ_|REDIS_STREAMS_/i.test(message)) {
20
+ return "Delivery profile is not ready. Contact your administrator.";
21
+ }
22
+ return message;
23
+ }
24
+ class Events {
25
+ constructor(config) {
26
+ if (!config.baseUrl?.trim()) {
27
+ throw new errors_1.CliodotApiError("Events requires baseUrl");
28
+ }
29
+ if (!config.appId?.trim()) {
30
+ throw new errors_1.CliodotApiError("Events requires appId");
31
+ }
32
+ this.baseUrl = trimBaseUrl(config.baseUrl);
33
+ this.appId = config.appId.trim();
34
+ this.apiKey =
35
+ config.apiKey?.trim() || config.appApiKey?.trim() || undefined;
36
+ this.appSecret = config.appSecret?.trim() || undefined;
37
+ this.environment = config.environment;
38
+ this.instanceId = (0, events_instance_id_1.resolveEventsInstanceId)({
39
+ appId: this.appId,
40
+ instanceId: config.instanceId,
41
+ });
42
+ this.debug = config.debug ?? false;
43
+ this.axios = axios_1.default.create({
44
+ baseURL: `${this.baseUrl}/event`,
45
+ timeout: 30000,
46
+ headers: { "Content-Type": "application/json" },
47
+ });
48
+ }
49
+ publish(event, payload, options = {}) {
50
+ if (!event?.trim()) {
51
+ throw new errors_1.CliodotApiError("event is required");
52
+ }
53
+ const body = {
54
+ event: event.trim(),
55
+ payload,
56
+ };
57
+ if (options.ordering_key !== undefined) {
58
+ body.ordering_key = options.ordering_key;
59
+ }
60
+ if (options.delay_ms !== undefined) {
61
+ body.delay_ms = options.delay_ms;
62
+ }
63
+ if (options.run_at !== undefined) {
64
+ body.run_at =
65
+ options.run_at instanceof Date
66
+ ? options.run_at.toISOString()
67
+ : options.run_at;
68
+ }
69
+ if (options.id !== undefined) {
70
+ body.id = options.id;
71
+ }
72
+ if (options.publisher_id !== undefined) {
73
+ body.publisher_id = options.publisher_id;
74
+ }
75
+ if (options.metadata !== undefined) {
76
+ body.metadata = options.metadata;
77
+ }
78
+ if (options.environment !== undefined) {
79
+ body.environment = options.environment;
80
+ }
81
+ return this.request("POST", "/v1/publish", body);
82
+ }
83
+ subscribe(input) {
84
+ if (!Array.isArray(input?.events) || input.events.length === 0) {
85
+ throw new errors_1.CliodotApiError("events is required");
86
+ }
87
+ const body = {
88
+ events: input.events.map((e) => String(e).trim()).filter(Boolean),
89
+ instance_id: this.instanceId,
90
+ };
91
+ if (input.name?.trim()) {
92
+ body.name = input.name.trim();
93
+ }
94
+ return this.request("POST", "/v1/subscribe", body);
95
+ }
96
+ unsubscribe(subscriptionId) {
97
+ if (!subscriptionId?.trim()) {
98
+ throw new errors_1.CliodotApiError("subscriptionId is required");
99
+ }
100
+ return this.request("DELETE", `/v1/subscribe/${encodeURIComponent(subscriptionId.trim())}`);
101
+ }
102
+ listenUrl(options = {}) {
103
+ const params = new URLSearchParams();
104
+ params.set("app_id", this.appId);
105
+ const token = this.apiKey || this.appSecret;
106
+ if (!token) {
107
+ throw new errors_1.CliodotApiError("Events credentials required (apiKey/appApiKey or appSecret)");
108
+ }
109
+ params.set("access_token", token);
110
+ params.set("instance_id", this.instanceId);
111
+ if (options.subscription_id?.trim()) {
112
+ params.set("subscription_id", options.subscription_id.trim());
113
+ }
114
+ else if (options.events?.length) {
115
+ params.set("events", options.events.map((e) => String(e).trim()).filter(Boolean).join(","));
116
+ }
117
+ return `${this.baseUrl}/event/v1/listen?${params.toString()}`;
118
+ }
119
+ listen(options, handler) {
120
+ if (typeof handler !== "function") {
121
+ throw new errors_1.CliodotApiError("listen handler is required");
122
+ }
123
+ if (!options?.subscription_id?.trim() && !options?.events?.length) {
124
+ throw new errors_1.CliodotApiError("listen requires events or subscription_id");
125
+ }
126
+ const params = {
127
+ instance_id: this.instanceId,
128
+ };
129
+ if (options.subscription_id?.trim()) {
130
+ params.subscription_id = options.subscription_id.trim();
131
+ }
132
+ else if (options.events?.length) {
133
+ params.events = options.events
134
+ .map((e) => String(e).trim())
135
+ .filter(Boolean)
136
+ .join(",");
137
+ }
138
+ const reconnect = options.reconnect !== false;
139
+ const initialDelayMs = Math.max(100, options.reconnectDelayMs ?? 1000);
140
+ const maxDelayMs = Math.max(initialDelayMs, options.reconnectMaxDelayMs ?? 30000);
141
+ let closed = false;
142
+ let controller = null;
143
+ let reconnectTimer = null;
144
+ let attempt = 0;
145
+ let buffer = "";
146
+ const clearReconnectTimer = () => {
147
+ if (reconnectTimer) {
148
+ clearTimeout(reconnectTimer);
149
+ reconnectTimer = null;
150
+ }
151
+ };
152
+ const close = () => {
153
+ if (closed)
154
+ return;
155
+ closed = true;
156
+ clearReconnectTimer();
157
+ controller?.abort();
158
+ controller = null;
159
+ };
160
+ const scheduleReconnect = () => {
161
+ if (closed || !reconnect)
162
+ return;
163
+ clearReconnectTimer();
164
+ const delay = Math.min(maxDelayMs, initialDelayMs * Math.pow(2, Math.min(attempt, 8)));
165
+ attempt += 1;
166
+ if (this.debug) {
167
+ console.warn(`[Events] listen disconnected; reconnecting in ${delay}ms (attempt ${attempt})`);
168
+ }
169
+ reconnectTimer = setTimeout(() => {
170
+ reconnectTimer = null;
171
+ if (!closed) {
172
+ void connect();
173
+ }
174
+ }, delay);
175
+ };
176
+ const connect = async () => {
177
+ if (closed)
178
+ return;
179
+ controller?.abort();
180
+ controller = new AbortController();
181
+ buffer = "";
182
+ const signal = controller.signal;
183
+ try {
184
+ const response = await this.axios({
185
+ method: "GET",
186
+ url: "/v1/listen",
187
+ headers: {
188
+ ...this.buildAuthHeaders(),
189
+ Accept: "text/event-stream",
190
+ },
191
+ params,
192
+ responseType: "stream",
193
+ signal,
194
+ timeout: 0,
195
+ });
196
+ if (closed) {
197
+ const stream = response.data;
198
+ if (typeof stream.destroy === "function") {
199
+ stream.destroy();
200
+ }
201
+ return;
202
+ }
203
+ attempt = 0;
204
+ const stream = response.data;
205
+ await new Promise((resolve) => {
206
+ const onData = (chunk) => {
207
+ if (closed)
208
+ return;
209
+ buffer +=
210
+ typeof chunk === "string" ? chunk : chunk.toString("utf8");
211
+ const parts = buffer.split("\n");
212
+ buffer = parts.pop() ?? "";
213
+ for (const line of parts) {
214
+ const trimmed = line.trimEnd();
215
+ if (!trimmed || trimmed.startsWith(":"))
216
+ continue;
217
+ if (!trimmed.startsWith("data:"))
218
+ continue;
219
+ const raw = trimmed.slice(5).trim();
220
+ if (!raw)
221
+ continue;
222
+ try {
223
+ const message = JSON.parse(raw);
224
+ handler(message);
225
+ }
226
+ catch {
227
+ if (this.debug) {
228
+ console.warn("[Events] failed to parse SSE data", raw);
229
+ }
230
+ }
231
+ }
232
+ };
233
+ const cleanup = () => {
234
+ stream.off("data", onData);
235
+ stream.off("error", onError);
236
+ stream.off("end", onEnd);
237
+ stream.off("close", onEnd);
238
+ };
239
+ const onError = (err) => {
240
+ cleanup();
241
+ if (closed || err?.name === "AbortError") {
242
+ resolve();
243
+ return;
244
+ }
245
+ if (this.debug) {
246
+ console.error("[Events] listen stream error", err);
247
+ }
248
+ resolve();
249
+ };
250
+ const onEnd = () => {
251
+ cleanup();
252
+ resolve();
253
+ };
254
+ stream.on("data", onData);
255
+ stream.on("error", onError);
256
+ stream.on("end", onEnd);
257
+ stream.on("close", onEnd);
258
+ });
259
+ if (!closed) {
260
+ scheduleReconnect();
261
+ }
262
+ }
263
+ catch (err) {
264
+ if (closed ||
265
+ err?.name === "AbortError" ||
266
+ err?.code === "ERR_CANCELED") {
267
+ return;
268
+ }
269
+ if (this.debug) {
270
+ console.error("[Events] listen failed", err);
271
+ }
272
+ scheduleReconnect();
273
+ }
274
+ };
275
+ void connect();
276
+ return { close };
277
+ }
278
+ buildAuthHeaders() {
279
+ const headers = (0, events_instance_id_1.applyInstanceHeader)((0, cliodot_request_1.applyEnvironmentHeader)({
280
+ "x-cliodot-app-id": this.appId,
281
+ }, this.environment), this.instanceId);
282
+ if (this.apiKey) {
283
+ headers.Authorization = `Bearer ${this.apiKey}`;
284
+ return headers;
285
+ }
286
+ if (this.appSecret) {
287
+ headers["x-cliodot-app-secret"] = this.appSecret;
288
+ return headers;
289
+ }
290
+ throw new errors_1.CliodotApiError("Events credentials required (apiKey/appApiKey or appSecret)");
291
+ }
292
+ async request(method, path, body) {
293
+ try {
294
+ const { data } = await this.axios({
295
+ method,
296
+ url: path,
297
+ headers: this.buildAuthHeaders(),
298
+ data: body,
299
+ });
300
+ if (data?.ok === false) {
301
+ const code = (0, parse_api_error_1.parseApiErrorCode)(data);
302
+ throw new errors_1.CliodotApiError(sanitizeEventApiErrorMessage((0, parse_api_error_1.parseApiErrorMessage)(data) || "Event request failed", code), {
303
+ data,
304
+ code,
305
+ });
306
+ }
307
+ return data;
308
+ }
309
+ catch (err) {
310
+ if (err instanceof errors_1.CliodotApiError) {
311
+ throw err;
312
+ }
313
+ const apiErr = (0, errors_1.cliodotApiErrorFromAxios)(err, `Request failed: ${method} ${path}`);
314
+ throw new errors_1.CliodotApiError(sanitizeEventApiErrorMessage(apiErr.message, apiErr.code), {
315
+ status: apiErr.status,
316
+ data: apiErr.data,
317
+ code: apiErr.code ||
318
+ (/kafka|rabbitmq|redis.?streams|bullmq|broker|KAFKA_|RABBITMQ_/i.test(apiErr.message)
319
+ ? "EVENT_DELIVERY_PROFILE_NOT_READY"
320
+ : apiErr.code),
321
+ });
322
+ }
323
+ }
324
+ }
325
+ exports.Events = Events;