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,52 @@
1
- 'use strict';const _0x51f7a9=_0x31a9;(function(_0x3c1de5,_0x233b66){const _0x4e1448=_0x31a9,_0x2d1e04=_0x3c1de5();while(!![]){try{const _0x2ebc44=-parseInt(_0x4e1448(0x169))/0x1+parseInt(_0x4e1448(0x16c))/0x2+parseInt(_0x4e1448(0x170))/0x3*(-parseInt(_0x4e1448(0x168))/0x4)+-parseInt(_0x4e1448(0x166))/0x5+-parseInt(_0x4e1448(0x178))/0x6+parseInt(_0x4e1448(0x171))/0x7*(-parseInt(_0x4e1448(0x16f))/0x8)+parseInt(_0x4e1448(0x16b))/0x9;if(_0x2ebc44===_0x233b66)break;else _0x2d1e04['push'](_0x2d1e04['shift']());}catch(_0x981436){_0x2d1e04['push'](_0x2d1e04['shift']());}}}(_0x49cb,0xa758f));Object[_0x51f7a9(0x167)](exports,_0x51f7a9(0x16e),{'value':!![]}),exports[_0x51f7a9(0x172)]=Workflow,exports[_0x51f7a9(0x179)]=Http,exports[_0x51f7a9(0x17b)]=Webhook,exports[_0x51f7a9(0x175)]=Job,exports['Schedule']=Schedule;const workflow_1=require(_0x51f7a9(0x173)),metadata_1=require(_0x51f7a9(0x176));function Workflow(_0x1230ff,_0x1af7f2){return function(_0x5009a8){const _0x5f2fa4=_0x31a9,_0x4ff460=(0x0,metadata_1[_0x5f2fa4(0x177)])(_0x5009a8);if(_0x1230ff)_0x4ff460[_0x5f2fa4(0x17c)]=_0x1230ff;if(_0x1af7f2)_0x4ff460['workflowName']=_0x1af7f2;};}function Http(_0x5acd2a,_0x1b1630){return function(_0x944811){const _0x29958b=_0x31a9,_0x312356=(0x0,metadata_1[_0x29958b(0x177)])(_0x944811),_0x1651ae={'type':workflow_1[_0x29958b(0x16a)][_0x29958b(0x16d)],'webhook_url':_0x1b1630,'webhookMethod':_0x5acd2a};_0x312356[_0x29958b(0x174)]=_0x1651ae;};}function Webhook(_0x339e86,_0x4797b2){return Http(_0x339e86,_0x4797b2);}function Job(_0x5bab73,_0x1604c9){return function(_0x57229b){const _0x387761=_0x31a9,_0x1de06c=(0x0,metadata_1[_0x387761(0x177)])(_0x57229b);_0x1de06c[_0x387761(0x174)]={'type':workflow_1[_0x387761(0x16a)]['JOB'],'cron':_0x5bab73??'*\x20*\x20*\x20*\x20*','timezone':_0x1604c9};};}function Schedule(_0x12cb75,_0x229ac4){return function(_0x32bed2){const _0x3f31fc=_0x31a9,_0x52ab5a=(0x0,metadata_1[_0x3f31fc(0x177)])(_0x32bed2);_0x52ab5a['trigger']={'type':workflow_1[_0x3f31fc(0x16a)][_0x3f31fc(0x17a)],'cron':_0x12cb75,'timezone':_0x229ac4};};}function _0x31a9(_0x18564d,_0x347387){_0x18564d=_0x18564d-0x166;const _0x49cb8b=_0x49cb();let _0x31a92b=_0x49cb8b[_0x18564d];if(_0x31a9['DHSaeO']===undefined){var _0x117cde=function(_0x40afca){const _0x3f1aa5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1230ff='',_0x1af7f2='';for(let _0x5009a8=0x0,_0x4ff460,_0x5acd2a,_0x1b1630=0x0;_0x5acd2a=_0x40afca['charAt'](_0x1b1630++);~_0x5acd2a&&(_0x4ff460=_0x5009a8%0x4?_0x4ff460*0x40+_0x5acd2a:_0x5acd2a,_0x5009a8++%0x4)?_0x1230ff+=String['fromCharCode'](0xff&_0x4ff460>>(-0x2*_0x5009a8&0x6)):0x0){_0x5acd2a=_0x3f1aa5['indexOf'](_0x5acd2a);}for(let _0x944811=0x0,_0x312356=_0x1230ff['length'];_0x944811<_0x312356;_0x944811++){_0x1af7f2+='%'+('00'+_0x1230ff['charCodeAt'](_0x944811)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1af7f2);};_0x31a9['NjcLmC']=_0x117cde,_0x31a9['ZbMbtx']={},_0x31a9['DHSaeO']=!![];}const _0xe24d85=_0x49cb8b[0x0],_0x35e4fa=_0x18564d+_0xe24d85,_0x5345b0=_0x31a9['ZbMbtx'][_0x35e4fa];return!_0x5345b0?(_0x31a92b=_0x31a9['NjcLmC'](_0x31a92b),_0x31a9['ZbMbtx'][_0x35e4fa]=_0x31a92b):_0x31a92b=_0x5345b0,_0x31a92b;}function _0x49cb(){const _0x5b7250=['mJi2mdm0mtbJC2nvDhq','mJCZmdiYnKvVB2XWva','sfruua','x19LC01VzhvSzq','mZu0nda4DLnJAhfv','mJC2odDKEuzmqw0','mZvwtKTKCLO','v29YA2zSB3C','lI4VDhLWzxmVD29YA2zSB3C','DhjPz2DLCG','sM9I','lI9TzxrHzgf0yq','z2v0t3jdCMvHDgvxB3jRzMXVD01LDge','ndiZmte3nK5RrvDpEG','shr0Ca','u0nirurvteu','v2vIAg9VAW','D29YA2zSB3Djza','mZK5ntiYmhDurffPrq','zgvMAw5LuhjVCgvYDhK','mZq4q2XhzMzn','nJyYndGWr3bdvNf3','v29YA2zSB3DuCMLNz2vYvhLWzq'];_0x49cb=function(){return _0x5b7250;};return _0x49cb();}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Workflow = Workflow;
4
+ exports.Http = Http;
5
+ exports.Webhook = Webhook;
6
+ exports.Job = Job;
7
+ exports.Schedule = Schedule;
8
+ const workflow_1 = require("../types/workflow");
9
+ const metadata_1 = require("./metadata");
10
+ function Workflow(workflowId, workflowName) {
11
+ return function (ctor) {
12
+ const meta = (0, metadata_1.getOrCreateWorkflowMeta)(ctor);
13
+ if (workflowId)
14
+ meta.workflowId = workflowId;
15
+ if (workflowName)
16
+ meta.workflowName = workflowName;
17
+ };
18
+ }
19
+ function Http(method, path) {
20
+ return function (ctor) {
21
+ const meta = (0, metadata_1.getOrCreateWorkflowMeta)(ctor);
22
+ const trigger = {
23
+ type: workflow_1.WorkflowTriggerType.HTTP,
24
+ webhook_url: path,
25
+ webhookMethod: method,
26
+ };
27
+ meta.trigger = trigger;
28
+ };
29
+ }
30
+ function Webhook(method, path) {
31
+ return Http(method, path);
32
+ }
33
+ function Job(cron, timezone) {
34
+ return function (ctor) {
35
+ const meta = (0, metadata_1.getOrCreateWorkflowMeta)(ctor);
36
+ meta.trigger = {
37
+ type: workflow_1.WorkflowTriggerType.JOB,
38
+ cron: cron ?? "* * * * *",
39
+ timezone,
40
+ };
41
+ };
42
+ }
43
+ function Schedule(cron, timezone) {
44
+ return function (ctor) {
45
+ const meta = (0, metadata_1.getOrCreateWorkflowMeta)(ctor);
46
+ meta.trigger = {
47
+ type: workflow_1.WorkflowTriggerType.SCHEDULE,
48
+ cron,
49
+ timezone,
50
+ };
51
+ };
52
+ }
package/dist/errors.js CHANGED
@@ -1 +1,76 @@
1
- 'use strict';const _0x190f4d=_0x2746;(function(_0x37d98c,_0x45c28c){const _0x48c929=_0x2746,_0x19f938=_0x37d98c();while(!![]){try{const _0x2964c2=parseInt(_0x48c929(0x98))/0x1+parseInt(_0x48c929(0x92))/0x2+parseInt(_0x48c929(0x86))/0x3+-parseInt(_0x48c929(0x8c))/0x4+-parseInt(_0x48c929(0x97))/0x5+parseInt(_0x48c929(0x7e))/0x6+-parseInt(_0x48c929(0x89))/0x7*(parseInt(_0x48c929(0x93))/0x8);if(_0x2964c2===_0x45c28c)break;else _0x19f938['push'](_0x19f938['shift']());}catch(_0x4a3fd9){_0x19f938['push'](_0x19f938['shift']());}}}(_0x17cb,0xda1e3));function _0x17cb(){const _0x3e5a15=['q2XPB2rVDefWAuvYCM9Y','zgf0yq','CMvXDwvZDa','y29Kzq','uMvXDwvZDcbMywLSzwq','C3rYAw5N','mZaYodq1mKzxCvvrDa','CMvZCg9UC2u','zgvMAw5LuhjVCgvYDhK','ndL4wffpvKy','C3rYAw5NAwz5','AgvHzgvYCW','mty0mdmXmMjOy1bWDa','y29UzMLN','BMfTzq','BwvZC2fNzq','B2jQzwn0','CgfYC2vbCgLfCNjVCKnVzgu','mta4mZGXogHlEfLvwa','odK3nZG0D2Tdu2n4','x19LC01VzhvSzq','CgfYC2vbCgLfCNjVCLn0yxr1CW','y2XPB2rVDefWAuvYCM9YrNjVBuf4Aw9Z','nJG2nJyYnwreDgvnAq','nte1mJy4Exblthjb','DhjPBq','C2v0uhjVDg90ExbLt2y','C3rHDhvZ','odm3ndi4nhHjrffmrq','CgfYC2vbCgLfCNjVCK1LC3nHz2u'];_0x17cb=function(){return _0x3e5a15;};return _0x17cb();}Object[_0x190f4d(0x88)](exports,_0x190f4d(0x94),{'value':!![]}),exports[_0x190f4d(0x80)]=void 0x0,exports[_0x190f4d(0x96)]=cliodotApiErrorFromAxios;const parse_api_error_1=require('./http/parse-api-error');function coerceErrorMessage(_0xac1e1f,_0x18225e){const _0x4e43be=_0x190f4d;if(typeof _0xac1e1f===_0x4e43be(0x85)&&_0xac1e1f[_0x4e43be(0x99)]())return _0xac1e1f['trim']();if(_0xac1e1f&&typeof _0xac1e1f===_0x4e43be(0x90)){const _0x1708e7=(0x0,parse_api_error_1[_0x4e43be(0x7f)])(_0xac1e1f);if(_0x1708e7)return _0x1708e7;try{return JSON[_0x4e43be(0x8a)](_0xac1e1f);}catch{return _0x18225e;}}return _0x18225e;}function _0x2746(_0x1b4bd4,_0x279520){_0x1b4bd4=_0x1b4bd4-0x7e;const _0x17cbf4=_0x17cb();let _0x2746cf=_0x17cbf4[_0x1b4bd4];if(_0x2746['CFzeGf']===undefined){var _0x2b9466=function(_0x3504d8){const _0x2a8388='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xac1e1f='',_0x18225e='';for(let _0x1708e7=0x0,_0x1c7957,_0x436944,_0x2d41c2=0x0;_0x436944=_0x3504d8['charAt'](_0x2d41c2++);~_0x436944&&(_0x1c7957=_0x1708e7%0x4?_0x1c7957*0x40+_0x436944:_0x436944,_0x1708e7++%0x4)?_0xac1e1f+=String['fromCharCode'](0xff&_0x1c7957>>(-0x2*_0x1708e7&0x6)):0x0){_0x436944=_0x2a8388['indexOf'](_0x436944);}for(let _0x25172d=0x0,_0x56f76b=_0xac1e1f['length'];_0x25172d<_0x56f76b;_0x25172d++){_0x18225e+='%'+('00'+_0xac1e1f['charCodeAt'](_0x25172d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18225e);};_0x2746['iKRzjE']=_0x2b9466,_0x2746['BLBqMl']={},_0x2746['CFzeGf']=!![];}const _0x5912a6=_0x17cbf4[0x0],_0xd97f8d=_0x1b4bd4+_0x5912a6,_0x299be9=_0x2746['BLBqMl'][_0xd97f8d];return!_0x299be9?(_0x2746cf=_0x2746['iKRzjE'](_0x2746cf),_0x2746['BLBqMl'][_0xd97f8d]=_0x2746cf):_0x2746cf=_0x299be9,_0x2746cf;}function isAxiosLikeResponse(value){const _0x386126=_0x190f4d;if(!value||typeof value!=='object')return![];const _0x1c7957=value;return _0x386126(0x81)in _0x1c7957&&(_0x386126(0x8d)in _0x1c7957||_0x386126(0x82)in _0x1c7957||_0x386126(0x8b)in _0x1c7957);}function resolveApiBody(_0x436944){const _0x3dd195=_0x190f4d;if(_0x436944?.[_0x3dd195(0x81)]!==undefined)return _0x436944[_0x3dd195(0x81)];if(isAxiosLikeResponse(_0x436944?.['response']))return _0x436944?.[_0x3dd195(0x87)]?.[_0x3dd195(0x81)];return _0x436944?.['response'];}class CliodotApiError extends Error{constructor(_0x2d41c2,_0x25172d){const _0x4229e4=_0x190f4d,_0x56f76b=resolveApiBody(_0x25172d),_0x24a58d=coerceErrorMessage(_0x2d41c2,'')||(0x0,parse_api_error_1[_0x4229e4(0x7f)])(_0x56f76b)||_0x4229e4(0x84);super(_0x24a58d),this['name']=_0x4229e4(0x80),this[_0x4229e4(0x9b)]=_0x25172d?.[_0x4229e4(0x9b)]??(0x0,parse_api_error_1[_0x4229e4(0x95)])(_0x56f76b,isAxiosLikeResponse(_0x25172d?.[_0x4229e4(0x87)])?_0x25172d?.[_0x4229e4(0x87)]?.['status']:undefined),this[_0x4229e4(0x87)]=_0x56f76b,this['data']=_0x56f76b,this[_0x4229e4(0x83)]=_0x25172d?.[_0x4229e4(0x83)]??(0x0,parse_api_error_1['parseApiErrorCode'])(this[_0x4229e4(0x81)]),Object[_0x4229e4(0x9a)](this,new.target.prototype);}['toJSON'](){const _0x5b0262=_0x190f4d;return{'name':this[_0x5b0262(0x8e)],'message':this[_0x5b0262(0x8f)],'status':this['status'],'code':this[_0x5b0262(0x83)],'data':this['data'],'response':this[_0x5b0262(0x87)]};}}exports[_0x190f4d(0x80)]=CliodotApiError;function cliodotApiErrorFromAxios(_0x1e53ca,_0x4e3cbb){const _0x5c377f=_0x190f4d,_0x4324ef=_0x1e53ca?.[_0x5c377f(0x87)]?.['data'],_0x1f42c1=(0x0,parse_api_error_1['parseApiErrorMessage'])(_0x4324ef)||_0x1e53ca?.[_0x5c377f(0x8f)]||_0x4e3cbb;return new CliodotApiError(_0x1f42c1,{'status':(0x0,parse_api_error_1[_0x5c377f(0x95)])(_0x4324ef,_0x1e53ca?.[_0x5c377f(0x87)]?.[_0x5c377f(0x9b)]),'data':_0x4324ef,'code':(0x0,parse_api_error_1[_0x5c377f(0x91)])(_0x4324ef)});}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliodotApiError = void 0;
4
+ exports.cliodotApiErrorFromAxios = cliodotApiErrorFromAxios;
5
+ const parse_api_error_1 = require("./http/parse-api-error");
6
+ function coerceErrorMessage(message, fallback) {
7
+ if (typeof message === "string" && message.trim())
8
+ return message.trim();
9
+ if (message && typeof message === "object") {
10
+ const parsed = (0, parse_api_error_1.parseApiErrorMessage)(message);
11
+ if (parsed)
12
+ return parsed;
13
+ try {
14
+ return JSON.stringify(message);
15
+ }
16
+ catch {
17
+ return fallback;
18
+ }
19
+ }
20
+ return fallback;
21
+ }
22
+ function isAxiosLikeResponse(value) {
23
+ if (!value || typeof value !== "object")
24
+ return false;
25
+ const candidate = value;
26
+ return ("data" in candidate &&
27
+ ("config" in candidate || "request" in candidate || "headers" in candidate));
28
+ }
29
+ function resolveApiBody(options) {
30
+ if (options?.data !== undefined) {
31
+ return options.data;
32
+ }
33
+ if (isAxiosLikeResponse(options?.response)) {
34
+ return options?.response?.data;
35
+ }
36
+ return options?.response;
37
+ }
38
+ class CliodotApiError extends Error {
39
+ constructor(message, options) {
40
+ const data = resolveApiBody(options);
41
+ const resolved = coerceErrorMessage(message, "") ||
42
+ (0, parse_api_error_1.parseApiErrorMessage)(data) ||
43
+ "Request failed";
44
+ super(resolved);
45
+ this.name = "CliodotApiError";
46
+ this.status =
47
+ options?.status ??
48
+ (0, parse_api_error_1.parseApiErrorStatus)(data, isAxiosLikeResponse(options?.response)
49
+ ? options?.response?.status
50
+ : undefined);
51
+ this.response = data;
52
+ this.data = data;
53
+ this.code = options?.code ?? (0, parse_api_error_1.parseApiErrorCode)(this.data);
54
+ Object.setPrototypeOf(this, new.target.prototype);
55
+ }
56
+ toJSON() {
57
+ return {
58
+ name: this.name,
59
+ message: this.message,
60
+ status: this.status,
61
+ code: this.code,
62
+ data: this.data,
63
+ response: this.response,
64
+ };
65
+ }
66
+ }
67
+ exports.CliodotApiError = CliodotApiError;
68
+ function cliodotApiErrorFromAxios(err, fallbackMessage) {
69
+ const data = err?.response?.data;
70
+ const message = (0, parse_api_error_1.parseApiErrorMessage)(data) || err?.message || fallbackMessage;
71
+ return new CliodotApiError(message, {
72
+ status: (0, parse_api_error_1.parseApiErrorStatus)(data, err?.response?.status),
73
+ data,
74
+ code: (0, parse_api_error_1.parseApiErrorCode)(data),
75
+ });
76
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cliodot-request.environment.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliodot-request.environment.test.d.ts","sourceRoot":"","sources":["../../../src/http/__tests__/cliodot-request.environment.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cliodot_request_1 = require("../cliodot-request");
4
+ describe("SDK environment headers", () => {
5
+ it("normalizes aliases and ignores invalid values", () => {
6
+ expect((0, cliodot_request_1.normalizeSdkEnvironment)("development")).toBe("dev");
7
+ expect((0, cliodot_request_1.normalizeSdkEnvironment)("production")).toBe("prod");
8
+ expect((0, cliodot_request_1.normalizeSdkEnvironment)("staging")).toBeUndefined();
9
+ });
10
+ it("adds x-environment on bearer auth when pinned", () => {
11
+ const headers = (0, cliodot_request_1.resolveBearerAuthHeaders)({
12
+ appId: "psv_app_1",
13
+ apiKey: "pak_test",
14
+ environment: "prod",
15
+ });
16
+ expect(headers).toMatchObject({
17
+ "x-cliodot-app-id": "psv_app_1",
18
+ Authorization: "Bearer pak_test",
19
+ "x-environment": "prod",
20
+ });
21
+ });
22
+ it("omits x-environment when the client is not pinned", () => {
23
+ const headers = (0, cliodot_request_1.resolveBearerAuthHeaders)({
24
+ appId: "psv_app_1",
25
+ apiKey: "pak_test",
26
+ });
27
+ expect(headers).toMatchObject({
28
+ "x-cliodot-app-id": "psv_app_1",
29
+ Authorization: "Bearer pak_test",
30
+ });
31
+ expect(headers["x-environment"]).toBeUndefined();
32
+ });
33
+ it("does not add a header for unknown environment values", () => {
34
+ const headers = (0, cliodot_request_1.applyEnvironmentHeader)({}, "staging");
35
+ expect(headers["x-environment"]).toBeUndefined();
36
+ });
37
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cliodot-result.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliodot-result.test.d.ts","sourceRoot":"","sources":["../../../src/http/__tests__/cliodot-result.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cliodot_result_1 = require("../cliodot-result");
4
+ describe("cliodot-result", () => {
5
+ it("cliodotFail builds structured failure", () => {
6
+ const result = (0, cliodot_result_1.cliodotFail)("TEST", "boom", { status: 400 });
7
+ expect(result).toEqual({
8
+ ok: false,
9
+ error: { code: "TEST", message: "boom", status: 400 },
10
+ });
11
+ });
12
+ it("isCliodotOk / isCliodotFail discriminate", () => {
13
+ expect((0, cliodot_result_1.isCliodotOk)((0, cliodot_result_1.cliodotOk)({ value: 1 }))).toBe(true);
14
+ expect((0, cliodot_result_1.isCliodotFail)((0, cliodot_result_1.cliodotValidationFail)("bad"))).toBe(true);
15
+ });
16
+ it("resolveConfigError returns first invalid check", () => {
17
+ expect((0, cliodot_result_1.resolveConfigError)([
18
+ { valid: true, message: "ok" },
19
+ { valid: false, message: "missing baseUrl" },
20
+ ])).toEqual({ code: cliodot_result_1.SDK_ERROR.CONFIG, message: "missing baseUrl" });
21
+ });
22
+ it("resolveRequiredString validates non-empty strings", () => {
23
+ expect((0, cliodot_result_1.resolveRequiredString)("", "service")).toEqual({
24
+ ok: false,
25
+ error: { code: cliodot_result_1.SDK_ERROR.VALIDATION, message: "service is required" },
26
+ });
27
+ expect((0, cliodot_result_1.resolveRequiredString)("pay", "service")).toBeNull();
28
+ });
29
+ it("ensureOkTrue wraps bodies without ok", () => {
30
+ expect((0, cliodot_result_1.ensureOkTrue)({ keys: [] })).toEqual({ ok: true, keys: [] });
31
+ expect((0, cliodot_result_1.ensureOkTrue)({ ok: true, keys: [] })).toEqual({ ok: true, keys: [] });
32
+ });
33
+ it("normalizeApiFailure reads nested error objects", () => {
34
+ expect((0, cliodot_result_1.normalizeApiFailure)({ ok: false, error: { code: "X", message: "nope" } }, 502)).toEqual({
35
+ ok: false,
36
+ error: { code: "X", message: "nope", status: 502, details: { ok: false, error: { code: "X", message: "nope" } } },
37
+ });
38
+ });
39
+ it("failureFromCaught maps axios-like errors", () => {
40
+ const err = {
41
+ response: {
42
+ status: 401,
43
+ data: { ok: false, error: { code: "UNAUTHORIZED", message: "bad key" } },
44
+ },
45
+ message: "Request failed with status code 401",
46
+ };
47
+ expect((0, cliodot_result_1.failureFromCaught)(err, "fallback")).toEqual({
48
+ ok: false,
49
+ error: {
50
+ code: "UNAUTHORIZED",
51
+ message: "bad key",
52
+ status: 401,
53
+ details: err.response.data,
54
+ },
55
+ });
56
+ });
57
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events-instance-id.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-instance-id.test.d.ts","sourceRoot":"","sources":["../../../src/http/__tests__/events-instance-id.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const crypto_1 = require("crypto");
4
+ const events_instance_id_1 = require("../events-instance-id");
5
+ jest.mock("os", () => ({
6
+ hostname: jest.fn(() => "pc-one"),
7
+ platform: jest.fn(() => "darwin"),
8
+ arch: jest.fn(() => "arm64"),
9
+ userInfo: jest.fn(() => ({ username: "huios" })),
10
+ homedir: jest.fn(() => "/Users/huios"),
11
+ cpus: jest.fn(() => [{ model: "Apple M-series" }]),
12
+ }));
13
+ const os = require("os");
14
+ describe("resolveEventsInstanceId", () => {
15
+ beforeEach(() => {
16
+ os.hostname.mockReturnValue("pc-one");
17
+ });
18
+ it("keeps the same id on the same computer", () => {
19
+ const a = (0, events_instance_id_1.resolveEventsInstanceId)({ appId: "evt_app_1" });
20
+ const b = (0, events_instance_id_1.resolveEventsInstanceId)({ appId: "evt_app_1" });
21
+ expect(a).toBe(b);
22
+ expect(a).toHaveLength(64);
23
+ });
24
+ it("changes when the computer hostname changes", () => {
25
+ const first = (0, events_instance_id_1.resolveEventsInstanceId)({ appId: "evt_app_1" });
26
+ os.hostname.mockReturnValue("pc-two");
27
+ const second = (0, events_instance_id_1.resolveEventsInstanceId)({ appId: "evt_app_1" });
28
+ expect(second).not.toBe(first);
29
+ });
30
+ it("accepts a stable override", () => {
31
+ expect((0, events_instance_id_1.resolveEventsInstanceId)({
32
+ appId: "evt_app_1",
33
+ instanceId: "test-instance",
34
+ })).toBe("test-instance");
35
+ });
36
+ it("hashes a short override", () => {
37
+ const hashed = (0, events_instance_id_1.resolveEventsInstanceId)({
38
+ appId: "evt_app_1",
39
+ instanceId: "pc1",
40
+ });
41
+ expect(hashed).toBe((0, crypto_1.createHash)("sha256")
42
+ .update("cliodot-events:evt_app_1:override:pc1")
43
+ .digest("hex"));
44
+ });
45
+ });
@@ -0,0 +1,35 @@
1
+ import type { AxiosInstance } from "axios";
2
+ import { type CliodotFail, type CliodotMethodResult, type CliodotStructuredError } from "./cliodot-result";
3
+ export type AuthHeadersResult = Record<string, string> | CliodotFail;
4
+ export type SdkEnvironment = "dev" | "prod";
5
+ export declare function normalizeSdkEnvironment(value?: string): SdkEnvironment | undefined;
6
+ export declare function applyEnvironmentHeader(headers: Record<string, string>, environment?: string): Record<string, string>;
7
+ export type ExecuteCliodotRequestOptions<T extends object> = {
8
+ configError?: CliodotStructuredError | null;
9
+ authHeaders: AuthHeadersResult;
10
+ axios: AxiosInstance;
11
+ method: string;
12
+ path: string;
13
+ body?: unknown;
14
+ params?: Record<string, unknown>;
15
+ validateStatus?: (status: number) => boolean;
16
+ transformErrorMessage?: (message: string, code?: string) => string;
17
+ passThrough?: (data: unknown, status: number) => T | CliodotFail | null;
18
+ fallbackMessage?: string;
19
+ };
20
+ export declare function executeCliodotRequest<T extends object>(options: ExecuteCliodotRequestOptions<T>): Promise<CliodotMethodResult<T>>;
21
+ export declare function resolveBearerAuthHeaders(input: {
22
+ appId: string;
23
+ apiKey?: string;
24
+ appSecret?: string;
25
+ environment?: string;
26
+ missingMessage?: string;
27
+ }): AuthHeadersResult;
28
+ export declare function resolveS2SAuthHeaders(input: {
29
+ appId: string;
30
+ appApiKey?: string;
31
+ appSecret?: string;
32
+ missingMessage?: string;
33
+ }): AuthHeadersResult;
34
+ export declare function parseFailureFromBody(data: unknown, status?: number): CliodotFail;
35
+ //# sourceMappingURL=cliodot-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliodot-request.d.ts","sourceRoot":"","sources":["../../src/http/cliodot-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAE5B,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C,wBAAgB,uBAAuB,CACrC,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,GAAG,SAAS,CAM5B;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB;AAED,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3D,WAAW,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC5C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAcF,wBAAsB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAC1D,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAwCjC;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,iBAAiB,CAkBpB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,iBAAiB,CAcpB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAIhF"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeSdkEnvironment = normalizeSdkEnvironment;
4
+ exports.applyEnvironmentHeader = applyEnvironmentHeader;
5
+ exports.executeCliodotRequest = executeCliodotRequest;
6
+ exports.resolveBearerAuthHeaders = resolveBearerAuthHeaders;
7
+ exports.resolveS2SAuthHeaders = resolveS2SAuthHeaders;
8
+ exports.parseFailureFromBody = parseFailureFromBody;
9
+ const cliodot_result_1 = require("./cliodot-result");
10
+ const parse_api_error_1 = require("./parse-api-error");
11
+ function normalizeSdkEnvironment(value) {
12
+ if (!value)
13
+ return undefined;
14
+ const normalized = value.trim().toLowerCase();
15
+ if (normalized === "dev" || normalized === "development")
16
+ return "dev";
17
+ if (normalized === "prod" || normalized === "production")
18
+ return "prod";
19
+ return undefined;
20
+ }
21
+ function applyEnvironmentHeader(headers, environment) {
22
+ const normalized = normalizeSdkEnvironment(environment);
23
+ if (normalized) {
24
+ headers["x-environment"] = normalized;
25
+ }
26
+ return headers;
27
+ }
28
+ function cleanParams(params) {
29
+ if (!params)
30
+ return undefined;
31
+ const out = {};
32
+ for (const [key, value] of Object.entries(params)) {
33
+ if (value === undefined || value === null)
34
+ continue;
35
+ out[key] = value;
36
+ }
37
+ return Object.keys(out).length ? out : undefined;
38
+ }
39
+ async function executeCliodotRequest(options) {
40
+ if (options.configError) {
41
+ return (0, cliodot_result_1.cliodotFail)(options.configError.code, options.configError.message);
42
+ }
43
+ if ((0, cliodot_result_1.isCliodotFail)(options.authHeaders)) {
44
+ return options.authHeaders;
45
+ }
46
+ const fallbackMessage = options.fallbackMessage || `Request failed: ${options.method} ${options.path}`;
47
+ try {
48
+ const response = await options.axios({
49
+ method: options.method,
50
+ url: options.path,
51
+ headers: options.authHeaders,
52
+ data: options.body,
53
+ params: cleanParams(options.params),
54
+ ...(options.validateStatus ? { validateStatus: options.validateStatus } : {}),
55
+ });
56
+ const data = response.data;
57
+ const status = response.status;
58
+ if (options.passThrough) {
59
+ const passed = options.passThrough(data, status);
60
+ if (passed !== null) {
61
+ return passed;
62
+ }
63
+ }
64
+ if (status >= 400 || (data && typeof data === "object" && data.ok === false)) {
65
+ return (0, cliodot_result_1.normalizeApiFailure)(data, status, options.transformErrorMessage);
66
+ }
67
+ return (0, cliodot_result_1.ensureOkTrue)(data);
68
+ }
69
+ catch (err) {
70
+ return (0, cliodot_result_1.failureFromCaught)(err, fallbackMessage, options.transformErrorMessage);
71
+ }
72
+ }
73
+ function resolveBearerAuthHeaders(input) {
74
+ const headers = {
75
+ "x-cliodot-app-id": input.appId,
76
+ };
77
+ applyEnvironmentHeader(headers, input.environment);
78
+ if (input.apiKey) {
79
+ headers.Authorization = `Bearer ${input.apiKey}`;
80
+ return headers;
81
+ }
82
+ if (input.appSecret) {
83
+ headers.Authorization = `Bearer ${input.appSecret}`;
84
+ headers["x-cliodot-app-secret"] = input.appSecret;
85
+ return headers;
86
+ }
87
+ return (0, cliodot_result_1.cliodotFail)(cliodot_result_1.SDK_ERROR.AUTH, input.missingMessage || "App credentials required (apiKey/appApiKey or appSecret)");
88
+ }
89
+ function resolveS2SAuthHeaders(input) {
90
+ if (input.appApiKey) {
91
+ return { Authorization: `Bearer ${input.appApiKey}` };
92
+ }
93
+ if (input.appSecret) {
94
+ return {
95
+ "X-Cliodot-App-Id": input.appId,
96
+ "X-Cliodot-App-Secret": input.appSecret,
97
+ };
98
+ }
99
+ return (0, cliodot_result_1.cliodotFail)(cliodot_result_1.SDK_ERROR.AUTH, input.missingMessage || "App credentials required (appApiKey or appSecret)");
100
+ }
101
+ function parseFailureFromBody(data, status) {
102
+ const code = (0, parse_api_error_1.parseApiErrorCode)(data) || (status ? `HTTP_${status}` : cliodot_result_1.SDK_ERROR.REQUEST_FAILED);
103
+ const message = (0, parse_api_error_1.parseApiErrorMessage)(data) || "Request failed";
104
+ return (0, cliodot_result_1.cliodotFail)(code, message, { status, details: data });
105
+ }
@@ -0,0 +1,40 @@
1
+ export type CliodotStructuredError = {
2
+ code: string;
3
+ message: string;
4
+ status?: number;
5
+ details?: unknown;
6
+ };
7
+ export type CliodotFail = {
8
+ ok: false;
9
+ error: CliodotStructuredError;
10
+ };
11
+ export type CliodotOk<T extends object = Record<string, never>> = {
12
+ ok: true;
13
+ } & T;
14
+ export type CliodotMethodResult<T extends object = Record<string, never>> = CliodotOk<T> | CliodotFail;
15
+ export declare const SDK_ERROR: {
16
+ readonly CONFIG: "SDK_CONFIG_INVALID";
17
+ readonly VALIDATION: "SDK_VALIDATION";
18
+ readonly AUTH: "SDK_AUTH_MISSING";
19
+ readonly NETWORK: "NETWORK_ERROR";
20
+ readonly UNKNOWN: "UNKNOWN";
21
+ readonly REQUEST_FAILED: "REQUEST_FAILED";
22
+ };
23
+ export declare function cliodotFail(code: string, message: string, extras?: {
24
+ status?: number;
25
+ details?: unknown;
26
+ }): CliodotFail;
27
+ export declare function cliodotValidationFail(message: string): CliodotFail;
28
+ export declare function cliodotOk<T extends object>(data: T): CliodotOk<T>;
29
+ export declare function isCliodotFail(value: unknown): value is CliodotFail;
30
+ export declare function isCliodotOk<T extends object>(value: CliodotMethodResult<T> | unknown): value is CliodotOk<T>;
31
+ export declare function resolveConfigError(checks: Array<{
32
+ valid: boolean;
33
+ message: string;
34
+ code?: string;
35
+ }>): CliodotStructuredError | null;
36
+ export declare function resolveRequiredString(value: unknown, label: string): CliodotFail | null;
37
+ export declare function ensureOkTrue<T extends object>(data: unknown): CliodotMethodResult<T>;
38
+ export declare function normalizeApiFailure(data: unknown, status?: number, transformMessage?: (message: string, code?: string) => string): CliodotFail;
39
+ export declare function failureFromCaught(err: unknown, fallbackMessage: string, transformMessage?: (message: string, code?: string) => string): CliodotFail;
40
+ //# sourceMappingURL=cliodot-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliodot-result.d.ts","sourceRoot":"","sources":["../../src/http/cliodot-result.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,sBAAsB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI;IAChE,EAAE,EAAE,IAAI,CAAC;CACV,GAAG,CAAC,CAAC;AAEN,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IACpE,SAAS,CAAC,CAAC,CAAC,GACZ,WAAW,CAAC;AAEhB,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAC;AAEX,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9C,WAAW,CAUb;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAElE;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAEjE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CASlE;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,GACtC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAEvB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAChE,sBAAsB,GAAG,IAAI,CAO/B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,WAAW,GAAG,IAAI,CAKpB;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,IAAI,EAAE,OAAO,GACZ,mBAAmB,CAAC,CAAC,CAAC,CAYxB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,OAAO,EACb,MAAM,CAAC,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,GAC5D,WAAW,CAYb;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,MAAM,EACvB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,GAC5D,WAAW,CAgEb"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SDK_ERROR = void 0;
4
+ exports.cliodotFail = cliodotFail;
5
+ exports.cliodotValidationFail = cliodotValidationFail;
6
+ exports.cliodotOk = cliodotOk;
7
+ exports.isCliodotFail = isCliodotFail;
8
+ exports.isCliodotOk = isCliodotOk;
9
+ exports.resolveConfigError = resolveConfigError;
10
+ exports.resolveRequiredString = resolveRequiredString;
11
+ exports.ensureOkTrue = ensureOkTrue;
12
+ exports.normalizeApiFailure = normalizeApiFailure;
13
+ exports.failureFromCaught = failureFromCaught;
14
+ const parse_api_error_1 = require("./parse-api-error");
15
+ exports.SDK_ERROR = {
16
+ CONFIG: "SDK_CONFIG_INVALID",
17
+ VALIDATION: "SDK_VALIDATION",
18
+ AUTH: "SDK_AUTH_MISSING",
19
+ NETWORK: "NETWORK_ERROR",
20
+ UNKNOWN: "UNKNOWN",
21
+ REQUEST_FAILED: "REQUEST_FAILED",
22
+ };
23
+ function cliodotFail(code, message, extras) {
24
+ return {
25
+ ok: false,
26
+ error: {
27
+ code,
28
+ message,
29
+ ...(extras?.status !== undefined ? { status: extras.status } : {}),
30
+ ...(extras?.details !== undefined ? { details: extras.details } : {}),
31
+ },
32
+ };
33
+ }
34
+ function cliodotValidationFail(message) {
35
+ return cliodotFail(exports.SDK_ERROR.VALIDATION, message);
36
+ }
37
+ function cliodotOk(data) {
38
+ return { ok: true, ...data };
39
+ }
40
+ function isCliodotFail(value) {
41
+ return (!!value &&
42
+ typeof value === "object" &&
43
+ value.ok === false &&
44
+ !!value.error &&
45
+ typeof value.error.code === "string" &&
46
+ typeof value.error.message === "string");
47
+ }
48
+ function isCliodotOk(value) {
49
+ return !!value && typeof value === "object" && value.ok === true;
50
+ }
51
+ function resolveConfigError(checks) {
52
+ const failed = checks.find((check) => !check.valid);
53
+ if (!failed)
54
+ return null;
55
+ return {
56
+ code: failed.code || exports.SDK_ERROR.CONFIG,
57
+ message: failed.message,
58
+ };
59
+ }
60
+ function resolveRequiredString(value, label) {
61
+ if (typeof value !== "string" || !value.trim()) {
62
+ return cliodotValidationFail(`${label} is required`);
63
+ }
64
+ return null;
65
+ }
66
+ function ensureOkTrue(data) {
67
+ if (!data || typeof data !== "object") {
68
+ return cliodotFail(exports.SDK_ERROR.UNKNOWN, "Invalid response body");
69
+ }
70
+ const body = data;
71
+ if (body.ok === false) {
72
+ return normalizeApiFailure(body);
73
+ }
74
+ if (body.ok === true) {
75
+ return body;
76
+ }
77
+ return cliodotOk(body);
78
+ }
79
+ function normalizeApiFailure(data, status, transformMessage) {
80
+ let code = (0, parse_api_error_1.parseApiErrorCode)(data) || (status ? `HTTP_${status}` : exports.SDK_ERROR.REQUEST_FAILED);
81
+ let message = (0, parse_api_error_1.parseApiErrorMessage)(data) || "Request failed";
82
+ if (transformMessage) {
83
+ message = transformMessage(message, code);
84
+ }
85
+ return cliodotFail(code, message, {
86
+ status,
87
+ details: data,
88
+ });
89
+ }
90
+ function failureFromCaught(err, fallbackMessage, transformMessage) {
91
+ if (isCliodotFail(err)) {
92
+ return err;
93
+ }
94
+ const axiosResponse = err &&
95
+ typeof err === "object" &&
96
+ "response" in err
97
+ ? err.response
98
+ : undefined;
99
+ if (axiosResponse) {
100
+ const status = axiosResponse.status;
101
+ const data = axiosResponse.data;
102
+ if (data && typeof data === "object" && data.ok === false) {
103
+ return normalizeApiFailure(data, status, transformMessage);
104
+ }
105
+ let message = fallbackMessage;
106
+ if (data && typeof data === "object") {
107
+ const rawMessage = data.message;
108
+ if (typeof rawMessage === "string" && rawMessage.trim()) {
109
+ message = rawMessage.trim();
110
+ }
111
+ }
112
+ else if (typeof err.message === "string" &&
113
+ String(err.message).trim()) {
114
+ message = String(err.message).trim();
115
+ }
116
+ const code = (0, parse_api_error_1.parseApiErrorCode)(data) || (status ? `HTTP_${status}` : exports.SDK_ERROR.NETWORK);
117
+ const finalMessage = transformMessage ? transformMessage(message, code) : message;
118
+ return cliodotFail(code, finalMessage, { status, details: data ?? err });
119
+ }
120
+ if (err && typeof err === "object" && "code" in err && "message" in err) {
121
+ const structured = err;
122
+ const message = transformMessage
123
+ ? transformMessage(structured.message, structured.code)
124
+ : structured.message;
125
+ return cliodotFail(structured.code, message, {
126
+ status: structured.status,
127
+ details: structured.details,
128
+ });
129
+ }
130
+ const message = (err instanceof Error && err.message.trim()) ||
131
+ (typeof err === "string" && err.trim()) ||
132
+ fallbackMessage;
133
+ const finalMessage = transformMessage ? transformMessage(message) : message;
134
+ const isNetwork = err &&
135
+ typeof err === "object" &&
136
+ ("code" in err || "errno" in err) &&
137
+ !axiosResponse;
138
+ return cliodotFail(isNetwork ? exports.SDK_ERROR.NETWORK : exports.SDK_ERROR.UNKNOWN, finalMessage, { details: err });
139
+ }
@@ -0,0 +1,3 @@
1
+ import { AxiosInstance, CreateAxiosDefaults } from "axios";
2
+ export declare function createCliodotAxios(config?: CreateAxiosDefaults): AxiosInstance;
3
+ //# sourceMappingURL=create-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../src/http/create-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAGlE,wBAAgB,kBAAkB,CAChC,MAAM,GAAE,mBAAwB,GAC/B,aAAa,CAKf"}