Change webpack to rsbuild

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Denis Bykhov
2026-03-01 16:32:47 +05:00
parent e778a2748b
commit 4af6bfe2ac
10 changed files with 1389 additions and 284 deletions
+732 -7
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -35,6 +35,10 @@ fi
export DOCKER_VERSION="$VERSION"
export DOCKER_EXTRA="--platform=$PLATFORM"
export SKIP_VALIDATE="true"
export USE_CACHE="true"
export FAST_BUILD="true"
echo "Starting docker build and push for version: $DOCKER_VERSION ($PLATFORM)"
# We use 'node common/scripts/install-run-rush.js' to ensure we use the right rush version
+129 -129
View File
@@ -172,7 +172,7 @@ function configureI18n (): void {
async (lang: string) =>
await import(
/* webpackInclude: /\.json$/ */
/* webpackMode: "lazy" */
/* webpackMode: "eager" */
/* webpackChunkName: "lang-[request]" */
`@hcengineering/platform/lang/${lang}.json`
)
@@ -182,132 +182,132 @@ function configureI18n (): void {
async (lang: string) =>
await import(
/* webpackInclude: /\.json$/ */
/* webpackMode: "lazy" */
/* webpackMode: "eager" */
/* webpackChunkName: "lang-[request]" */
`@hcengineering/core/lang/${lang}.json`
)
)
addStringsLoader(
presentationId,
async (lang: string) => await import(`@hcengineering/presentation/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/presentation/lang/${lang}.json`)
)
addStringsLoader(
textEditorId,
async (lang: string) => await import(`@hcengineering/text-editor-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/text-editor-assets/lang/${lang}.json`)
)
addStringsLoader(uiId, async (lang: string) => await import(`@hcengineering/ui/lang/${lang}.json`))
addStringsLoader(mediaId, async (lang: string) => await import(`@hcengineering/media-assets/lang/${lang}.json`))
addStringsLoader(uploaderId, async (lang: string) => await import(`@hcengineering/uploader-assets/lang/${lang}.json`))
addStringsLoader(recorderId, async (lang: string) => await import(`@hcengineering/recorder-assets/lang/${lang}.json`))
addStringsLoader(activityId, async (lang: string) => await import(`@hcengineering/activity-assets/lang/${lang}.json`))
addStringsLoader(uiId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/ui/lang/${lang}.json`))
addStringsLoader(mediaId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/media-assets/lang/${lang}.json`))
addStringsLoader(uploaderId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/uploader-assets/lang/${lang}.json`))
addStringsLoader(recorderId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/recorder-assets/lang/${lang}.json`))
addStringsLoader(activityId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/activity-assets/lang/${lang}.json`))
addStringsLoader(
attachmentId,
async (lang: string) => await import(`@hcengineering/attachment-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/attachment-assets/lang/${lang}.json`)
)
addStringsLoader(bitrixId, async (lang: string) => await import(`@hcengineering/bitrix-assets/lang/${lang}.json`))
addStringsLoader(boardId, async (lang: string) => await import(`@hcengineering/board-assets/lang/${lang}.json`))
addStringsLoader(calendarId, async (lang: string) => await import(`@hcengineering/calendar-assets/lang/${lang}.json`))
addStringsLoader(chunterId, async (lang: string) => await import(`@hcengineering/chunter-assets/lang/${lang}.json`))
addStringsLoader(contactId, async (lang: string) => await import(`@hcengineering/contact-assets/lang/${lang}.json`))
addStringsLoader(driveId, async (lang: string) => await import(`@hcengineering/drive-assets/lang/${lang}.json`))
addStringsLoader(gmailId, async (lang: string) => await import(`@hcengineering/gmail-assets/lang/${lang}.json`))
addStringsLoader(hrId, async (lang: string) => await import(`@hcengineering/hr-assets/lang/${lang}.json`))
addStringsLoader(bitrixId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/bitrix-assets/lang/${lang}.json`))
addStringsLoader(boardId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/board-assets/lang/${lang}.json`))
addStringsLoader(calendarId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/calendar-assets/lang/${lang}.json`))
addStringsLoader(chunterId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/chunter-assets/lang/${lang}.json`))
addStringsLoader(contactId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/contact-assets/lang/${lang}.json`))
addStringsLoader(driveId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/drive-assets/lang/${lang}.json`))
addStringsLoader(gmailId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/gmail-assets/lang/${lang}.json`))
addStringsLoader(hrId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/hr-assets/lang/${lang}.json`))
addStringsLoader(
inventoryId,
async (lang: string) => await import(`@hcengineering/inventory-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/inventory-assets/lang/${lang}.json`)
)
addStringsLoader(leadId, async (lang: string) => await import(`@hcengineering/lead-assets/lang/${lang}.json`))
addStringsLoader(loginId, async (lang: string) => await import(`@hcengineering/login-assets/lang/${lang}.json`))
addStringsLoader(leadId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/lead-assets/lang/${lang}.json`))
addStringsLoader(loginId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/login-assets/lang/${lang}.json`))
addStringsLoader(
notificationId,
async (lang: string) => await import(`@hcengineering/notification-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/notification-assets/lang/${lang}.json`)
)
addStringsLoader(onboardId, async (lang: string) => await import(`@hcengineering/onboard-assets/lang/${lang}.json`))
addStringsLoader(onboardId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/onboard-assets/lang/${lang}.json`))
addStringsLoader(
preferenceId,
async (lang: string) => await import(`@hcengineering/preference-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/preference-assets/lang/${lang}.json`)
)
addStringsLoader(recruitId, async (lang: string) => await import(`@hcengineering/recruit-assets/lang/${lang}.json`))
addStringsLoader(requestId, async (lang: string) => await import(`@hcengineering/request-assets/lang/${lang}.json`))
addStringsLoader(settingId, async (lang: string) => await import(`@hcengineering/setting-assets/lang/${lang}.json`))
addStringsLoader(supportId, async (lang: string) => await import(`@hcengineering/support-assets/lang/${lang}.json`))
addStringsLoader(tagsId, async (lang: string) => await import(`@hcengineering/tags-assets/lang/${lang}.json`))
addStringsLoader(taskId, async (lang: string) => await import(`@hcengineering/task-assets/lang/${lang}.json`))
addStringsLoader(telegramId, async (lang: string) => await import(`@hcengineering/telegram-assets/lang/${lang}.json`))
addStringsLoader(recruitId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/recruit-assets/lang/${lang}.json`))
addStringsLoader(requestId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/request-assets/lang/${lang}.json`))
addStringsLoader(settingId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/setting-assets/lang/${lang}.json`))
addStringsLoader(supportId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/support-assets/lang/${lang}.json`))
addStringsLoader(tagsId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/tags-assets/lang/${lang}.json`))
addStringsLoader(taskId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/task-assets/lang/${lang}.json`))
addStringsLoader(telegramId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/telegram-assets/lang/${lang}.json`))
addStringsLoader(
templatesId,
async (lang: string) => await import(`@hcengineering/templates-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/templates-assets/lang/${lang}.json`)
)
addStringsLoader(trackerId, async (lang: string) => await import(`@hcengineering/tracker-assets/lang/${lang}.json`))
addStringsLoader(viewId, async (lang: string) => await import(`@hcengineering/view-assets/lang/${lang}.json`))
addStringsLoader(trackerId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/tracker-assets/lang/${lang}.json`))
addStringsLoader(viewId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/view-assets/lang/${lang}.json`))
addStringsLoader(
workbenchId,
async (lang: string) => await import(`@hcengineering/workbench-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/workbench-assets/lang/${lang}.json`)
)
addStringsLoader(
desktopPreferencesId,
async (lang: string) => await import(`@hcengineering/desktop-preferences-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/desktop-preferences-assets/lang/${lang}.json`)
)
addStringsLoader(
desktopDownloadsId,
async (lang: string) => await import(`@hcengineering/desktop-downloads-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/desktop-downloads-assets/lang/${lang}.json`)
)
addStringsLoader(diffviewId, async (lang: string) => await import(`@hcengineering/diffview-assets/lang/${lang}.json`))
addStringsLoader(documentId, async (lang: string) => await import(`@hcengineering/document-assets/lang/${lang}.json`))
addStringsLoader(timeId, async (lang: string) => await import(`@hcengineering/time-assets/lang/${lang}.json`))
addStringsLoader(githubId, async (lang: string) => await import(`@hcengineering/github-assets/lang/${lang}.json`))
addStringsLoader(diffviewId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/diffview-assets/lang/${lang}.json`))
addStringsLoader(documentId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/document-assets/lang/${lang}.json`))
addStringsLoader(timeId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/time-assets/lang/${lang}.json`))
addStringsLoader(githubId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/github-assets/lang/${lang}.json`))
addStringsLoader(
documentsId,
async (lang: string) => await import(`@hcengineering/controlled-documents-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/controlled-documents-assets/lang/${lang}.json`)
)
addStringsLoader(productsId, async (lang: string) => await import(`@hcengineering/products-assets/lang/${lang}.json`))
addStringsLoader(productsId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/products-assets/lang/${lang}.json`))
addStringsLoader(
questionsId,
async (lang: string) => await import(`@hcengineering/questions-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/questions-assets/lang/${lang}.json`)
)
addStringsLoader(trainingId, async (lang: string) => await import(`@hcengineering/training-assets/lang/${lang}.json`))
addStringsLoader(guestId, async (lang: string) => await import(`@hcengineering/guest-assets/lang/${lang}.json`))
addStringsLoader(trainingId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/training-assets/lang/${lang}.json`))
addStringsLoader(guestId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/guest-assets/lang/${lang}.json`))
addStringsLoader(
globalProfileId,
async (lang: string) => await import(`@hcengineering/global-profile-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/global-profile-assets/lang/${lang}.json`)
)
addStringsLoader(loveId, async (lang: string) => await import(`@hcengineering/love-assets/lang/${lang}.json`))
addStringsLoader(printId, async (lang: string) => await import(`@hcengineering/print-assets/lang/${lang}.json`))
addStringsLoader(exportId, async (lang: string) => await import(`@hcengineering/export-assets/lang/${lang}.json`))
addStringsLoader(loveId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/love-assets/lang/${lang}.json`))
addStringsLoader(printId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/print-assets/lang/${lang}.json`))
addStringsLoader(exportId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/export-assets/lang/${lang}.json`))
addStringsLoader(
analyticsCollectorId,
async (lang: string) => await import(`@hcengineering/analytics-collector-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/analytics-collector-assets/lang/${lang}.json`)
)
addStringsLoader(
testManagementId,
async (lang: string) => await import(`@hcengineering/test-management-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/test-management-assets/lang/${lang}.json`)
)
addStringsLoader(surveyId, async (lang: string) => await import(`@hcengineering/survey-assets/lang/${lang}.json`))
addStringsLoader(cardId, async (lang: string) => await import(`@hcengineering/card-assets/lang/${lang}.json`))
addStringsLoader(mailId, async (lang: string) => await import(`@hcengineering/mail-assets/lang/${lang}.json`))
addStringsLoader(chatId, async (lang: string) => await import(`@hcengineering/chat-assets/lang/${lang}.json`))
addStringsLoader(inboxId, async (lang: string) => await import(`@hcengineering/inbox-assets/lang/${lang}.json`))
addStringsLoader(processId, async (lang: string) => await import(`@hcengineering/process-assets/lang/${lang}.json`))
addStringsLoader(surveyId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/survey-assets/lang/${lang}.json`))
addStringsLoader(cardId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/card-assets/lang/${lang}.json`))
addStringsLoader(mailId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/mail-assets/lang/${lang}.json`))
addStringsLoader(chatId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/chat-assets/lang/${lang}.json`))
addStringsLoader(inboxId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/inbox-assets/lang/${lang}.json`))
addStringsLoader(processId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/process-assets/lang/${lang}.json`))
addStringsLoader(
achievementId,
async (lang: string) => await import(`@hcengineering/achievement-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/achievement-assets/lang/${lang}.json`)
)
addStringsLoader(
communicationId,
async (lang: string) => await import(`@hcengineering/communication-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/communication-assets/lang/${lang}.json`)
)
addStringsLoader(emojiId, async (lang: string) => await import(`@hcengineering/emoji-assets/lang/${lang}.json`))
addStringsLoader(billingId, async (lang: string) => await import(`@hcengineering/billing-assets/lang/${lang}.json`))
addStringsLoader(emojiId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/emoji-assets/lang/${lang}.json`))
addStringsLoader(billingId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/billing-assets/lang/${lang}.json`))
addStringsLoader(
hulyMailId,
async (lang: string) => await import(`@hcengineering/huly-mail-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/huly-mail-assets/lang/${lang}.json`)
)
addStringsLoader(
aiAssistantId,
async (lang: string) => await import(`@hcengineering/ai-assistant-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/ai-assistant-assets/lang/${lang}.json`)
)
addStringsLoader(ratingId, async (lang: string) => await import(`@hcengineering/rating-assets/lang/${lang}.json`))
addStringsLoader(ratingId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/rating-assets/lang/${lang}.json`))
}
export class PlatformBranding {
@@ -431,92 +431,92 @@ export async function configurePlatform (onWorkbenchConnect?: () => Promise<void
addLocation(coreId, async () => ({ default: async () => ({}) }))
addLocation(presentationId, async () => ({ default: async () => ({}) }))
addLocation(clientId, async () => await import('@hcengineering/client-resources'))
addLocation(loginId, async () => await import('@hcengineering/login-resources'))
addLocation(onboardId, async () => await import('@hcengineering/onboard-resources'))
addLocation(workbenchId, async () => await import('@hcengineering/workbench-resources'))
addLocation(viewId, async () => await import('@hcengineering/view-resources'))
addLocation(converterId, async () => await import('@hcengineering/converter-resources'))
addLocation(taskId, async () => await import('@hcengineering/task-resources'))
addLocation(contactId, async () => await import('@hcengineering/contact-resources'))
addLocation(chunterId, async () => await import('@hcengineering/chunter-resources'))
addLocation(recruitId, async () => await import('@hcengineering/recruit-resources'))
addLocation(activityId, async () => await import('@hcengineering/activity-resources'))
addLocation(settingId, async () => await import('@hcengineering/setting-resources'))
addLocation(leadId, async () => await import('@hcengineering/lead-resources'))
addLocation(telegramId, async () => await import('@hcengineering/telegram-resources'))
addLocation(attachmentId, async () => await import('@hcengineering/attachment-resources'))
addLocation(gmailId, async () => await import('@hcengineering/gmail-resources'))
addLocation(imageCropperId, async () => await import('@hcengineering/image-cropper-resources'))
addLocation(inventoryId, async () => await import('@hcengineering/inventory-resources'))
addLocation(templatesId, async () => await import('@hcengineering/templates-resources'))
addLocation(notificationId, async () => await import('@hcengineering/notification-resources'))
addLocation(tagsId, async () => await import('@hcengineering/tags-resources'))
addLocation(calendarId, async () => await import('@hcengineering/calendar-resources'))
addLocation(analyticsCollectorId, async () => await import('@hcengineering/analytics-collector-resources'))
addLocation(aiBotId, async () => await import('@hcengineering/ai-bot-resources'))
addLocation(clientId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/client-resources'))
addLocation(loginId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/login-resources'))
addLocation(onboardId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/onboard-resources'))
addLocation(workbenchId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/workbench-resources'))
addLocation(viewId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/view-resources'))
addLocation(converterId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/converter-resources'))
addLocation(taskId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/task-resources'))
addLocation(contactId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/contact-resources'))
addLocation(chunterId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/chunter-resources'))
addLocation(recruitId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/recruit-resources'))
addLocation(activityId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/activity-resources'))
addLocation(settingId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/setting-resources'))
addLocation(leadId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/lead-resources'))
addLocation(telegramId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/telegram-resources'))
addLocation(attachmentId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/attachment-resources'))
addLocation(gmailId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/gmail-resources'))
addLocation(imageCropperId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/image-cropper-resources'))
addLocation(inventoryId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/inventory-resources'))
addLocation(templatesId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/templates-resources'))
addLocation(notificationId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/notification-resources'))
addLocation(tagsId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/tags-resources'))
addLocation(calendarId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/calendar-resources'))
addLocation(analyticsCollectorId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/analytics-collector-resources'))
addLocation(aiBotId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/ai-bot-resources'))
addLocation(trackerId, async () => await import('@hcengineering/tracker-resources'))
addLocation(boardId, async () => await import('@hcengineering/board-resources'))
addLocation(hrId, async () => await import('@hcengineering/hr-resources'))
addLocation(bitrixId, async () => await import('@hcengineering/bitrix-resources'))
addLocation(requestId, async () => await import('@hcengineering/request-resources'))
addLocation(driveId, async () => await import('@hcengineering/drive-resources'))
addLocation(supportId, async () => await import('@hcengineering/support-resources'))
addLocation(diffviewId, async () => await import('@hcengineering/diffview-resources'))
addLocation(documentId, async () => await import('@hcengineering/document-resources'))
addLocation(timeId, async () => await import('@hcengineering/time-resources'))
addLocation(questionsId, async () => await import('@hcengineering/questions-resources'))
addLocation(trainingId, async () => await import('@hcengineering/training-resources'))
addLocation(productsId, async () => await import('@hcengineering/products-resources'))
addLocation(documentsId, async () => await import('@hcengineering/controlled-documents-resources'))
addLocation(mediaId, async () => await import('@hcengineering/media-resources'))
addLocation(uploaderId, async () => await import('@hcengineering/uploader-resources'))
addLocation(recorderId, async () => await import('@hcengineering/recorder-resources'))
addLocation(presenceId, async () => await import('@hcengineering/presence-resources'))
addLocation(githubId, async () => await import(/* webpackChunkName: "github" */ '@hcengineering/github-resources'))
addLocation(trackerId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/tracker-resources'))
addLocation(boardId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/board-resources'))
addLocation(hrId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/hr-resources'))
addLocation(bitrixId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/bitrix-resources'))
addLocation(requestId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/request-resources'))
addLocation(driveId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/drive-resources'))
addLocation(supportId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/support-resources'))
addLocation(diffviewId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/diffview-resources'))
addLocation(documentId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/document-resources'))
addLocation(timeId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/time-resources'))
addLocation(questionsId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/questions-resources'))
addLocation(trainingId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/training-resources'))
addLocation(productsId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/products-resources'))
addLocation(documentsId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/controlled-documents-resources'))
addLocation(mediaId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/media-resources'))
addLocation(uploaderId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/uploader-resources'))
addLocation(recorderId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/recorder-resources'))
addLocation(presenceId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/presence-resources'))
addLocation(githubId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "github" */ '@hcengineering/github-resources'))
addLocation(
desktopPreferencesId,
async () =>
await import(/* webpackChunkName: "desktop-preferences" */ '@hcengineering/desktop-preferences-resources')
await import(/* webpackMode: "eager" */ /* webpackChunkName: "desktop-preferences" */ '@hcengineering/desktop-preferences-resources')
)
addLocation(
desktopDownloadsId,
async () => await import(/* webpackChunkName: "desktop-downloads" */ '@hcengineering/desktop-downloads-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "desktop-downloads" */ '@hcengineering/desktop-downloads-resources')
)
addLocation(guestId, () => import(/* webpackChunkName: "guest" */ '@hcengineering/guest-resources'))
addLocation(guestId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "guest" */ '@hcengineering/guest-resources'))
addLocation(
globalProfileId,
() => import(/* webpackChunkName: "global-profile" */ '@hcengineering/global-profile-resources')
() => import(/* webpackMode: "eager" */ /* webpackChunkName: "global-profile" */ '@hcengineering/global-profile-resources')
)
addLocation(loveId, () => import(/* webpackChunkName: "love" */ '@hcengineering/love-resources'))
addLocation(printId, () => import(/* webpackChunkName: "print" */ '@hcengineering/print-resources'))
addLocation(exportId, () => import(/* webpackChunkName: "export" */ '@hcengineering/export-resources'))
addLocation(textEditorId, () => import(/* webpackChunkName: "text-editor" */ '@hcengineering/text-editor-resources'))
addLocation(loveId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "love" */ '@hcengineering/love-resources'))
addLocation(printId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "print" */ '@hcengineering/print-resources'))
addLocation(exportId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "export" */ '@hcengineering/export-resources'))
addLocation(textEditorId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "text-editor" */ '@hcengineering/text-editor-resources'))
addLocation(
testManagementId,
() => import(/* webpackChunkName: "test-management" */ '@hcengineering/test-management-resources')
() => import(/* webpackMode: "eager" */ /* webpackChunkName: "test-management" */ '@hcengineering/test-management-resources')
)
addLocation(surveyId, () => import(/* webpackChunkName: "survey" */ '@hcengineering/survey-resources'))
addLocation(cardId, () => import(/* webpackChunkName: "card" */ '@hcengineering/card-resources'))
addLocation(chatId, () => import(/* webpackChunkName: "chat" */ '@hcengineering/chat-resources'))
addLocation(inboxId, () => import(/* webpackChunkName: "inbox" */ '@hcengineering/inbox-resources'))
addLocation(processId, () => import(/* webpackChunkName: "process" */ '@hcengineering/process-resources'))
addLocation(achievementId, () => import(/* webpackChunkName: "achievement" */ '@hcengineering/achievement-resources'))
addLocation(surveyId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "survey" */ '@hcengineering/survey-resources'))
addLocation(cardId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "card" */ '@hcengineering/card-resources'))
addLocation(chatId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "chat" */ '@hcengineering/chat-resources'))
addLocation(inboxId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "inbox" */ '@hcengineering/inbox-resources'))
addLocation(processId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "process" */ '@hcengineering/process-resources'))
addLocation(achievementId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "achievement" */ '@hcengineering/achievement-resources'))
addLocation(
communicationId,
() => import(/* webpackChunkName: "communication" */ '@hcengineering/communication-resources')
() => import(/* webpackMode: "eager" */ /* webpackChunkName: "communication" */ '@hcengineering/communication-resources')
)
addLocation(emojiId, () => import(/* webpackChunkName: "achievement" */ '@hcengineering/emoji-resources'))
addLocation(emojiId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "achievement" */ '@hcengineering/emoji-resources'))
if ((config.BILLING_URL ?? '') !== '') {
addLocation(billingId, () => import(/* webpackChunkName: "billing" */ '@hcengineering/billing-resources'))
addLocation(billingId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "billing" */ '@hcengineering/billing-resources'))
}
addLocation(hulyMailId, () => import(/* webpackChunkName: "huly-mail" */ '@hcengineering/huly-mail-resources'))
addLocation(hulyMailId, () => import(/* webpackMode: "eager" */ /* webpackChunkName: "huly-mail" */ '@hcengineering/huly-mail-resources'))
addLocation(
aiAssistantId,
() => import(/* webpackChunkName: "ai-assistant" */ '@hcengineering/ai-assistant-resources')
() => import(/* webpackMode: "eager" */ /* webpackChunkName: "ai-assistant" */ '@hcengineering/ai-assistant-resources')
)
addLocation(ratingId, async () => await import(/* webpackChunkName: "rating" */ '@hcengineering/rating-resources'))
addLocation(ratingId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "rating" */ '@hcengineering/rating-resources'))
setMetadata(client.metadata.FilterModel, 'ui')
setMetadata(client.metadata.ExtraFilter, disabledFeatures)
+22
View File
@@ -0,0 +1,22 @@
# Webpack vs Rspack Benchmarks (Huly Monorepo)
This file tracks the performance metrics for the transition from Webpack to Rspack.
## 1. Full Builds & Initial Startup
| Metric | Webpack (Original) | Rspack (New) | Improvement |
| :--- | :--- | :--- | :--- |
| **Production Build** (`package` vs `rs:build`) | 2m 50s (170s) | **47s** | **~3.6x** |
| **Dev Server Cold Start** | 1m 00s (60s) | **43s** | **~1.4x** |
> [!NOTE]
> Cold start improvement is lower because Rspack is now correctly bundling **all** dynamic resources upfront to prevent the "refresh waterfall."
## 2. Hot Module Replacement (HMR)
| Metric | Webpack | Rspack | Improvement |
| :--- | :--- | :--- | :--- |
| **Single Component Recompile** | 16.2s | **0.8s** | **~20x** |
---
*Last updated: 2026-03-01*
+15 -12
View File
@@ -6,19 +6,19 @@
"scripts": {
"_phase:package": "rushx package",
"_phase:validate": "rm -rf ./types && compile validate",
"package": "rm -rf ./dist && cross-env NODE_ENV=production webpack --stats-error-details && echo 'done'",
"analyze": "rm -rf ./dist && cross-env NODE_ENV=production webpack --profile --json > stats.json",
"package": "rm -rf ./dist && cross-env NODE_ENV=production rspack build --config rspack.config.ts && echo 'done'",
"analyze": "rm -rf ./dist && cross-env NODE_ENV=production rspack build --config rspack.config.ts --profile --json > stats.json",
"show": "webpack-bundle-analyzer stats.json dist",
"dev-server": "cross-env USE_CACHE=false CLIENT_TYPE=dev-server webpack serve",
"dev-server-test": "cross-env USE_CACHE=false CLIENT_TYPE=dev-server-test webpack serve",
"dev-worker": "cross-env USE_CACHE=false CLIENT_TYPE=dev-worker webpack serve",
"dev-worker-local": "cross-env USE_CACHE=false CLIENT_TYPE=dev-worker-local webpack serve",
"dev-server-cache": "cross-env USE_CACHE=true CLIENT_TYPE=dev-server webpack serve",
"dev-server": "cross-env USE_CACHE=false CLIENT_TYPE=dev-server rspack serve --config rspack.config.ts",
"dev-server-test": "cross-env USE_CACHE=false CLIENT_TYPE=dev-server-test rspack serve --config rspack.config.ts",
"dev-worker": "cross-env USE_CACHE=false CLIENT_TYPE=dev-worker rspack serve --config rspack.config.ts",
"dev-worker-local": "cross-env USE_CACHE=false CLIENT_TYPE=dev-worker-local rspack serve --config rspack.config.ts",
"dev-server-cache": "cross-env USE_CACHE=true CLIENT_TYPE=dev-server rspack serve --config rspack.config.ts",
"tunnel-qms": "socat tcp-listen:8081,reuseaddr,fork,bind=localhost tcp:localhost:8080",
"dev-production": "cross-env CLIENT_TYPE=dev-production webpack serve",
"dev-huly": "cross-env CLIENT_TYPE=dev-huly webpack serve",
"dev-bold": "cross-env CLIENT_TYPE=dev-bold webpack serve",
"start": "cross-env NODE_ENV=production webpack serve",
"dev-production": "cross-env CLIENT_TYPE=dev-production rspack serve --config rspack.config.ts",
"dev-huly": "cross-env CLIENT_TYPE=dev-huly rspack serve --config rspack.config.ts",
"dev-bold": "cross-env CLIENT_TYPE=dev-bold rspack serve --config rspack.config.ts",
"start": "cross-env NODE_ENV=production rspack serve --config rspack.config.ts",
"deploy": "cp -p public/* dist && aws s3 sync dist s3://anticrm-platform --delete --acl public-read",
"format": "echo 'no format yet'"
},
@@ -52,7 +52,10 @@
"webpack": "^5.97.1",
"webpack-bundle-analyzer": "^4.10.2",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.11.1"
"webpack-dev-server": "^4.11.1",
"@rspack/core": "^1.2.0",
"@rspack/cli": "^1.2.0",
"tsconfig-paths-webpack-plugin": "^4.1.0"
},
"dependencies": {
"@hcengineering/achievement": "workspace:^0.7.0",
+208
View File
@@ -0,0 +1,208 @@
import { defineConfig } from '@rspack/cli';
import { rspack } from '@rspack/core';
import path from 'path';
const mode = process.env.NODE_ENV || 'development';
const prod = mode === 'production';
const clientType = process.env.CLIENT_TYPE || '';
const dev = mode === 'development' || clientType === 'dev';
const devProxy = [
{
context: ['/account'],
target: 'http://huly.local:3000',
changeOrigin: true,
pathRewrite: { '^/account': '' },
},
{
context: ['/api/v1', '/files', '/import'],
target: 'http://huly.local:8087',
changeOrigin: true,
},
{
context: ['/rekoni/recognize'],
target: 'http://huly.local:4004',
changeOrigin: true,
pathRewrite: { '^/rekoni/recognize': '/recognize' },
}
];
const devProxyTest = [
{
context: ['/account'],
target: 'http://huly.local:3003',
changeOrigin: true,
pathRewrite: { '^/account': '' },
},
{
context: ['/api/v1', '/files', '/import'],
target: 'http://huly.local:8083',
changeOrigin: true,
},
{
context: ['/rekoni/recognize'],
target: 'http://huly.local:4004',
changeOrigin: true,
pathRewrite: { '^/rekoni/recognize': '/recognize' },
}
];
const proxies: Record<string, any> = {
'dev-worker': devProxy,
'dev-worker-local': devProxy,
'dev-server': devProxy,
'dev-server-test': devProxyTest,
};
export default defineConfig({
mode: prod ? 'production' : 'development',
context: __dirname,
entry: {
main: [
'@hcengineering/theme/styles/global.scss',
'./src/eager-bundle.ts',
dev && (clientType === 'dev-server' || clientType === 'dev') ? './src/main-dev.ts' : './src/main.ts'
],
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].[contenthash].js',
publicPath: '/',
clean: true,
},
resolve: {
extensions: ['.mjs', '.js', '.svelte', '.ts'],
mainFields: ['svelte', 'browser', 'module', 'main'],
conditionNames: ['svelte', 'browser', 'import'],
alias: {
'@hcengineering/platform-rig/profiles/ui/svelte$': path.resolve(__dirname, 'node_modules/svelte/src/runtime/index.js'),
},
fallback: {
crypto: false,
fs: false,
path: false,
os: false,
net: false,
tls: false,
child_process: false,
http: false,
https: false,
stream: false,
constants: false,
dns: false,
},
symlinks: true,
},
module: {
rules: [
{
test: /\.svelte$/,
use: [
{
loader: 'svelte-loader',
options: {
preprocess: require('svelte-preprocess')({
postcss: true,
scss: {
silenceDeprecations: ['legacy-js-api']
}
}),
onwarn: (warning: any, handler: any) => {
if (warning.code === 'css-unused-selector' || warning.code === 'a11y-missing-attribute') return;
handler(warning);
}
},
},
],
},
{
test: /\.ts$/,
exclude: [/node_modules/],
loader: 'builtin:swc-loader',
options: {
jsc: {
parser: {
syntax: 'typescript',
},
preserveAllComments: true,
},
},
type: 'javascript/auto',
},
{
test: /\.scss$/,
use: [
'style-loader',
'css-loader',
{
loader: 'sass-loader',
options: {
api: 'modern',
sassOptions: {
quietDeps: true,
},
},
},
],
type: 'javascript/auto',
},
{
test: /\.css$/,
use: [
'style-loader',
'css-loader',
],
type: 'javascript/auto',
},
{
test: /\.(png|svg|jpg|webp|avif|ico|wav|mp3|ogg|aac|woff|woff2|ttf|otf)$/,
type: 'asset/resource',
},
],
},
optimization: {
splitChunks: false,
},
lazyCompilation: false,
stats: 'errors-only',
infrastructureLogging: {
level: 'none',
},
plugins: [
new rspack.HtmlRspackPlugin({
meta: {
viewport: 'width=device-width, initial-scale=1.0',
},
}),
new rspack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(mode),
'process.env.CLIENT_TYPE': JSON.stringify(clientType),
}),
],
devServer: {
port: 8080,
host: '0.0.0.0',
allowedHosts: 'all',
historyApiFallback: {
disableDotRule: true,
},
devMiddleware: {
publicPath: '/',
},
client: {
overlay: false,
logging: 'none',
},
proxy: proxies[clientType] || devProxy,
static: {
directory: path.resolve(__dirname, 'public'),
publicPath: '/',
},
hot: true,
},
watchOptions: {
ignored: /node_modules/,
poll: 1000,
},
});
+125
View File
@@ -0,0 +1,125 @@
import '@hcengineering/achievement-assets';
import '@hcengineering/achievement-resources';
import '@hcengineering/activity-assets';
import '@hcengineering/activity-resources';
import '@hcengineering/ai-bot-resources';
import '@hcengineering/analytics-collector-assets';
import '@hcengineering/analytics-collector-resources';
import '@hcengineering/attachment-assets';
import '@hcengineering/attachment-resources';
import '@hcengineering/bitrix-assets';
import '@hcengineering/bitrix-resources';
import '@hcengineering/board-assets';
import '@hcengineering/board-resources';
import '@hcengineering/calendar-assets';
import '@hcengineering/calendar-resources';
import '@hcengineering/card-assets';
import '@hcengineering/card-resources';
import '@hcengineering/chat-assets';
import '@hcengineering/chat-resources';
import '@hcengineering/chunter-assets';
import '@hcengineering/chunter-resources';
import '@hcengineering/client-resources';
import '@hcengineering/contact-assets';
import '@hcengineering/contact-resources';
import '@hcengineering/controlled-documents-assets';
import '@hcengineering/controlled-documents-resources';
import '@hcengineering/desktop-preferences-assets';
import '@hcengineering/desktop-preferences-resources';
import '@hcengineering/devmodel-resources';
import '@hcengineering/diffview-assets';
import '@hcengineering/diffview-resources';
import '@hcengineering/document-assets';
import '@hcengineering/document-resources';
import '@hcengineering/drive-assets';
import '@hcengineering/drive-resources';
import '@hcengineering/export-assets';
import '@hcengineering/export-resources';
import '@hcengineering/github-assets';
import '@hcengineering/github-resources';
import '@hcengineering/gmail-assets';
import '@hcengineering/gmail-resources';
import '@hcengineering/guest-assets';
import '@hcengineering/guest-resources';
import '@hcengineering/global-profile-assets';
import '@hcengineering/global-profile-resources';
import '@hcengineering/hr-assets';
import '@hcengineering/hr-resources';
import '@hcengineering/image-cropper-resources';
import '@hcengineering/inventory-assets';
import '@hcengineering/inventory-resources';
import '@hcengineering/lead-assets';
import '@hcengineering/lead-resources';
import '@hcengineering/login-assets';
import '@hcengineering/login-resources';
import '@hcengineering/love-assets';
import '@hcengineering/love-resources';
import '@hcengineering/mail-assets';
import '@hcengineering/notification-assets';
import '@hcengineering/notification-resources';
import '@hcengineering/onboard-assets';
import '@hcengineering/onboard-resources';
import '@hcengineering/preference-assets';
import '@hcengineering/presence-resources';
import '@hcengineering/print-assets';
import '@hcengineering/print-resources';
import '@hcengineering/products-assets';
import '@hcengineering/products-resources';
import '@hcengineering/questions-assets';
import '@hcengineering/questions-resources';
import '@hcengineering/recorder-assets';
import '@hcengineering/recorder-resources';
import '@hcengineering/recruit-assets';
import '@hcengineering/recruit-resources';
import '@hcengineering/request-assets';
import '@hcengineering/request-resources';
import '@hcengineering/setting-assets';
import '@hcengineering/setting-resources';
import '@hcengineering/support-assets';
import '@hcengineering/support-resources';
import '@hcengineering/survey-assets';
import '@hcengineering/survey-resources';
import '@hcengineering/tags-assets';
import '@hcengineering/tags-resources';
import '@hcengineering/task-assets';
import '@hcengineering/task-resources';
import '@hcengineering/telegram-assets';
import '@hcengineering/telegram-resources';
import '@hcengineering/templates-assets';
import '@hcengineering/templates-resources';
import '@hcengineering/test-management-assets';
import '@hcengineering/test-management-resources';
import '@hcengineering/text-editor-assets';
import '@hcengineering/text-editor-resources';
import '@hcengineering/time-assets';
import '@hcengineering/time-resources';
import '@hcengineering/tracker-assets';
import '@hcengineering/tracker-resources';
import '@hcengineering/training-assets';
import '@hcengineering/training-resources';
import '@hcengineering/media-assets';
import '@hcengineering/media-resources';
import '@hcengineering/uploader-assets';
import '@hcengineering/uploader-resources';
import '@hcengineering/view-assets';
import '@hcengineering/view-resources';
import '@hcengineering/converter-resources';
import '@hcengineering/workbench-assets';
import '@hcengineering/workbench-resources';
import '@hcengineering/process-assets';
import '@hcengineering/process-resources';
import '@hcengineering/communication-assets';
import '@hcengineering/communication-resources';
import '@hcengineering/emoji-assets';
import '@hcengineering/emoji-resources';
import '@hcengineering/billing-assets';
import '@hcengineering/billing-resources';
import '@hcengineering/huly-mail-assets';
import '@hcengineering/huly-mail-resources';
import '@hcengineering/ai-assistant-assets';
import '@hcengineering/ai-assistant-resources';
import '@hcengineering/inbox-assets';
import '@hcengineering/inbox-resources';
import '@hcengineering/rating-assets';
import '@hcengineering/rating-resources';
import '@hcengineering/platform/lang/en.json';
+1 -1
View File
@@ -28,6 +28,6 @@ function enableDevModel () {
setMetadata(presentation.metadata.ClientHook, new PresentationClientHook())
addLocation(
devModelId,
async () => await import(/* webpackChunkName: "devmodel" */ '@hcengineering/devmodel-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "devmodel" */ '@hcengineering/devmodel-resources')
)
}
+143 -134
View File
@@ -278,9 +278,9 @@ function configureI18n(): void {
addStringsLoader(
platformId,
async (lang: string) =>
await import(
await import(/* webpackMode: "eager" */
/* webpackInclude: /\.json$/ */
/* webpackMode: "lazy" */
/* webpackMode: "eager" */
/* webpackChunkName: "lang-[request]" */
`@hcengineering/platform/lang/${lang}.json`
)
@@ -288,143 +288,152 @@ function configureI18n(): void {
addStringsLoader(
coreId,
async (lang: string) =>
await import(
await import(/* webpackMode: "eager" */
/* webpackInclude: /\.json$/ */
/* webpackMode: "lazy" */
/* webpackMode: "eager" */
/* webpackChunkName: "lang-[request]" */
`@hcengineering/core/lang/${lang}.json`
)
)
addStringsLoader(
presentationId,
async (lang: string) => await import(`@hcengineering/presentation/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/presentation/lang/${lang}.json`)
)
addStringsLoader(
textEditorId,
async (lang: string) => await import(`@hcengineering/text-editor-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/text-editor-assets/lang/${lang}.json`)
)
addStringsLoader(uiId, async (lang: string) => await import(`@hcengineering/ui/lang/${lang}.json`))
addStringsLoader(uploaderId, async (lang: string) => await import(`@hcengineering/uploader-assets/lang/${lang}.json`))
addStringsLoader(recorderId, async (lang: string) => await import(`@hcengineering/recorder-assets/lang/${lang}.json`))
addStringsLoader(mediaId, async (lang: string) => await import(`@hcengineering/media-assets/lang/${lang}.json`))
addStringsLoader(activityId, async (lang: string) => await import(`@hcengineering/activity-assets/lang/${lang}.json`))
addStringsLoader(uiId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/ui/lang/${lang}.json`))
addStringsLoader(uploaderId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/uploader-assets/lang/${lang}.json`))
addStringsLoader(recorderId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/recorder-assets/lang/${lang}.json`))
addStringsLoader(mediaId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/media-assets/lang/${lang}.json`))
addStringsLoader(activityId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/activity-assets/lang/${lang}.json`))
addStringsLoader(
attachmentId,
async (lang: string) => await import(`@hcengineering/attachment-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/attachment-assets/lang/${lang}.json`)
)
addStringsLoader(bitrixId, async (lang: string) => await import(`@hcengineering/bitrix-assets/lang/${lang}.json`))
addStringsLoader(boardId, async (lang: string) => await import(`@hcengineering/board-assets/lang/${lang}.json`))
addStringsLoader(calendarId, async (lang: string) => await import(`@hcengineering/calendar-assets/lang/${lang}.json`))
addStringsLoader(chunterId, async (lang: string) => await import(`@hcengineering/chunter-assets/lang/${lang}.json`))
addStringsLoader(contactId, async (lang: string) => await import(`@hcengineering/contact-assets/lang/${lang}.json`))
addStringsLoader(driveId, async (lang: string) => await import(`@hcengineering/drive-assets/lang/${lang}.json`))
addStringsLoader(gmailId, async (lang: string) => await import(`@hcengineering/gmail-assets/lang/${lang}.json`))
addStringsLoader(hrId, async (lang: string) => await import(`@hcengineering/hr-assets/lang/${lang}.json`))
addStringsLoader(bitrixId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/bitrix-assets/lang/${lang}.json`))
addStringsLoader(boardId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/board-assets/lang/${lang}.json`))
addStringsLoader(calendarId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/calendar-assets/lang/${lang}.json`))
addStringsLoader(chunterId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/chunter-assets/lang/${lang}.json`))
addStringsLoader(contactId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/contact-assets/lang/${lang}.json`))
addStringsLoader(driveId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/drive-assets/lang/${lang}.json`))
addStringsLoader(gmailId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/gmail-assets/lang/${lang}.json`))
addStringsLoader(hrId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/hr-assets/lang/${lang}.json`))
addStringsLoader(
inventoryId,
async (lang: string) => await import(`@hcengineering/inventory-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/inventory-assets/lang/${lang}.json`)
)
addStringsLoader(leadId, async (lang: string) => await import(`@hcengineering/lead-assets/lang/${lang}.json`))
addStringsLoader(loginId, async (lang: string) => await import(`@hcengineering/login-assets/lang/${lang}.json`))
addStringsLoader(leadId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/lead-assets/lang/${lang}.json`))
addStringsLoader(loginId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/login-assets/lang/${lang}.json`))
addStringsLoader(
notificationId,
async (lang: string) => await import(`@hcengineering/notification-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/notification-assets/lang/${lang}.json`)
)
addStringsLoader(onboardId, async (lang: string) => await import(`@hcengineering/onboard-assets/lang/${lang}.json`))
addStringsLoader(onboardId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/onboard-assets/lang/${lang}.json`))
addStringsLoader(
preferenceId,
async (lang: string) => await import(`@hcengineering/preference-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/preference-assets/lang/${lang}.json`)
)
addStringsLoader(recruitId, async (lang: string) => await import(`@hcengineering/recruit-assets/lang/${lang}.json`))
addStringsLoader(requestId, async (lang: string) => await import(`@hcengineering/request-assets/lang/${lang}.json`))
addStringsLoader(settingId, async (lang: string) => await import(`@hcengineering/setting-assets/lang/${lang}.json`))
addStringsLoader(supportId, async (lang: string) => await import(`@hcengineering/support-assets/lang/${lang}.json`))
addStringsLoader(tagsId, async (lang: string) => await import(`@hcengineering/tags-assets/lang/${lang}.json`))
addStringsLoader(taskId, async (lang: string) => await import(`@hcengineering/task-assets/lang/${lang}.json`))
addStringsLoader(telegramId, async (lang: string) => await import(`@hcengineering/telegram-assets/lang/${lang}.json`))
addStringsLoader(recruitId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/recruit-assets/lang/${lang}.json`))
addStringsLoader(requestId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/request-assets/lang/${lang}.json`))
addStringsLoader(settingId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/setting-assets/lang/${lang}.json`))
addStringsLoader(supportId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/support-assets/lang/${lang}.json`))
addStringsLoader(tagsId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/tags-assets/lang/${lang}.json`))
addStringsLoader(taskId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/task-assets/lang/${lang}.json`))
addStringsLoader(telegramId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/telegram-assets/lang/${lang}.json`))
addStringsLoader(
templatesId,
async (lang: string) => await import(`@hcengineering/templates-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/templates-assets/lang/${lang}.json`)
)
addStringsLoader(trackerId, async (lang: string) => await import(`@hcengineering/tracker-assets/lang/${lang}.json`))
addStringsLoader(viewId, async (lang: string) => await import(`@hcengineering/view-assets/lang/${lang}.json`))
addStringsLoader(trackerId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/tracker-assets/lang/${lang}.json`))
addStringsLoader(viewId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/view-assets/lang/${lang}.json`))
addStringsLoader(
workbenchId,
async (lang: string) => await import(`@hcengineering/workbench-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/workbench-assets/lang/${lang}.json`)
)
addStringsLoader(
desktopPreferencesId,
async (lang: string) => await import(`@hcengineering/desktop-preferences-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/desktop-preferences-assets/lang/${lang}.json`)
)
addStringsLoader(diffviewId, async (lang: string) => await import(`@hcengineering/diffview-assets/lang/${lang}.json`))
addStringsLoader(documentId, async (lang: string) => await import(`@hcengineering/document-assets/lang/${lang}.json`))
addStringsLoader(timeId, async (lang: string) => await import(`@hcengineering/time-assets/lang/${lang}.json`))
addStringsLoader(githubId, async (lang: string) => await import(`@hcengineering/github-assets/lang/${lang}.json`))
addStringsLoader(diffviewId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/diffview-assets/lang/${lang}.json`))
addStringsLoader(documentId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/document-assets/lang/${lang}.json`))
addStringsLoader(timeId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/time-assets/lang/${lang}.json`))
addStringsLoader(githubId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/github-assets/lang/${lang}.json`))
addStringsLoader(
documentsId,
async (lang: string) => await import(`@hcengineering/controlled-documents-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/controlled-documents-assets/lang/${lang}.json`)
)
addStringsLoader(productsId, async (lang: string) => await import(`@hcengineering/products-assets/lang/${lang}.json`))
addStringsLoader(productsId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/products-assets/lang/${lang}.json`))
addStringsLoader(
questionsId,
async (lang: string) => await import(`@hcengineering/questions-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/questions-assets/lang/${lang}.json`)
)
addStringsLoader(trainingId, async (lang: string) => await import(`@hcengineering/training-assets/lang/${lang}.json`))
addStringsLoader(guestId, async (lang: string) => await import(`@hcengineering/guest-assets/lang/${lang}.json`))
addStringsLoader(trainingId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/training-assets/lang/${lang}.json`))
addStringsLoader(guestId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/guest-assets/lang/${lang}.json`))
addStringsLoader(
globalProfileId,
async (lang: string) => await import(`@hcengineering/global-profile-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/global-profile-assets/lang/${lang}.json`)
)
addStringsLoader(loveId, async (lang: string) => await import(`@hcengineering/love-assets/lang/${lang}.json`))
addStringsLoader(printId, async (lang: string) => await import(`@hcengineering/print-assets/lang/${lang}.json`))
addStringsLoader(exportId, async (lang: string) => await import(`@hcengineering/export-assets/lang/${lang}.json`))
addStringsLoader(loveId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/love-assets/lang/${lang}.json`))
addStringsLoader(printId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/print-assets/lang/${lang}.json`))
addStringsLoader(exportId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/export-assets/lang/${lang}.json`))
addStringsLoader(
analyticsCollectorId,
async (lang: string) => await import(`@hcengineering/analytics-collector-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/analytics-collector-assets/lang/${lang}.json`)
)
addStringsLoader(
testManagementId,
async (lang: string) => await import(`@hcengineering/test-management-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/test-management-assets/lang/${lang}.json`)
)
addStringsLoader(surveyId, async (lang: string) => await import(`@hcengineering/survey-assets/lang/${lang}.json`))
addStringsLoader(cardId, async (lang: string) => await import(`@hcengineering/card-assets/lang/${lang}.json`))
addStringsLoader(mailId, async (lang: string) => await import(`@hcengineering/mail-assets/lang/${lang}.json`))
addStringsLoader(chatId, async (lang: string) => await import(`@hcengineering/chat-assets/lang/${lang}.json`))
addStringsLoader(processId, async (lang: string) => await import(`@hcengineering/process-assets/lang/${lang}.json`))
addStringsLoader(surveyId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/survey-assets/lang/${lang}.json`))
addStringsLoader(cardId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/card-assets/lang/${lang}.json`))
addStringsLoader(mailId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/mail-assets/lang/${lang}.json`))
addStringsLoader(chatId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/chat-assets/lang/${lang}.json`))
addStringsLoader(processId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/process-assets/lang/${lang}.json`))
addStringsLoader(
achievementId,
async (lang: string) => await import(`@hcengineering/achievement-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/achievement-assets/lang/${lang}.json`)
)
addStringsLoader(
communicationId,
async (lang: string) => await import(`@hcengineering/communication-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/communication-assets/lang/${lang}.json`)
)
addStringsLoader(inboxId, async (lang: string) => await import(`@hcengineering/inbox-assets/lang/${lang}.json`))
addStringsLoader(emojiId, async (lang: string) => await import(`@hcengineering/emoji-assets/lang/${lang}.json`))
addStringsLoader(billingId, async (lang: string) => await import(`@hcengineering/billing-assets/lang/${lang}.json`))
addStringsLoader(inboxId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/inbox-assets/lang/${lang}.json`))
addStringsLoader(emojiId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/emoji-assets/lang/${lang}.json`))
addStringsLoader(billingId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/billing-assets/lang/${lang}.json`))
addStringsLoader(
hulyMailId,
async (lang: string) => await import(`@hcengineering/huly-mail-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/huly-mail-assets/lang/${lang}.json`)
)
addStringsLoader(
aiAssistantId,
async (lang: string) => await import(`@hcengineering/ai-assistant-assets/lang/${lang}.json`)
async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/ai-assistant-assets/lang/${lang}.json`)
)
addStringsLoader(ratingId, async (lang: string) => await import(`@hcengineering/rating-assets/lang/${lang}.json`))
addStringsLoader(ratingId, async (lang: string) => await import(/* webpackMode: "eager" */ `@hcengineering/rating-assets/lang/${lang}.json`))
}
export async function configurePlatform() {
const dev = process.env.NODE_ENV === 'development';
setMetadata(platform.metadata.LoadHelper, async (loader) => {
for (let i = 0; i < 5; i++) {
for (let i = 0; i < (dev ? 30 : 5); i++) {
try {
console.log(`[Rspack] Chunk loading`);
return await loader()
} catch (err: any) {
if (err.message.includes('Loading chunk') && i != 4) {
continue
if (err.message.includes('Loading chunk') || err.message.includes('Loading hot update')) {
if (dev) {
console.log(`[Rspack] Chunk loading failed, retrying in 1s (${i + 1}/30)...`);
await new Promise(resolve => setTimeout(resolve, 1000));
continue;
}
if (i < 4) continue;
}
console.error('Platform load error:', err)
if (!dev) {
location.reload()
}
console.log('reload due to loading error')
location.reload()
}
}
})
@@ -563,156 +572,156 @@ export async function configurePlatform() {
addLocation(coreId, async () => ({ default: async () => ({}) }))
addLocation(presentationId, async () => ({ default: async () => ({}) }))
addLocation(clientId, async () => await import(/* webpackChunkName: "client" */ '@hcengineering/client-resources'))
addLocation(loginId, async () => await import(/* webpackChunkName: "login" */ '@hcengineering/login-resources'))
addLocation(onboardId, async () => await import(/* webpackChunkName: "onboard" */ '@hcengineering/onboard-resources'))
addLocation(clientId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "client" */ '@hcengineering/client-resources'))
addLocation(loginId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "login" */ '@hcengineering/login-resources'))
addLocation(onboardId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "onboard" */ '@hcengineering/onboard-resources'))
addLocation(
workbenchId,
async () => await import(/* webpackChunkName: "workbench" */ '@hcengineering/workbench-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "workbench" */ '@hcengineering/workbench-resources')
)
addLocation(viewId, async () => await import(/* webpackChunkName: "view" */ '@hcengineering/view-resources'))
addLocation(converterId, async () => await import(/* webpackChunkName: "converter" */ '@hcengineering/converter-resources'))
addLocation(taskId, async () => await import(/* webpackChunkName: "task" */ '@hcengineering/task-resources'))
addLocation(contactId, async () => await import(/* webpackChunkName: "contact" */ '@hcengineering/contact-resources'))
addLocation(chunterId, async () => await import(/* webpackChunkName: "chunter" */ '@hcengineering/chunter-resources'))
addLocation(recruitId, async () => await import(/* webpackChunkName: "recruit" */ '@hcengineering/recruit-resources'))
addLocation(viewId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "view" */ '@hcengineering/view-resources'))
addLocation(converterId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "converter" */ '@hcengineering/converter-resources'))
addLocation(taskId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "task" */ '@hcengineering/task-resources'))
addLocation(contactId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "contact" */ '@hcengineering/contact-resources'))
addLocation(chunterId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "chunter" */ '@hcengineering/chunter-resources'))
addLocation(recruitId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "recruit" */ '@hcengineering/recruit-resources'))
addLocation(
activityId,
async () => await import(/* webpackChunkName: "activity" */ '@hcengineering/activity-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "activity" */ '@hcengineering/activity-resources')
)
addLocation(settingId, async () => await import(/* webpackChunkName: "setting" */ '@hcengineering/setting-resources'))
addLocation(leadId, async () => await import(/* webpackChunkName: "lead" */ '@hcengineering/lead-resources'))
addLocation(settingId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "setting" */ '@hcengineering/setting-resources'))
addLocation(leadId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "lead" */ '@hcengineering/lead-resources'))
addLocation(
telegramId,
async () => await import(/* webpackChunkName: "telegram" */ '@hcengineering/telegram-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "telegram" */ '@hcengineering/telegram-resources')
)
addLocation(
attachmentId,
async () => await import(/* webpackChunkName: "attachment" */ '@hcengineering/attachment-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "attachment" */ '@hcengineering/attachment-resources')
)
addLocation(gmailId, async () => await import(/* webpackChunkName: "gmail" */ '@hcengineering/gmail-resources'))
addLocation(gmailId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "gmail" */ '@hcengineering/gmail-resources'))
addLocation(
imageCropperId,
async () => await import(/* webpackChunkName: "image-cropper" */ '@hcengineering/image-cropper-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "image-cropper" */ '@hcengineering/image-cropper-resources')
)
addLocation(
inventoryId,
async () => await import(/* webpackChunkName: "inventory" */ '@hcengineering/inventory-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "inventory" */ '@hcengineering/inventory-resources')
)
addLocation(
templatesId,
async () => await import(/* webpackChunkName: "templates" */ '@hcengineering/templates-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "templates" */ '@hcengineering/templates-resources')
)
addLocation(
notificationId,
async () => await import(/* webpackChunkName: "notification" */ '@hcengineering/notification-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "notification" */ '@hcengineering/notification-resources')
)
addLocation(tagsId, async () => await import(/* webpackChunkName: "tags" */ '@hcengineering/tags-resources'))
addLocation(tagsId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "tags" */ '@hcengineering/tags-resources'))
addLocation(
calendarId,
async () => await import(/* webpackChunkName: "calendar" */ '@hcengineering/calendar-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "calendar" */ '@hcengineering/calendar-resources')
)
addLocation(
diffviewId,
async () => await import(/* webpackChunkName: "diffview" */ '@hcengineering/diffview-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "diffview" */ '@hcengineering/diffview-resources')
)
addLocation(timeId, async () => await import(/* webpackChunkName: "time" */ '@hcengineering/time-resources'))
addLocation(timeId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "time" */ '@hcengineering/time-resources'))
addLocation(
desktopPreferencesId,
async () =>
await import(/* webpackChunkName: "desktop-preferences" */ '@hcengineering/desktop-preferences-resources')
await import(/* webpackMode: "eager" */ /* webpackChunkName: "desktop-preferences" */ '@hcengineering/desktop-preferences-resources')
)
addLocation(analyticsCollectorId, async () => await import('@hcengineering/analytics-collector-resources'))
addLocation(aiBotId, async () => await import('@hcengineering/ai-bot-resources'))
addLocation(analyticsCollectorId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/analytics-collector-resources'))
addLocation(aiBotId, async () => await import(/* webpackMode: "eager" */ '@hcengineering/ai-bot-resources'))
addLocation(trackerId, async () => await import(/* webpackChunkName: "tracker" */ '@hcengineering/tracker-resources'))
addLocation(boardId, async () => await import(/* webpackChunkName: "board" */ '@hcengineering/board-resources'))
addLocation(hrId, async () => await import(/* webpackChunkName: "hr" */ '@hcengineering/hr-resources'))
addLocation(bitrixId, async () => await import(/* webpackChunkName: "bitrix" */ '@hcengineering/bitrix-resources'))
addLocation(requestId, async () => await import(/* webpackChunkName: "request" */ '@hcengineering/request-resources'))
addLocation(driveId, async () => await import(/* webpackChunkName: "drive" */ '@hcengineering/drive-resources'))
addLocation(supportId, async () => await import(/* webpackChunkName: "support" */ '@hcengineering/support-resources'))
addLocation(trackerId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "tracker" */ '@hcengineering/tracker-resources'))
addLocation(boardId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "board" */ '@hcengineering/board-resources'))
addLocation(hrId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "hr" */ '@hcengineering/hr-resources'))
addLocation(bitrixId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "bitrix" */ '@hcengineering/bitrix-resources'))
addLocation(requestId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "request" */ '@hcengineering/request-resources'))
addLocation(driveId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "drive" */ '@hcengineering/drive-resources'))
addLocation(supportId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "support" */ '@hcengineering/support-resources'))
addLocation(
documentId,
async () => await import(/* webpackChunkName: "document" */ '@hcengineering/document-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "document" */ '@hcengineering/document-resources')
)
addLocation(githubId, async () => await import(/* webpackChunkName: "github" */ '@hcengineering/github-resources'))
addLocation(githubId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "github" */ '@hcengineering/github-resources'))
addLocation(
questionsId,
async () => await import(/* webpackChunkName: "training" */ '@hcengineering/questions-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "training" */ '@hcengineering/questions-resources')
)
addLocation(
trainingId,
async () => await import(/* webpackChunkName: "training" */ '@hcengineering/training-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "training" */ '@hcengineering/training-resources')
)
addLocation(
productsId,
async () => await import(/* webpackChunkName: "products" */ '@hcengineering/products-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "products" */ '@hcengineering/products-resources')
)
addLocation(
documentsId,
async () => await import(/* webpackChunkName: "documents" */ '@hcengineering/controlled-documents-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "documents" */ '@hcengineering/controlled-documents-resources')
)
addLocation(guestId, async () => await import(/* webpackChunkName: "guest" */ '@hcengineering/guest-resources'))
addLocation(guestId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "guest" */ '@hcengineering/guest-resources'))
addLocation(
globalProfileId,
async () => await import(/* webpackChunkName: "global-profile" */ '@hcengineering/global-profile-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "global-profile" */ '@hcengineering/global-profile-resources')
)
addLocation(loveId, async () => await import(/* webpackChunkName: "love" */ '@hcengineering/love-resources'))
addLocation(printId, async () => await import(/* webpackChunkName: "print" */ '@hcengineering/print-resources'))
addLocation(exportId, async () => await import(/* webpackChunkName: "export" */ '@hcengineering/export-resources'))
addLocation(loveId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "love" */ '@hcengineering/love-resources'))
addLocation(printId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "print" */ '@hcengineering/print-resources'))
addLocation(exportId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "export" */ '@hcengineering/export-resources'))
addLocation(
textEditorId,
async () => await import(/* webpackChunkName: "text-editor" */ '@hcengineering/text-editor-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "text-editor" */ '@hcengineering/text-editor-resources')
)
addLocation(
uploaderId,
async () => await import(/* webpackChunkName: "uploader" */ '@hcengineering/uploader-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "uploader" */ '@hcengineering/uploader-resources')
)
addLocation(
recorderId,
async () => await import(/* webpackChunkName: "recorder" */ '@hcengineering/recorder-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "recorder" */ '@hcengineering/recorder-resources')
)
addLocation(mediaId, async () => await import(/* webpackChunkName: "media" */ '@hcengineering/media-resources'))
addLocation(mediaId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "media" */ '@hcengineering/media-resources'))
addLocation(
testManagementId,
async () => await import(/* webpackChunkName: "test-management" */ '@hcengineering/test-management-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "test-management" */ '@hcengineering/test-management-resources')
)
addLocation(surveyId, async () => await import(/* webpackChunkName: "survey" */ '@hcengineering/survey-resources'))
addLocation(surveyId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "survey" */ '@hcengineering/survey-resources'))
addLocation(
presenceId,
async () => await import(/* webpackChunkName: "presence" */ '@hcengineering/presence-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "presence" */ '@hcengineering/presence-resources')
)
addLocation(cardId, async () => await import(/* webpackChunkName: "card" */ '@hcengineering/card-resources'))
addLocation(chatId, async () => await import(/* webpackChunkName: "chat" */ '@hcengineering/chat-resources'))
addLocation(processId, async () => await import(/* webpackChunkName: "process" */ '@hcengineering/process-resources'))
addLocation(cardId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "card" */ '@hcengineering/card-resources'))
addLocation(chatId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "chat" */ '@hcengineering/chat-resources'))
addLocation(processId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "process" */ '@hcengineering/process-resources'))
addLocation(
achievementId,
async () => await import(/* webpackChunkName: "achievement" */ '@hcengineering/achievement-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "achievement" */ '@hcengineering/achievement-resources')
)
addLocation(
communicationId,
async () => await import(/* webpackChunkName: "communication" */ '@hcengineering/communication-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "communication" */ '@hcengineering/communication-resources')
)
addLocation(emojiId, async () => await import(/* webpackChunkName: "emoji" */ '@hcengineering/emoji-resources'))
addLocation(emojiId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "emoji" */ '@hcengineering/emoji-resources'))
if ((config.BILLING_URL ?? '') !== '') {
addLocation(
billingId,
async () => await import(/* webpackChunkName: "billing" */ '@hcengineering/billing-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "billing" */ '@hcengineering/billing-resources')
)
}
addLocation(
hulyMailId,
async () => await import(/* webpackChunkName: "hulyMail" */ '@hcengineering/huly-mail-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "hulyMail" */ '@hcengineering/huly-mail-resources')
)
addLocation(
aiAssistantId,
async () => await import(/* webpackChunkName: "ai-assistant" */ '@hcengineering/ai-assistant-resources')
async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "ai-assistant" */ '@hcengineering/ai-assistant-resources')
)
addLocation(inboxId, async () => await import(/* webpackChunkName: "inbox" */ '@hcengineering/inbox-resources'))
addLocation(ratingId, async () => await import(/* webpackChunkName: "rating" */ '@hcengineering/rating-resources'))
addLocation(inboxId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "inbox" */ '@hcengineering/inbox-resources'))
addLocation(ratingId, async () => await import(/* webpackMode: "eager" */ /* webpackChunkName: "rating" */ '@hcengineering/rating-resources'))
setMetadata(client.metadata.FilterModel, 'ui')
setMetadata(client.metadata.ExtraFilter, disabledFeatures)
@@ -168,7 +168,16 @@ switch (args[0]) {
default: {
let st = performance.now()
const filesToTranspile = collectFiles(join(process.cwd(), 'src'))
Promise.all([performESBuild(filesToTranspile), validateTSC()]).then(() => {
const skipValidate = process.env.SKIP_VALIDATE === 'true' || args.includes('--fast')
const tasks = [performESBuild(filesToTranspile)]
if (!skipValidate) {
tasks.push(validateTSC())
} else {
console.log('Skipping TSC validation...')
}
Promise.all(tasks).then(() => {
console.log('Full build time: ', Math.round((performance.now() - st) * 100) / 100)
})
break