@rakun-kit/core 1.4.10 → 1.5.0
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/README.md +1100 -732
- package/dist/cjs/api/context.js +1 -0
- package/dist/cjs/api/context.js.map +1 -1
- package/dist/cjs/api/operations/apiEventLog.js +128 -0
- package/dist/cjs/api/operations/apiEventLog.js.map +1 -0
- package/dist/cjs/api/operations/index.js +4 -1
- package/dist/cjs/api/operations/index.js.map +1 -1
- package/dist/cjs/api/operations/manager-contract.js +256 -2
- package/dist/cjs/api/operations/manager-contract.js.map +1 -1
- package/dist/cjs/api/operations/manager-manifest.js +160 -0
- package/dist/cjs/api/operations/manager-manifest.js.map +1 -1
- package/dist/cjs/api/operations/manager.js +128 -4
- package/dist/cjs/api/operations/manager.js.map +1 -1
- package/dist/cjs/api/operations/tracing.js +36 -5
- package/dist/cjs/api/operations/tracing.js.map +1 -1
- package/dist/cjs/api/routes/manager/auth/externalLogin.js +126 -0
- package/dist/cjs/api/routes/manager/auth/externalLogin.js.map +1 -0
- package/dist/cjs/api/routes/manager/auth/login.js +51 -54
- package/dist/cjs/api/routes/manager/auth/login.js.map +1 -1
- package/dist/cjs/api/routes/manager/auth/mfa/regenerateRecoveryCodes.js +46 -0
- package/dist/cjs/api/routes/manager/auth/mfa/regenerateRecoveryCodes.js.map +1 -0
- package/dist/cjs/api/routes/manager/auth/mfa/verifyRecoveryCode.js +80 -0
- package/dist/cjs/api/routes/manager/auth/mfa/verifyRecoveryCode.js.map +1 -0
- package/dist/cjs/api/routes/manager/auth/passwordIpBlocks.js +90 -0
- package/dist/cjs/api/routes/manager/auth/passwordIpBlocks.js.map +1 -0
- package/dist/cjs/api/routes/manager/auth/passwordRecovery.js +147 -0
- package/dist/cjs/api/routes/manager/auth/passwordRecovery.js.map +1 -0
- package/dist/cjs/api/routes/manager/auth/totp/confirmTotp.js +19 -2
- package/dist/cjs/api/routes/manager/auth/totp/confirmTotp.js.map +1 -1
- package/dist/cjs/api/routes/manager/auth/totp/enrollTotp.js +2 -2
- package/dist/cjs/api/routes/manager/auth/totp/enrollTotp.js.map +1 -1
- package/dist/cjs/api/routes/manager/auth/webauthn/webauthnRegisterVerify.js +32 -3
- package/dist/cjs/api/routes/manager/auth/webauthn/webauthnRegisterVerify.js.map +1 -1
- package/dist/cjs/api/routes/manager/comments.js +120 -8
- package/dist/cjs/api/routes/manager/comments.js.map +1 -1
- package/dist/cjs/api/routes/manager/contentVersions.js +224 -0
- package/dist/cjs/api/routes/manager/contentVersions.js.map +1 -0
- package/dist/cjs/api/routes/manager/delete.js +69 -5
- package/dist/cjs/api/routes/manager/delete.js.map +1 -1
- package/dist/cjs/api/routes/manager/list.js +91 -2
- package/dist/cjs/api/routes/manager/list.js.map +1 -1
- package/dist/cjs/api/routes/manager/localeVariants.js +234 -18
- package/dist/cjs/api/routes/manager/localeVariants.js.map +1 -1
- package/dist/cjs/api/routes/manager/logs/cleanup.js +20 -0
- package/dist/cjs/api/routes/manager/logs/cleanup.js.map +1 -0
- package/dist/cjs/api/routes/manager/logs/list.js +22 -0
- package/dist/cjs/api/routes/manager/logs/list.js.map +1 -0
- package/dist/cjs/api/routes/manager/notifications.js +140 -0
- package/dist/cjs/api/routes/manager/notifications.js.map +1 -0
- package/dist/cjs/api/routes/manager/previewSlugRedirects.js +25 -0
- package/dist/cjs/api/routes/manager/previewSlugRedirects.js.map +1 -0
- package/dist/cjs/api/routes/manager/reviewPolicies.js +109 -0
- package/dist/cjs/api/routes/manager/reviewPolicies.js.map +1 -0
- package/dist/cjs/api/routes/manager/reviews.js +272 -0
- package/dist/cjs/api/routes/manager/reviews.js.map +1 -0
- package/dist/cjs/api/routes/manager/routeLayout.js +138 -0
- package/dist/cjs/api/routes/manager/routeLayout.js.map +1 -0
- package/dist/cjs/api/routes/manager/translateDocument.js +15 -0
- package/dist/cjs/api/routes/manager/translateDocument.js.map +1 -1
- package/dist/cjs/api/routes/manager/trash.js +72 -39
- package/dist/cjs/api/routes/manager/trash.js.map +1 -1
- package/dist/cjs/api/routes/manager/uiLocales.js +30 -0
- package/dist/cjs/api/routes/manager/uiLocales.js.map +1 -0
- package/dist/cjs/api/routes/manager/update.js +87 -0
- package/dist/cjs/api/routes/manager/update.js.map +1 -1
- package/dist/cjs/api/routes/manager/versions/restore.js +20 -0
- package/dist/cjs/api/routes/manager/versions/restore.js.map +1 -1
- package/dist/cjs/api/utils/authEvents.js +31 -0
- package/dist/cjs/api/utils/authEvents.js.map +1 -0
- package/dist/cjs/api/utils/authRateLimit.js +4 -3
- package/dist/cjs/api/utils/authRateLimit.js.map +1 -1
- package/dist/cjs/api/utils/managerNotifications.js +27 -0
- package/dist/cjs/api/utils/managerNotifications.js.map +1 -0
- package/dist/cjs/api/utils/recoveryCodes.js +29 -0
- package/dist/cjs/api/utils/recoveryCodes.js.map +1 -0
- package/dist/cjs/api/utils/redirects/createSlugChangeRedirects.js +145 -0
- package/dist/cjs/api/utils/redirects/createSlugChangeRedirects.js.map +1 -0
- package/dist/cjs/api/utils/redirects/slugPathChanges.js +137 -0
- package/dist/cjs/api/utils/redirects/slugPathChanges.js.map +1 -0
- package/dist/cjs/api/utils/requireContentType.js +13 -0
- package/dist/cjs/api/utils/requireContentType.js.map +1 -1
- package/dist/cjs/api/utils/reviews.js +273 -0
- package/dist/cjs/api/utils/reviews.js.map +1 -0
- package/dist/cjs/api/utils/routes/routeMapHelpers.js +46 -22
- package/dist/cjs/api/utils/routes/routeMapHelpers.js.map +1 -1
- package/dist/cjs/api/utils/routes/updateRoutesMap.js +2 -1
- package/dist/cjs/api/utils/routes/updateRoutesMap.js.map +1 -1
- package/dist/cjs/api/utils/safeManagerQuery.js +1 -0
- package/dist/cjs/api/utils/safeManagerQuery.js.map +1 -1
- package/dist/cjs/auth/accountRecovery.js +5 -0
- package/dist/cjs/auth/accountRecovery.js.map +1 -0
- package/dist/cjs/auth/completePrimaryAuthentication.js +50 -0
- package/dist/cjs/auth/completePrimaryAuthentication.js.map +1 -0
- package/dist/cjs/auth/loginAdapters.js +183 -0
- package/dist/cjs/auth/loginAdapters.js.map +1 -0
- package/dist/cjs/auth/passwordFail2ban.js +119 -0
- package/dist/cjs/auth/passwordFail2ban.js.map +1 -0
- package/dist/cjs/auth/passwordResetMailTemplate.js +90 -0
- package/dist/cjs/auth/passwordResetMailTemplate.js.map +1 -0
- package/dist/cjs/bootstrapState.js.map +1 -1
- package/dist/cjs/client.js +5 -1
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/contracts.js +12 -0
- package/dist/cjs/contracts.js.map +1 -1
- package/dist/cjs/eventLog/index.js +52 -0
- package/dist/cjs/eventLog/index.js.map +1 -0
- package/dist/cjs/eventLog/mongo.js +115 -0
- package/dist/cjs/eventLog/mongo.js.map +1 -0
- package/dist/cjs/eventLog/service.js +189 -0
- package/dist/cjs/eventLog/service.js.map +1 -0
- package/dist/cjs/eventLog/types.js +6 -0
- package/dist/cjs/eventLog/types.js.map +1 -0
- package/dist/cjs/index.js +62 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal-content-types/ContentCommentReadState.js +21 -0
- package/dist/cjs/internal-content-types/ContentCommentReadState.js.map +1 -0
- package/dist/cjs/internal-content-types/ContentReview.js +34 -0
- package/dist/cjs/internal-content-types/ContentReview.js.map +1 -0
- package/dist/cjs/internal-content-types/ContentReviewDecision.js +21 -0
- package/dist/cjs/internal-content-types/ContentReviewDecision.js.map +1 -0
- package/dist/cjs/internal-content-types/ContentReviewPolicy.js +21 -0
- package/dist/cjs/internal-content-types/ContentReviewPolicy.js.map +1 -0
- package/dist/cjs/internal-content-types/LoginIpBlock.js +20 -0
- package/dist/cjs/internal-content-types/LoginIpBlock.js.map +1 -0
- package/dist/cjs/internal-content-types/ManagerNotification.js +33 -0
- package/dist/cjs/internal-content-types/ManagerNotification.js.map +1 -0
- package/dist/cjs/internal-content-types/ManagerUserHooks.js +8 -1
- package/dist/cjs/internal-content-types/ManagerUserHooks.js.map +1 -1
- package/dist/cjs/internal-content-types/PasswordResetToken.js +50 -0
- package/dist/cjs/internal-content-types/PasswordResetToken.js.map +1 -0
- package/dist/cjs/internal-content-types/UserMfa.js +35 -1
- package/dist/cjs/internal-content-types/UserMfa.js.map +1 -1
- package/dist/cjs/internal-content-types/index.js +7 -0
- package/dist/cjs/internal-content-types/index.js.map +1 -1
- package/dist/cjs/lib/ContentType.js +2 -8
- package/dist/cjs/lib/ContentType.js.map +1 -1
- package/dist/cjs/lib/Permissions.js +13 -1
- package/dist/cjs/lib/Permissions.js.map +1 -1
- package/dist/cjs/lib/Registry.js +8 -3
- package/dist/cjs/lib/Registry.js.map +1 -1
- package/dist/cjs/lib/errors/AppError.js +7 -1
- package/dist/cjs/lib/errors/AppError.js.map +1 -1
- package/dist/cjs/lib/fields/Fields.js +2 -1
- package/dist/cjs/lib/fields/Fields.js.map +1 -1
- package/dist/cjs/lib/fields/Link.js +2 -1
- package/dist/cjs/lib/fields/Link.js.map +1 -1
- package/dist/cjs/lib/localeVariants.js +9 -1
- package/dist/cjs/lib/localeVariants.js.map +1 -1
- package/dist/cjs/literals/index.js +0 -1
- package/dist/cjs/literals/index.js.map +1 -1
- package/dist/cjs/mail/adapters.js +3 -0
- package/dist/cjs/mail/adapters.js.map +1 -0
- package/dist/cjs/mail/index.js +53 -0
- package/dist/cjs/mail/index.js.map +1 -0
- package/dist/cjs/mail/mailService.js +209 -0
- package/dist/cjs/mail/mailService.js.map +1 -0
- package/dist/cjs/mail/templates.js +32 -0
- package/dist/cjs/mail/templates.js.map +1 -0
- package/dist/cjs/orm/createIndexes.js +37 -0
- package/dist/cjs/orm/createIndexes.js.map +1 -1
- package/dist/cjs/orm/dbService.js +3 -3
- package/dist/cjs/orm/dbService.js.map +1 -1
- package/dist/cjs/orm/operations/update.js +28 -26
- package/dist/cjs/orm/operations/update.js.map +1 -1
- package/dist/cjs/plugins.js.map +1 -1
- package/dist/cjs/schemas/manager/auth/externalLogin.js +27 -0
- package/dist/cjs/schemas/manager/auth/externalLogin.js.map +1 -0
- package/dist/cjs/schemas/manager/auth/mfa/recoveryCode.js +27 -0
- package/dist/cjs/schemas/manager/auth/mfa/recoveryCode.js.map +1 -0
- package/dist/cjs/schemas/manager/auth/passwordIpBlocks.js +32 -0
- package/dist/cjs/schemas/manager/auth/passwordIpBlocks.js.map +1 -0
- package/dist/cjs/schemas/manager/auth/passwordRecovery.js +21 -0
- package/dist/cjs/schemas/manager/auth/passwordRecovery.js.map +1 -0
- package/dist/cjs/schemas/manager/auth/totp/confirmTotp.js +4 -7
- package/dist/cjs/schemas/manager/auth/totp/confirmTotp.js.map +1 -1
- package/dist/cjs/schemas/manager/comments.js +11 -1
- package/dist/cjs/schemas/manager/comments.js.map +1 -1
- package/dist/cjs/schemas/manager/contentVersions.js +51 -0
- package/dist/cjs/schemas/manager/contentVersions.js.map +1 -0
- package/dist/cjs/schemas/manager/eventLogs.js +54 -0
- package/dist/cjs/schemas/manager/eventLogs.js.map +1 -0
- package/dist/cjs/schemas/manager/list.js +1 -0
- package/dist/cjs/schemas/manager/list.js.map +1 -1
- package/dist/cjs/schemas/manager/localeVariants.js +10 -1
- package/dist/cjs/schemas/manager/localeVariants.js.map +1 -1
- package/dist/cjs/schemas/manager/notifications.js +51 -0
- package/dist/cjs/schemas/manager/notifications.js.map +1 -0
- package/dist/cjs/schemas/manager/reviewPolicies.js +33 -0
- package/dist/cjs/schemas/manager/reviewPolicies.js.map +1 -0
- package/dist/cjs/schemas/manager/reviews.js +93 -0
- package/dist/cjs/schemas/manager/reviews.js.map +1 -0
- package/dist/cjs/schemas/manager/routeLayout.js +50 -0
- package/dist/cjs/schemas/manager/routeLayout.js.map +1 -0
- package/dist/cjs/schemas/manager/slugRedirects.js +24 -0
- package/dist/cjs/schemas/manager/slugRedirects.js.map +1 -0
- package/dist/cjs/schemas/manager/uiLocales.js +29 -0
- package/dist/cjs/schemas/manager/uiLocales.js.map +1 -0
- package/dist/cjs/schemas/manager/update.js +1 -0
- package/dist/cjs/schemas/manager/update.js.map +1 -1
- package/dist/docs/index.md +238 -0
- package/dist/esm/api/context.d.ts +2 -0
- package/dist/esm/api/context.d.ts.map +1 -1
- package/dist/esm/api/context.js +1 -0
- package/dist/esm/api/context.js.map +1 -1
- package/dist/esm/api/operations/apiEventLog.d.ts +25 -0
- package/dist/esm/api/operations/apiEventLog.d.ts.map +1 -0
- package/dist/esm/api/operations/apiEventLog.js +121 -0
- package/dist/esm/api/operations/apiEventLog.js.map +1 -0
- package/dist/esm/api/operations/index.d.ts +737 -4
- package/dist/esm/api/operations/index.d.ts.map +1 -1
- package/dist/esm/api/operations/index.js +1 -0
- package/dist/esm/api/operations/index.js.map +1 -1
- package/dist/esm/api/operations/manager-contract.d.ts +731 -4
- package/dist/esm/api/operations/manager-contract.d.ts.map +1 -1
- package/dist/esm/api/operations/manager-contract.js +257 -3
- package/dist/esm/api/operations/manager-contract.js.map +1 -1
- package/dist/esm/api/operations/manager-manifest.d.ts +160 -0
- package/dist/esm/api/operations/manager-manifest.d.ts.map +1 -1
- package/dist/esm/api/operations/manager-manifest.js +160 -0
- package/dist/esm/api/operations/manager-manifest.js.map +1 -1
- package/dist/esm/api/operations/manager.d.ts +731 -4
- package/dist/esm/api/operations/manager.d.ts.map +1 -1
- package/dist/esm/api/operations/manager.js +126 -2
- package/dist/esm/api/operations/manager.js.map +1 -1
- package/dist/esm/api/operations/tracing.d.ts.map +1 -1
- package/dist/esm/api/operations/tracing.js +36 -5
- package/dist/esm/api/operations/tracing.js.map +1 -1
- package/dist/esm/api/operations/web-contract.d.ts +5 -0
- package/dist/esm/api/operations/web-contract.d.ts.map +1 -1
- package/dist/esm/api/operations/web.d.ts +5 -0
- package/dist/esm/api/operations/web.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/externalLogin.d.ts +11 -0
- package/dist/esm/api/routes/manager/auth/externalLogin.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/auth/externalLogin.js +121 -0
- package/dist/esm/api/routes/manager/auth/externalLogin.js.map +1 -0
- package/dist/esm/api/routes/manager/auth/getSession.d.ts +2 -0
- package/dist/esm/api/routes/manager/auth/getSession.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/login.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/login.js +52 -55
- package/dist/esm/api/routes/manager/auth/login.js.map +1 -1
- package/dist/esm/api/routes/manager/auth/markTourSeen.d.ts +2 -0
- package/dist/esm/api/routes/manager/auth/markTourSeen.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/mfa/regenerateRecoveryCodes.d.ts +10 -0
- package/dist/esm/api/routes/manager/auth/mfa/regenerateRecoveryCodes.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/auth/mfa/regenerateRecoveryCodes.js +42 -0
- package/dist/esm/api/routes/manager/auth/mfa/regenerateRecoveryCodes.js.map +1 -0
- package/dist/esm/api/routes/manager/auth/mfa/verifyRecoveryCode.d.ts +15 -0
- package/dist/esm/api/routes/manager/auth/mfa/verifyRecoveryCode.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/auth/mfa/verifyRecoveryCode.js +76 -0
- package/dist/esm/api/routes/manager/auth/mfa/verifyRecoveryCode.js.map +1 -0
- package/dist/esm/api/routes/manager/auth/passwordIpBlocks.d.ts +10 -0
- package/dist/esm/api/routes/manager/auth/passwordIpBlocks.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/auth/passwordIpBlocks.js +85 -0
- package/dist/esm/api/routes/manager/auth/passwordIpBlocks.js.map +1 -0
- package/dist/esm/api/routes/manager/auth/passwordRecovery.d.ts +15 -0
- package/dist/esm/api/routes/manager/auth/passwordRecovery.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/auth/passwordRecovery.js +142 -0
- package/dist/esm/api/routes/manager/auth/passwordRecovery.js.map +1 -0
- package/dist/esm/api/routes/manager/auth/totp/confirmTotp.d.ts +2 -1
- package/dist/esm/api/routes/manager/auth/totp/confirmTotp.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/totp/confirmTotp.js +19 -2
- package/dist/esm/api/routes/manager/auth/totp/confirmTotp.js.map +1 -1
- package/dist/esm/api/routes/manager/auth/totp/enrollTotp.js +2 -2
- package/dist/esm/api/routes/manager/auth/totp/enrollTotp.js.map +1 -1
- package/dist/esm/api/routes/manager/auth/updateAccount.d.ts +2 -0
- package/dist/esm/api/routes/manager/auth/updateAccount.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/updateTutorialPreferences.d.ts +2 -0
- package/dist/esm/api/routes/manager/auth/updateTutorialPreferences.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterVerify.d.ts +2 -1
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterVerify.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterVerify.js +32 -3
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterVerify.js.map +1 -1
- package/dist/esm/api/routes/manager/comments.d.ts +9 -1
- package/dist/esm/api/routes/manager/comments.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/comments.js +118 -8
- package/dist/esm/api/routes/manager/comments.js.map +1 -1
- package/dist/esm/api/routes/manager/contentType.d.ts +1 -1
- package/dist/esm/api/routes/manager/contentTypes.d.ts +1 -1
- package/dist/esm/api/routes/manager/contentVersions.d.ts +15 -0
- package/dist/esm/api/routes/manager/contentVersions.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/contentVersions.js +218 -0
- package/dist/esm/api/routes/manager/contentVersions.js.map +1 -0
- package/dist/esm/api/routes/manager/create.d.ts +1 -0
- package/dist/esm/api/routes/manager/create.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/delete.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/delete.js +70 -6
- package/dist/esm/api/routes/manager/delete.js.map +1 -1
- package/dist/esm/api/routes/manager/duplicate.d.ts +1 -0
- package/dist/esm/api/routes/manager/duplicate.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/languages.d.ts +1 -0
- package/dist/esm/api/routes/manager/languages.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/list.d.ts +3 -0
- package/dist/esm/api/routes/manager/list.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/list.js +93 -4
- package/dist/esm/api/routes/manager/list.js.map +1 -1
- package/dist/esm/api/routes/manager/localeVariants.d.ts +215 -1
- package/dist/esm/api/routes/manager/localeVariants.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/localeVariants.js +218 -11
- package/dist/esm/api/routes/manager/localeVariants.js.map +1 -1
- package/dist/esm/api/routes/manager/logs/cleanup.d.ts +7 -0
- package/dist/esm/api/routes/manager/logs/cleanup.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/logs/cleanup.js +16 -0
- package/dist/esm/api/routes/manager/logs/cleanup.js.map +1 -0
- package/dist/esm/api/routes/manager/logs/list.d.ts +7 -0
- package/dist/esm/api/routes/manager/logs/list.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/logs/list.js +18 -0
- package/dist/esm/api/routes/manager/logs/list.js.map +1 -0
- package/dist/esm/api/routes/manager/notifications.d.ts +11 -0
- package/dist/esm/api/routes/manager/notifications.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/notifications.js +135 -0
- package/dist/esm/api/routes/manager/notifications.js.map +1 -0
- package/dist/esm/api/routes/manager/previewSlugRedirects.d.ts +7 -0
- package/dist/esm/api/routes/manager/previewSlugRedirects.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/previewSlugRedirects.js +21 -0
- package/dist/esm/api/routes/manager/previewSlugRedirects.js.map +1 -0
- package/dist/esm/api/routes/manager/reviewPolicies.d.ts +14 -0
- package/dist/esm/api/routes/manager/reviewPolicies.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/reviewPolicies.js +103 -0
- package/dist/esm/api/routes/manager/reviewPolicies.js.map +1 -0
- package/dist/esm/api/routes/manager/reviews.d.ts +23 -0
- package/dist/esm/api/routes/manager/reviews.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/reviews.js +264 -0
- package/dist/esm/api/routes/manager/reviews.js.map +1 -0
- package/dist/esm/api/routes/manager/routeLayout.d.ts +11 -0
- package/dist/esm/api/routes/manager/routeLayout.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/routeLayout.js +133 -0
- package/dist/esm/api/routes/manager/routeLayout.js.map +1 -0
- package/dist/esm/api/routes/manager/translateDocument.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/translateDocument.js +15 -0
- package/dist/esm/api/routes/manager/translateDocument.js.map +1 -1
- package/dist/esm/api/routes/manager/trash.d.ts +19 -0
- package/dist/esm/api/routes/manager/trash.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/trash.js +70 -38
- package/dist/esm/api/routes/manager/trash.js.map +1 -1
- package/dist/esm/api/routes/manager/uiLocales.d.ts +17 -0
- package/dist/esm/api/routes/manager/uiLocales.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/uiLocales.js +25 -0
- package/dist/esm/api/routes/manager/uiLocales.js.map +1 -0
- package/dist/esm/api/routes/manager/update.d.ts +1 -0
- package/dist/esm/api/routes/manager/update.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/update.js +87 -0
- package/dist/esm/api/routes/manager/update.js.map +1 -1
- package/dist/esm/api/routes/manager/versions/restore.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/versions/restore.js +20 -0
- package/dist/esm/api/routes/manager/versions/restore.js.map +1 -1
- package/dist/esm/api/routes/web/previewPage.d.ts +2 -0
- package/dist/esm/api/routes/web/previewPage.d.ts.map +1 -1
- package/dist/esm/api/utils/authEvents.d.ts +7 -0
- package/dist/esm/api/utils/authEvents.d.ts.map +1 -0
- package/dist/esm/api/utils/authEvents.js +27 -0
- package/dist/esm/api/utils/authEvents.js.map +1 -0
- package/dist/esm/api/utils/authRateLimit.d.ts.map +1 -1
- package/dist/esm/api/utils/authRateLimit.js +4 -3
- package/dist/esm/api/utils/authRateLimit.js.map +1 -1
- package/dist/esm/api/utils/getUser.d.ts +2 -0
- package/dist/esm/api/utils/getUser.d.ts.map +1 -1
- package/dist/esm/api/utils/managerNotifications.d.ts +39 -0
- package/dist/esm/api/utils/managerNotifications.d.ts.map +1 -0
- package/dist/esm/api/utils/managerNotifications.js +23 -0
- package/dist/esm/api/utils/managerNotifications.js.map +1 -0
- package/dist/esm/api/utils/recoveryCodes.d.ts +9 -0
- package/dist/esm/api/utils/recoveryCodes.d.ts.map +1 -0
- package/dist/esm/api/utils/recoveryCodes.js +22 -0
- package/dist/esm/api/utils/recoveryCodes.js.map +1 -0
- package/dist/esm/api/utils/redirects/createSlugChangeRedirects.d.ts +14 -0
- package/dist/esm/api/utils/redirects/createSlugChangeRedirects.d.ts.map +1 -0
- package/dist/esm/api/utils/redirects/createSlugChangeRedirects.js +141 -0
- package/dist/esm/api/utils/redirects/createSlugChangeRedirects.js.map +1 -0
- package/dist/esm/api/utils/redirects/slugPathChanges.d.ts +9 -0
- package/dist/esm/api/utils/redirects/slugPathChanges.d.ts.map +1 -0
- package/dist/esm/api/utils/redirects/slugPathChanges.js +133 -0
- package/dist/esm/api/utils/redirects/slugPathChanges.js.map +1 -0
- package/dist/esm/api/utils/requireContentType.d.ts.map +1 -1
- package/dist/esm/api/utils/requireContentType.js +13 -0
- package/dist/esm/api/utils/requireContentType.js.map +1 -1
- package/dist/esm/api/utils/reviews.d.ts +145 -0
- package/dist/esm/api/utils/reviews.d.ts.map +1 -0
- package/dist/esm/api/utils/reviews.js +253 -0
- package/dist/esm/api/utils/reviews.js.map +1 -0
- package/dist/esm/api/utils/routes/routeMapHelpers.d.ts +2 -0
- package/dist/esm/api/utils/routes/routeMapHelpers.d.ts.map +1 -1
- package/dist/esm/api/utils/routes/routeMapHelpers.js +45 -22
- package/dist/esm/api/utils/routes/routeMapHelpers.js.map +1 -1
- package/dist/esm/api/utils/routes/updateRoutesMap.d.ts +2 -1
- package/dist/esm/api/utils/routes/updateRoutesMap.d.ts.map +1 -1
- package/dist/esm/api/utils/routes/updateRoutesMap.js +2 -1
- package/dist/esm/api/utils/routes/updateRoutesMap.js.map +1 -1
- package/dist/esm/api/utils/safeManagerQuery.d.ts.map +1 -1
- package/dist/esm/api/utils/safeManagerQuery.js +1 -0
- package/dist/esm/api/utils/safeManagerQuery.js.map +1 -1
- package/dist/esm/auth/accountRecovery.d.ts +18 -0
- package/dist/esm/auth/accountRecovery.d.ts.map +1 -0
- package/dist/esm/auth/accountRecovery.js +2 -0
- package/dist/esm/auth/accountRecovery.js.map +1 -0
- package/dist/esm/auth/completePrimaryAuthentication.d.ts +3 -0
- package/dist/esm/auth/completePrimaryAuthentication.d.ts.map +1 -0
- package/dist/esm/auth/completePrimaryAuthentication.js +46 -0
- package/dist/esm/auth/completePrimaryAuthentication.js.map +1 -0
- package/dist/esm/auth/loginAdapters.d.ts +57 -0
- package/dist/esm/auth/loginAdapters.d.ts.map +1 -0
- package/dist/esm/auth/loginAdapters.js +176 -0
- package/dist/esm/auth/loginAdapters.js.map +1 -0
- package/dist/esm/auth/passwordFail2ban.d.ts +20 -0
- package/dist/esm/auth/passwordFail2ban.d.ts.map +1 -0
- package/dist/esm/auth/passwordFail2ban.js +110 -0
- package/dist/esm/auth/passwordFail2ban.js.map +1 -0
- package/dist/esm/auth/passwordResetMailTemplate.d.ts +3 -0
- package/dist/esm/auth/passwordResetMailTemplate.d.ts.map +1 -0
- package/dist/esm/auth/passwordResetMailTemplate.js +87 -0
- package/dist/esm/auth/passwordResetMailTemplate.js.map +1 -0
- package/dist/esm/bootstrapState.d.ts +24 -2
- package/dist/esm/bootstrapState.d.ts.map +1 -1
- package/dist/esm/bootstrapState.js.map +1 -1
- package/dist/esm/client.d.ts +12 -6
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +4 -4
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/contracts.d.ts +12 -0
- package/dist/esm/contracts.d.ts.map +1 -1
- package/dist/esm/contracts.js +12 -0
- package/dist/esm/contracts.js.map +1 -1
- package/dist/esm/eventLog/index.d.ts +12 -0
- package/dist/esm/eventLog/index.d.ts.map +1 -0
- package/dist/esm/eventLog/index.js +28 -0
- package/dist/esm/eventLog/index.js.map +1 -0
- package/dist/esm/eventLog/mongo.d.ts +5 -0
- package/dist/esm/eventLog/mongo.d.ts.map +1 -0
- package/dist/esm/eventLog/mongo.js +111 -0
- package/dist/esm/eventLog/mongo.js.map +1 -0
- package/dist/esm/eventLog/service.d.ts +19 -0
- package/dist/esm/eventLog/service.d.ts.map +1 -0
- package/dist/esm/eventLog/service.js +180 -0
- package/dist/esm/eventLog/service.js.map +1 -0
- package/dist/esm/eventLog/types.d.ts +73 -0
- package/dist/esm/eventLog/types.d.ts.map +1 -0
- package/dist/esm/eventLog/types.js +3 -0
- package/dist/esm/eventLog/types.js.map +1 -0
- package/dist/esm/index.d.ts +9 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +56 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal-content-types/Backup.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentComment.d.ts +35 -0
- package/dist/esm/internal-content-types/ContentComment.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentCommentReadState.d.ts +3499 -0
- package/dist/esm/internal-content-types/ContentCommentReadState.d.ts.map +1 -0
- package/dist/esm/internal-content-types/ContentCommentReadState.js +15 -0
- package/dist/esm/internal-content-types/ContentCommentReadState.js.map +1 -0
- package/dist/esm/internal-content-types/ContentReview.d.ts +10045 -0
- package/dist/esm/internal-content-types/ContentReview.d.ts.map +1 -0
- package/dist/esm/internal-content-types/ContentReview.js +28 -0
- package/dist/esm/internal-content-types/ContentReview.js.map +1 -0
- package/dist/esm/internal-content-types/ContentReviewDecision.d.ts +3181 -0
- package/dist/esm/internal-content-types/ContentReviewDecision.d.ts.map +1 -0
- package/dist/esm/internal-content-types/ContentReviewDecision.js +15 -0
- package/dist/esm/internal-content-types/ContentReviewDecision.js.map +1 -0
- package/dist/esm/internal-content-types/ContentReviewPolicy.d.ts +1211 -0
- package/dist/esm/internal-content-types/ContentReviewPolicy.d.ts.map +1 -0
- package/dist/esm/internal-content-types/ContentReviewPolicy.js +15 -0
- package/dist/esm/internal-content-types/ContentReviewPolicy.js.map +1 -0
- package/dist/esm/internal-content-types/ContentVersion.d.ts.map +1 -1
- package/dist/esm/internal-content-types/LinkedIteratorTemplate.d.ts.map +1 -1
- package/dist/esm/internal-content-types/LoginIpBlock.d.ts +434 -0
- package/dist/esm/internal-content-types/LoginIpBlock.d.ts.map +1 -0
- package/dist/esm/internal-content-types/LoginIpBlock.js +14 -0
- package/dist/esm/internal-content-types/LoginIpBlock.js.map +1 -0
- package/dist/esm/internal-content-types/ManagerFavorite.d.ts +28 -0
- package/dist/esm/internal-content-types/ManagerFavorite.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerNotification.d.ts +6614 -0
- package/dist/esm/internal-content-types/ManagerNotification.d.ts.map +1 -0
- package/dist/esm/internal-content-types/ManagerNotification.js +27 -0
- package/dist/esm/internal-content-types/ManagerNotification.js.map +1 -0
- package/dist/esm/internal-content-types/ManagerUser.d.ts +7 -0
- package/dist/esm/internal-content-types/ManagerUser.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerUserHooks.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerUserHooks.js +8 -1
- package/dist/esm/internal-content-types/ManagerUserHooks.js.map +1 -1
- package/dist/esm/internal-content-types/MfaChallenge.d.ts +28 -0
- package/dist/esm/internal-content-types/MfaChallenge.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Migration.d.ts.map +1 -1
- package/dist/esm/internal-content-types/PasswordResetToken.d.ts +3181 -0
- package/dist/esm/internal-content-types/PasswordResetToken.d.ts.map +1 -0
- package/dist/esm/internal-content-types/PasswordResetToken.js +44 -0
- package/dist/esm/internal-content-types/PasswordResetToken.js.map +1 -0
- package/dist/esm/internal-content-types/RobotsRule.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Route.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModule.d.ts.map +1 -1
- package/dist/esm/internal-content-types/SchemaState.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Session.d.ts +28 -0
- package/dist/esm/internal-content-types/Session.d.ts.map +1 -1
- package/dist/esm/internal-content-types/UserMfa.d.ts +30 -0
- package/dist/esm/internal-content-types/UserMfa.d.ts.map +1 -1
- package/dist/esm/internal-content-types/UserMfa.js +35 -1
- package/dist/esm/internal-content-types/UserMfa.js.map +1 -1
- package/dist/esm/internal-content-types/WebAuthnCredential.d.ts +28 -0
- package/dist/esm/internal-content-types/WebAuthnCredential.d.ts.map +1 -1
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts +28 -0
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts.map +1 -1
- package/dist/esm/internal-content-types/index.d.ts +7 -0
- package/dist/esm/internal-content-types/index.d.ts.map +1 -1
- package/dist/esm/internal-content-types/index.js +7 -0
- package/dist/esm/internal-content-types/index.js.map +1 -1
- package/dist/esm/internal-content-types/syncAdminRole.d.ts +1 -0
- package/dist/esm/internal-content-types/syncAdminRole.d.ts.map +1 -1
- package/dist/esm/lib/ContentType.d.ts +7 -9
- package/dist/esm/lib/ContentType.d.ts.map +1 -1
- package/dist/esm/lib/ContentType.js +3 -9
- package/dist/esm/lib/ContentType.js.map +1 -1
- package/dist/esm/lib/Permissions.d.ts +3 -0
- package/dist/esm/lib/Permissions.d.ts.map +1 -1
- package/dist/esm/lib/Permissions.js +13 -1
- package/dist/esm/lib/Permissions.js.map +1 -1
- package/dist/esm/lib/Registry.d.ts +6 -3
- package/dist/esm/lib/Registry.d.ts.map +1 -1
- package/dist/esm/lib/Registry.js +7 -3
- package/dist/esm/lib/Registry.js.map +1 -1
- package/dist/esm/lib/errors/AppError.d.ts.map +1 -1
- package/dist/esm/lib/errors/AppError.js +7 -1
- package/dist/esm/lib/errors/AppError.js.map +1 -1
- package/dist/esm/lib/fields/Fields.d.ts +15 -0
- package/dist/esm/lib/fields/Fields.d.ts.map +1 -1
- package/dist/esm/lib/fields/Fields.js +1 -0
- package/dist/esm/lib/fields/Fields.js.map +1 -1
- package/dist/esm/lib/fields/Link.d.ts +2 -2
- package/dist/esm/lib/fields/Link.d.ts.map +1 -1
- package/dist/esm/lib/fields/Link.js +2 -1
- package/dist/esm/lib/fields/Link.js.map +1 -1
- package/dist/esm/lib/localeVariants.d.ts +3 -0
- package/dist/esm/lib/localeVariants.d.ts.map +1 -1
- package/dist/esm/lib/localeVariants.js +7 -0
- package/dist/esm/lib/localeVariants.js.map +1 -1
- package/dist/esm/lib/types/index.d.ts +1 -0
- package/dist/esm/lib/types/index.d.ts.map +1 -1
- package/dist/esm/literals/index.d.ts +0 -1
- package/dist/esm/literals/index.d.ts.map +1 -1
- package/dist/esm/literals/index.js +0 -1
- package/dist/esm/literals/index.js.map +1 -1
- package/dist/esm/mail/adapters.d.ts +34 -0
- package/dist/esm/mail/adapters.d.ts.map +1 -0
- package/dist/esm/mail/adapters.js +2 -0
- package/dist/esm/mail/adapters.js.map +1 -0
- package/dist/esm/mail/index.d.ts +11 -0
- package/dist/esm/mail/index.d.ts.map +1 -0
- package/dist/esm/mail/index.js +31 -0
- package/dist/esm/mail/index.js.map +1 -0
- package/dist/esm/mail/mailService.d.ts +58 -0
- package/dist/esm/mail/mailService.d.ts.map +1 -0
- package/dist/esm/mail/mailService.js +202 -0
- package/dist/esm/mail/mailService.js.map +1 -0
- package/dist/esm/mail/templates.d.ts +26 -0
- package/dist/esm/mail/templates.d.ts.map +1 -0
- package/dist/esm/mail/templates.js +27 -0
- package/dist/esm/mail/templates.js.map +1 -0
- package/dist/esm/manager.d.ts +160 -0
- package/dist/esm/manager.d.ts.map +1 -1
- package/dist/esm/orm/createIndexes.d.ts.map +1 -1
- package/dist/esm/orm/createIndexes.js +38 -1
- package/dist/esm/orm/createIndexes.js.map +1 -1
- package/dist/esm/orm/dbService.js +3 -3
- package/dist/esm/orm/dbService.js.map +1 -1
- package/dist/esm/orm/operations/update.d.ts.map +1 -1
- package/dist/esm/orm/operations/update.js +28 -26
- package/dist/esm/orm/operations/update.js.map +1 -1
- package/dist/esm/plugins.d.ts +4 -0
- package/dist/esm/plugins.d.ts.map +1 -1
- package/dist/esm/plugins.js.map +1 -1
- package/dist/esm/schemas/manager/auth/externalLogin.d.ts +42 -0
- package/dist/esm/schemas/manager/auth/externalLogin.d.ts.map +1 -0
- package/dist/esm/schemas/manager/auth/externalLogin.js +21 -0
- package/dist/esm/schemas/manager/auth/externalLogin.js.map +1 -0
- package/dist/esm/schemas/manager/auth/mfa/recoveryCode.d.ts +22 -0
- package/dist/esm/schemas/manager/auth/mfa/recoveryCode.d.ts.map +1 -0
- package/dist/esm/schemas/manager/auth/mfa/recoveryCode.js +21 -0
- package/dist/esm/schemas/manager/auth/mfa/recoveryCode.js.map +1 -0
- package/dist/esm/schemas/manager/auth/passwordIpBlocks.d.ts +36 -0
- package/dist/esm/schemas/manager/auth/passwordIpBlocks.d.ts.map +1 -0
- package/dist/esm/schemas/manager/auth/passwordIpBlocks.js +26 -0
- package/dist/esm/schemas/manager/auth/passwordIpBlocks.js.map +1 -0
- package/dist/esm/schemas/manager/auth/passwordRecovery.d.ts +17 -0
- package/dist/esm/schemas/manager/auth/passwordRecovery.d.ts.map +1 -0
- package/dist/esm/schemas/manager/auth/passwordRecovery.js +15 -0
- package/dist/esm/schemas/manager/auth/passwordRecovery.js.map +1 -0
- package/dist/esm/schemas/manager/auth/totp/confirmTotp.d.ts +4 -5
- package/dist/esm/schemas/manager/auth/totp/confirmTotp.d.ts.map +1 -1
- package/dist/esm/schemas/manager/auth/totp/confirmTotp.js +4 -7
- package/dist/esm/schemas/manager/auth/totp/confirmTotp.js.map +1 -1
- package/dist/esm/schemas/manager/comments.d.ts +15 -0
- package/dist/esm/schemas/manager/comments.d.ts.map +1 -1
- package/dist/esm/schemas/manager/comments.js +10 -0
- package/dist/esm/schemas/manager/comments.js.map +1 -1
- package/dist/esm/schemas/manager/contentVersions.d.ts +442 -0
- package/dist/esm/schemas/manager/contentVersions.d.ts.map +1 -0
- package/dist/esm/schemas/manager/contentVersions.js +45 -0
- package/dist/esm/schemas/manager/contentVersions.js.map +1 -0
- package/dist/esm/schemas/manager/eventLogs.d.ts +127 -0
- package/dist/esm/schemas/manager/eventLogs.d.ts.map +1 -0
- package/dist/esm/schemas/manager/eventLogs.js +48 -0
- package/dist/esm/schemas/manager/eventLogs.js.map +1 -0
- package/dist/esm/schemas/manager/list.d.ts +1 -0
- package/dist/esm/schemas/manager/list.d.ts.map +1 -1
- package/dist/esm/schemas/manager/list.js +1 -0
- package/dist/esm/schemas/manager/list.js.map +1 -1
- package/dist/esm/schemas/manager/localeVariants.d.ts +51 -0
- package/dist/esm/schemas/manager/localeVariants.d.ts.map +1 -1
- package/dist/esm/schemas/manager/localeVariants.js +9 -0
- package/dist/esm/schemas/manager/localeVariants.js.map +1 -1
- package/dist/esm/schemas/manager/notifications.d.ts +79 -0
- package/dist/esm/schemas/manager/notifications.d.ts.map +1 -0
- package/dist/esm/schemas/manager/notifications.js +45 -0
- package/dist/esm/schemas/manager/notifications.js.map +1 -0
- package/dist/esm/schemas/manager/reviewPolicies.d.ts +43 -0
- package/dist/esm/schemas/manager/reviewPolicies.d.ts.map +1 -0
- package/dist/esm/schemas/manager/reviewPolicies.js +27 -0
- package/dist/esm/schemas/manager/reviewPolicies.js.map +1 -0
- package/dist/esm/schemas/manager/reviews.d.ts +442 -0
- package/dist/esm/schemas/manager/reviews.d.ts.map +1 -0
- package/dist/esm/schemas/manager/reviews.js +87 -0
- package/dist/esm/schemas/manager/reviews.js.map +1 -0
- package/dist/esm/schemas/manager/routeLayout.d.ts +75 -0
- package/dist/esm/schemas/manager/routeLayout.d.ts.map +1 -0
- package/dist/esm/schemas/manager/routeLayout.js +44 -0
- package/dist/esm/schemas/manager/routeLayout.js.map +1 -0
- package/dist/esm/schemas/manager/slugRedirects.d.ts +26 -0
- package/dist/esm/schemas/manager/slugRedirects.d.ts.map +1 -0
- package/dist/esm/schemas/manager/slugRedirects.js +18 -0
- package/dist/esm/schemas/manager/slugRedirects.js.map +1 -0
- package/dist/esm/schemas/manager/uiLocales.d.ts +33 -0
- package/dist/esm/schemas/manager/uiLocales.d.ts.map +1 -0
- package/dist/esm/schemas/manager/uiLocales.js +25 -0
- package/dist/esm/schemas/manager/uiLocales.js.map +1 -0
- package/dist/esm/schemas/manager/update.d.ts +1 -0
- package/dist/esm/schemas/manager/update.d.ts.map +1 -1
- package/dist/esm/schemas/manager/update.js +1 -0
- package/dist/esm/schemas/manager/update.js.map +1 -1
- package/dist/esm/schemas/web/page.d.ts +12 -0
- package/dist/esm/schemas/web/page.d.ts.map +1 -1
- package/dist/esm/schemas/web/previewPage.d.ts +8 -0
- package/dist/esm/schemas/web/previewPage.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +11 -4
- package/dist/cjs/literals/manager.js +0 -43
- package/dist/cjs/literals/manager.js.map +0 -1
- package/dist/cjs/literals/managerLiterals.js +0 -15
- package/dist/cjs/literals/managerLiterals.js.map +0 -1
- package/dist/esm/literals/manager.d.ts +0 -22
- package/dist/esm/literals/manager.d.ts.map +0 -1
- package/dist/esm/literals/manager.js +0 -38
- package/dist/esm/literals/manager.js.map +0 -1
- package/dist/esm/literals/managerLiterals.d.ts +0 -12
- package/dist/esm/literals/managerLiterals.d.ts.map +0 -1
- package/dist/esm/literals/managerLiterals.js +0 -12
- package/dist/esm/literals/managerLiterals.js.map +0 -1
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# Rakun AI manual and package index
|
|
2
|
+
|
|
3
|
+
This is the entry point for coding agents working on an application that uses
|
|
4
|
+
Rakun. It describes the package map, the normal architecture, and the public
|
|
5
|
+
surface of `@rakun-kit/core`. Read the manual for every adapter used by the
|
|
6
|
+
application before editing its integration.
|
|
7
|
+
|
|
8
|
+
In an installed project this file is located at
|
|
9
|
+
`node_modules/@rakun-kit/core/dist/docs/index.md`. Other package manuals use the
|
|
10
|
+
same `dist/docs/index.md` location.
|
|
11
|
+
|
|
12
|
+
## Package map
|
|
13
|
+
|
|
14
|
+
| Package | Use it for | Installed manual |
|
|
15
|
+
| ------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------- |
|
|
16
|
+
| `@rakun-kit/core` | Domain model, bootstrap, operations, auth, routes, media, mail and shared contracts | This file |
|
|
17
|
+
| `@rakun-kit/next` | Next.js App Router API, manager, media and web rendering | `node_modules/@rakun-kit/next/dist/docs/index.md` |
|
|
18
|
+
| `@rakun-kit/express` | Express API and local-media adapter | `node_modules/@rakun-kit/express/dist/docs/index.md` |
|
|
19
|
+
| `@rakun-kit/trpc` | Typed tRPC router for manager and web operations | `node_modules/@rakun-kit/trpc/dist/docs/index.md` |
|
|
20
|
+
| `@rakun-kit/react` | Framework-neutral React module rendering | `node_modules/@rakun-kit/react/dist/docs/index.md` |
|
|
21
|
+
| `@rakun-kit/manager-react` | Manager UI, clients, navigation and plugin runtime | `node_modules/@rakun-kit/manager-react/dist/docs/index.md` |
|
|
22
|
+
| `@rakun-kit/manager-locales` | Optional manager UI locale packs | `node_modules/@rakun-kit/manager-locales/dist/docs/index.md` |
|
|
23
|
+
| `@rakun-kit/s3` | S3 and S3-compatible media storage | `node_modules/@rakun-kit/s3/dist/docs/index.md` |
|
|
24
|
+
| `@rakun-kit/smtp` | SMTP mail delivery | `node_modules/@rakun-kit/smtp/dist/docs/index.md` |
|
|
25
|
+
| `@rakun-kit/resend` | Resend mail delivery | `node_modules/@rakun-kit/resend/dist/docs/index.md` |
|
|
26
|
+
| `@rakun-kit/jsx-email` | Typed JSX Email template rendering | `node_modules/@rakun-kit/jsx-email/dist/docs/index.md` |
|
|
27
|
+
| `@rakun-kit/openai` | OpenAI-backed automatic content translation | `node_modules/@rakun-kit/openai/dist/docs/index.md` |
|
|
28
|
+
| `@rakun-kit/plugin-code-editor` | Code blocks in manager RichText fields | `node_modules/@rakun-kit/plugin-code-editor/dist/docs/index.md` |
|
|
29
|
+
| `create-rakun-app` | Official project generator and framework starter templates | `node_modules/create-rakun-app/dist/docs/index.md` |
|
|
30
|
+
|
|
31
|
+
Choose one server adapter (`next` or `express`). Add `trpc` only if the host
|
|
32
|
+
wants tRPC, one media adapter if uploads are required, and one mail adapter if
|
|
33
|
+
outbound mail is required. `manager-react` is normally consumed through the
|
|
34
|
+
Next adapter; use it directly for custom hosts.
|
|
35
|
+
|
|
36
|
+
`preview` and `preview-next` are private example applications in the Rakun
|
|
37
|
+
repository, not installable packages, so they do not have installed manuals.
|
|
38
|
+
|
|
39
|
+
## Typical architecture
|
|
40
|
+
|
|
41
|
+
1. Define literals, content types, routes and any custom operations in
|
|
42
|
+
framework-neutral server modules.
|
|
43
|
+
2. Call `rakunBootstrap` once, or pass the same options to an adapter that calls
|
|
44
|
+
`ensureRakunBootstrap`.
|
|
45
|
+
3. Mount the API with `@rakun-kit/next` or `@rakun-kit/express`.
|
|
46
|
+
4. Render the manager and web modules with the corresponding React integration.
|
|
47
|
+
5. Keep browser code away from server secrets and server-only package entries.
|
|
48
|
+
|
|
49
|
+
## Install and peer requirements
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
bun add @rakun-kit/core mongodb bcrypt sharp zod
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`mongodb`, `bcrypt` and `sharp` are peer dependencies. Install only compatible
|
|
56
|
+
versions declared by the package. Adapters and optional services are separate
|
|
57
|
+
packages.
|
|
58
|
+
|
|
59
|
+
## Bootstrap
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
import { ContentType, f, rakunBootstrap } from '@rakun-kit/core'
|
|
63
|
+
|
|
64
|
+
const Article = new ContentType({
|
|
65
|
+
name: 'Article',
|
|
66
|
+
menu: { title: 'Articles', icon: 'newspaper', category: 'Content' },
|
|
67
|
+
fields: {
|
|
68
|
+
title: f.string().required(),
|
|
69
|
+
slug: f.string().type('Slug').required(),
|
|
70
|
+
body: f.string().type('RichText'),
|
|
71
|
+
},
|
|
72
|
+
uniques: [['slug']],
|
|
73
|
+
listFields: ['title', 'slug'],
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
rakunBootstrap({
|
|
77
|
+
literals,
|
|
78
|
+
contentTypes: [Article],
|
|
79
|
+
routes,
|
|
80
|
+
mongo: {
|
|
81
|
+
MONGO_URI: process.env.MONGO_URI!,
|
|
82
|
+
ENVIRONMENT: process.env.NODE_ENV === 'test' ? 'test' : 'production',
|
|
83
|
+
},
|
|
84
|
+
})
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Important bootstrap options are `literals`, `contentTypes`,
|
|
88
|
+
`internalContentTypes`, `routes`, `apiOperations`, `plugins`, `mongo`, `media`,
|
|
89
|
+
`mail`, `translation`, `managerLanguages`, `login`, `accountRecovery`, `logger`
|
|
90
|
+
and `syncRoutes`.
|
|
91
|
+
|
|
92
|
+
- `rakunBootstrap(options)` registers configuration synchronously.
|
|
93
|
+
- `ensureRakunBootstrap(options)` registers it only if needed. Framework
|
|
94
|
+
adapters use this to tolerate development reloads.
|
|
95
|
+
- `ensureRakunInitialized()` initializes logger, MongoDB, media and route sync.
|
|
96
|
+
It is concurrency-safe and retries after a failed initialization.
|
|
97
|
+
|
|
98
|
+
Do not import React, Next, Express, Vite or tRPC into core configuration modules.
|
|
99
|
+
|
|
100
|
+
## Content types and fields
|
|
101
|
+
|
|
102
|
+
`ContentType` describes a collection and derives its validation and TypeScript
|
|
103
|
+
shapes. Use `f` factories rather than handwritten storage schemas.
|
|
104
|
+
`Fields` remains available as a backward-compatible alias and references the
|
|
105
|
+
same object, but new code and examples should prefer `f`.
|
|
106
|
+
|
|
107
|
+
Common factories include string, number, boolean, date, object, relation, file,
|
|
108
|
+
blocks and array/list forms. Chain field modifiers such as `.required()`,
|
|
109
|
+
`.multiple()`, `.managerOnly()`, `.apiOnly()` and `.noDynamic()` when applicable.
|
|
110
|
+
Special manager editors are selected with `.type(...)`, for example `Slug`,
|
|
111
|
+
`RichText`, `Email`, `Password` and `Image`.
|
|
112
|
+
|
|
113
|
+
`f.link()` accepts either a direct URL string or an internal
|
|
114
|
+
`{ routeId, contentTypeId }` reference. Internal references resolve to localized
|
|
115
|
+
paths in web output; direct URLs pass through unchanged.
|
|
116
|
+
|
|
117
|
+
Use `iterator` for ordered page modules. Rakun stores it as the reserved
|
|
118
|
+
`_iterator` field. `linkedIterator: true` shares a canonical module structure
|
|
119
|
+
between documents while allowing a document to be explicitly unlinked.
|
|
120
|
+
|
|
121
|
+
```ts
|
|
122
|
+
const Page = new ContentType({
|
|
123
|
+
name: 'Page',
|
|
124
|
+
fields: {
|
|
125
|
+
title: f.string().required(),
|
|
126
|
+
slug: f.string().type('Slug').required(),
|
|
127
|
+
},
|
|
128
|
+
iterator: [{ contentType: Hero, type: 'new' }],
|
|
129
|
+
linkedIterator: true,
|
|
130
|
+
})
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Content type names, field names and reserved fields are persisted API. Do not
|
|
134
|
+
rename them without a data migration and a review of manager and web consumers.
|
|
135
|
+
Use `.withHooks(...)` for lifecycle behavior; keep mutations and secrets out of
|
|
136
|
+
`onGet` transformations unless that behavior is explicitly intended.
|
|
137
|
+
|
|
138
|
+
## Routes and web output
|
|
139
|
+
|
|
140
|
+
Routes connect a content type field to a public URL. A page route may also have
|
|
141
|
+
a fixed `layout` with module slots and a `{ type: 'content' }` insertion point.
|
|
142
|
+
When a content type has a `hasPage: true` route, core adds optional `_seo`
|
|
143
|
+
metadata and can expose generated `href` values to dynamic data.
|
|
144
|
+
|
|
145
|
+
Use `@rakun-kit/core/web` for framework-neutral web types/utilities. Use the
|
|
146
|
+
Next or React manual for actual rendering. Route changes can affect configured
|
|
147
|
+
redirects, sitemap, robots output, preview, and adapter behavior.
|
|
148
|
+
|
|
149
|
+
## Custom operations
|
|
150
|
+
|
|
151
|
+
Define public API behavior with the operation helpers and Zod input/output
|
|
152
|
+
schemas. Register the map through `apiOperations` so adapters and typed clients
|
|
153
|
+
share one contract.
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
import { defineOperation } from '@rakun-kit/core'
|
|
157
|
+
import { z } from 'zod'
|
|
158
|
+
|
|
159
|
+
export const apiOperations = {
|
|
160
|
+
'demo.hello': defineOperation({
|
|
161
|
+
access: 'public',
|
|
162
|
+
kind: 'query',
|
|
163
|
+
method: 'get',
|
|
164
|
+
input: z.object({ name: z.string() }),
|
|
165
|
+
output: z.object({ message: z.string() }),
|
|
166
|
+
resolve: ({ input }) => ({ message: `Hello ${input.name}` }),
|
|
167
|
+
}),
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Keep operations in server modules. Client code should import the operation map
|
|
172
|
+
with `import type` and use the typed client supplied by its adapter.
|
|
173
|
+
|
|
174
|
+
Every API error, including expected 4xx errors, must reach Rakun's persistent
|
|
175
|
+
event log without persisting payloads, credentials, sensitive causes or raw
|
|
176
|
+
internal error messages. Successful mutations already emit
|
|
177
|
+
`<operation>.succeeded`; add explicit domain events for meaningful phases,
|
|
178
|
+
external effects or partial outcomes. Queries are not logged by default.
|
|
179
|
+
|
|
180
|
+
## Request context, auth and permissions
|
|
181
|
+
|
|
182
|
+
Adapters create a Rakun request context from headers, cookies and their response
|
|
183
|
+
abstraction. Prefer existing helpers such as `getUser`, `checkPermissions` and
|
|
184
|
+
`checkOwnership`; do not duplicate authorization rules in application code.
|
|
185
|
+
|
|
186
|
+
External manager login adapters are configured under `login.adapters`.
|
|
187
|
+
Provider emails must be verified and match an existing manager user; Rakun does
|
|
188
|
+
not provision users automatically. Password login can use persistent IP
|
|
189
|
+
blocking. Account recovery requires both a mail service and
|
|
190
|
+
`accountRecovery.passwordReset` configuration.
|
|
191
|
+
|
|
192
|
+
## Media, mail and translation
|
|
193
|
+
|
|
194
|
+
Core defines service contracts; concrete integrations are separate:
|
|
195
|
+
|
|
196
|
+
- Media: use `@rakun-kit/s3`, or local media from the selected framework
|
|
197
|
+
adapter. Configure the result as `media` in bootstrap.
|
|
198
|
+
- Mail: use `@rakun-kit/smtp` or `@rakun-kit/resend`; optionally render typed
|
|
199
|
+
templates with `@rakun-kit/jsx-email`. Configure delivery as `mail`.
|
|
200
|
+
- Translation: use `@rakun-kit/openai` or implement the core translation
|
|
201
|
+
adapter contract. Configure it as `translation`.
|
|
202
|
+
|
|
203
|
+
Never expose adapter credentials in client modules. Public and private media
|
|
204
|
+
have different URL semantics; do not replace stored media objects with raw URLs.
|
|
205
|
+
|
|
206
|
+
## Manager languages and user-facing text
|
|
207
|
+
|
|
208
|
+
Web/content-facing text belongs in Rakun literals. Manager UI text belongs in
|
|
209
|
+
the manager catalog. English manager copy is built into `manager-react`; add
|
|
210
|
+
optional packs such as Spanish through `@rakun-kit/manager-locales/es` and
|
|
211
|
+
`managerLanguages`.
|
|
212
|
+
|
|
213
|
+
Project-defined manager labels may use arbitrary keys. Field labels follow
|
|
214
|
+
`field.<fieldName>` and layout slots follow `layoutModule.<layoutKey>`.
|
|
215
|
+
|
|
216
|
+
## Public entrypoints
|
|
217
|
+
|
|
218
|
+
- `@rakun-kit/core`: bootstrap and the main domain/runtime API.
|
|
219
|
+
- `@rakun-kit/core/contracts`: shared schemas, operation and locale contracts.
|
|
220
|
+
- `@rakun-kit/core/client`: browser-safe client types and utilities.
|
|
221
|
+
- `@rakun-kit/core/manager`: manager operation metadata and types.
|
|
222
|
+
- `@rakun-kit/core/web`: web output types and utilities.
|
|
223
|
+
- `@rakun-kit/core/types`: content-type-derived helpers.
|
|
224
|
+
- `@rakun-kit/core/logger`, `/errors`, `/literals`, `/api-utils`, `/plugins`,
|
|
225
|
+
`/event-log` and `/internal-content-types`: focused public surfaces.
|
|
226
|
+
|
|
227
|
+
Import only declared package entrypoints. Do not reach into `dist/esm`,
|
|
228
|
+
`dist/cjs` or source paths.
|
|
229
|
+
|
|
230
|
+
## Agent checklist
|
|
231
|
+
|
|
232
|
+
- Identify the host adapter and read its installed manual.
|
|
233
|
+
- Confirm an API is exported before importing it.
|
|
234
|
+
- Preserve the server/browser boundary and use `import type` for contracts.
|
|
235
|
+
- Reuse core validation, auth, operation, logging and service abstractions.
|
|
236
|
+
- Treat persisted names and public schemas as compatibility boundaries.
|
|
237
|
+
- Update application tests when content, routes, permissions or operation
|
|
238
|
+
behavior changes.
|
|
@@ -11,6 +11,7 @@ export type RakunRequestContext = {
|
|
|
11
11
|
req?: {
|
|
12
12
|
headers?: Record<string, string | string[] | undefined>;
|
|
13
13
|
cookies?: Record<string, string>;
|
|
14
|
+
ip?: string;
|
|
14
15
|
};
|
|
15
16
|
res?: {
|
|
16
17
|
setHeader: (name: string, value: string | string[]) => void;
|
|
@@ -22,6 +23,7 @@ export type RakunRequestContext = {
|
|
|
22
23
|
export type RakunRequestContextInput = {
|
|
23
24
|
headers?: Record<string, string | string[] | undefined>;
|
|
24
25
|
cookies?: Record<string, string>;
|
|
26
|
+
ip?: string;
|
|
25
27
|
res: {
|
|
26
28
|
setHeader: (name: string, value: string | string[]) => void;
|
|
27
29
|
cookie?: (name: string, value: string, options?: CookieOptions) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/api/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/api/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,CAAC,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;KACzE,CAAC;IACF,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,iBAAiB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE;QACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;KACzE,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,wBAAwB,KAC9B,OAAO,CAAC,mBAAmB,CAgC7B,CAAC"}
|
package/dist/esm/api/context.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/api/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/api/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAmC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,KAA+B,EACD,EAAE;IAChC,MAAM,GAAG,GAAwB;QAC/B,GAAG,EAAE;YACH,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,EAAE,EAAE,KAAK,CAAC,EAAE;SACb;QACD,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO;YACL,OAAO,EAAuB,CAAC;QACjC,CAAC;KACF,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,sBAAsB,GAAG,KAAK,CAAC;IAEnC,OAAO;QACL,GAAG,GAAG;QACN,IAAI;QACJ,OAAO;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,aAAa,CAAC,eAAe,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC5B,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChE,sBAAsB,GAAG,IAAI,CAAC;YAChC,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { EventLogJsonValue } from '../../eventLog/index.js';
|
|
2
|
+
import type { RakunRequestContext } from '../context.js';
|
|
3
|
+
import type { AnyRakunOperation } from './types.js';
|
|
4
|
+
export declare const setApiErrorEventData: (ctx: RakunRequestContext | undefined, data: Record<string, EventLogJsonValue>) => void;
|
|
5
|
+
export declare const setApiSuccessEventData: (ctx: RakunRequestContext, data: Record<string, EventLogJsonValue>) => void;
|
|
6
|
+
export type ApiErrorLogInput = {
|
|
7
|
+
name: string;
|
|
8
|
+
operation?: Pick<AnyRakunOperation, 'kind' | 'method'>;
|
|
9
|
+
ctx?: RakunRequestContext;
|
|
10
|
+
error: unknown;
|
|
11
|
+
statusCode?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Marks the outer API adapter boundary. It clears propagation deduplication
|
|
14
|
+
* so a reused Error object can still be recorded by a later request.
|
|
15
|
+
*/
|
|
16
|
+
boundary?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare const recordApiError: ({ name, operation, ctx, error, statusCode, boundary, }: ApiErrorLogInput) => Promise<void>;
|
|
19
|
+
export type ApiOperationSuccessLogInput = {
|
|
20
|
+
name: string;
|
|
21
|
+
operation: Pick<AnyRakunOperation, 'kind' | 'method'>;
|
|
22
|
+
ctx: RakunRequestContext;
|
|
23
|
+
};
|
|
24
|
+
export declare const recordApiOperationSuccess: ({ name, operation, ctx, }: ApiOperationSuccessLogInput) => Promise<void>;
|
|
25
|
+
//# sourceMappingURL=apiEventLog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiEventLog.d.ts","sourceRoot":"","sources":["../../../../src/api/operations/apiEventLog.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAYhD,eAAO,MAAM,oBAAoB,GAC/B,KAAK,mBAAmB,GAAG,SAAS,EACpC,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,SAGxC,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,KAAK,mBAAmB,EACxB,MAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,SAGxC,CAAA;AAgCD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAA;IACtD,GAAG,CAAC,EAAE,mBAAmB,CAAA;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,wDAOlC,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAqDjC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAA;IACrD,GAAG,EAAE,mBAAmB,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAU,2BAI7C,2BAA2B,KAAG,OAAO,CAAC,IAAI,CA0C5C,CAAA"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { getEventLogService, hasEventLogService } from '../../eventLog/index.js';
|
|
2
|
+
import { getAppErrorShape, getAppErrorStatusCode } from '../../lib/errors/index.js';
|
|
3
|
+
import { Logger } from '../../lib/Logger.js';
|
|
4
|
+
const loggedApiErrors = new WeakSet();
|
|
5
|
+
const apiErrorEventData = new WeakMap();
|
|
6
|
+
const apiSuccessEventData = new WeakMap();
|
|
7
|
+
export const setApiErrorEventData = (ctx, data) => {
|
|
8
|
+
if (ctx)
|
|
9
|
+
apiErrorEventData.set(ctx, data);
|
|
10
|
+
};
|
|
11
|
+
export const setApiSuccessEventData = (ctx, data) => {
|
|
12
|
+
apiSuccessEventData.set(ctx, data);
|
|
13
|
+
};
|
|
14
|
+
const getHeaderValue = (headers, name) => {
|
|
15
|
+
const value = headers?.[name];
|
|
16
|
+
return Array.isArray(value) ? value[0] : value;
|
|
17
|
+
};
|
|
18
|
+
const getCorrelationId = (ctx) => {
|
|
19
|
+
const headers = ctx?.req?.headers;
|
|
20
|
+
return getHeaderValue(headers, 'x-correlation-id') ?? getHeaderValue(headers, 'x-request-id');
|
|
21
|
+
};
|
|
22
|
+
const getErrorName = (error) => {
|
|
23
|
+
if (error instanceof Error && error.name.trim()) {
|
|
24
|
+
return error.name;
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
};
|
|
28
|
+
const isObjectError = (error) => (typeof error === 'object' && error !== null) || typeof error === 'function';
|
|
29
|
+
const getActor = (ctx) => ctx?.user?._id
|
|
30
|
+
? { type: 'manager-user', id: String(ctx.user._id) }
|
|
31
|
+
: { type: 'anonymous' };
|
|
32
|
+
export const recordApiError = async ({ name, operation, ctx, error, statusCode, boundary = false, }) => {
|
|
33
|
+
if (isObjectError(error) && loggedApiErrors.has(error)) {
|
|
34
|
+
if (boundary) {
|
|
35
|
+
loggedApiErrors.delete(error);
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const appError = getAppErrorShape(error);
|
|
40
|
+
const resolvedStatusCode = statusCode ?? getAppErrorStatusCode(error) ?? 500;
|
|
41
|
+
const errorName = appError ? undefined : getErrorName(error);
|
|
42
|
+
const contextualData = ctx ? apiErrorEventData.get(ctx) : undefined;
|
|
43
|
+
if (ctx)
|
|
44
|
+
apiErrorEventData.delete(ctx);
|
|
45
|
+
if (!hasEventLogService()) {
|
|
46
|
+
Logger?.error?.('API error could not be persisted because the event log is not initialized', {
|
|
47
|
+
operation: name,
|
|
48
|
+
statusCode: resolvedStatusCode,
|
|
49
|
+
});
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
await getEventLogService().record({
|
|
54
|
+
type: 'api.operation.failed',
|
|
55
|
+
category: 'api',
|
|
56
|
+
severity: resolvedStatusCode >= 500 ? 'error' : 'warning',
|
|
57
|
+
outcome: 'failure',
|
|
58
|
+
source: '@rakun-kit/core/api',
|
|
59
|
+
correlationId: getCorrelationId(ctx),
|
|
60
|
+
actor: getActor(ctx),
|
|
61
|
+
resource: { type: 'api-operation', id: name },
|
|
62
|
+
tags: ['api', 'error', ...(operation ? [operation.kind] : [])],
|
|
63
|
+
data: {
|
|
64
|
+
operation: name,
|
|
65
|
+
statusCode: resolvedStatusCode,
|
|
66
|
+
...(operation ? { kind: operation.kind, method: operation.method } : {}),
|
|
67
|
+
...(appError ? { errorKey: appError.key } : {}),
|
|
68
|
+
...(errorName ? { errorName } : {}),
|
|
69
|
+
...(contextualData ? { context: contextualData } : {}),
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
if (isObjectError(error) && !boundary) {
|
|
73
|
+
loggedApiErrors.add(error);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (logError) {
|
|
77
|
+
Logger?.error?.('API error event could not be persisted', {
|
|
78
|
+
operation: name,
|
|
79
|
+
statusCode: resolvedStatusCode,
|
|
80
|
+
error: logError,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
export const recordApiOperationSuccess = async ({ name, operation, ctx, }) => {
|
|
85
|
+
if (operation.kind !== 'mutation') {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const contextualData = apiSuccessEventData.get(ctx);
|
|
89
|
+
apiSuccessEventData.delete(ctx);
|
|
90
|
+
if (!hasEventLogService()) {
|
|
91
|
+
Logger?.error?.('API mutation success could not be persisted because the event log is not initialized', { operation: name });
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
const namespace = name.split('.')[0] || 'api';
|
|
96
|
+
await getEventLogService().record({
|
|
97
|
+
type: `${name}.succeeded`,
|
|
98
|
+
category: 'api',
|
|
99
|
+
severity: 'info',
|
|
100
|
+
outcome: 'success',
|
|
101
|
+
source: '@rakun-kit/core/api',
|
|
102
|
+
correlationId: getCorrelationId(ctx),
|
|
103
|
+
actor: getActor(ctx),
|
|
104
|
+
resource: { type: 'api-operation', id: name },
|
|
105
|
+
tags: ['api', 'mutation', 'success', namespace],
|
|
106
|
+
data: {
|
|
107
|
+
operation: name,
|
|
108
|
+
kind: operation.kind,
|
|
109
|
+
method: operation.method,
|
|
110
|
+
...(contextualData ? { context: contextualData } : {}),
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
Logger?.error?.('API mutation success event could not be persisted', {
|
|
116
|
+
operation: name,
|
|
117
|
+
error,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=apiEventLog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiEventLog.js","sourceRoot":"","sources":["../../../../src/api/operations/apiEventLog.ts"],"names":[],"mappings":"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"}
|