@librechat/data-schemas 0.0.43 → 0.0.44
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.
- package/dist/admin/capabilities.cjs +192 -0
- package/dist/admin/capabilities.cjs.map +1 -0
- package/dist/admin/capabilities.es.js +182 -0
- package/dist/admin/capabilities.es.js.map +1 -0
- package/dist/app/agents.cjs +24 -0
- package/dist/app/agents.cjs.map +1 -0
- package/dist/app/agents.es.js +22 -0
- package/dist/app/agents.es.js.map +1 -0
- package/dist/app/assistants.cjs +56 -0
- package/dist/app/assistants.cjs.map +1 -0
- package/dist/app/assistants.es.js +53 -0
- package/dist/app/assistants.es.js.map +1 -0
- package/dist/app/azure.cjs +61 -0
- package/dist/app/azure.cjs.map +1 -0
- package/dist/app/azure.es.js +59 -0
- package/dist/app/azure.es.js.map +1 -0
- package/dist/app/endpoints.cjs +63 -0
- package/dist/app/endpoints.cjs.map +1 -0
- package/dist/app/endpoints.es.js +61 -0
- package/dist/app/endpoints.es.js.map +1 -0
- package/dist/app/interface.cjs +53 -0
- package/dist/app/interface.cjs.map +1 -0
- package/dist/app/interface.es.js +51 -0
- package/dist/app/interface.es.js.map +1 -0
- package/dist/app/memory.cjs +29 -0
- package/dist/app/memory.cjs.map +1 -0
- package/dist/app/memory.es.js +26 -0
- package/dist/app/memory.es.js.map +1 -0
- package/dist/app/ocr.cjs +21 -0
- package/dist/app/ocr.cjs.map +1 -0
- package/dist/app/ocr.es.js +19 -0
- package/dist/app/ocr.es.js.map +1 -0
- package/dist/app/resolution.cjs +51 -0
- package/dist/app/resolution.cjs.map +1 -0
- package/dist/app/resolution.es.js +49 -0
- package/dist/app/resolution.es.js.map +1 -0
- package/dist/app/service.cjs +108 -0
- package/dist/app/service.cjs.map +1 -0
- package/dist/app/service.es.js +106 -0
- package/dist/app/service.es.js.map +1 -0
- package/dist/app/specs.cjs +71 -0
- package/dist/app/specs.cjs.map +1 -0
- package/dist/app/specs.es.js +69 -0
- package/dist/app/specs.es.js.map +1 -0
- package/dist/app/turnstile.cjs +40 -0
- package/dist/app/turnstile.cjs.map +1 -0
- package/dist/app/turnstile.es.js +38 -0
- package/dist/app/turnstile.es.js.map +1 -0
- package/dist/app/vertex.cjs +156 -0
- package/dist/app/vertex.cjs.map +1 -0
- package/dist/app/vertex.es.js +152 -0
- package/dist/app/vertex.es.js.map +1 -0
- package/dist/app/web.cjs +87 -0
- package/dist/app/web.cjs.map +1 -0
- package/dist/app/web.es.js +82 -0
- package/dist/app/web.es.js.map +1 -0
- package/dist/common/enum.cjs +19 -0
- package/dist/common/enum.cjs.map +1 -0
- package/dist/common/enum.es.js +19 -0
- package/dist/common/enum.es.js.map +1 -0
- package/dist/config/meiliLogger.cjs +57 -0
- package/dist/config/meiliLogger.cjs.map +1 -0
- package/dist/config/meiliLogger.es.js +55 -0
- package/dist/config/meiliLogger.es.js.map +1 -0
- package/dist/config/parsers.cjs +224 -0
- package/dist/config/parsers.cjs.map +1 -0
- package/dist/config/parsers.es.js +219 -0
- package/dist/config/parsers.es.js.map +1 -0
- package/dist/config/tenantContext.cjs +30 -0
- package/dist/config/tenantContext.cjs.map +1 -0
- package/dist/config/tenantContext.es.js +25 -0
- package/dist/config/tenantContext.es.js.map +1 -0
- package/dist/config/utils.cjs +37 -0
- package/dist/config/utils.cjs.map +1 -0
- package/dist/config/utils.es.js +35 -0
- package/dist/config/utils.es.js.map +1 -0
- package/dist/config/winston.cjs +93 -0
- package/dist/config/winston.cjs.map +1 -0
- package/dist/config/winston.es.js +91 -0
- package/dist/config/winston.es.js.map +1 -0
- package/dist/crypto/index.cjs +156 -0
- package/dist/crypto/index.cjs.map +1 -0
- package/dist/crypto/index.es.js +145 -0
- package/dist/crypto/index.es.js.map +1 -0
- package/dist/index.cjs +142 -11734
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +52 -11652
- package/dist/index.es.js.map +1 -1
- package/dist/methods/accessRole.cjs +210 -0
- package/dist/methods/accessRole.cjs.map +1 -0
- package/dist/methods/accessRole.es.js +208 -0
- package/dist/methods/accessRole.es.js.map +1 -0
- package/dist/methods/aclEntry.cjs +361 -0
- package/dist/methods/aclEntry.cjs.map +1 -0
- package/dist/methods/aclEntry.es.js +359 -0
- package/dist/methods/aclEntry.es.js.map +1 -0
- package/dist/methods/action.cjs +59 -0
- package/dist/methods/action.cjs.map +1 -0
- package/dist/methods/action.es.js +57 -0
- package/dist/methods/action.es.js.map +1 -0
- package/dist/methods/agent.cjs +580 -0
- package/dist/methods/agent.cjs.map +1 -0
- package/dist/methods/agent.es.js +578 -0
- package/dist/methods/agent.es.js.map +1 -0
- package/dist/methods/agentApiKey.cjs +140 -0
- package/dist/methods/agentApiKey.cjs.map +1 -0
- package/dist/methods/agentApiKey.es.js +138 -0
- package/dist/methods/agentApiKey.es.js.map +1 -0
- package/dist/methods/agentCategory.cjs +226 -0
- package/dist/methods/agentCategory.cjs.map +1 -0
- package/dist/methods/agentCategory.es.js +224 -0
- package/dist/methods/agentCategory.es.js.map +1 -0
- package/dist/methods/assistant.cjs +53 -0
- package/dist/methods/assistant.cjs.map +1 -0
- package/dist/methods/assistant.es.js +51 -0
- package/dist/methods/assistant.es.js.map +1 -0
- package/dist/methods/banner.cjs +32 -0
- package/dist/methods/banner.cjs.map +1 -0
- package/dist/methods/banner.es.js +30 -0
- package/dist/methods/banner.es.js.map +1 -0
- package/dist/methods/categories.cjs +33 -0
- package/dist/methods/categories.cjs.map +1 -0
- package/dist/methods/categories.es.js +31 -0
- package/dist/methods/categories.es.js.map +1 -0
- package/dist/methods/config.cjs +106 -0
- package/dist/methods/config.cjs.map +1 -0
- package/dist/methods/config.es.js +104 -0
- package/dist/methods/config.es.js.map +1 -0
- package/dist/methods/conversation.cjs +344 -0
- package/dist/methods/conversation.cjs.map +1 -0
- package/dist/methods/conversation.es.js +342 -0
- package/dist/methods/conversation.es.js.map +1 -0
- package/dist/methods/conversationTag.cjs +234 -0
- package/dist/methods/conversationTag.cjs.map +1 -0
- package/dist/methods/conversationTag.es.js +232 -0
- package/dist/methods/conversationTag.es.js.map +1 -0
- package/dist/methods/file.cjs +315 -0
- package/dist/methods/file.cjs.map +1 -0
- package/dist/methods/file.es.js +313 -0
- package/dist/methods/file.es.js.map +1 -0
- package/dist/methods/index.cjs +135 -0
- package/dist/methods/index.cjs.map +1 -0
- package/dist/methods/index.es.js +130 -0
- package/dist/methods/index.es.js.map +1 -0
- package/dist/methods/key.cjs +136 -0
- package/dist/methods/key.cjs.map +1 -0
- package/dist/methods/key.es.js +134 -0
- package/dist/methods/key.es.js.map +1 -0
- package/dist/methods/mcpServer.cjs +259 -0
- package/dist/methods/mcpServer.cjs.map +1 -0
- package/dist/methods/mcpServer.es.js +257 -0
- package/dist/methods/mcpServer.es.js.map +1 -0
- package/dist/methods/memory.cjs +145 -0
- package/dist/methods/memory.cjs.map +1 -0
- package/dist/methods/memory.es.js +143 -0
- package/dist/methods/memory.es.js.map +1 -0
- package/dist/methods/message.cjs +280 -0
- package/dist/methods/message.cjs.map +1 -0
- package/dist/methods/message.es.js +278 -0
- package/dist/methods/message.es.js.map +1 -0
- package/dist/methods/pluginAuth.cjs +108 -0
- package/dist/methods/pluginAuth.cjs.map +1 -0
- package/dist/methods/pluginAuth.es.js +106 -0
- package/dist/methods/pluginAuth.es.js.map +1 -0
- package/dist/methods/preset.cjs +105 -0
- package/dist/methods/preset.cjs.map +1 -0
- package/dist/methods/preset.es.js +103 -0
- package/dist/methods/preset.es.js.map +1 -0
- package/dist/methods/prompt.cjs +546 -0
- package/dist/methods/prompt.cjs.map +1 -0
- package/dist/methods/prompt.es.js +544 -0
- package/dist/methods/prompt.es.js.map +1 -0
- package/dist/methods/role.cjs +290 -0
- package/dist/methods/role.cjs.map +1 -0
- package/dist/methods/role.es.js +288 -0
- package/dist/methods/role.es.js.map +1 -0
- package/dist/methods/session.cjs +221 -0
- package/dist/methods/session.cjs.map +1 -0
- package/dist/methods/session.es.js +217 -0
- package/dist/methods/session.es.js.map +1 -0
- package/dist/methods/share.cjs +474 -0
- package/dist/methods/share.cjs.map +1 -0
- package/dist/methods/share.es.js +472 -0
- package/dist/methods/share.es.js.map +1 -0
- package/dist/methods/spendTokens.cjs +109 -0
- package/dist/methods/spendTokens.cjs.map +1 -0
- package/dist/methods/spendTokens.es.js +107 -0
- package/dist/methods/spendTokens.es.js.map +1 -0
- package/dist/methods/systemGrant.cjs +190 -0
- package/dist/methods/systemGrant.cjs.map +1 -0
- package/dist/methods/systemGrant.es.js +188 -0
- package/dist/methods/systemGrant.es.js.map +1 -0
- package/dist/methods/token.cjs +117 -0
- package/dist/methods/token.cjs.map +1 -0
- package/dist/methods/token.es.js +115 -0
- package/dist/methods/token.es.js.map +1 -0
- package/dist/methods/toolCall.cjs +91 -0
- package/dist/methods/toolCall.cjs.map +1 -0
- package/dist/methods/toolCall.es.js +89 -0
- package/dist/methods/toolCall.es.js.map +1 -0
- package/dist/methods/transaction.cjs +305 -0
- package/dist/methods/transaction.cjs.map +1 -0
- package/dist/methods/transaction.es.js +303 -0
- package/dist/methods/transaction.es.js.map +1 -0
- package/dist/methods/tx.cjs +443 -0
- package/dist/methods/tx.cjs.map +1 -0
- package/dist/methods/tx.es.js +437 -0
- package/dist/methods/tx.es.js.map +1 -0
- package/dist/methods/user.cjs +269 -0
- package/dist/methods/user.cjs.map +1 -0
- package/dist/methods/user.es.js +266 -0
- package/dist/methods/user.es.js.map +1 -0
- package/dist/methods/userGroup.cjs +518 -0
- package/dist/methods/userGroup.cjs.map +1 -0
- package/dist/methods/userGroup.es.js +516 -0
- package/dist/methods/userGroup.es.js.map +1 -0
- package/dist/migrations/tenantIndexes.cjs +85 -0
- package/dist/migrations/tenantIndexes.cjs.map +1 -0
- package/dist/migrations/tenantIndexes.es.js +82 -0
- package/dist/migrations/tenantIndexes.es.js.map +1 -0
- package/dist/models/accessRole.cjs +12 -0
- package/dist/models/accessRole.cjs.map +1 -0
- package/dist/models/accessRole.es.js +10 -0
- package/dist/models/accessRole.es.js.map +1 -0
- package/dist/models/aclEntry.cjs +12 -0
- package/dist/models/aclEntry.cjs.map +1 -0
- package/dist/models/aclEntry.es.js +10 -0
- package/dist/models/aclEntry.es.js.map +1 -0
- package/dist/models/action.cjs +12 -0
- package/dist/models/action.cjs.map +1 -0
- package/dist/models/action.es.js +10 -0
- package/dist/models/action.es.js.map +1 -0
- package/dist/models/agent.cjs +12 -0
- package/dist/models/agent.cjs.map +1 -0
- package/dist/models/agent.es.js +10 -0
- package/dist/models/agent.es.js.map +1 -0
- package/dist/models/agentApiKey.cjs +12 -0
- package/dist/models/agentApiKey.cjs.map +1 -0
- package/dist/models/agentApiKey.es.js +10 -0
- package/dist/models/agentApiKey.es.js.map +1 -0
- package/dist/models/agentCategory.cjs +13 -0
- package/dist/models/agentCategory.cjs.map +1 -0
- package/dist/models/agentCategory.es.js +11 -0
- package/dist/models/agentCategory.es.js.map +1 -0
- package/dist/models/assistant.cjs +12 -0
- package/dist/models/assistant.cjs.map +1 -0
- package/dist/models/assistant.es.js +10 -0
- package/dist/models/assistant.es.js.map +1 -0
- package/dist/models/balance.cjs +12 -0
- package/dist/models/balance.cjs.map +1 -0
- package/dist/models/balance.es.js +10 -0
- package/dist/models/balance.es.js.map +1 -0
- package/dist/models/banner.cjs +12 -0
- package/dist/models/banner.cjs.map +1 -0
- package/dist/models/banner.es.js +10 -0
- package/dist/models/banner.es.js.map +1 -0
- package/dist/models/config.cjs +12 -0
- package/dist/models/config.cjs.map +1 -0
- package/dist/models/config.es.js +10 -0
- package/dist/models/config.es.js.map +1 -0
- package/dist/models/conversationTag.cjs +13 -0
- package/dist/models/conversationTag.cjs.map +1 -0
- package/dist/models/conversationTag.es.js +11 -0
- package/dist/models/conversationTag.es.js.map +1 -0
- package/dist/models/convo.cjs +23 -0
- package/dist/models/convo.cjs.map +1 -0
- package/dist/models/convo.es.js +21 -0
- package/dist/models/convo.es.js.map +1 -0
- package/dist/models/file.cjs +12 -0
- package/dist/models/file.cjs.map +1 -0
- package/dist/models/file.es.js +10 -0
- package/dist/models/file.es.js.map +1 -0
- package/dist/models/group.cjs +12 -0
- package/dist/models/group.cjs.map +1 -0
- package/dist/models/group.es.js +10 -0
- package/dist/models/group.es.js.map +1 -0
- package/dist/models/index.cjs +73 -0
- package/dist/models/index.cjs.map +1 -0
- package/dist/models/index.es.js +71 -0
- package/dist/models/index.es.js.map +1 -0
- package/dist/models/key.cjs +12 -0
- package/dist/models/key.cjs.map +1 -0
- package/dist/models/key.es.js +10 -0
- package/dist/models/key.es.js.map +1 -0
- package/dist/models/mcpServer.cjs +12 -0
- package/dist/models/mcpServer.cjs.map +1 -0
- package/dist/models/mcpServer.es.js +10 -0
- package/dist/models/mcpServer.es.js.map +1 -0
- package/dist/models/memory.cjs +12 -0
- package/dist/models/memory.cjs.map +1 -0
- package/dist/models/memory.es.js +10 -0
- package/dist/models/memory.es.js.map +1 -0
- package/dist/models/message.cjs +22 -0
- package/dist/models/message.cjs.map +1 -0
- package/dist/models/message.es.js +20 -0
- package/dist/models/message.es.js.map +1 -0
- package/dist/models/pluginAuth.cjs +12 -0
- package/dist/models/pluginAuth.cjs.map +1 -0
- package/dist/models/pluginAuth.es.js +10 -0
- package/dist/models/pluginAuth.es.js.map +1 -0
- package/dist/models/plugins/mongoMeili.cjs +547 -0
- package/dist/models/plugins/mongoMeili.cjs.map +1 -0
- package/dist/models/plugins/mongoMeili.es.js +545 -0
- package/dist/models/plugins/mongoMeili.es.js.map +1 -0
- package/dist/models/plugins/tenantIsolation.cjs +140 -0
- package/dist/models/plugins/tenantIsolation.cjs.map +1 -0
- package/dist/models/plugins/tenantIsolation.es.js +138 -0
- package/dist/models/plugins/tenantIsolation.es.js.map +1 -0
- package/dist/models/preset.cjs +12 -0
- package/dist/models/preset.cjs.map +1 -0
- package/dist/models/preset.es.js +10 -0
- package/dist/models/preset.es.js.map +1 -0
- package/dist/models/prompt.cjs +12 -0
- package/dist/models/prompt.cjs.map +1 -0
- package/dist/models/prompt.es.js +10 -0
- package/dist/models/prompt.es.js.map +1 -0
- package/dist/models/promptGroup.cjs +13 -0
- package/dist/models/promptGroup.cjs.map +1 -0
- package/dist/models/promptGroup.es.js +11 -0
- package/dist/models/promptGroup.es.js.map +1 -0
- package/dist/models/role.cjs +12 -0
- package/dist/models/role.cjs.map +1 -0
- package/dist/models/role.es.js +10 -0
- package/dist/models/role.es.js.map +1 -0
- package/dist/models/session.cjs +12 -0
- package/dist/models/session.cjs.map +1 -0
- package/dist/models/session.es.js +10 -0
- package/dist/models/session.es.js.map +1 -0
- package/dist/models/sharedLink.cjs +12 -0
- package/dist/models/sharedLink.cjs.map +1 -0
- package/dist/models/sharedLink.es.js +10 -0
- package/dist/models/sharedLink.es.js.map +1 -0
- package/dist/models/systemGrant.cjs +16 -0
- package/dist/models/systemGrant.cjs.map +1 -0
- package/dist/models/systemGrant.es.js +14 -0
- package/dist/models/systemGrant.es.js.map +1 -0
- package/dist/models/token.cjs +12 -0
- package/dist/models/token.cjs.map +1 -0
- package/dist/models/token.es.js +10 -0
- package/dist/models/token.es.js.map +1 -0
- package/dist/models/toolCall.cjs +12 -0
- package/dist/models/toolCall.cjs.map +1 -0
- package/dist/models/toolCall.es.js +10 -0
- package/dist/models/toolCall.es.js.map +1 -0
- package/dist/models/transaction.cjs +12 -0
- package/dist/models/transaction.cjs.map +1 -0
- package/dist/models/transaction.es.js +10 -0
- package/dist/models/transaction.es.js.map +1 -0
- package/dist/models/user.cjs +12 -0
- package/dist/models/user.cjs.map +1 -0
- package/dist/models/user.es.js +10 -0
- package/dist/models/user.es.js.map +1 -0
- package/dist/schema/accessRole.cjs +34 -0
- package/dist/schema/accessRole.cjs.map +1 -0
- package/dist/schema/accessRole.es.js +32 -0
- package/dist/schema/accessRole.es.js.map +1 -0
- package/dist/schema/aclEntry.cjs +74 -0
- package/dist/schema/aclEntry.cjs.map +1 -0
- package/dist/schema/aclEntry.es.js +72 -0
- package/dist/schema/aclEntry.es.js.map +1 -0
- package/dist/schema/action.cjs +54 -0
- package/dist/schema/action.cjs.map +1 -0
- package/dist/schema/action.es.js +52 -0
- package/dist/schema/action.es.js.map +1 -0
- package/dist/schema/agent.cjs +128 -0
- package/dist/schema/agent.cjs.map +1 -0
- package/dist/schema/agent.es.js +126 -0
- package/dist/schema/agent.es.js.map +1 -0
- package/dist/schema/agentApiKey.cjs +50 -0
- package/dist/schema/agentApiKey.cjs.map +1 -0
- package/dist/schema/agentApiKey.es.js +48 -0
- package/dist/schema/agentApiKey.es.js.map +1 -0
- package/dist/schema/agentCategory.cjs +49 -0
- package/dist/schema/agentCategory.cjs.map +1 -0
- package/dist/schema/agentCategory.es.js +47 -0
- package/dist/schema/agentCategory.es.js.map +1 -0
- package/dist/schema/assistant.cjs +42 -0
- package/dist/schema/assistant.cjs.map +1 -0
- package/dist/schema/assistant.es.js +40 -0
- package/dist/schema/assistant.es.js.map +1 -0
- package/dist/schema/balance.cjs +47 -0
- package/dist/schema/balance.cjs.map +1 -0
- package/dist/schema/balance.es.js +45 -0
- package/dist/schema/balance.es.js.map +1 -0
- package/dist/schema/banner.cjs +42 -0
- package/dist/schema/banner.cjs.map +1 -0
- package/dist/schema/banner.es.js +40 -0
- package/dist/schema/banner.es.js.map +1 -0
- package/dist/schema/categories.cjs +23 -0
- package/dist/schema/categories.cjs.map +1 -0
- package/dist/schema/categories.es.js +21 -0
- package/dist/schema/categories.es.js.map +1 -0
- package/dist/schema/config.cjs +59 -0
- package/dist/schema/config.cjs.map +1 -0
- package/dist/schema/config.es.js +57 -0
- package/dist/schema/config.es.js.map +1 -0
- package/dist/schema/conversationTag.cjs +36 -0
- package/dist/schema/conversationTag.cjs.map +1 -0
- package/dist/schema/conversationTag.es.js +34 -0
- package/dist/schema/conversationTag.es.js.map +1 -0
- package/dist/schema/convo.cjs +52 -0
- package/dist/schema/convo.cjs.map +1 -0
- package/dist/schema/convo.es.js +50 -0
- package/dist/schema/convo.es.js.map +1 -0
- package/dist/schema/defaults.cjs +168 -0
- package/dist/schema/defaults.cjs.map +1 -0
- package/dist/schema/defaults.es.js +166 -0
- package/dist/schema/defaults.es.js.map +1 -0
- package/dist/schema/file.cjs +92 -0
- package/dist/schema/file.cjs.map +1 -0
- package/dist/schema/file.es.js +90 -0
- package/dist/schema/file.es.js.map +1 -0
- package/dist/schema/group.cjs +56 -0
- package/dist/schema/group.cjs.map +1 -0
- package/dist/schema/group.es.js +54 -0
- package/dist/schema/group.es.js.map +1 -0
- package/dist/schema/key.cjs +30 -0
- package/dist/schema/key.cjs.map +1 -0
- package/dist/schema/key.es.js +28 -0
- package/dist/schema/key.es.js.map +1 -0
- package/dist/schema/mcpServer.cjs +33 -0
- package/dist/schema/mcpServer.cjs.map +1 -0
- package/dist/schema/mcpServer.es.js +31 -0
- package/dist/schema/mcpServer.es.js.map +1 -0
- package/dist/schema/memory.cjs +39 -0
- package/dist/schema/memory.cjs.map +1 -0
- package/dist/schema/memory.es.js +37 -0
- package/dist/schema/memory.es.js.map +1 -0
- package/dist/schema/message.cjs +167 -0
- package/dist/schema/message.cjs.map +1 -0
- package/dist/schema/message.es.js +165 -0
- package/dist/schema/message.es.js.map +1 -0
- package/dist/schema/pluginAuth.cjs +28 -0
- package/dist/schema/pluginAuth.cjs.map +1 -0
- package/dist/schema/pluginAuth.es.js +26 -0
- package/dist/schema/pluginAuth.es.js.map +1 -0
- package/dist/schema/preset.cjs +36 -0
- package/dist/schema/preset.cjs.map +1 -0
- package/dist/schema/preset.es.js +34 -0
- package/dist/schema/preset.es.js.map +1 -0
- package/dist/schema/prompt.cjs +36 -0
- package/dist/schema/prompt.cjs.map +1 -0
- package/dist/schema/prompt.es.js +34 -0
- package/dist/schema/prompt.es.js.map +1 -0
- package/dist/schema/promptGroup.cjs +65 -0
- package/dist/schema/promptGroup.cjs.map +1 -0
- package/dist/schema/promptGroup.es.js +63 -0
- package/dist/schema/promptGroup.es.js.map +1 -0
- package/dist/schema/role.cjs +84 -0
- package/dist/schema/role.cjs.map +1 -0
- package/dist/schema/role.es.js +82 -0
- package/dist/schema/role.es.js.map +1 -0
- package/dist/schema/session.cjs +27 -0
- package/dist/schema/session.cjs.map +1 -0
- package/dist/schema/session.es.js +25 -0
- package/dist/schema/session.es.js.map +1 -0
- package/dist/schema/share.cjs +40 -0
- package/dist/schema/share.cjs.map +1 -0
- package/dist/schema/share.es.js +38 -0
- package/dist/schema/share.es.js.map +1 -0
- package/dist/schema/systemGrant.cjs +66 -0
- package/dist/schema/systemGrant.cjs.map +1 -0
- package/dist/schema/systemGrant.es.js +64 -0
- package/dist/schema/systemGrant.es.js.map +1 -0
- package/dist/schema/token.cjs +45 -0
- package/dist/schema/token.cjs.map +1 -0
- package/dist/schema/token.es.js +43 -0
- package/dist/schema/token.es.js.map +1 -0
- package/dist/schema/toolCall.cjs +44 -0
- package/dist/schema/toolCall.cjs.map +1 -0
- package/dist/schema/toolCall.es.js +42 -0
- package/dist/schema/toolCall.es.js.map +1 -0
- package/dist/schema/transaction.cjs +48 -0
- package/dist/schema/transaction.cjs.map +1 -0
- package/dist/schema/transaction.es.js +46 -0
- package/dist/schema/transaction.es.js.map +1 -0
- package/dist/schema/user.cjs +165 -0
- package/dist/schema/user.cjs.map +1 -0
- package/dist/schema/user.es.js +163 -0
- package/dist/schema/user.es.js.map +1 -0
- package/dist/types/methods/config.d.ts +1 -0
- package/dist/utils/object-traverse.cjs +158 -0
- package/dist/utils/object-traverse.cjs.map +1 -0
- package/dist/utils/object-traverse.es.js +156 -0
- package/dist/utils/object-traverse.es.js.map +1 -0
- package/dist/utils/principal.cjs +24 -0
- package/dist/utils/principal.cjs.map +1 -0
- package/dist/utils/principal.es.js +22 -0
- package/dist/utils/principal.es.js.map +1 -0
- package/dist/utils/string.cjs +11 -0
- package/dist/utils/string.cjs.map +1 -0
- package/dist/utils/string.es.js +9 -0
- package/dist/utils/string.es.js.map +1 -0
- package/dist/utils/tempChatRetention.cjs +70 -0
- package/dist/utils/tempChatRetention.cjs.map +1 -0
- package/dist/utils/tempChatRetention.es.js +64 -0
- package/dist/utils/tempChatRetention.es.js.map +1 -0
- package/dist/utils/transactions.cjs +60 -0
- package/dist/utils/transactions.cjs.map +1 -0
- package/dist/utils/transactions.es.js +56 -0
- package/dist/utils/transactions.es.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var winston = require('winston');
|
|
4
|
+
require('winston-daily-rotate-file');
|
|
5
|
+
var parsers = require('./parsers.cjs');
|
|
6
|
+
var utils = require('./utils.cjs');
|
|
7
|
+
|
|
8
|
+
const logDir = utils.getLogDirectory();
|
|
9
|
+
const { NODE_ENV, DEBUG_LOGGING, CONSOLE_JSON, DEBUG_CONSOLE } = process.env;
|
|
10
|
+
const useConsoleJson = typeof CONSOLE_JSON === 'string' && CONSOLE_JSON.toLowerCase() === 'true';
|
|
11
|
+
const useDebugConsole = typeof DEBUG_CONSOLE === 'string' && DEBUG_CONSOLE.toLowerCase() === 'true';
|
|
12
|
+
const useDebugLogging = typeof DEBUG_LOGGING === 'string' && DEBUG_LOGGING.toLowerCase() === 'true';
|
|
13
|
+
const levels = {
|
|
14
|
+
error: 0,
|
|
15
|
+
warn: 1,
|
|
16
|
+
info: 2,
|
|
17
|
+
http: 3,
|
|
18
|
+
verbose: 4,
|
|
19
|
+
debug: 5,
|
|
20
|
+
activity: 6,
|
|
21
|
+
silly: 7,
|
|
22
|
+
};
|
|
23
|
+
winston.addColors({
|
|
24
|
+
info: 'green',
|
|
25
|
+
warn: 'italic yellow',
|
|
26
|
+
error: 'red',
|
|
27
|
+
debug: 'blue',
|
|
28
|
+
});
|
|
29
|
+
const level = () => {
|
|
30
|
+
const env = NODE_ENV || 'development';
|
|
31
|
+
return env === 'development' ? 'debug' : 'warn';
|
|
32
|
+
};
|
|
33
|
+
const fileFormat = winston.format.combine(parsers.redactFormat(), winston.format.timestamp({ format: () => new Date().toISOString() }), winston.format.errors({ stack: true }), winston.format.splat());
|
|
34
|
+
const transports = [
|
|
35
|
+
new winston.transports.DailyRotateFile({
|
|
36
|
+
level: 'error',
|
|
37
|
+
filename: `${logDir}/error-%DATE%.log`,
|
|
38
|
+
datePattern: 'YYYY-MM-DD',
|
|
39
|
+
zippedArchive: true,
|
|
40
|
+
maxSize: '20m',
|
|
41
|
+
maxFiles: '14d',
|
|
42
|
+
format: winston.format.combine(fileFormat, winston.format.json()),
|
|
43
|
+
}),
|
|
44
|
+
];
|
|
45
|
+
if (useDebugLogging) {
|
|
46
|
+
transports.push(new winston.transports.DailyRotateFile({
|
|
47
|
+
level: 'debug',
|
|
48
|
+
filename: `${logDir}/debug-%DATE%.log`,
|
|
49
|
+
datePattern: 'YYYY-MM-DD',
|
|
50
|
+
zippedArchive: true,
|
|
51
|
+
maxSize: '20m',
|
|
52
|
+
maxFiles: '14d',
|
|
53
|
+
format: winston.format.combine(fileFormat, parsers.debugTraverse),
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
const consoleFormat = winston.format.combine(parsers.redactFormat(), winston.format.colorize({ all: true }), winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.printf((info) => {
|
|
57
|
+
const message = `${info.timestamp} ${info.level}: ${info.message}`;
|
|
58
|
+
return info.level.includes('error') ? parsers.redactMessage(message) : message;
|
|
59
|
+
}));
|
|
60
|
+
let consoleLogLevel = 'info';
|
|
61
|
+
if (useDebugConsole) {
|
|
62
|
+
consoleLogLevel = 'debug';
|
|
63
|
+
}
|
|
64
|
+
// Add console transport
|
|
65
|
+
if (useDebugConsole) {
|
|
66
|
+
transports.push(new winston.transports.Console({
|
|
67
|
+
level: consoleLogLevel,
|
|
68
|
+
format: useConsoleJson
|
|
69
|
+
? winston.format.combine(fileFormat, parsers.jsonTruncateFormat(), winston.format.json())
|
|
70
|
+
: winston.format.combine(fileFormat, parsers.debugTraverse),
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
else if (useConsoleJson) {
|
|
74
|
+
transports.push(new winston.transports.Console({
|
|
75
|
+
level: consoleLogLevel,
|
|
76
|
+
format: winston.format.combine(fileFormat, parsers.jsonTruncateFormat(), winston.format.json()),
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
transports.push(new winston.transports.Console({
|
|
81
|
+
level: consoleLogLevel,
|
|
82
|
+
format: consoleFormat,
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
// Create logger
|
|
86
|
+
const logger = winston.createLogger({
|
|
87
|
+
level: level(),
|
|
88
|
+
levels,
|
|
89
|
+
transports,
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
module.exports = logger;
|
|
93
|
+
//# sourceMappingURL=winston.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"winston.cjs","sources":["../../src/config/winston.ts"],"sourcesContent":[null],"names":["getLogDirectory","redactFormat","debugTraverse","redactMessage","jsonTruncateFormat"],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import winston from 'winston';
|
|
2
|
+
import 'winston-daily-rotate-file';
|
|
3
|
+
import { redactFormat, debugTraverse, redactMessage, jsonTruncateFormat } from './parsers.es.js';
|
|
4
|
+
import { getLogDirectory } from './utils.es.js';
|
|
5
|
+
|
|
6
|
+
const logDir = getLogDirectory();
|
|
7
|
+
const { NODE_ENV, DEBUG_LOGGING, CONSOLE_JSON, DEBUG_CONSOLE } = process.env;
|
|
8
|
+
const useConsoleJson = typeof CONSOLE_JSON === 'string' && CONSOLE_JSON.toLowerCase() === 'true';
|
|
9
|
+
const useDebugConsole = typeof DEBUG_CONSOLE === 'string' && DEBUG_CONSOLE.toLowerCase() === 'true';
|
|
10
|
+
const useDebugLogging = typeof DEBUG_LOGGING === 'string' && DEBUG_LOGGING.toLowerCase() === 'true';
|
|
11
|
+
const levels = {
|
|
12
|
+
error: 0,
|
|
13
|
+
warn: 1,
|
|
14
|
+
info: 2,
|
|
15
|
+
http: 3,
|
|
16
|
+
verbose: 4,
|
|
17
|
+
debug: 5,
|
|
18
|
+
activity: 6,
|
|
19
|
+
silly: 7,
|
|
20
|
+
};
|
|
21
|
+
winston.addColors({
|
|
22
|
+
info: 'green',
|
|
23
|
+
warn: 'italic yellow',
|
|
24
|
+
error: 'red',
|
|
25
|
+
debug: 'blue',
|
|
26
|
+
});
|
|
27
|
+
const level = () => {
|
|
28
|
+
const env = NODE_ENV || 'development';
|
|
29
|
+
return env === 'development' ? 'debug' : 'warn';
|
|
30
|
+
};
|
|
31
|
+
const fileFormat = winston.format.combine(redactFormat(), winston.format.timestamp({ format: () => new Date().toISOString() }), winston.format.errors({ stack: true }), winston.format.splat());
|
|
32
|
+
const transports = [
|
|
33
|
+
new winston.transports.DailyRotateFile({
|
|
34
|
+
level: 'error',
|
|
35
|
+
filename: `${logDir}/error-%DATE%.log`,
|
|
36
|
+
datePattern: 'YYYY-MM-DD',
|
|
37
|
+
zippedArchive: true,
|
|
38
|
+
maxSize: '20m',
|
|
39
|
+
maxFiles: '14d',
|
|
40
|
+
format: winston.format.combine(fileFormat, winston.format.json()),
|
|
41
|
+
}),
|
|
42
|
+
];
|
|
43
|
+
if (useDebugLogging) {
|
|
44
|
+
transports.push(new winston.transports.DailyRotateFile({
|
|
45
|
+
level: 'debug',
|
|
46
|
+
filename: `${logDir}/debug-%DATE%.log`,
|
|
47
|
+
datePattern: 'YYYY-MM-DD',
|
|
48
|
+
zippedArchive: true,
|
|
49
|
+
maxSize: '20m',
|
|
50
|
+
maxFiles: '14d',
|
|
51
|
+
format: winston.format.combine(fileFormat, debugTraverse),
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
const consoleFormat = winston.format.combine(redactFormat(), winston.format.colorize({ all: true }), winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.printf((info) => {
|
|
55
|
+
const message = `${info.timestamp} ${info.level}: ${info.message}`;
|
|
56
|
+
return info.level.includes('error') ? redactMessage(message) : message;
|
|
57
|
+
}));
|
|
58
|
+
let consoleLogLevel = 'info';
|
|
59
|
+
if (useDebugConsole) {
|
|
60
|
+
consoleLogLevel = 'debug';
|
|
61
|
+
}
|
|
62
|
+
// Add console transport
|
|
63
|
+
if (useDebugConsole) {
|
|
64
|
+
transports.push(new winston.transports.Console({
|
|
65
|
+
level: consoleLogLevel,
|
|
66
|
+
format: useConsoleJson
|
|
67
|
+
? winston.format.combine(fileFormat, jsonTruncateFormat(), winston.format.json())
|
|
68
|
+
: winston.format.combine(fileFormat, debugTraverse),
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
else if (useConsoleJson) {
|
|
72
|
+
transports.push(new winston.transports.Console({
|
|
73
|
+
level: consoleLogLevel,
|
|
74
|
+
format: winston.format.combine(fileFormat, jsonTruncateFormat(), winston.format.json()),
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
transports.push(new winston.transports.Console({
|
|
79
|
+
level: consoleLogLevel,
|
|
80
|
+
format: consoleFormat,
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
// Create logger
|
|
84
|
+
const logger = winston.createLogger({
|
|
85
|
+
level: level(),
|
|
86
|
+
levels,
|
|
87
|
+
transports,
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
export { logger as default };
|
|
91
|
+
//# sourceMappingURL=winston.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"winston.es.js","sources":["../../src/config/winston.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('dotenv/config');
|
|
4
|
+
var jwt = require('jsonwebtoken');
|
|
5
|
+
var crypto = require('node:crypto');
|
|
6
|
+
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const { webcrypto } = crypto;
|
|
9
|
+
/** Use hex decoding for both key and IV for legacy methods */
|
|
10
|
+
const key = Buffer.from((_a = process.env.CREDS_KEY) !== null && _a !== void 0 ? _a : '', 'hex');
|
|
11
|
+
const iv = Buffer.from((_b = process.env.CREDS_IV) !== null && _b !== void 0 ? _b : '', 'hex');
|
|
12
|
+
const algorithm = 'AES-CBC';
|
|
13
|
+
async function signPayload({ payload, secret, expirationTime, }) {
|
|
14
|
+
return jwt.sign(payload, secret, { expiresIn: expirationTime });
|
|
15
|
+
}
|
|
16
|
+
async function hashToken(str) {
|
|
17
|
+
const data = new TextEncoder().encode(str);
|
|
18
|
+
const hashBuffer = await webcrypto.subtle.digest('SHA-256', data);
|
|
19
|
+
return Buffer.from(hashBuffer).toString('hex');
|
|
20
|
+
}
|
|
21
|
+
/** --- Legacy v1/v2 Setup: AES-CBC with fixed key and IV --- */
|
|
22
|
+
/**
|
|
23
|
+
* Encrypts a value using AES-CBC
|
|
24
|
+
* @param value - The plaintext to encrypt
|
|
25
|
+
* @returns The encrypted string in hex format
|
|
26
|
+
*/
|
|
27
|
+
async function encrypt(value) {
|
|
28
|
+
const cryptoKey = await webcrypto.subtle.importKey('raw', key, { name: algorithm }, false, [
|
|
29
|
+
'encrypt',
|
|
30
|
+
]);
|
|
31
|
+
const encoder = new TextEncoder();
|
|
32
|
+
const data = encoder.encode(value);
|
|
33
|
+
const encryptedBuffer = await webcrypto.subtle.encrypt({ name: algorithm, iv: iv }, cryptoKey, data);
|
|
34
|
+
return Buffer.from(encryptedBuffer).toString('hex');
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Decrypts an encrypted value using AES-CBC
|
|
38
|
+
* @param encryptedValue - The encrypted string in hex format
|
|
39
|
+
* @returns The decrypted plaintext
|
|
40
|
+
*/
|
|
41
|
+
async function decrypt(encryptedValue) {
|
|
42
|
+
const cryptoKey = await webcrypto.subtle.importKey('raw', key, { name: algorithm }, false, [
|
|
43
|
+
'decrypt',
|
|
44
|
+
]);
|
|
45
|
+
const encryptedBuffer = Buffer.from(encryptedValue, 'hex');
|
|
46
|
+
const decryptedBuffer = await webcrypto.subtle.decrypt({ name: algorithm, iv: iv }, cryptoKey, encryptedBuffer);
|
|
47
|
+
const decoder = new TextDecoder();
|
|
48
|
+
return decoder.decode(decryptedBuffer);
|
|
49
|
+
}
|
|
50
|
+
/** --- v2: AES-CBC with a random IV per encryption --- */
|
|
51
|
+
/**
|
|
52
|
+
* Encrypts a value using AES-CBC with a random IV per encryption
|
|
53
|
+
* @param value - The plaintext to encrypt
|
|
54
|
+
* @returns The encrypted string with IV prepended (iv:ciphertext format)
|
|
55
|
+
*/
|
|
56
|
+
async function encryptV2(value) {
|
|
57
|
+
const gen_iv = webcrypto.getRandomValues(new Uint8Array(16));
|
|
58
|
+
const cryptoKey = await webcrypto.subtle.importKey('raw', key, { name: algorithm }, false, [
|
|
59
|
+
'encrypt',
|
|
60
|
+
]);
|
|
61
|
+
const encoder = new TextEncoder();
|
|
62
|
+
const data = encoder.encode(value);
|
|
63
|
+
const encryptedBuffer = await webcrypto.subtle.encrypt({ name: algorithm, iv: gen_iv }, cryptoKey, data);
|
|
64
|
+
return Buffer.from(gen_iv).toString('hex') + ':' + Buffer.from(encryptedBuffer).toString('hex');
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Decrypts an encrypted value using AES-CBC with random IV
|
|
68
|
+
* @param encryptedValue - The encrypted string in iv:ciphertext format
|
|
69
|
+
* @returns The decrypted plaintext
|
|
70
|
+
*/
|
|
71
|
+
async function decryptV2(encryptedValue) {
|
|
72
|
+
var _a;
|
|
73
|
+
const parts = encryptedValue.split(':');
|
|
74
|
+
if (parts.length === 1) {
|
|
75
|
+
return parts[0];
|
|
76
|
+
}
|
|
77
|
+
const gen_iv = Buffer.from((_a = parts.shift()) !== null && _a !== void 0 ? _a : '', 'hex');
|
|
78
|
+
const encrypted = parts.join(':');
|
|
79
|
+
const cryptoKey = await webcrypto.subtle.importKey('raw', key, { name: algorithm }, false, [
|
|
80
|
+
'decrypt',
|
|
81
|
+
]);
|
|
82
|
+
const encryptedBuffer = Buffer.from(encrypted, 'hex');
|
|
83
|
+
const decryptedBuffer = await webcrypto.subtle.decrypt({ name: algorithm, iv: gen_iv }, cryptoKey, encryptedBuffer);
|
|
84
|
+
const decoder = new TextDecoder();
|
|
85
|
+
return decoder.decode(decryptedBuffer);
|
|
86
|
+
}
|
|
87
|
+
/** --- v3: AES-256-CTR using Node's crypto functions --- */
|
|
88
|
+
const algorithm_v3 = 'aes-256-ctr';
|
|
89
|
+
/**
|
|
90
|
+
* Encrypts a value using AES-256-CTR.
|
|
91
|
+
* Note: AES-256 requires a 32-byte key. Ensure that process.env.CREDS_KEY is a 64-character hex string.
|
|
92
|
+
* @param value - The plaintext to encrypt.
|
|
93
|
+
* @returns The encrypted string with a "v3:" prefix.
|
|
94
|
+
*/
|
|
95
|
+
function encryptV3(value) {
|
|
96
|
+
if (key.length !== 32) {
|
|
97
|
+
throw new Error(`Invalid key length: expected 32 bytes, got ${key.length} bytes`);
|
|
98
|
+
}
|
|
99
|
+
const iv_v3 = crypto.randomBytes(16);
|
|
100
|
+
const cipher = crypto.createCipheriv(algorithm_v3, key, iv_v3);
|
|
101
|
+
const encrypted = Buffer.concat([cipher.update(value, 'utf8'), cipher.final()]);
|
|
102
|
+
return `v3:${iv_v3.toString('hex')}:${encrypted.toString('hex')}`;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Decrypts an encrypted value using AES-256-CTR.
|
|
106
|
+
* @param encryptedValue - The encrypted string with "v3:" prefix.
|
|
107
|
+
* @returns The decrypted plaintext.
|
|
108
|
+
*/
|
|
109
|
+
function decryptV3(encryptedValue) {
|
|
110
|
+
const parts = encryptedValue.split(':');
|
|
111
|
+
if (parts[0] !== 'v3') {
|
|
112
|
+
throw new Error('Not a v3 encrypted value');
|
|
113
|
+
}
|
|
114
|
+
const iv_v3 = Buffer.from(parts[1], 'hex');
|
|
115
|
+
const encryptedText = Buffer.from(parts.slice(2).join(':'), 'hex');
|
|
116
|
+
const decipher = crypto.createDecipheriv(algorithm_v3, key, iv_v3);
|
|
117
|
+
const decrypted = Buffer.concat([decipher.update(encryptedText), decipher.final()]);
|
|
118
|
+
return decrypted.toString('utf8');
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Generates random values as a hex string
|
|
122
|
+
* @param length - The number of random bytes to generate
|
|
123
|
+
* @returns The random values as a hex string
|
|
124
|
+
*/
|
|
125
|
+
async function getRandomValues(length) {
|
|
126
|
+
if (!Number.isInteger(length) || length <= 0) {
|
|
127
|
+
throw new Error('Length must be a positive integer');
|
|
128
|
+
}
|
|
129
|
+
const randomValues = new Uint8Array(length);
|
|
130
|
+
webcrypto.getRandomValues(randomValues);
|
|
131
|
+
return Buffer.from(randomValues).toString('hex');
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Computes SHA-256 hash for the given input.
|
|
135
|
+
* @param input - The input to hash.
|
|
136
|
+
* @returns The SHA-256 hash of the input.
|
|
137
|
+
*/
|
|
138
|
+
async function hashBackupCode(input) {
|
|
139
|
+
const encoder = new TextEncoder();
|
|
140
|
+
const data = encoder.encode(input);
|
|
141
|
+
const hashBuffer = await webcrypto.subtle.digest('SHA-256', data);
|
|
142
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
143
|
+
return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
exports.decrypt = decrypt;
|
|
147
|
+
exports.decryptV2 = decryptV2;
|
|
148
|
+
exports.decryptV3 = decryptV3;
|
|
149
|
+
exports.encrypt = encrypt;
|
|
150
|
+
exports.encryptV2 = encryptV2;
|
|
151
|
+
exports.encryptV3 = encryptV3;
|
|
152
|
+
exports.getRandomValues = getRandomValues;
|
|
153
|
+
exports.hashBackupCode = hashBackupCode;
|
|
154
|
+
exports.hashToken = hashToken;
|
|
155
|
+
exports.signPayload = signPayload;
|
|
156
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/crypto/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
import jwt from 'jsonwebtoken';
|
|
3
|
+
import crypto from 'node:crypto';
|
|
4
|
+
|
|
5
|
+
var _a, _b;
|
|
6
|
+
const { webcrypto } = crypto;
|
|
7
|
+
/** Use hex decoding for both key and IV for legacy methods */
|
|
8
|
+
const key = Buffer.from((_a = process.env.CREDS_KEY) !== null && _a !== void 0 ? _a : '', 'hex');
|
|
9
|
+
const iv = Buffer.from((_b = process.env.CREDS_IV) !== null && _b !== void 0 ? _b : '', 'hex');
|
|
10
|
+
const algorithm = 'AES-CBC';
|
|
11
|
+
async function signPayload({ payload, secret, expirationTime, }) {
|
|
12
|
+
return jwt.sign(payload, secret, { expiresIn: expirationTime });
|
|
13
|
+
}
|
|
14
|
+
async function hashToken(str) {
|
|
15
|
+
const data = new TextEncoder().encode(str);
|
|
16
|
+
const hashBuffer = await webcrypto.subtle.digest('SHA-256', data);
|
|
17
|
+
return Buffer.from(hashBuffer).toString('hex');
|
|
18
|
+
}
|
|
19
|
+
/** --- Legacy v1/v2 Setup: AES-CBC with fixed key and IV --- */
|
|
20
|
+
/**
|
|
21
|
+
* Encrypts a value using AES-CBC
|
|
22
|
+
* @param value - The plaintext to encrypt
|
|
23
|
+
* @returns The encrypted string in hex format
|
|
24
|
+
*/
|
|
25
|
+
async function encrypt(value) {
|
|
26
|
+
const cryptoKey = await webcrypto.subtle.importKey('raw', key, { name: algorithm }, false, [
|
|
27
|
+
'encrypt',
|
|
28
|
+
]);
|
|
29
|
+
const encoder = new TextEncoder();
|
|
30
|
+
const data = encoder.encode(value);
|
|
31
|
+
const encryptedBuffer = await webcrypto.subtle.encrypt({ name: algorithm, iv: iv }, cryptoKey, data);
|
|
32
|
+
return Buffer.from(encryptedBuffer).toString('hex');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Decrypts an encrypted value using AES-CBC
|
|
36
|
+
* @param encryptedValue - The encrypted string in hex format
|
|
37
|
+
* @returns The decrypted plaintext
|
|
38
|
+
*/
|
|
39
|
+
async function decrypt(encryptedValue) {
|
|
40
|
+
const cryptoKey = await webcrypto.subtle.importKey('raw', key, { name: algorithm }, false, [
|
|
41
|
+
'decrypt',
|
|
42
|
+
]);
|
|
43
|
+
const encryptedBuffer = Buffer.from(encryptedValue, 'hex');
|
|
44
|
+
const decryptedBuffer = await webcrypto.subtle.decrypt({ name: algorithm, iv: iv }, cryptoKey, encryptedBuffer);
|
|
45
|
+
const decoder = new TextDecoder();
|
|
46
|
+
return decoder.decode(decryptedBuffer);
|
|
47
|
+
}
|
|
48
|
+
/** --- v2: AES-CBC with a random IV per encryption --- */
|
|
49
|
+
/**
|
|
50
|
+
* Encrypts a value using AES-CBC with a random IV per encryption
|
|
51
|
+
* @param value - The plaintext to encrypt
|
|
52
|
+
* @returns The encrypted string with IV prepended (iv:ciphertext format)
|
|
53
|
+
*/
|
|
54
|
+
async function encryptV2(value) {
|
|
55
|
+
const gen_iv = webcrypto.getRandomValues(new Uint8Array(16));
|
|
56
|
+
const cryptoKey = await webcrypto.subtle.importKey('raw', key, { name: algorithm }, false, [
|
|
57
|
+
'encrypt',
|
|
58
|
+
]);
|
|
59
|
+
const encoder = new TextEncoder();
|
|
60
|
+
const data = encoder.encode(value);
|
|
61
|
+
const encryptedBuffer = await webcrypto.subtle.encrypt({ name: algorithm, iv: gen_iv }, cryptoKey, data);
|
|
62
|
+
return Buffer.from(gen_iv).toString('hex') + ':' + Buffer.from(encryptedBuffer).toString('hex');
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Decrypts an encrypted value using AES-CBC with random IV
|
|
66
|
+
* @param encryptedValue - The encrypted string in iv:ciphertext format
|
|
67
|
+
* @returns The decrypted plaintext
|
|
68
|
+
*/
|
|
69
|
+
async function decryptV2(encryptedValue) {
|
|
70
|
+
var _a;
|
|
71
|
+
const parts = encryptedValue.split(':');
|
|
72
|
+
if (parts.length === 1) {
|
|
73
|
+
return parts[0];
|
|
74
|
+
}
|
|
75
|
+
const gen_iv = Buffer.from((_a = parts.shift()) !== null && _a !== void 0 ? _a : '', 'hex');
|
|
76
|
+
const encrypted = parts.join(':');
|
|
77
|
+
const cryptoKey = await webcrypto.subtle.importKey('raw', key, { name: algorithm }, false, [
|
|
78
|
+
'decrypt',
|
|
79
|
+
]);
|
|
80
|
+
const encryptedBuffer = Buffer.from(encrypted, 'hex');
|
|
81
|
+
const decryptedBuffer = await webcrypto.subtle.decrypt({ name: algorithm, iv: gen_iv }, cryptoKey, encryptedBuffer);
|
|
82
|
+
const decoder = new TextDecoder();
|
|
83
|
+
return decoder.decode(decryptedBuffer);
|
|
84
|
+
}
|
|
85
|
+
/** --- v3: AES-256-CTR using Node's crypto functions --- */
|
|
86
|
+
const algorithm_v3 = 'aes-256-ctr';
|
|
87
|
+
/**
|
|
88
|
+
* Encrypts a value using AES-256-CTR.
|
|
89
|
+
* Note: AES-256 requires a 32-byte key. Ensure that process.env.CREDS_KEY is a 64-character hex string.
|
|
90
|
+
* @param value - The plaintext to encrypt.
|
|
91
|
+
* @returns The encrypted string with a "v3:" prefix.
|
|
92
|
+
*/
|
|
93
|
+
function encryptV3(value) {
|
|
94
|
+
if (key.length !== 32) {
|
|
95
|
+
throw new Error(`Invalid key length: expected 32 bytes, got ${key.length} bytes`);
|
|
96
|
+
}
|
|
97
|
+
const iv_v3 = crypto.randomBytes(16);
|
|
98
|
+
const cipher = crypto.createCipheriv(algorithm_v3, key, iv_v3);
|
|
99
|
+
const encrypted = Buffer.concat([cipher.update(value, 'utf8'), cipher.final()]);
|
|
100
|
+
return `v3:${iv_v3.toString('hex')}:${encrypted.toString('hex')}`;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Decrypts an encrypted value using AES-256-CTR.
|
|
104
|
+
* @param encryptedValue - The encrypted string with "v3:" prefix.
|
|
105
|
+
* @returns The decrypted plaintext.
|
|
106
|
+
*/
|
|
107
|
+
function decryptV3(encryptedValue) {
|
|
108
|
+
const parts = encryptedValue.split(':');
|
|
109
|
+
if (parts[0] !== 'v3') {
|
|
110
|
+
throw new Error('Not a v3 encrypted value');
|
|
111
|
+
}
|
|
112
|
+
const iv_v3 = Buffer.from(parts[1], 'hex');
|
|
113
|
+
const encryptedText = Buffer.from(parts.slice(2).join(':'), 'hex');
|
|
114
|
+
const decipher = crypto.createDecipheriv(algorithm_v3, key, iv_v3);
|
|
115
|
+
const decrypted = Buffer.concat([decipher.update(encryptedText), decipher.final()]);
|
|
116
|
+
return decrypted.toString('utf8');
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Generates random values as a hex string
|
|
120
|
+
* @param length - The number of random bytes to generate
|
|
121
|
+
* @returns The random values as a hex string
|
|
122
|
+
*/
|
|
123
|
+
async function getRandomValues(length) {
|
|
124
|
+
if (!Number.isInteger(length) || length <= 0) {
|
|
125
|
+
throw new Error('Length must be a positive integer');
|
|
126
|
+
}
|
|
127
|
+
const randomValues = new Uint8Array(length);
|
|
128
|
+
webcrypto.getRandomValues(randomValues);
|
|
129
|
+
return Buffer.from(randomValues).toString('hex');
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Computes SHA-256 hash for the given input.
|
|
133
|
+
* @param input - The input to hash.
|
|
134
|
+
* @returns The SHA-256 hash of the input.
|
|
135
|
+
*/
|
|
136
|
+
async function hashBackupCode(input) {
|
|
137
|
+
const encoder = new TextEncoder();
|
|
138
|
+
const data = encoder.encode(input);
|
|
139
|
+
const hashBuffer = await webcrypto.subtle.digest('SHA-256', data);
|
|
140
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
141
|
+
return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export { decrypt, decryptV2, decryptV3, encrypt, encryptV2, encryptV3, getRandomValues, hashBackupCode, hashToken, signPayload };
|
|
145
|
+
//# sourceMappingURL=index.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../src/crypto/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|