@explorins/pers-shared 2.1.96 → 2.1.98
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/cjs/shared-lib/dto/ai/ai-generation-log.dto.d.ts +35 -0
- package/dist/cjs/shared-lib/dto/ai/ai-generation-log.dto.d.ts.map +1 -0
- package/dist/cjs/shared-lib/dto/ai/ai-generation-log.dto.js +184 -0
- package/dist/cjs/shared-lib/dto/ai/ai-generation-log.dto.js.map +1 -0
- package/dist/cjs/shared-lib/dto/ai/ai-prompt-config.dto.d.ts +21 -0
- package/dist/cjs/shared-lib/dto/ai/ai-prompt-config.dto.d.ts.map +1 -0
- package/dist/cjs/shared-lib/dto/ai/ai-prompt-config.dto.js +62 -0
- package/dist/cjs/shared-lib/dto/ai/ai-prompt-config.dto.js.map +1 -0
- package/dist/cjs/shared-lib/dto/ai/index.d.ts +3 -0
- package/dist/cjs/shared-lib/dto/ai/index.d.ts.map +1 -0
- package/dist/cjs/shared-lib/dto/ai/index.js +20 -0
- package/dist/cjs/shared-lib/dto/ai/index.js.map +1 -0
- package/dist/cjs/shared-lib/dto/analytics/ai-analytics.dto.d.ts +84 -0
- package/dist/cjs/shared-lib/dto/analytics/ai-analytics.dto.d.ts.map +1 -0
- package/dist/cjs/shared-lib/dto/analytics/ai-analytics.dto.js +295 -0
- package/dist/cjs/shared-lib/dto/analytics/ai-analytics.dto.js.map +1 -0
- package/dist/cjs/shared-lib/dto/analytics/index.d.ts +1 -0
- package/dist/cjs/shared-lib/dto/analytics/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/analytics/index.js +1 -0
- package/dist/cjs/shared-lib/dto/analytics/index.js.map +1 -1
- package/dist/cjs/shared-lib/dto/index.d.ts +1 -0
- package/dist/cjs/shared-lib/dto/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/index.js +2 -0
- package/dist/cjs/shared-lib/dto/index.js.map +1 -1
- package/dist/cjs/shared-lib/dto/token/token-metadata.dto.d.ts +2 -0
- package/dist/cjs/shared-lib/dto/token/token-metadata.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js +20 -2
- package/dist/cjs/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/user/user.dto.d.ts +9 -0
- package/dist/cjs/shared-lib/dto/user/user.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/user/user.dto.js +35 -0
- package/dist/cjs/shared-lib/dto/user/user.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/user-status-type.dto.d.ts +1 -2
- package/dist/cjs/shared-lib/dto/user-status-type.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/user-status-type.dto.js +12 -16
- package/dist/cjs/shared-lib/dto/user-status-type.dto.js.map +1 -1
- package/dist/cjs/shared-lib/enum/ai-analytics-metric.enum.d.ts +43 -0
- package/dist/cjs/shared-lib/enum/ai-analytics-metric.enum.d.ts.map +1 -0
- package/dist/cjs/shared-lib/enum/ai-analytics-metric.enum.js +48 -0
- package/dist/cjs/shared-lib/enum/ai-analytics-metric.enum.js.map +1 -0
- package/dist/cjs/shared-lib/enum/ai-operation-type.enum.d.ts +21 -0
- package/dist/cjs/shared-lib/enum/ai-operation-type.enum.d.ts.map +1 -0
- package/dist/cjs/shared-lib/enum/ai-operation-type.enum.js +25 -0
- package/dist/cjs/shared-lib/enum/ai-operation-type.enum.js.map +1 -0
- package/dist/cjs/shared-lib/enum/ai-trigger-process-type.enum.d.ts +13 -0
- package/dist/cjs/shared-lib/enum/ai-trigger-process-type.enum.d.ts.map +1 -0
- package/dist/cjs/shared-lib/enum/ai-trigger-process-type.enum.js +17 -0
- package/dist/cjs/shared-lib/enum/ai-trigger-process-type.enum.js.map +1 -0
- package/dist/cjs/shared-lib/enum/balance-migration-type.enum.d.ts +13 -0
- package/dist/cjs/shared-lib/enum/balance-migration-type.enum.d.ts.map +1 -0
- package/dist/cjs/shared-lib/enum/balance-migration-type.enum.js +17 -0
- package/dist/cjs/shared-lib/enum/balance-migration-type.enum.js.map +1 -0
- package/dist/cjs/shared-lib/enum/index.d.ts +4 -0
- package/dist/cjs/shared-lib/enum/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/enum/index.js +4 -0
- package/dist/cjs/shared-lib/enum/index.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/ai-prompt-config.interface.d.ts +19 -0
- package/dist/cjs/shared-lib/interfaces/ai-prompt-config.interface.d.ts.map +1 -0
- package/dist/cjs/shared-lib/interfaces/ai-prompt-config.interface.js +3 -0
- package/dist/cjs/shared-lib/interfaces/ai-prompt-config.interface.js.map +1 -0
- package/dist/cjs/shared-lib/interfaces/balance-filter-options.interface.d.ts +43 -0
- package/dist/cjs/shared-lib/interfaces/balance-filter-options.interface.d.ts.map +1 -0
- package/dist/cjs/shared-lib/interfaces/balance-filter-options.interface.js +3 -0
- package/dist/cjs/shared-lib/interfaces/balance-filter-options.interface.js.map +1 -0
- package/dist/cjs/shared-lib/interfaces/index.d.ts +2 -0
- package/dist/cjs/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/interfaces/index.js +2 -0
- package/dist/cjs/shared-lib/interfaces/index.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/token-storage-data.interface.d.ts +5 -1
- package/dist/cjs/shared-lib/interfaces/token-storage-data.interface.d.ts.map +1 -1
- package/dist/cjs/shared-lib/interfaces/token-storage-data.interface.js +4 -0
- package/dist/cjs/shared-lib/interfaces/token-storage-data.interface.js.map +1 -1
- package/dist/cjs/shared-lib/types/index.d.ts +1 -0
- package/dist/cjs/shared-lib/types/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/types/index.js +1 -0
- package/dist/cjs/shared-lib/types/index.js.map +1 -1
- package/dist/cjs/shared-lib/types/user-include-relation.type.d.ts +11 -0
- package/dist/cjs/shared-lib/types/user-include-relation.type.d.ts.map +1 -0
- package/dist/cjs/shared-lib/types/user-include-relation.type.js +16 -0
- package/dist/cjs/shared-lib/types/user-include-relation.type.js.map +1 -0
- package/dist/cjs/shared-lib/value-objects/token-balance.value-object.d.ts +18 -1
- package/dist/cjs/shared-lib/value-objects/token-balance.value-object.d.ts.map +1 -1
- package/dist/cjs/shared-lib/value-objects/token-balance.value-object.js +24 -2
- package/dist/cjs/shared-lib/value-objects/token-balance.value-object.js.map +1 -1
- package/dist/cjs/shared-patterns/functions/helper.functions.d.ts +71 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.js +185 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.js.map +1 -0
- package/dist/esm/browser.js +2 -2
- package/dist/esm/index.js +5 -5
- package/dist/esm/shared-lib/decorators/index.js +1 -1
- package/dist/esm/shared-lib/dto/account-selector.dto.js +2 -2
- package/dist/esm/shared-lib/dto/account-token-balances.dto.js +1 -1
- package/dist/esm/shared-lib/dto/admin/admin-create.request.dto.js +2 -2
- package/dist/esm/shared-lib/dto/admin/admin.dto.js +2 -2
- package/dist/esm/shared-lib/dto/admin/index.js +2 -2
- package/dist/esm/shared-lib/dto/ai/ai-generation-log.dto.d.ts +35 -0
- package/dist/esm/shared-lib/dto/ai/ai-generation-log.dto.d.ts.map +1 -0
- package/dist/esm/shared-lib/dto/ai/ai-generation-log.dto.js +158 -0
- package/dist/esm/shared-lib/dto/ai/ai-generation-log.dto.js.map +1 -0
- package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.d.ts +21 -0
- package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.d.ts.map +1 -0
- package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.js +52 -0
- package/dist/esm/shared-lib/dto/ai/ai-prompt-config.dto.js.map +1 -0
- package/dist/esm/shared-lib/dto/ai/index.d.ts +3 -0
- package/dist/esm/shared-lib/dto/ai/index.d.ts.map +1 -0
- package/dist/esm/shared-lib/dto/ai/index.js +4 -0
- package/dist/esm/shared-lib/dto/ai/index.js.map +1 -0
- package/dist/esm/shared-lib/dto/analytics/ai-analytics.dto.d.ts +84 -0
- package/dist/esm/shared-lib/dto/analytics/ai-analytics.dto.d.ts.map +1 -0
- package/dist/esm/shared-lib/dto/analytics/ai-analytics.dto.js +256 -0
- package/dist/esm/shared-lib/dto/analytics/ai-analytics.dto.js.map +1 -0
- package/dist/esm/shared-lib/dto/analytics/base-analytics.dto.js +1 -1
- package/dist/esm/shared-lib/dto/analytics/business-ranking-analytics.dto.js +3 -3
- package/dist/esm/shared-lib/dto/analytics/campaign-claim-analytics-request.dto.js +5 -5
- package/dist/esm/shared-lib/dto/analytics/campaign-claim-analytics.dto.js +5 -5
- package/dist/esm/shared-lib/dto/analytics/group-by-expression.dto.js +2 -2
- package/dist/esm/shared-lib/dto/analytics/index.d.ts +1 -0
- package/dist/esm/shared-lib/dto/analytics/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/analytics/index.js +9 -8
- package/dist/esm/shared-lib/dto/analytics/index.js.map +1 -1
- package/dist/esm/shared-lib/dto/analytics/retention-analytics.dto.js +3 -3
- package/dist/esm/shared-lib/dto/analytics/transaction-analytics.request.dto.js +6 -6
- package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.js +1 -1
- package/dist/esm/shared-lib/dto/analytics/user-ranking-analytics.dto.js +3 -3
- package/dist/esm/shared-lib/dto/api-key/api-key-verification.dto.js +1 -1
- package/dist/esm/shared-lib/dto/api-key/api-key.dto.js +1 -1
- package/dist/esm/shared-lib/dto/api-key/index.js +3 -3
- package/dist/esm/shared-lib/dto/auth/auth.dto.js +5 -5
- package/dist/esm/shared-lib/dto/auth/index.js +2 -2
- package/dist/esm/shared-lib/dto/business/business-create.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/business/business-membership.dto.js +4 -4
- package/dist/esm/shared-lib/dto/business/business-type.dto.js +1 -1
- package/dist/esm/shared-lib/dto/business/business-update.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/business/business.dto.js +3 -3
- package/dist/esm/shared-lib/dto/business/businessToggleActive.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/business/businessTypeCreate.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/business/index.js +8 -8
- package/dist/esm/shared-lib/dto/campaign/campaign-business-engagement.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaign.dto.js +5 -5
- package/dist/esm/shared-lib/dto/campaign/campaignClaim.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaignCreate.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaignTrigger.dto.js +4 -4
- package/dist/esm/shared-lib/dto/campaign/campaignTriggerCondition.dto.js +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaignUpdate.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaignUserClaim.dto.js +6 -6
- package/dist/esm/shared-lib/dto/campaign/trigger-source.dto.js +2 -2
- package/dist/esm/shared-lib/dto/error-response.dto.js +2 -2
- package/dist/esm/shared-lib/dto/file/entity-storage-url.dto.js +3 -3
- package/dist/esm/shared-lib/dto/file/index.js +2 -2
- package/dist/esm/shared-lib/dto/index.d.ts +1 -0
- package/dist/esm/shared-lib/dto/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/index.js +37 -35
- package/dist/esm/shared-lib/dto/index.js.map +1 -1
- package/dist/esm/shared-lib/dto/pagination/index.js +2 -2
- package/dist/esm/shared-lib/dto/pagination/pagination.request.dto.js +2 -2
- package/dist/esm/shared-lib/dto/purchase/index.js +9 -9
- package/dist/esm/shared-lib/dto/purchase/purchase.dto.js +1 -1
- package/dist/esm/shared-lib/dto/purchase/purchaseCreate.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/purchase/purchaseCreate.response.dto.js +1 -1
- package/dist/esm/shared-lib/dto/purchase/purchaseTokenUpdate.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/purchase/purchaseType.dto.js +1 -1
- package/dist/esm/shared-lib/dto/redemption/index.js +5 -5
- package/dist/esm/shared-lib/dto/redemption/redemption.dto.js +4 -4
- package/dist/esm/shared-lib/dto/redemption/redemptionCreate.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.dto.js +5 -5
- package/dist/esm/shared-lib/dto/redemption/redemptionRedeem.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/redemption/redemptionType.dto.js +1 -1
- package/dist/esm/shared-lib/dto/signing-account/create-signing-account-request.dto.js +4 -4
- package/dist/esm/shared-lib/dto/signing-account/index.js +5 -5
- package/dist/esm/shared-lib/dto/signing-account/signing-account.dto.js +1 -1
- package/dist/esm/shared-lib/dto/signing-account/update-signing-account.dto.js +1 -1
- package/dist/esm/shared-lib/dto/tenant/index.js +4 -4
- package/dist/esm/shared-lib/dto/tenant/tenant.dto.js +1 -1
- package/dist/esm/shared-lib/dto/tenant/tenantUpdate.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/token/index.js +7 -7
- package/dist/esm/shared-lib/dto/token/token-balance.dto.js +1 -1
- package/dist/esm/shared-lib/dto/token/token-metadata.dto.d.ts +2 -0
- package/dist/esm/shared-lib/dto/token/token-metadata.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/token/token-metadata.dto.js +22 -5
- package/dist/esm/shared-lib/dto/token/token-metadata.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/token/token-selector.dto.js +1 -1
- package/dist/esm/shared-lib/dto/token/token-type.dto.js +2 -2
- package/dist/esm/shared-lib/dto/token/token-unit.dto.js +2 -2
- package/dist/esm/shared-lib/dto/token/token.dto.js +2 -2
- package/dist/esm/shared-lib/dto/token/token.request.dto.js +2 -2
- package/dist/esm/shared-lib/dto/transaction/index.js +8 -8
- package/dist/esm/shared-lib/dto/transaction/transaction-bulk-data.request.dto.js +2 -2
- package/dist/esm/shared-lib/dto/transaction/transaction-pagination.request.dto.js +4 -4
- package/dist/esm/shared-lib/dto/transaction/transaction-trigger-process.dto.js +1 -1
- package/dist/esm/shared-lib/dto/transaction/transaction.dto.js +6 -6
- package/dist/esm/shared-lib/dto/transaction/transaction.request.dto.js +9 -9
- package/dist/esm/shared-lib/dto/user/index.js +3 -3
- package/dist/esm/shared-lib/dto/user/user.dto.d.ts +9 -0
- package/dist/esm/shared-lib/dto/user/user.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/user/user.dto.js +37 -3
- package/dist/esm/shared-lib/dto/user/user.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/user/user.request.dto.js +1 -1
- package/dist/esm/shared-lib/dto/user/userUploadData.dto.js +1 -1
- package/dist/esm/shared-lib/dto/user-status-type.dto.d.ts +1 -2
- package/dist/esm/shared-lib/dto/user-status-type.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/user-status-type.dto.js +12 -15
- package/dist/esm/shared-lib/dto/user-status-type.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/wallet.dto.js +2 -2
- package/dist/esm/shared-lib/dto/web3-contract.dto.js +3 -3
- package/dist/esm/shared-lib/enum/ai-analytics-metric.enum.d.ts +43 -0
- package/dist/esm/shared-lib/enum/ai-analytics-metric.enum.d.ts.map +1 -0
- package/dist/esm/shared-lib/enum/ai-analytics-metric.enum.js +45 -0
- package/dist/esm/shared-lib/enum/ai-analytics-metric.enum.js.map +1 -0
- package/dist/esm/shared-lib/enum/ai-operation-type.enum.d.ts +21 -0
- package/dist/esm/shared-lib/enum/ai-operation-type.enum.d.ts.map +1 -0
- package/dist/esm/shared-lib/enum/ai-operation-type.enum.js +22 -0
- package/dist/esm/shared-lib/enum/ai-operation-type.enum.js.map +1 -0
- package/dist/esm/shared-lib/enum/ai-trigger-process-type.enum.d.ts +13 -0
- package/dist/esm/shared-lib/enum/ai-trigger-process-type.enum.d.ts.map +1 -0
- package/dist/esm/shared-lib/enum/ai-trigger-process-type.enum.js +14 -0
- package/dist/esm/shared-lib/enum/ai-trigger-process-type.enum.js.map +1 -0
- package/dist/esm/shared-lib/enum/balance-migration-type.enum.d.ts +13 -0
- package/dist/esm/shared-lib/enum/balance-migration-type.enum.d.ts.map +1 -0
- package/dist/esm/shared-lib/enum/balance-migration-type.enum.js +14 -0
- package/dist/esm/shared-lib/enum/balance-migration-type.enum.js.map +1 -0
- package/dist/esm/shared-lib/enum/campaign/index.js +3 -3
- package/dist/esm/shared-lib/enum/index.d.ts +4 -0
- package/dist/esm/shared-lib/enum/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/enum/index.js +28 -24
- package/dist/esm/shared-lib/enum/index.js.map +1 -1
- package/dist/esm/shared-lib/enum/purchase/index.js +2 -2
- package/dist/esm/shared-lib/errors/base-business-error.js +1 -1
- package/dist/esm/shared-lib/errors/domains/authentication-errors.js +3 -3
- package/dist/esm/shared-lib/errors/domains/balance-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/business-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/campaign-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/contract-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/signing-account-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/system-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/tenant-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/token-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/transaction-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/trigger-source-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/user-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/validation-errors.js +2 -2
- package/dist/esm/shared-lib/errors/domains/wallet-errors.js +2 -2
- package/dist/esm/shared-lib/errors/index.js +18 -18
- package/dist/esm/shared-lib/errors/technical-errors.js +2 -2
- package/dist/esm/shared-lib/interfaces/ai-prompt-config.interface.d.ts +19 -0
- package/dist/esm/shared-lib/interfaces/ai-prompt-config.interface.d.ts.map +1 -0
- package/dist/esm/shared-lib/interfaces/ai-prompt-config.interface.js +2 -0
- package/dist/esm/shared-lib/interfaces/ai-prompt-config.interface.js.map +1 -0
- package/dist/esm/shared-lib/interfaces/balance-filter-options.interface.d.ts +43 -0
- package/dist/esm/shared-lib/interfaces/balance-filter-options.interface.d.ts.map +1 -0
- package/dist/esm/shared-lib/interfaces/balance-filter-options.interface.js +2 -0
- package/dist/esm/shared-lib/interfaces/balance-filter-options.interface.js.map +1 -0
- package/dist/esm/shared-lib/interfaces/campaign/index.js +1 -1
- package/dist/esm/shared-lib/interfaces/index.d.ts +2 -0
- package/dist/esm/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/interfaces/index.js +21 -19
- package/dist/esm/shared-lib/interfaces/index.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/token-storage-data.interface.d.ts +5 -1
- package/dist/esm/shared-lib/interfaces/token-storage-data.interface.d.ts.map +1 -1
- package/dist/esm/shared-lib/interfaces/token-storage-data.interface.js +4 -0
- package/dist/esm/shared-lib/interfaces/token-storage-data.interface.js.map +1 -1
- package/dist/esm/shared-lib/types/index.d.ts +1 -0
- package/dist/esm/shared-lib/types/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/types/index.js +15 -14
- package/dist/esm/shared-lib/types/index.js.map +1 -1
- package/dist/esm/shared-lib/types/user-include-relation.type.d.ts +11 -0
- package/dist/esm/shared-lib/types/user-include-relation.type.d.ts.map +1 -0
- package/dist/esm/shared-lib/types/user-include-relation.type.js +12 -0
- package/dist/esm/shared-lib/types/user-include-relation.type.js.map +1 -0
- package/dist/esm/shared-lib/value-objects/account-selector.vo.js +3 -3
- package/dist/esm/shared-lib/value-objects/address.value-object.js +1 -1
- package/dist/esm/shared-lib/value-objects/index.js +8 -8
- package/dist/esm/shared-lib/value-objects/token-balance.value-object.d.ts +18 -1
- package/dist/esm/shared-lib/value-objects/token-balance.value-object.d.ts.map +1 -1
- package/dist/esm/shared-lib/value-objects/token-balance.value-object.js +24 -2
- package/dist/esm/shared-lib/value-objects/token-balance.value-object.js.map +1 -1
- package/dist/esm/shared-lib/value-objects/token-transaction-entity-reference-input.vo.js +2 -2
- package/dist/esm/shared-lib/value-objects/token-transaction-input.vo.js +2 -2
- package/dist/esm/shared-patterns/errors/error-factory.js +13 -13
- package/dist/esm/shared-patterns/functions/helper.functions.d.ts +71 -0
- package/dist/esm/shared-patterns/functions/helper.functions.d.ts.map +1 -0
- package/dist/esm/shared-patterns/functions/helper.functions.js +174 -0
- package/dist/esm/shared-patterns/functions/helper.functions.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-balance.value-object.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-balance.value-object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"token-balance.value-object.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-balance.value-object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGjD;;GAEG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAU;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEzC;;;;;;;;;;;;OAYG;gBAEC,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,OAAO,EAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,YAAO,EAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,YAAO,EACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAAE,wDAAwD;IACpF,UAAU,GAAE,IAAI,GAAG,IAAW;IAalC;;;;OAIG;IACI,UAAU,IAAI,MAAM;IAI3B;;;;OAIG;IACI,uBAAuB,IAAI,OAAO;IAIzC;;;;OAIG;IACI,UAAU,IAAI,MAAM,GAAG,IAAI;IAIlC;;;;OAIG;IACI,cAAc,IAAI,MAAM,GAAG,IAAI;IAItC;;;;OAIG;IACI,UAAU,IAAI,MAAM;IAI3B;;;;OAIG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;OAIG;IACI,cAAc,IAAI,MAAM;IAI/B;;;;OAIG;IACI,YAAY,IAAI,eAAe;IAItC;;;;OAIG;IACI,aAAa,IAAI,IAAI,GAAG,IAAI;IAInC;;;;;;OAMG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;OAIG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;CAS9C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TokenBalance = void 0;
|
|
4
|
+
const helper_functions_1 = require("../../shared-patterns/functions/helper.functions");
|
|
4
5
|
/**
|
|
5
6
|
* Value object representing the token balance details.
|
|
6
7
|
*/
|
|
@@ -13,6 +14,7 @@ class TokenBalance {
|
|
|
13
14
|
tokenName;
|
|
14
15
|
tokenSymbol;
|
|
15
16
|
tokenType;
|
|
17
|
+
expiryDate;
|
|
16
18
|
/**
|
|
17
19
|
* Constructs a new TokenBalance value object.
|
|
18
20
|
*
|
|
@@ -24,9 +26,10 @@ class TokenBalance {
|
|
|
24
26
|
* @param {string} tokenName - The name of the token.
|
|
25
27
|
* @param {string} tokenSymbol - The symbol of the token.
|
|
26
28
|
* @param {NativeTokenType} tokenType - The type of the token (e.g., ERC20, ERC721).
|
|
29
|
+
* @param {Date | null} expiryDate - The expiry date of the token (optional).
|
|
27
30
|
*/
|
|
28
|
-
constructor(chainId, smartContractAddress, tokenId = null, metadataUri = null, balance, tokenName, tokenSymbol, tokenType // = NativeTokenType.ERC20 // Default value set to ERC20
|
|
29
|
-
) {
|
|
31
|
+
constructor(chainId, smartContractAddress, tokenId = null, metadataUri = null, balance, tokenName, tokenSymbol, tokenType, // = NativeTokenType.ERC20 // Default value set to ERC20
|
|
32
|
+
expiryDate = null) {
|
|
30
33
|
this.chainId = chainId;
|
|
31
34
|
this.smartContractAddress = smartContractAddress;
|
|
32
35
|
this.tokenId = tokenId;
|
|
@@ -35,6 +38,7 @@ class TokenBalance {
|
|
|
35
38
|
this.tokenName = tokenName;
|
|
36
39
|
this.tokenSymbol = tokenSymbol;
|
|
37
40
|
this.tokenType = tokenType;
|
|
41
|
+
this.expiryDate = expiryDate;
|
|
38
42
|
}
|
|
39
43
|
/**
|
|
40
44
|
* Gets the chain ID.
|
|
@@ -100,6 +104,24 @@ class TokenBalance {
|
|
|
100
104
|
getTokenType() {
|
|
101
105
|
return this.tokenType;
|
|
102
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Gets the expiry date of the token.
|
|
109
|
+
*
|
|
110
|
+
* @returns {Date | null} The expiry date (or null if no expiry).
|
|
111
|
+
*/
|
|
112
|
+
getExpiryDate() {
|
|
113
|
+
return this.expiryDate;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Checks if the token has expired.
|
|
117
|
+
* Uses shared isTokenExpired helper for consistent date comparison logic.
|
|
118
|
+
*
|
|
119
|
+
* @returns {boolean} True if the token has an expiry date and it has passed.
|
|
120
|
+
* Returns false if no expiry date (never expires).
|
|
121
|
+
*/
|
|
122
|
+
isExpired() {
|
|
123
|
+
return (0, helper_functions_1.isTokenExpired)(this.expiryDate) ?? false;
|
|
124
|
+
}
|
|
103
125
|
/**
|
|
104
126
|
* Returns a string representation of the TokenBalance.
|
|
105
127
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-balance.value-object.js","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-balance.value-object.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"token-balance.value-object.js","sourceRoot":"","sources":["../../../../src/shared-lib/value-objects/token-balance.value-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type TokenValidityType } from '../../shared-lib/enum/token-validity-type.enum';
|
|
2
|
+
import { TokenStorageData } from '../../shared-lib/interfaces/token-storage-data.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Parses a comma-separated string into an array of strings.
|
|
5
|
+
*
|
|
6
|
+
* @param commaSeparatedString - The string to parse.
|
|
7
|
+
* @returns An array of trimmed, non-empty strings.
|
|
8
|
+
*/
|
|
9
|
+
export declare const parseCommaSeparatedStringToStringArray: (commaSeparatedString: string | null) => string[];
|
|
10
|
+
export declare const checkIfTokenIdIsUri: (tokenId: string | null) => boolean;
|
|
11
|
+
export declare const compareVersions: (version1: string, version2: string) => number;
|
|
12
|
+
/**
|
|
13
|
+
* Computes the expiry date based on validity configuration.
|
|
14
|
+
*
|
|
15
|
+
* @param validityType - The type of validity calculation
|
|
16
|
+
* @param validityDuration - Duration in days or hours (for relative types)
|
|
17
|
+
* @param fixedExpiryDate - Fixed expiry date (for fixed_date type)
|
|
18
|
+
* @param issuanceDate - The date of issuance (defaults to now)
|
|
19
|
+
* @returns The computed expiry date, or undefined if no validity is configured
|
|
20
|
+
*/
|
|
21
|
+
export declare const computeExpiryDate: (validityType?: TokenValidityType, validityDuration?: number, fixedExpiryDate?: Date, issuanceDate?: Date) => Date | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Checks if a token has expired based on its expiry date.
|
|
24
|
+
*
|
|
25
|
+
* @param expiryDate - The expiry date to check
|
|
26
|
+
* @param referenceDate - The date to compare against (defaults to now)
|
|
27
|
+
* @returns true if expired, false if still valid, undefined if no expiry date
|
|
28
|
+
*/
|
|
29
|
+
export declare const isTokenExpired: (expiryDate?: Date | null, referenceDate?: Date) => boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Normalizes an array of tags for consistent storage.
|
|
32
|
+
* - Converts to lowercase
|
|
33
|
+
* - Trims whitespace
|
|
34
|
+
* - Replaces spaces with dashes
|
|
35
|
+
* - Removes duplicates
|
|
36
|
+
* - Filters out empty strings
|
|
37
|
+
*
|
|
38
|
+
* @param tags - Array of tag strings to normalize
|
|
39
|
+
* @returns Normalized, deduplicated array of tags
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* normalizeTags(['Summer', ' VIP ', 'Black Friday', 'summer'])
|
|
43
|
+
* // Returns: ['summer', 'vip', 'black-friday']
|
|
44
|
+
*/
|
|
45
|
+
export declare const normalizeTags: (tags?: string[] | null) => string[];
|
|
46
|
+
/**
|
|
47
|
+
* Extracts the expiry_date attribute from token metadata (OpenSea standard format).
|
|
48
|
+
* This is the inverse operation of computeExpiryDate - it reads the expiry that was
|
|
49
|
+
* stored in the metadata when the token was minted.
|
|
50
|
+
*
|
|
51
|
+
* @param metadata - The token metadata object containing attributes array
|
|
52
|
+
* @returns The expiry date if found, null otherwise
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* const metadata = { attributes: [{ trait_type: 'expiry_date', value: '2024-12-31T23:59:59.000Z' }] };
|
|
56
|
+
* extractExpiryDateFromMetadata(metadata); // Returns Date object
|
|
57
|
+
*/
|
|
58
|
+
export declare const extractExpiryDateFromMetadata: (metadata: TokenStorageData | null) => Date | null;
|
|
59
|
+
/**
|
|
60
|
+
* Extracts tags from token metadata (OpenSea standard format).
|
|
61
|
+
* Tags are stored as a comma-separated string in the 'Tags' attribute.
|
|
62
|
+
*
|
|
63
|
+
* @param metadata - The token metadata object containing attributes array
|
|
64
|
+
* @returns Array of tags found in the metadata, or empty array if none
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const metadata = { attributes: [{ trait_type: 'Tags', value: 'techno, mindfulness' }] };
|
|
68
|
+
* extractTagsFromMetadata(metadata); // Returns ['techno', 'mindfulness']
|
|
69
|
+
*/
|
|
70
|
+
export declare const extractTagsFromMetadata: (metadata: TokenStorageData | null) => string[];
|
|
71
|
+
//# sourceMappingURL=helper.functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.functions.d.ts","sourceRoot":"","sources":["../../../../src/shared-patterns/functions/helper.functions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAkC,MAAM,0DAA0D,CAAC;AAE5H;;;;;KAKK;AACL,eAAO,MAAM,sCAAsC,GAAI,sBAAsB,MAAM,GAAG,IAAI,KAAG,MAAM,EAI9F,CAAA;AAGL,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,OAM5D,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,UAAU,MAAM,KAAG,MAWpE,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,eAAe,iBAAiB,EAChC,mBAAmB,MAAM,EACzB,kBAAkB,IAAI,EACtB,eAAc,IAAiB,KAC9B,IAAI,GAAG,SA6CT,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,IAAI,GAAG,IAAI,EACxB,gBAAe,IAAiB,KAC/B,OAAO,GAAG,SAGZ,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,GAAG,IAAI,KAAG,MAAM,EAgB5D,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,IAAI,GAAG,IAaxF,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,MAAM,EAiBjF,CAAA"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractTagsFromMetadata = exports.extractExpiryDateFromMetadata = exports.normalizeTags = exports.isTokenExpired = exports.computeExpiryDate = exports.compareVersions = exports.checkIfTokenIdIsUri = exports.parseCommaSeparatedStringToStringArray = void 0;
|
|
4
|
+
const token_validity_type_enum_1 = require("../../shared-lib/enum/token-validity-type.enum");
|
|
5
|
+
const token_storage_data_interface_1 = require("../../shared-lib/interfaces/token-storage-data.interface");
|
|
6
|
+
/**
|
|
7
|
+
* Parses a comma-separated string into an array of strings.
|
|
8
|
+
*
|
|
9
|
+
* @param commaSeparatedString - The string to parse.
|
|
10
|
+
* @returns An array of trimmed, non-empty strings.
|
|
11
|
+
*/
|
|
12
|
+
const parseCommaSeparatedStringToStringArray = (commaSeparatedString) => {
|
|
13
|
+
return commaSeparatedString
|
|
14
|
+
? commaSeparatedString.split(',').map((s) => s.trim()).filter(Boolean)
|
|
15
|
+
: [];
|
|
16
|
+
};
|
|
17
|
+
exports.parseCommaSeparatedStringToStringArray = parseCommaSeparatedStringToStringArray;
|
|
18
|
+
const checkIfTokenIdIsUri = (tokenId) => {
|
|
19
|
+
const uriRegex = /^(https?|ipfs):\/\/.*/;
|
|
20
|
+
if (!tokenId || !uriRegex.test(tokenId)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
};
|
|
25
|
+
exports.checkIfTokenIdIsUri = checkIfTokenIdIsUri;
|
|
26
|
+
const compareVersions = (version1, version2) => {
|
|
27
|
+
const v1 = version1.split('.').map(Number);
|
|
28
|
+
const v2 = version2.split('.').map(Number);
|
|
29
|
+
for (let i = 0; i < Math.max(v1.length, v2.length); i++) {
|
|
30
|
+
const num1 = v1[i] || 0;
|
|
31
|
+
const num2 = v2[i] || 0;
|
|
32
|
+
if (num1 > num2)
|
|
33
|
+
return 1;
|
|
34
|
+
if (num1 < num2)
|
|
35
|
+
return -1;
|
|
36
|
+
}
|
|
37
|
+
return 0;
|
|
38
|
+
};
|
|
39
|
+
exports.compareVersions = compareVersions;
|
|
40
|
+
/**
|
|
41
|
+
* Computes the expiry date based on validity configuration.
|
|
42
|
+
*
|
|
43
|
+
* @param validityType - The type of validity calculation
|
|
44
|
+
* @param validityDuration - Duration in days or hours (for relative types)
|
|
45
|
+
* @param fixedExpiryDate - Fixed expiry date (for fixed_date type)
|
|
46
|
+
* @param issuanceDate - The date of issuance (defaults to now)
|
|
47
|
+
* @returns The computed expiry date, or undefined if no validity is configured
|
|
48
|
+
*/
|
|
49
|
+
const computeExpiryDate = (validityType, validityDuration, fixedExpiryDate, issuanceDate = new Date()) => {
|
|
50
|
+
if (!validityType) {
|
|
51
|
+
// Fallback to fixed expiry date if no validity type specified
|
|
52
|
+
return fixedExpiryDate;
|
|
53
|
+
}
|
|
54
|
+
switch (validityType) {
|
|
55
|
+
case token_validity_type_enum_1.TokenValidityTypes.FIXED_DATE:
|
|
56
|
+
return fixedExpiryDate;
|
|
57
|
+
case token_validity_type_enum_1.TokenValidityTypes.DAYS_FROM_ISSUANCE:
|
|
58
|
+
if (!validityDuration || validityDuration <= 0)
|
|
59
|
+
return undefined;
|
|
60
|
+
const daysResult = new Date(issuanceDate);
|
|
61
|
+
daysResult.setDate(daysResult.getDate() + validityDuration);
|
|
62
|
+
return daysResult;
|
|
63
|
+
case token_validity_type_enum_1.TokenValidityTypes.HOURS_FROM_ISSUANCE:
|
|
64
|
+
if (!validityDuration || validityDuration <= 0)
|
|
65
|
+
return undefined;
|
|
66
|
+
const hoursResult = new Date(issuanceDate);
|
|
67
|
+
hoursResult.setHours(hoursResult.getHours() + validityDuration);
|
|
68
|
+
return hoursResult;
|
|
69
|
+
case token_validity_type_enum_1.TokenValidityTypes.MONTHS_FROM_ISSUANCE:
|
|
70
|
+
if (!validityDuration || validityDuration <= 0)
|
|
71
|
+
return undefined;
|
|
72
|
+
const monthsResult = new Date(issuanceDate);
|
|
73
|
+
monthsResult.setMonth(monthsResult.getMonth() + validityDuration);
|
|
74
|
+
return monthsResult;
|
|
75
|
+
case token_validity_type_enum_1.TokenValidityTypes.END_OF_MONTH:
|
|
76
|
+
const endOfMonth = new Date(issuanceDate);
|
|
77
|
+
endOfMonth.setMonth(endOfMonth.getMonth() + 1);
|
|
78
|
+
endOfMonth.setDate(0); // Last day of previous month (i.e., current month)
|
|
79
|
+
endOfMonth.setHours(23, 59, 59, 999);
|
|
80
|
+
return endOfMonth;
|
|
81
|
+
case token_validity_type_enum_1.TokenValidityTypes.END_OF_YEAR:
|
|
82
|
+
const endOfYear = new Date(issuanceDate);
|
|
83
|
+
endOfYear.setMonth(11); // December
|
|
84
|
+
endOfYear.setDate(31);
|
|
85
|
+
endOfYear.setHours(23, 59, 59, 999);
|
|
86
|
+
return endOfYear;
|
|
87
|
+
default:
|
|
88
|
+
return fixedExpiryDate;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
exports.computeExpiryDate = computeExpiryDate;
|
|
92
|
+
/**
|
|
93
|
+
* Checks if a token has expired based on its expiry date.
|
|
94
|
+
*
|
|
95
|
+
* @param expiryDate - The expiry date to check
|
|
96
|
+
* @param referenceDate - The date to compare against (defaults to now)
|
|
97
|
+
* @returns true if expired, false if still valid, undefined if no expiry date
|
|
98
|
+
*/
|
|
99
|
+
const isTokenExpired = (expiryDate, referenceDate = new Date()) => {
|
|
100
|
+
if (!expiryDate)
|
|
101
|
+
return undefined;
|
|
102
|
+
return new Date(expiryDate) < referenceDate;
|
|
103
|
+
};
|
|
104
|
+
exports.isTokenExpired = isTokenExpired;
|
|
105
|
+
/**
|
|
106
|
+
* Normalizes an array of tags for consistent storage.
|
|
107
|
+
* - Converts to lowercase
|
|
108
|
+
* - Trims whitespace
|
|
109
|
+
* - Replaces spaces with dashes
|
|
110
|
+
* - Removes duplicates
|
|
111
|
+
* - Filters out empty strings
|
|
112
|
+
*
|
|
113
|
+
* @param tags - Array of tag strings to normalize
|
|
114
|
+
* @returns Normalized, deduplicated array of tags
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* normalizeTags(['Summer', ' VIP ', 'Black Friday', 'summer'])
|
|
118
|
+
* // Returns: ['summer', 'vip', 'black-friday']
|
|
119
|
+
*/
|
|
120
|
+
const normalizeTags = (tags) => {
|
|
121
|
+
if (!tags || !Array.isArray(tags))
|
|
122
|
+
return [];
|
|
123
|
+
const normalized = tags
|
|
124
|
+
.map(tag => tag
|
|
125
|
+
.toLowerCase()
|
|
126
|
+
.trim()
|
|
127
|
+
.replace(/\s+/g, '-') // Replace spaces with dashes
|
|
128
|
+
.replace(/[^a-z0-9-]/g, '') // Remove special characters except dashes
|
|
129
|
+
.replace(/-+/g, '-') // Replace multiple dashes with single
|
|
130
|
+
.replace(/^-|-$/g, '') // Remove leading/trailing dashes
|
|
131
|
+
)
|
|
132
|
+
.filter(Boolean); // Remove empty strings
|
|
133
|
+
return [...new Set(normalized)]; // Remove duplicates
|
|
134
|
+
};
|
|
135
|
+
exports.normalizeTags = normalizeTags;
|
|
136
|
+
/**
|
|
137
|
+
* Extracts the expiry_date attribute from token metadata (OpenSea standard format).
|
|
138
|
+
* This is the inverse operation of computeExpiryDate - it reads the expiry that was
|
|
139
|
+
* stored in the metadata when the token was minted.
|
|
140
|
+
*
|
|
141
|
+
* @param metadata - The token metadata object containing attributes array
|
|
142
|
+
* @returns The expiry date if found, null otherwise
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* const metadata = { attributes: [{ trait_type: 'expiry_date', value: '2024-12-31T23:59:59.000Z' }] };
|
|
146
|
+
* extractExpiryDateFromMetadata(metadata); // Returns Date object
|
|
147
|
+
*/
|
|
148
|
+
const extractExpiryDateFromMetadata = (metadata) => {
|
|
149
|
+
if (!metadata?.attributes)
|
|
150
|
+
return null;
|
|
151
|
+
// Case-insensitive comparison to handle legacy formats
|
|
152
|
+
const expiryAttribute = metadata.attributes.find(attr => attr.trait_type.toLowerCase() === token_storage_data_interface_1.TokenStorageDataAttributesType.EXPIRY_DATE.toLowerCase());
|
|
153
|
+
if (expiryAttribute?.value) {
|
|
154
|
+
return new Date(expiryAttribute.value);
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
};
|
|
158
|
+
exports.extractExpiryDateFromMetadata = extractExpiryDateFromMetadata;
|
|
159
|
+
/**
|
|
160
|
+
* Extracts tags from token metadata (OpenSea standard format).
|
|
161
|
+
* Tags are stored as a comma-separated string in the 'Tags' attribute.
|
|
162
|
+
*
|
|
163
|
+
* @param metadata - The token metadata object containing attributes array
|
|
164
|
+
* @returns Array of tags found in the metadata, or empty array if none
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* const metadata = { attributes: [{ trait_type: 'Tags', value: 'techno, mindfulness' }] };
|
|
168
|
+
* extractTagsFromMetadata(metadata); // Returns ['techno', 'mindfulness']
|
|
169
|
+
*/
|
|
170
|
+
const extractTagsFromMetadata = (metadata) => {
|
|
171
|
+
if (!metadata?.attributes)
|
|
172
|
+
return [];
|
|
173
|
+
// Case-insensitive comparison to handle legacy formats ('Tags', 'tags', etc.)
|
|
174
|
+
const tagsAttribute = metadata.attributes.find(attr => attr.trait_type.toLowerCase() === token_storage_data_interface_1.TokenStorageDataAttributesType.TAGS.toLowerCase());
|
|
175
|
+
if (tagsAttribute?.value) {
|
|
176
|
+
// Tags are stored as comma-separated string, split and trim
|
|
177
|
+
return tagsAttribute.value
|
|
178
|
+
.split(',')
|
|
179
|
+
.map(tag => tag.trim())
|
|
180
|
+
.filter(Boolean);
|
|
181
|
+
}
|
|
182
|
+
return [];
|
|
183
|
+
};
|
|
184
|
+
exports.extractTagsFromMetadata = extractTagsFromMetadata;
|
|
185
|
+
//# sourceMappingURL=helper.functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.functions.js","sourceRoot":"","sources":["../../../../src/shared-patterns/functions/helper.functions.ts"],"names":[],"mappings":";;;AAEA,6FAA4G;AAC5G,2GAA4H;AAE5H;;;;;KAKK;AACE,MAAM,sCAAsC,GAAG,CAAC,oBAAmC,EAAY,EAAE;IACpG,OAAO,oBAAoB;QACzB,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACtE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC,CAAA;AAJQ,QAAA,sCAAsC,0CAI9C;AAGE,MAAM,mBAAmB,GAAG,CAAC,OAAsB,EAAW,EAAE;IACnE,MAAM,QAAQ,GAAG,uBAAuB,CAAC;IAC3C,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AANY,QAAA,mBAAmB,uBAM/B;AAEM,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAU,EAAE;IAC5E,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAA;AAXY,QAAA,eAAe,mBAW3B;AAED;;;;;;;;GAQG;AACI,MAAM,iBAAiB,GAAG,CAC/B,YAAgC,EAChC,gBAAyB,EACzB,eAAsB,EACtB,eAAqB,IAAI,IAAI,EAAE,EACb,EAAE;IACpB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,8DAA8D;QAC9D,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,6CAAkB,CAAC,UAAU;YAChC,OAAO,eAAe,CAAC;QAEzB,KAAK,6CAAkB,CAAC,kBAAkB;YACxC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC;YAC5D,OAAO,UAAU,CAAC;QAEpB,KAAK,6CAAkB,CAAC,mBAAmB;YACzC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjE,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3C,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC;YAChE,OAAO,WAAW,CAAC;QAErB,KAAK,6CAAkB,CAAC,oBAAoB;YAC1C,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5C,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC;YAClE,OAAO,YAAY,CAAC;QAEtB,KAAK,6CAAkB,CAAC,YAAY;YAClC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,mDAAmD;YAC1E,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACrC,OAAO,UAAU,CAAC;QAEpB,KAAK,6CAAkB,CAAC,WAAW;YACjC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YACzC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;YACnC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtB,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACpC,OAAO,SAAS,CAAC;QAEnB;YACE,OAAO,eAAe,CAAC;IAC3B,CAAC;AACH,CAAC,CAAA;AAlDY,QAAA,iBAAiB,qBAkD7B;AAED;;;;;;GAMG;AACI,MAAM,cAAc,GAAG,CAC5B,UAAwB,EACxB,gBAAsB,IAAI,IAAI,EAAE,EACX,EAAE;IACvB,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;AAC9C,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAED;;;;;;;;;;;;;;GAcG;AACI,MAAM,aAAa,GAAG,CAAC,IAAsB,EAAY,EAAE;IAChE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,UAAU,GAAG,IAAI;SACpB,GAAG,CAAC,GAAG,CAAC,EAAE,CACT,GAAG;SACA,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,6BAA6B;SACnD,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAE,0CAA0C;SACtE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAE,sCAAsC;SAC3D,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAE,iCAAiC;KAC5D;SACA,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,uBAAuB;IAE5C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,oBAAoB;AACxD,CAAC,CAAA;AAhBY,QAAA,aAAa,iBAgBzB;AAED;;;;;;;;;;;GAWG;AACI,MAAM,6BAA6B,GAAG,CAAC,QAAiC,EAAe,EAAE;IAC9F,IAAI,CAAC,QAAQ,EAAE,UAAU;QAAE,OAAO,IAAI,CAAC;IAEvC,uDAAuD;IACvD,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAC9C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,6DAA8B,CAAC,WAAW,CAAC,WAAW,EAAE,CACnG,CAAC;IAEF,IAAI,eAAe,EAAE,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AAbY,QAAA,6BAA6B,iCAazC;AAED;;;;;;;;;;GAUG;AACI,MAAM,uBAAuB,GAAG,CAAC,QAAiC,EAAY,EAAE;IACrF,IAAI,CAAC,QAAQ,EAAE,UAAU;QAAE,OAAO,EAAE,CAAC;IAErC,8EAA8E;IAC9E,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,6DAA8B,CAAC,IAAI,CAAC,WAAW,EAAE,CAC5F,CAAC;IAEF,IAAI,aAAa,EAAE,KAAK,EAAE,CAAC;QACzB,4DAA4D;QAC5D,OAAO,aAAa,CAAC,KAAK;aACvB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACtB,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAA;AAjBY,QAAA,uBAAuB,2BAiBnC"}
|
package/dist/esm/browser.js
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* Uses barrel exports for automatic inclusion - no manual maintenance needed!
|
|
4
4
|
*/
|
|
5
5
|
// Export enums - these are safe for browser use (barrel export)
|
|
6
|
-
export * from './shared-lib/enum
|
|
6
|
+
export * from './shared-lib/enum';
|
|
7
7
|
// Export types and constants (runtime exports) - browser-safe only
|
|
8
|
-
export * from './shared-lib/types
|
|
8
|
+
export * from './shared-lib/types';
|
|
9
9
|
// Re-export web3 types for convenience
|
|
10
10
|
export * from '@explorins/web3-types';
|
|
11
11
|
// Note: Backend-specific types (like TRANSACTION_FORMATS) are excluded from browser build
|
package/dist/esm/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// PERS Shared Contracts Library - Pure Data Contracts and Domain Vocabulary
|
|
2
2
|
// 🌐 PUBLIC: Safe for external consumption - contains only DTOs, interfaces, types, and enums
|
|
3
3
|
// Core domain contracts
|
|
4
|
-
export * from './shared-lib/enum
|
|
5
|
-
export * from './shared-lib/interfaces
|
|
6
|
-
export * from './shared-lib/types
|
|
4
|
+
export * from './shared-lib/enum';
|
|
5
|
+
export * from './shared-lib/interfaces';
|
|
6
|
+
export * from './shared-lib/types';
|
|
7
7
|
// Re-export web3 types for convenience
|
|
8
8
|
export * from '@explorins/web3-types';
|
|
9
|
-
export { ErrorCategory } from './shared-lib/errors/base/error-classification-enums
|
|
9
|
+
export { ErrorCategory } from './shared-lib/errors/base/error-classification-enums';
|
|
10
10
|
// Shared patterns (architecture components)
|
|
11
|
-
// export * from './shared-patterns/index
|
|
11
|
+
// export * from './shared-patterns/index';
|
|
12
12
|
// External consumers should only use the type exports and documented public APIs
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './validation.decorators
|
|
1
|
+
export * from './validation.decorators';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -6,8 +6,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
|
|
8
8
|
import { IsString, IsEnum } from "class-validator";
|
|
9
|
-
import { AccountOwnerType } from "../enum
|
|
10
|
-
import { OptionalStrip } from '../decorators
|
|
9
|
+
import { AccountOwnerType } from "../enum";
|
|
10
|
+
import { OptionalStrip } from '../decorators';
|
|
11
11
|
/**
|
|
12
12
|
* Standard Account Identification for Transaction Participants
|
|
13
13
|
* Supports multiple identification methods with auto-detection
|
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { ApiProperty } from "@nestjs/swagger";
|
|
8
|
-
import { TokenBalanceDTO, TokenMetadataBalanceDTO } from "./token/token-balance.dto
|
|
8
|
+
import { TokenBalanceDTO, TokenMetadataBalanceDTO } from "./token/token-balance.dto";
|
|
9
9
|
export class AccountTokenBalancesDTO {
|
|
10
10
|
accountAddress = '';
|
|
11
11
|
tokenBalances = [];
|
|
@@ -6,8 +6,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
|
|
8
8
|
import { IsNotEmpty, IsEmail, IsString, IsEnum } from 'class-validator';
|
|
9
|
-
import { AdminType } from './../../enum/admin-type.enum
|
|
10
|
-
import { OptionalStrip } from '../../decorators
|
|
9
|
+
import { AdminType } from './../../enum/admin-type.enum';
|
|
10
|
+
import { OptionalStrip } from '../../decorators';
|
|
11
11
|
export class AdminCreateRequestDTO {
|
|
12
12
|
email = '';
|
|
13
13
|
displayName;
|
|
@@ -5,8 +5,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
|
|
8
|
-
import { AdminType } from "../../enum/admin-type.enum
|
|
9
|
-
import { TenantDTO } from "./../tenant
|
|
8
|
+
import { AdminType } from "../../enum/admin-type.enum";
|
|
9
|
+
import { TenantDTO } from "./../tenant";
|
|
10
10
|
export class AdminDTO {
|
|
11
11
|
id = '';
|
|
12
12
|
email = '';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './admin-create.request.dto
|
|
2
|
-
export * from './admin.dto
|
|
1
|
+
export * from './admin-create.request.dto';
|
|
2
|
+
export * from './admin.dto';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AiOperationType } from '../../enum/ai-operation-type.enum';
|
|
2
|
+
import { AiTriggerProcessType } from '../../enum/ai-trigger-process-type.enum';
|
|
3
|
+
/**
|
|
4
|
+
* AI Generation Log DTO
|
|
5
|
+
*
|
|
6
|
+
* Represents an AI generation operation record.
|
|
7
|
+
* Used for:
|
|
8
|
+
* - API responses from AI module
|
|
9
|
+
* - Cross-domain analytics queries
|
|
10
|
+
* - Billing and usage tracking
|
|
11
|
+
*
|
|
12
|
+
* DDD: Shared Kernel - used by AI module and Analytics module
|
|
13
|
+
*/
|
|
14
|
+
export declare class AiGenerationLogDTO {
|
|
15
|
+
id: string;
|
|
16
|
+
tenantId: string;
|
|
17
|
+
userId?: string;
|
|
18
|
+
operationType: AiOperationType;
|
|
19
|
+
triggerProcessType?: AiTriggerProcessType | null;
|
|
20
|
+
triggerProcessId?: string | null;
|
|
21
|
+
model: string;
|
|
22
|
+
promptHash?: string | null;
|
|
23
|
+
promptPreview?: string | null;
|
|
24
|
+
inputTokens: number;
|
|
25
|
+
outputTokens: number;
|
|
26
|
+
totalTokens: number;
|
|
27
|
+
estimatedCostUsd: number;
|
|
28
|
+
responseTimeMs: number;
|
|
29
|
+
success: boolean;
|
|
30
|
+
message?: string | null;
|
|
31
|
+
metadata?: Record<string, unknown> | null;
|
|
32
|
+
createdAt: Date;
|
|
33
|
+
updatedAt: Date;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ai-generation-log.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-generation-log.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/ai/ai-generation-log.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,qBAAa,kBAAkB;IAK7B,EAAE,EAAG,MAAM,CAAC;IAMZ,QAAQ,EAAG,MAAM,CAAC;IAMlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,aAAa,EAAG,eAAe,CAAC;IAOhC,kBAAkB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAMjD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMjC,KAAK,EAAG,MAAM,CAAC;IAMf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAM3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAM9B,WAAW,EAAG,MAAM,CAAC;IAMrB,YAAY,EAAG,MAAM,CAAC;IAMtB,WAAW,EAAG,MAAM,CAAC;IAMrB,gBAAgB,EAAG,MAAM,CAAC;IAM1B,cAAc,EAAG,MAAM,CAAC;IAMxB,OAAO,EAAG,OAAO,CAAC;IAMlB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAM1C,SAAS,EAAG,IAAI,CAAC;IAMjB,SAAS,EAAG,IAAI,CAAC;CAClB"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
8
|
+
import { AiOperationType } from '../../enum/ai-operation-type.enum';
|
|
9
|
+
import { AiTriggerProcessType } from '../../enum/ai-trigger-process-type.enum';
|
|
10
|
+
/**
|
|
11
|
+
* AI Generation Log DTO
|
|
12
|
+
*
|
|
13
|
+
* Represents an AI generation operation record.
|
|
14
|
+
* Used for:
|
|
15
|
+
* - API responses from AI module
|
|
16
|
+
* - Cross-domain analytics queries
|
|
17
|
+
* - Billing and usage tracking
|
|
18
|
+
*
|
|
19
|
+
* DDD: Shared Kernel - used by AI module and Analytics module
|
|
20
|
+
*/
|
|
21
|
+
export class AiGenerationLogDTO {
|
|
22
|
+
id;
|
|
23
|
+
tenantId;
|
|
24
|
+
userId;
|
|
25
|
+
operationType;
|
|
26
|
+
triggerProcessType;
|
|
27
|
+
triggerProcessId;
|
|
28
|
+
model;
|
|
29
|
+
promptHash;
|
|
30
|
+
promptPreview;
|
|
31
|
+
inputTokens;
|
|
32
|
+
outputTokens;
|
|
33
|
+
totalTokens;
|
|
34
|
+
estimatedCostUsd;
|
|
35
|
+
responseTimeMs;
|
|
36
|
+
success;
|
|
37
|
+
message;
|
|
38
|
+
metadata;
|
|
39
|
+
createdAt;
|
|
40
|
+
updatedAt;
|
|
41
|
+
}
|
|
42
|
+
__decorate([
|
|
43
|
+
ApiProperty({
|
|
44
|
+
description: 'Unique identifier',
|
|
45
|
+
example: '123e4567-e89b-12d3-a456-426614174000'
|
|
46
|
+
})
|
|
47
|
+
], AiGenerationLogDTO.prototype, "id", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
ApiProperty({
|
|
50
|
+
description: 'Tenant identifier (auto-populated via RLS)',
|
|
51
|
+
example: 'tenant-123'
|
|
52
|
+
})
|
|
53
|
+
], AiGenerationLogDTO.prototype, "tenantId", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
ApiPropertyOptional({
|
|
56
|
+
description: 'User who triggered the generation (null for system operations)',
|
|
57
|
+
example: '123e4567-e89b-12d3-a456-426614174000'
|
|
58
|
+
})
|
|
59
|
+
], AiGenerationLogDTO.prototype, "userId", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
ApiProperty({
|
|
62
|
+
description: 'Type of AI operation performed',
|
|
63
|
+
enum: AiOperationType,
|
|
64
|
+
example: AiOperationType.TEXT_GENERATION
|
|
65
|
+
})
|
|
66
|
+
], AiGenerationLogDTO.prototype, "operationType", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
ApiPropertyOptional({
|
|
69
|
+
description: 'Business process that triggered this AI generation (for cost allocation)',
|
|
70
|
+
enum: AiTriggerProcessType,
|
|
71
|
+
example: AiTriggerProcessType.TRANSACTION
|
|
72
|
+
})
|
|
73
|
+
], AiGenerationLogDTO.prototype, "triggerProcessType", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
ApiPropertyOptional({
|
|
76
|
+
description: 'ID of the entity that triggered this generation (e.g., Transaction ID)',
|
|
77
|
+
example: '123e4567-e89b-12d3-a456-426614174000'
|
|
78
|
+
})
|
|
79
|
+
], AiGenerationLogDTO.prototype, "triggerProcessId", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
ApiProperty({
|
|
82
|
+
description: 'Model used for generation',
|
|
83
|
+
example: 'gemini-2.5-flash'
|
|
84
|
+
})
|
|
85
|
+
], AiGenerationLogDTO.prototype, "model", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
ApiPropertyOptional({
|
|
88
|
+
description: 'SHA256 hash of prompt for deduplication (privacy-aware)',
|
|
89
|
+
example: 'a1b2c3d4e5f6...'
|
|
90
|
+
})
|
|
91
|
+
], AiGenerationLogDTO.prototype, "promptHash", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
ApiPropertyOptional({
|
|
94
|
+
description: 'First N characters of prompt for debugging',
|
|
95
|
+
example: 'Generate a description for...'
|
|
96
|
+
})
|
|
97
|
+
], AiGenerationLogDTO.prototype, "promptPreview", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
ApiProperty({
|
|
100
|
+
description: 'Number of input tokens',
|
|
101
|
+
example: 150
|
|
102
|
+
})
|
|
103
|
+
], AiGenerationLogDTO.prototype, "inputTokens", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
ApiProperty({
|
|
106
|
+
description: 'Number of output tokens',
|
|
107
|
+
example: 500
|
|
108
|
+
})
|
|
109
|
+
], AiGenerationLogDTO.prototype, "outputTokens", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
ApiProperty({
|
|
112
|
+
description: 'Total tokens (input + output)',
|
|
113
|
+
example: 650
|
|
114
|
+
})
|
|
115
|
+
], AiGenerationLogDTO.prototype, "totalTokens", void 0);
|
|
116
|
+
__decorate([
|
|
117
|
+
ApiProperty({
|
|
118
|
+
description: 'Estimated cost in USD',
|
|
119
|
+
example: 0.0013
|
|
120
|
+
})
|
|
121
|
+
], AiGenerationLogDTO.prototype, "estimatedCostUsd", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
ApiProperty({
|
|
124
|
+
description: 'Response time in milliseconds',
|
|
125
|
+
example: 1250
|
|
126
|
+
})
|
|
127
|
+
], AiGenerationLogDTO.prototype, "responseTimeMs", void 0);
|
|
128
|
+
__decorate([
|
|
129
|
+
ApiProperty({
|
|
130
|
+
description: 'Whether the operation succeeded',
|
|
131
|
+
example: true
|
|
132
|
+
})
|
|
133
|
+
], AiGenerationLogDTO.prototype, "success", void 0);
|
|
134
|
+
__decorate([
|
|
135
|
+
ApiPropertyOptional({
|
|
136
|
+
description: 'Message (error details if failed, or context info)',
|
|
137
|
+
example: null
|
|
138
|
+
})
|
|
139
|
+
], AiGenerationLogDTO.prototype, "message", void 0);
|
|
140
|
+
__decorate([
|
|
141
|
+
ApiPropertyOptional({
|
|
142
|
+
description: 'Additional metadata (generation options, temperature, etc.)',
|
|
143
|
+
example: { temperature: 0.7, thinkingLevel: 'medium' }
|
|
144
|
+
})
|
|
145
|
+
], AiGenerationLogDTO.prototype, "metadata", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
ApiProperty({
|
|
148
|
+
description: 'Creation timestamp',
|
|
149
|
+
example: '2026-03-12T10:30:00Z'
|
|
150
|
+
})
|
|
151
|
+
], AiGenerationLogDTO.prototype, "createdAt", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
ApiProperty({
|
|
154
|
+
description: 'Last update timestamp',
|
|
155
|
+
example: '2026-03-12T10:30:00Z'
|
|
156
|
+
})
|
|
157
|
+
], AiGenerationLogDTO.prototype, "updatedAt", void 0);
|
|
158
|
+
//# sourceMappingURL=ai-generation-log.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-generation-log.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/ai/ai-generation-log.dto.ts"],"names":[],"mappings":"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"}
|