@smythos/sre 1.5.50 → 1.5.52

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 (225) hide show
  1. package/CHANGELOG +98 -98
  2. package/LICENSE +18 -18
  3. package/README.md +135 -135
  4. package/dist/index.js +3 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/types/Components/APICall/AccessTokenManager.d.ts +3 -2
  7. package/dist/types/Components/APICall/OAuth.helper.d.ts +3 -2
  8. package/dist/types/subsystems/LLMManager/LLM.service/connectors/openai/OpenAIConnector.class.d.ts +6 -1
  9. package/dist/types/subsystems/LLMManager/ModelsProvider.service/connectors/SmythModelsProvider.class.d.ts +39 -0
  10. package/package.json +1 -1
  11. package/src/Components/APICall/APICall.class.ts +156 -156
  12. package/src/Components/APICall/AccessTokenManager.ts +166 -130
  13. package/src/Components/APICall/ArrayBufferResponse.helper.ts +58 -58
  14. package/src/Components/APICall/OAuth.helper.ts +446 -294
  15. package/src/Components/APICall/mimeTypeCategories.ts +46 -46
  16. package/src/Components/APICall/parseData.ts +167 -167
  17. package/src/Components/APICall/parseHeaders.ts +41 -41
  18. package/src/Components/APICall/parseProxy.ts +68 -68
  19. package/src/Components/APICall/parseUrl.ts +91 -91
  20. package/src/Components/APIEndpoint.class.ts +234 -234
  21. package/src/Components/APIOutput.class.ts +58 -58
  22. package/src/Components/AgentPlugin.class.ts +102 -102
  23. package/src/Components/Async.class.ts +155 -155
  24. package/src/Components/Await.class.ts +90 -90
  25. package/src/Components/Classifier.class.ts +158 -158
  26. package/src/Components/Component.class.ts +132 -132
  27. package/src/Components/ComponentHost.class.ts +38 -38
  28. package/src/Components/DataSourceCleaner.class.ts +92 -92
  29. package/src/Components/DataSourceIndexer.class.ts +181 -181
  30. package/src/Components/DataSourceLookup.class.ts +161 -161
  31. package/src/Components/ECMASandbox.class.ts +71 -71
  32. package/src/Components/FEncDec.class.ts +29 -29
  33. package/src/Components/FHash.class.ts +33 -33
  34. package/src/Components/FSign.class.ts +80 -80
  35. package/src/Components/FSleep.class.ts +25 -25
  36. package/src/Components/FTimestamp.class.ts +25 -25
  37. package/src/Components/FileStore.class.ts +78 -78
  38. package/src/Components/ForEach.class.ts +97 -97
  39. package/src/Components/GPTPlugin.class.ts +70 -70
  40. package/src/Components/GenAILLM.class.ts +586 -586
  41. package/src/Components/HuggingFace.class.ts +314 -314
  42. package/src/Components/Image/imageSettings.config.ts +70 -70
  43. package/src/Components/ImageGenerator.class.ts +502 -502
  44. package/src/Components/JSONFilter.class.ts +54 -54
  45. package/src/Components/LLMAssistant.class.ts +213 -213
  46. package/src/Components/LogicAND.class.ts +28 -28
  47. package/src/Components/LogicAtLeast.class.ts +85 -85
  48. package/src/Components/LogicAtMost.class.ts +86 -86
  49. package/src/Components/LogicOR.class.ts +29 -29
  50. package/src/Components/LogicXOR.class.ts +34 -34
  51. package/src/Components/MCPClient.class.ts +138 -138
  52. package/src/Components/MemoryDeleteKeyVal.class.ts +70 -70
  53. package/src/Components/MemoryReadKeyVal.class.ts +66 -66
  54. package/src/Components/MemoryWriteKeyVal.class.ts +62 -62
  55. package/src/Components/MemoryWriteObject.class.ts +97 -97
  56. package/src/Components/MultimodalLLM.class.ts +128 -128
  57. package/src/Components/OpenAPI.class.ts +72 -72
  58. package/src/Components/PromptGenerator.class.ts +122 -122
  59. package/src/Components/ScrapflyWebScrape.class.ts +159 -159
  60. package/src/Components/ServerlessCode.class.ts +123 -123
  61. package/src/Components/TavilyWebSearch.class.ts +98 -98
  62. package/src/Components/VisionLLM.class.ts +104 -104
  63. package/src/Components/ZapierAction.class.ts +127 -127
  64. package/src/Components/index.ts +97 -97
  65. package/src/Core/AgentProcess.helper.ts +240 -240
  66. package/src/Core/Connector.class.ts +123 -123
  67. package/src/Core/ConnectorsService.ts +197 -197
  68. package/src/Core/DummyConnector.ts +49 -49
  69. package/src/Core/HookService.ts +105 -105
  70. package/src/Core/SmythRuntime.class.ts +235 -235
  71. package/src/Core/SystemEvents.ts +16 -16
  72. package/src/Core/boot.ts +56 -56
  73. package/src/config.ts +15 -15
  74. package/src/constants.ts +126 -126
  75. package/src/data/hugging-face.params.json +579 -579
  76. package/src/helpers/AWSLambdaCode.helper.ts +590 -587
  77. package/src/helpers/BinaryInput.helper.ts +331 -331
  78. package/src/helpers/Conversation.helper.ts +1119 -1119
  79. package/src/helpers/ECMASandbox.helper.ts +54 -54
  80. package/src/helpers/JsonContent.helper.ts +97 -97
  81. package/src/helpers/LocalCache.helper.ts +97 -97
  82. package/src/helpers/Log.helper.ts +274 -274
  83. package/src/helpers/OpenApiParser.helper.ts +150 -150
  84. package/src/helpers/S3Cache.helper.ts +147 -147
  85. package/src/helpers/SmythURI.helper.ts +5 -5
  86. package/src/helpers/Sysconfig.helper.ts +77 -77
  87. package/src/helpers/TemplateString.helper.ts +243 -243
  88. package/src/helpers/TypeChecker.helper.ts +329 -329
  89. package/src/index.ts +3 -3
  90. package/src/index.ts.bak +3 -3
  91. package/src/subsystems/AgentManager/Agent.class.ts +1114 -1114
  92. package/src/subsystems/AgentManager/Agent.helper.ts +3 -3
  93. package/src/subsystems/AgentManager/AgentData.service/AgentDataConnector.ts +230 -230
  94. package/src/subsystems/AgentManager/AgentData.service/connectors/CLIAgentDataConnector.class.ts +66 -66
  95. package/src/subsystems/AgentManager/AgentData.service/connectors/LocalAgentDataConnector.class.ts +142 -142
  96. package/src/subsystems/AgentManager/AgentData.service/connectors/NullAgentData.class.ts +39 -39
  97. package/src/subsystems/AgentManager/AgentData.service/index.ts +18 -18
  98. package/src/subsystems/AgentManager/AgentLogger.class.ts +297 -297
  99. package/src/subsystems/AgentManager/AgentRequest.class.ts +51 -51
  100. package/src/subsystems/AgentManager/AgentRuntime.class.ts +559 -559
  101. package/src/subsystems/AgentManager/AgentSSE.class.ts +101 -101
  102. package/src/subsystems/AgentManager/AgentSettings.class.ts +52 -52
  103. package/src/subsystems/AgentManager/Component.service/ComponentConnector.ts +32 -32
  104. package/src/subsystems/AgentManager/Component.service/connectors/LocalComponentConnector.class.ts +60 -60
  105. package/src/subsystems/AgentManager/Component.service/index.ts +11 -11
  106. package/src/subsystems/AgentManager/EmbodimentSettings.class.ts +47 -47
  107. package/src/subsystems/AgentManager/ForkedAgent.class.ts +154 -154
  108. package/src/subsystems/AgentManager/OSResourceMonitor.ts +77 -77
  109. package/src/subsystems/ComputeManager/Code.service/CodeConnector.ts +98 -98
  110. package/src/subsystems/ComputeManager/Code.service/connectors/AWSLambdaCode.class.ts +172 -172
  111. package/src/subsystems/ComputeManager/Code.service/connectors/ECMASandbox.class.ts +131 -131
  112. package/src/subsystems/ComputeManager/Code.service/index.ts +13 -13
  113. package/src/subsystems/IO/CLI.service/CLIConnector.ts +47 -47
  114. package/src/subsystems/IO/CLI.service/index.ts +9 -9
  115. package/src/subsystems/IO/Log.service/LogConnector.ts +32 -32
  116. package/src/subsystems/IO/Log.service/connectors/ConsoleLog.class.ts +28 -28
  117. package/src/subsystems/IO/Log.service/index.ts +13 -13
  118. package/src/subsystems/IO/NKV.service/NKVConnector.ts +43 -43
  119. package/src/subsystems/IO/NKV.service/connectors/NKVLocalStorage.class.ts +234 -234
  120. package/src/subsystems/IO/NKV.service/connectors/NKVRAM.class.ts +204 -204
  121. package/src/subsystems/IO/NKV.service/connectors/NKVRedis.class.ts +182 -182
  122. package/src/subsystems/IO/NKV.service/index.ts +14 -14
  123. package/src/subsystems/IO/Router.service/RouterConnector.ts +21 -21
  124. package/src/subsystems/IO/Router.service/connectors/ExpressRouter.class.ts +48 -48
  125. package/src/subsystems/IO/Router.service/connectors/NullRouter.class.ts +40 -40
  126. package/src/subsystems/IO/Router.service/index.ts +11 -11
  127. package/src/subsystems/IO/Storage.service/SmythFS.class.ts +489 -489
  128. package/src/subsystems/IO/Storage.service/StorageConnector.ts +66 -66
  129. package/src/subsystems/IO/Storage.service/connectors/LocalStorage.class.ts +327 -327
  130. package/src/subsystems/IO/Storage.service/connectors/S3Storage.class.ts +482 -482
  131. package/src/subsystems/IO/Storage.service/index.ts +13 -13
  132. package/src/subsystems/IO/VectorDB.service/VectorDBConnector.ts +108 -108
  133. package/src/subsystems/IO/VectorDB.service/connectors/MilvusVectorDB.class.ts +454 -454
  134. package/src/subsystems/IO/VectorDB.service/connectors/PineconeVectorDB.class.ts +384 -384
  135. package/src/subsystems/IO/VectorDB.service/connectors/RAMVecrtorDB.class.ts +421 -421
  136. package/src/subsystems/IO/VectorDB.service/embed/BaseEmbedding.ts +107 -107
  137. package/src/subsystems/IO/VectorDB.service/embed/OpenAIEmbedding.ts +109 -109
  138. package/src/subsystems/IO/VectorDB.service/embed/index.ts +21 -21
  139. package/src/subsystems/IO/VectorDB.service/index.ts +14 -14
  140. package/src/subsystems/LLMManager/LLM.helper.ts +251 -251
  141. package/src/subsystems/LLMManager/LLM.inference.ts +339 -339
  142. package/src/subsystems/LLMManager/LLM.service/LLMConnector.ts +489 -489
  143. package/src/subsystems/LLMManager/LLM.service/LLMCredentials.helper.ts +171 -171
  144. package/src/subsystems/LLMManager/LLM.service/connectors/Anthropic.class.ts +659 -659
  145. package/src/subsystems/LLMManager/LLM.service/connectors/Bedrock.class.ts +400 -400
  146. package/src/subsystems/LLMManager/LLM.service/connectors/Echo.class.ts +77 -77
  147. package/src/subsystems/LLMManager/LLM.service/connectors/GoogleAI.class.ts +757 -757
  148. package/src/subsystems/LLMManager/LLM.service/connectors/Groq.class.ts +304 -304
  149. package/src/subsystems/LLMManager/LLM.service/connectors/Perplexity.class.ts +250 -250
  150. package/src/subsystems/LLMManager/LLM.service/connectors/VertexAI.class.ts +423 -423
  151. package/src/subsystems/LLMManager/LLM.service/connectors/openai/OpenAIConnector.class.ts +488 -488
  152. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/ChatCompletionsApiInterface.ts +524 -524
  153. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/OpenAIApiInterface.ts +100 -100
  154. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/OpenAIApiInterfaceFactory.ts +81 -81
  155. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/ResponsesApiInterface.ts +1145 -1145
  156. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/constants.ts +13 -13
  157. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/index.ts +4 -4
  158. package/src/subsystems/LLMManager/LLM.service/connectors/openai/apiInterfaces/utils.ts +11 -11
  159. package/src/subsystems/LLMManager/LLM.service/connectors/openai/types.ts +32 -32
  160. package/src/subsystems/LLMManager/LLM.service/connectors/xAI.class.ts +471 -471
  161. package/src/subsystems/LLMManager/LLM.service/index.ts +44 -44
  162. package/src/subsystems/LLMManager/ModelsProvider.service/ModelsProviderConnector.ts +300 -300
  163. package/src/subsystems/LLMManager/ModelsProvider.service/connectors/JSONModelsProvider.class.ts +252 -252
  164. package/src/subsystems/LLMManager/ModelsProvider.service/index.ts +11 -11
  165. package/src/subsystems/LLMManager/custom-models.ts +854 -854
  166. package/src/subsystems/LLMManager/models.ts +2540 -2540
  167. package/src/subsystems/LLMManager/paramMappings.ts +69 -69
  168. package/src/subsystems/MemoryManager/Cache.service/CacheConnector.ts +86 -86
  169. package/src/subsystems/MemoryManager/Cache.service/connectors/LocalStorageCache.class.ts +297 -297
  170. package/src/subsystems/MemoryManager/Cache.service/connectors/RAMCache.class.ts +201 -201
  171. package/src/subsystems/MemoryManager/Cache.service/connectors/RedisCache.class.ts +252 -252
  172. package/src/subsystems/MemoryManager/Cache.service/connectors/S3Cache.class.ts +373 -373
  173. package/src/subsystems/MemoryManager/Cache.service/index.ts +15 -15
  174. package/src/subsystems/MemoryManager/LLMCache.ts +72 -72
  175. package/src/subsystems/MemoryManager/LLMContext.ts +124 -124
  176. package/src/subsystems/MemoryManager/LLMMemory.service/LLMMemoryConnector.ts +26 -26
  177. package/src/subsystems/MemoryManager/RuntimeContext.ts +266 -266
  178. package/src/subsystems/Security/AccessControl/ACL.class.ts +208 -208
  179. package/src/subsystems/Security/AccessControl/AccessCandidate.class.ts +82 -82
  180. package/src/subsystems/Security/AccessControl/AccessRequest.class.ts +52 -52
  181. package/src/subsystems/Security/Account.service/AccountConnector.ts +44 -44
  182. package/src/subsystems/Security/Account.service/connectors/AWSAccount.class.ts +76 -76
  183. package/src/subsystems/Security/Account.service/connectors/DummyAccount.class.ts +130 -130
  184. package/src/subsystems/Security/Account.service/connectors/JSONFileAccount.class.ts +159 -159
  185. package/src/subsystems/Security/Account.service/index.ts +14 -14
  186. package/src/subsystems/Security/Credentials.helper.ts +62 -62
  187. package/src/subsystems/Security/ManagedVault.service/ManagedVaultConnector.ts +38 -38
  188. package/src/subsystems/Security/ManagedVault.service/connectors/NullManagedVault.class.ts +53 -53
  189. package/src/subsystems/Security/ManagedVault.service/connectors/SecretManagerManagedVault.ts +154 -154
  190. package/src/subsystems/Security/ManagedVault.service/index.ts +12 -12
  191. package/src/subsystems/Security/SecureConnector.class.ts +110 -110
  192. package/src/subsystems/Security/Vault.service/Vault.helper.ts +30 -30
  193. package/src/subsystems/Security/Vault.service/VaultConnector.ts +29 -29
  194. package/src/subsystems/Security/Vault.service/connectors/HashicorpVault.class.ts +46 -46
  195. package/src/subsystems/Security/Vault.service/connectors/JSONFileVault.class.ts +221 -221
  196. package/src/subsystems/Security/Vault.service/connectors/NullVault.class.ts +54 -54
  197. package/src/subsystems/Security/Vault.service/connectors/SecretsManager.class.ts +140 -140
  198. package/src/subsystems/Security/Vault.service/index.ts +12 -12
  199. package/src/types/ACL.types.ts +104 -104
  200. package/src/types/AWS.types.ts +10 -10
  201. package/src/types/Agent.types.ts +61 -61
  202. package/src/types/AgentLogger.types.ts +17 -17
  203. package/src/types/Cache.types.ts +1 -1
  204. package/src/types/Common.types.ts +2 -2
  205. package/src/types/LLM.types.ts +496 -496
  206. package/src/types/Redis.types.ts +8 -8
  207. package/src/types/SRE.types.ts +64 -64
  208. package/src/types/Security.types.ts +14 -14
  209. package/src/types/Storage.types.ts +5 -5
  210. package/src/types/VectorDB.types.ts +86 -86
  211. package/src/utils/base64.utils.ts +275 -275
  212. package/src/utils/cli.utils.ts +68 -68
  213. package/src/utils/data.utils.ts +322 -322
  214. package/src/utils/date-time.utils.ts +22 -22
  215. package/src/utils/general.utils.ts +238 -238
  216. package/src/utils/index.ts +12 -12
  217. package/src/utils/lazy-client.ts +261 -261
  218. package/src/utils/numbers.utils.ts +13 -13
  219. package/src/utils/oauth.utils.ts +35 -35
  220. package/src/utils/string.utils.ts +414 -414
  221. package/src/utils/url.utils.ts +19 -19
  222. package/src/utils/validation.utils.ts +74 -74
  223. package/dist/bundle-analysis-lazy.html +0 -4949
  224. package/dist/bundle-analysis.html +0 -4949
  225. package/dist/types/utils/package-manager.utils.d.ts +0 -26
@@ -1,69 +1,69 @@
1
- // ! DEPRECATED: will be removed this file
2
- export default {
3
- Echo: {
4
- maxTokens: 'max_tokens',
5
- temperature: 'temperature',
6
- stopSequences: 'stop',
7
- topP: 'top_p',
8
- frequencyPenalty: 'frequency_penalty',
9
- presencePenalty: 'presence_penalty',
10
- },
11
- OpenAI: {
12
- maxTokens: 'max_tokens',
13
- temperature: 'temperature',
14
- stopSequences: 'stop',
15
- topP: 'top_p',
16
- frequencyPenalty: 'frequency_penalty',
17
- presencePenalty: 'presence_penalty',
18
- },
19
- cohere: {
20
- maxTokens: 'max_tokens',
21
- temperature: 'temperature',
22
- stopSequences: 'stop_sequences',
23
- topP: 'p',
24
- topK: 'k',
25
- frequencyPenalty: 'frequency_penalty',
26
- presencePenalty: 'presence_penalty',
27
- },
28
- TogetherAI: {
29
- maxTokens: 'max_tokens',
30
- temperature: 'temperature',
31
- stopSequences: 'stop',
32
- topP: 'top_p',
33
- topK: 'top_k',
34
- frequencyPenalty: 'repetition_penalty',
35
- },
36
- Anthropic: {
37
- maxTokens: 'max_tokens',
38
- temperature: 'temperature',
39
- stopSequences: 'stop_sequences',
40
- topP: 'top_p',
41
- topK: 'top_k',
42
- },
43
- GoogleAI: {
44
- maxTokens: 'maxOutputTokens',
45
- temperature: 'temperature',
46
- stopSequences: 'stopSequences',
47
- topP: 'topP',
48
- topK: 'topK',
49
- },
50
- Groq: {
51
- maxTokens: 'max_tokens',
52
- temperature: 'temperature',
53
- stopSequences: 'stop',
54
- topP: 'top_p',
55
- },
56
- Bedrock: {
57
- maxTokens: 'maxTokens',
58
- temperature: 'temperature',
59
- stopSequences: 'stopSequences',
60
- topP: 'topP',
61
- },
62
- VertexAI: {
63
- maxTokens: 'maxOutputTokens',
64
- temperature: 'temperature',
65
- stopSequences: 'stopSequences',
66
- topP: 'topP',
67
- topK: 'topK',
68
- },
69
- };
1
+ // ! DEPRECATED: will be removed this file
2
+ export default {
3
+ Echo: {
4
+ maxTokens: 'max_tokens',
5
+ temperature: 'temperature',
6
+ stopSequences: 'stop',
7
+ topP: 'top_p',
8
+ frequencyPenalty: 'frequency_penalty',
9
+ presencePenalty: 'presence_penalty',
10
+ },
11
+ OpenAI: {
12
+ maxTokens: 'max_tokens',
13
+ temperature: 'temperature',
14
+ stopSequences: 'stop',
15
+ topP: 'top_p',
16
+ frequencyPenalty: 'frequency_penalty',
17
+ presencePenalty: 'presence_penalty',
18
+ },
19
+ cohere: {
20
+ maxTokens: 'max_tokens',
21
+ temperature: 'temperature',
22
+ stopSequences: 'stop_sequences',
23
+ topP: 'p',
24
+ topK: 'k',
25
+ frequencyPenalty: 'frequency_penalty',
26
+ presencePenalty: 'presence_penalty',
27
+ },
28
+ TogetherAI: {
29
+ maxTokens: 'max_tokens',
30
+ temperature: 'temperature',
31
+ stopSequences: 'stop',
32
+ topP: 'top_p',
33
+ topK: 'top_k',
34
+ frequencyPenalty: 'repetition_penalty',
35
+ },
36
+ Anthropic: {
37
+ maxTokens: 'max_tokens',
38
+ temperature: 'temperature',
39
+ stopSequences: 'stop_sequences',
40
+ topP: 'top_p',
41
+ topK: 'top_k',
42
+ },
43
+ GoogleAI: {
44
+ maxTokens: 'maxOutputTokens',
45
+ temperature: 'temperature',
46
+ stopSequences: 'stopSequences',
47
+ topP: 'topP',
48
+ topK: 'topK',
49
+ },
50
+ Groq: {
51
+ maxTokens: 'max_tokens',
52
+ temperature: 'temperature',
53
+ stopSequences: 'stop',
54
+ topP: 'top_p',
55
+ },
56
+ Bedrock: {
57
+ maxTokens: 'maxTokens',
58
+ temperature: 'temperature',
59
+ stopSequences: 'stopSequences',
60
+ topP: 'topP',
61
+ },
62
+ VertexAI: {
63
+ maxTokens: 'maxOutputTokens',
64
+ temperature: 'temperature',
65
+ stopSequences: 'stopSequences',
66
+ topP: 'topP',
67
+ topK: 'topK',
68
+ },
69
+ };
@@ -1,86 +1,86 @@
1
- import { Connector } from '@sre/Core/Connector.class';
2
- import { AccessCandidate } from '@sre/Security/AccessControl/AccessCandidate.class';
3
- import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
4
- import { ACL } from '@sre/Security/AccessControl/ACL.class';
5
- import { SecureConnector } from '@sre/Security/SecureConnector.class';
6
- import { IACL, IAccessCandidate, IAccessRequest } from '@sre/types/ACL.types';
7
- import { CacheMetadata } from '@sre/types/Cache.types';
8
-
9
- export interface ICacheRequest {
10
- get: (key: string) => Promise<any>;
11
-
12
- /**
13
- * Set a value in the cache
14
- * @param key
15
- * @param data
16
- * @param acl
17
- * @param metadata
18
- * @param ttl Cache time to live in seconds
19
- * @returns
20
- */
21
- set: (key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number) => Promise<boolean>;
22
- delete: (key: string) => Promise<void>;
23
- exists: (key: string) => Promise<boolean>;
24
-
25
- getMetadata: (key: string) => Promise<CacheMetadata | undefined>;
26
- setMetadata: (key: string, metadata: CacheMetadata) => Promise<void>;
27
-
28
- updateTTL: (key: string, ttl?: number) => Promise<void>;
29
- getTTL: (key: string) => Promise<number>;
30
-
31
- getACL: (key: string) => Promise<IACL | undefined>;
32
- setACL: (key: string, acl: IACL) => Promise<void>;
33
- }
34
-
35
- export abstract class CacheConnector extends SecureConnector {
36
- public abstract getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
37
- public requester(candidate: AccessCandidate): ICacheRequest {
38
- return {
39
- get: async (key: string) => {
40
- return await this.get(candidate.readRequest, key);
41
- },
42
- set: async (key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number) => {
43
- return await this.set(candidate.writeRequest, key, data, acl, metadata, ttl);
44
- },
45
- delete: async (key: string) => {
46
- await this.delete(candidate.writeRequest, key);
47
- },
48
- exists: async (key: string) => {
49
- return await this.exists(candidate.readRequest, key);
50
- },
51
-
52
- getMetadata: async (key: string) => {
53
- return await this.getMetadata(candidate.readRequest, key);
54
- },
55
- setMetadata: async (key: string, metadata: CacheMetadata) => {
56
- await this.setMetadata(candidate.writeRequest, key, metadata);
57
- },
58
- updateTTL: async (key: string, ttl?: number) => {
59
- await this.updateTTL(candidate.writeRequest, key, ttl);
60
- },
61
- getTTL: async (key: string) => {
62
- return await this.getTTL(candidate.readRequest, key);
63
- },
64
- getACL: async (key: string) => {
65
- return await this.getACL(candidate.readRequest, key);
66
- },
67
- setACL: async (key: string, acl: IACL) => {
68
- await this.setACL(candidate.writeRequest, key, acl);
69
- },
70
- };
71
- }
72
-
73
- abstract get(acRequest: AccessRequest, key: string): Promise<any>;
74
- abstract set(acRequest: AccessRequest, key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number): Promise<boolean>;
75
- abstract delete(acRequest: AccessRequest, key: string): Promise<void>;
76
- abstract exists(acRequest: AccessRequest, key: string): Promise<boolean>;
77
-
78
- abstract getMetadata(acRequest: AccessRequest, key: string): Promise<CacheMetadata | undefined>;
79
- abstract setMetadata(acRequest: AccessRequest, key: string, metadata: CacheMetadata): Promise<void>;
80
-
81
- abstract updateTTL(acRequest: AccessRequest, key: string, ttl?: number): Promise<void>;
82
- abstract getTTL(acRequest: AccessRequest, key: string): Promise<number>;
83
-
84
- abstract getACL(acRequest: AccessRequest, key: string): Promise<IACL | undefined>;
85
- abstract setACL(acRequest: AccessRequest, key: string, acl: IACL): Promise<void>;
86
- }
1
+ import { Connector } from '@sre/Core/Connector.class';
2
+ import { AccessCandidate } from '@sre/Security/AccessControl/AccessCandidate.class';
3
+ import { AccessRequest } from '@sre/Security/AccessControl/AccessRequest.class';
4
+ import { ACL } from '@sre/Security/AccessControl/ACL.class';
5
+ import { SecureConnector } from '@sre/Security/SecureConnector.class';
6
+ import { IACL, IAccessCandidate, IAccessRequest } from '@sre/types/ACL.types';
7
+ import { CacheMetadata } from '@sre/types/Cache.types';
8
+
9
+ export interface ICacheRequest {
10
+ get: (key: string) => Promise<any>;
11
+
12
+ /**
13
+ * Set a value in the cache
14
+ * @param key
15
+ * @param data
16
+ * @param acl
17
+ * @param metadata
18
+ * @param ttl Cache time to live in seconds
19
+ * @returns
20
+ */
21
+ set: (key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number) => Promise<boolean>;
22
+ delete: (key: string) => Promise<void>;
23
+ exists: (key: string) => Promise<boolean>;
24
+
25
+ getMetadata: (key: string) => Promise<CacheMetadata | undefined>;
26
+ setMetadata: (key: string, metadata: CacheMetadata) => Promise<void>;
27
+
28
+ updateTTL: (key: string, ttl?: number) => Promise<void>;
29
+ getTTL: (key: string) => Promise<number>;
30
+
31
+ getACL: (key: string) => Promise<IACL | undefined>;
32
+ setACL: (key: string, acl: IACL) => Promise<void>;
33
+ }
34
+
35
+ export abstract class CacheConnector extends SecureConnector {
36
+ public abstract getResourceACL(resourceId: string, candidate: IAccessCandidate): Promise<ACL>;
37
+ public requester(candidate: AccessCandidate): ICacheRequest {
38
+ return {
39
+ get: async (key: string) => {
40
+ return await this.get(candidate.readRequest, key);
41
+ },
42
+ set: async (key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number) => {
43
+ return await this.set(candidate.writeRequest, key, data, acl, metadata, ttl);
44
+ },
45
+ delete: async (key: string) => {
46
+ await this.delete(candidate.writeRequest, key);
47
+ },
48
+ exists: async (key: string) => {
49
+ return await this.exists(candidate.readRequest, key);
50
+ },
51
+
52
+ getMetadata: async (key: string) => {
53
+ return await this.getMetadata(candidate.readRequest, key);
54
+ },
55
+ setMetadata: async (key: string, metadata: CacheMetadata) => {
56
+ await this.setMetadata(candidate.writeRequest, key, metadata);
57
+ },
58
+ updateTTL: async (key: string, ttl?: number) => {
59
+ await this.updateTTL(candidate.writeRequest, key, ttl);
60
+ },
61
+ getTTL: async (key: string) => {
62
+ return await this.getTTL(candidate.readRequest, key);
63
+ },
64
+ getACL: async (key: string) => {
65
+ return await this.getACL(candidate.readRequest, key);
66
+ },
67
+ setACL: async (key: string, acl: IACL) => {
68
+ await this.setACL(candidate.writeRequest, key, acl);
69
+ },
70
+ };
71
+ }
72
+
73
+ abstract get(acRequest: AccessRequest, key: string): Promise<any>;
74
+ abstract set(acRequest: AccessRequest, key: string, data: any, acl?: IACL, metadata?: CacheMetadata, ttl?: number): Promise<boolean>;
75
+ abstract delete(acRequest: AccessRequest, key: string): Promise<void>;
76
+ abstract exists(acRequest: AccessRequest, key: string): Promise<boolean>;
77
+
78
+ abstract getMetadata(acRequest: AccessRequest, key: string): Promise<CacheMetadata | undefined>;
79
+ abstract setMetadata(acRequest: AccessRequest, key: string, metadata: CacheMetadata): Promise<void>;
80
+
81
+ abstract updateTTL(acRequest: AccessRequest, key: string, ttl?: number): Promise<void>;
82
+ abstract getTTL(acRequest: AccessRequest, key: string): Promise<number>;
83
+
84
+ abstract getACL(acRequest: AccessRequest, key: string): Promise<IACL | undefined>;
85
+ abstract setACL(acRequest: AccessRequest, key: string, acl: IACL): Promise<void>;
86
+ }