- هماهنگی با قرارداد مسیریابی جدید Core (routeTarget):
- تغییر نام پارامتر
appInfoFilterبهrouteTargetدر متدهایServicePingوServiceSendCommand - افزودن propertyهای
instanceIdentifier،runtimeIdentityوrouteTarget(getter) بهCoreLogMicroServiceStatusModel - افزودن کامنتهای توضیحی برای قرارداد مسیریابی: Core با routingKey = routeTarget پublish میکند
- هماهنگ با تغییرات Core: API حالا از routeTarget استفاده میکند (InstanceIdentifier_RuntimeIdentity برای نمونه خاص، InstanceIdentifier برای broadcast)
- تغییر نام پارامتر
- هماهنگسازی فرمت coreLogMicroServiceStatus.service.ts با سایر سرویسهای core-log:
- مرتبسازی importها مطابق الگوی coreLogMember و coreLogError
- قرار دادن entity models در ابتدا، سپس base و dto
- افزودن خط خالی قبل از @Injectable() مطابق سایر سرویسها
- حفظ متدهای سفارشی (ServiceGetAllStatus، ServiceGetStatusByAppInfoFilter، ServicePing، ServiceSendCommand) به دلیل endpointهای متفاوت API
- اضافه کردن آدرسدهی خودکار فونتها در ngx-ntk-icon-picker:
- ایجاد فایل
src/styles.scssبرای فونتهای FontAwesome و PrimeIcons - اضافه کردن import فونتها در
icon-picker.component.scss - اضافه کردن
src/styles.scssبه assets درng-package.json - حالا فونتها به صورت خودکار در build پروژه شامل میشوند
- Material Icons از طریق CDN لود میشوند (نیازی به import نیست)
- ایجاد فایل
- اضافه کردن فونتهای مورد نیاز به package.json هر پروژه:
ngx-ntk-icon-picker: اضافه کردن@fortawesome/fontawesome-freeو بهروزرسانیprimeiconsبه>=7.0.0در peerDependencies- اطمینان از اینکه تمام فونتهای مورد نیاز هر پروژه در package.json خودش پیشبینی شده است
- بهروزرسانی فونتها و آیکونها به آخرین نسخهها:
@fortawesome/angular-fontawesome: از^0.10.2به^4.0.0(نسخه major جدید با پشتیبانی از Angular 21)@fortawesome/fontawesome-svg-core: از^6.7.2به^7.1.0(نسخه major جدید)@fortawesome/free-solid-svg-icons: از^6.7.2به^7.1.0(نسخه major جدید)@fortawesome/fontawesome-free: از5.15.4به^7.1.0(نسخه major جدید)primeicons:^7.0.0(بهروز است)- بهروزرسانی peer dependencies در
ngx-ntk-icon-picker/package.json - پروژه با موفقیت build شد
- بهروزرسانی کامل package.json های تمام پروژهها برای npmjs.com:
- اضافه کردن
repositoryبا لینک GitHub و directory برای تمام 9 پروژه - اضافه کردن
bugsبا لینک به issues در GitHub - اضافه کردن
homepageبا لینک به README اصلی - بهبود
descriptionبرای تمام پروژهها (توضیحات کامل و حرفهای) - بهبود
keywordsبرای جستجوی بهتر در npm - بررسی و تأیید کپی شدن README.md در dist توسط ng-packagr
- تمام package.json ها حالا برای publish در npmjs.com آماده هستند
- اضافه کردن
- بهروزرسانی کامل تمام README.md های پروژهها:
- اضافه کردن header با badges برای تمام پروژهها
- اضافه کردن لینکهای مستقیم به README.md اصلی
- اضافه کردن بخش npm Package با دستورات نصب
- اضافه کردن بخش Related Libraries با لینک به سایر پروژهها
- بهبود بخش Support با لینکهای GitHub و npm
- اضافه کردن footer حرفهای با لینکهای GitHub و npm
- تمام README.md ها حالا کامل و حرفهای هستند
- بهروزرسانی کامل README.md اصلی:
- اضافه کردن badges برای Angular, TypeScript, License, npm
- اضافه کردن لینکهای مستقیم به تمام README.md های پروژهها
- اضافه کردن جدول سازگاری Angular 20 و 21
- بهبود ساختار و فرمتبندی
- اضافه کردن توضیحات کامل برای npm و GitHub
- اضافه کردن دستورات نصب و استفاده
- بهبود بخشهای Installation, Quick Start, Documentation
- اضافه کردن بخشهای Support, Contributing, Statistics
- رفع خطاهای TypeScript module resolution:
- تغییر
moduleاز"esnext"به"ES2022"در tsconfig.json - اضافه کردن
moduleResolution: "bundler"برای Angular 21 - اضافه کردن
lib: ["ES2022", "dom"]برای پشتیبانی از DOM APIs - خطاهای "Cannot find module '@angular/core'" برطرف شدند
- پروژه با موفقیت build شد
- تغییر
- پشتیبانی از Angular 20 و 21 در تمام packages:
- بهروزرسانی peer dependencies در تمام package.json های پروژههای فرعی:
- ntk-cms-api
- ngx-ntk-cron-editor
- ngx-ntk-mat-color-picker
- ngx-ntk-file-picker
- ngx-ntk-query-builder
- ntk-cms-fileuploader
- ntk-cms-filemanager
- ngx-ntk-smart-module
- ngx-ntk-icon-picker
- تغییر از
^20.1.0به^20.1.0 || ^21.0.0برای@angular/commonو@angular/core - تمام packages حالا هم با Angular 20 و هم با Angular 21 سازگار هستند
- پروژه با موفقیت build شد
- بهروزرسانی peer dependencies در تمام package.json های پروژههای فرعی:
- پشتیبانی از Angular 20 و 21 در ngx-ntk-icon-picker:
- تغییر peer dependencies از
^21.0.0به^20.1.0 || ^21.0.0 - حالا package هم با Angular 20 و هم با Angular 21 سازگار است
- برای نصب در پروژههای Angular 20 میتوان از
npm install --legacy-peer-depsاستفاده کرد
- تغییر peer dependencies از
- رفع مشکل نمایش PrimeIcons در IconPicker:
- نصب
primeiconspackage - اضافه کردن PrimeIcons CSS به
styles.scss - PrimeIcons حالا به درستی نمایش داده میشوند
- نصب
- رفع مشکل نمایش Material Icons در IconPicker:
- اضافه کردن Material Icons font از Google Fonts به
styles.scss - Material Icons حالا به درستی نمایش داده میشوند
- اضافه کردن Material Icons font از Google Fonts به
- رفع مشکل نمایش FontAwesome 6 icons در IconPicker:
- بهبود متد
getFontAwesome6Iconبرای تبدیل نام آیکون از kebab-case به camelCase - استفاده مستقیم از
fasobject برای دسترسی به آیکونها - اضافه کردن fallback برای آیکونهایی که پیدا نمیشوند
- بهبود متد
isIconAvailableدر service برای استفاده از همان منطق - بهبود template برای نمایش بهتر آیکونهای پیدا نشده
- بهبود متد
- رفع مشکل IconPicker:
- تبدیل
*ngForبه@forدر template (Angular 21 control flow) - تبدیل
*ngIfبه@ifدر template - رفع مشکل نمایش FontAwesome 6 icons با استفاده از
findIconDefinitionوIconDefinition - اضافه کردن import
fasدر component برای دسترسی مستقیم به آیکونها - اضافه کردن FontAwesome CSS به
styles.scssبرای نمایش آیکونهای FontAwesome 5 - بهبود متد
getFontAwesome6Iconبرای پشتیبانی از fallback - بهبود متد
isIconAvailableدر service برای استفاده ازfindIconDefinition
- تبدیل
- رفع خطاهای build پروژه:
- نصب @angular/cdk@^21.0.0 برای ngx-ntk-mat-color-picker
- نصب @angular/animations@^21.0.0 برای animation ها
- حذف import matDatepickerAnimations از @angular/material/datepicker (دیگر در Angular 21 وجود ندارد)
- تعریف animation های سفارشی برای جایگزینی matDatepickerAnimations
- رفع خطاهای event.keyCode با استفاده از event.key (Angular 21)
- build تمام library های پروژه (ngx-ntk-file-picker, ngx-ntk-mat-color-picker, ngx-ntk-smart-module, ngx-ntk-cron-editor, ntk-cms-filemanager, ntk-cms-api, ntk-cms-fileuploader, ngx-ntk-icon-picker, ngx-ntk-query-builder)
- افزایش budget در angular.json از 1MB به 3MB
- پروژه با موفقیت build شد (1.82 MB initial bundle)
- آمادهسازی کامل پروژه برای مهاجرت به Angular 21:
- بهروزرسانی تمام package.json ها (اصلی و پروژههای فرعی) از Angular 20.1.0 به Angular 21.0.0
- بهروزرسانی TypeScript از 5.8.2 به 5.9.0
- بهروزرسانی target در tsconfig.json از ES2022 به ES2023
- بهروزرسانی @angular/build، @angular/cli، @angular/compiler-cli به نسخه 21.0.0
- بهروزرسانی ng-packagr به نسخه 21.0.0
- بهروزرسانی @ngrx/store و ngx-bootstrap به نسخه 21.0.0
- تبدیل constructor injection به inject() در app.ts
- تبدیل *ngFor به @for در app.html برای استفاده از control flow جدید Angular 21
- آمادهسازی پروژه برای استفاده از Best Practices Angular 21
- نصب وابستگیها با
npm install --legacy-peer-depsبه دلیل عدم سازگاری ngx-bootstrap@20.0.2 با Angular 21 - توجه: ngx-bootstrap هنوز برای Angular 21 بهروزرسانی نشده است (آخرین نسخه 20.0.2)
- شناسایی و رفع 2 آسیبپذیری امنیتی با سطح بالا با استفاده از
npm audit fix --legacy-peer-deps - تمام آسیبپذیریها برطرف شدند (0 vulnerabilities)
- رفع مشکل dependency conflict در
ngx-ntk-icon-picker: تغییر محدودیت نسخه@fortawesome/angular-fontawesomeاز>=0.10.2به^0.10.2برای جلوگیری از نصب نسخه 4.0.0 که نیاز به Angular 21 دارد و سازگاری با Angular 20
- اضافه کردن importهای enumهای مفقود در فایلهای Model: اصلاح نام enumها از camelCase به PascalCase (مثل
transactionAssistantCartStatusEnumبهTransactionAssistantCartStatusEnum) - اصلاح importهای Modelها در فایلهای service: اضافه کردن importهای مفقود و اصلاح نام Modelها و enumها
- اصلاح فایل
transactionAssistantShipment.service.ts: تغییر import ازTransactionAssistantShipmentModel(که وجود نداشت) بهTransactionAssistantOrderShipmentModel - اضافه کردن exportهای const در Modelها:
transactionAssistantCartModel،transactionAssistantOrderModelوtransactionAssistantPaymentModel - اصلاح نامهای enumها در تمام فایلهای Model و service از camelCase به PascalCase
- رفع خطای TypeScript TS2308 در
_export.ts: حذف exportهای تکراریtransactionAssistantCartModel،transactionAssistantOrderModelوtransactionAssistantOrderShipmentModelکه قبلاً از فایلهای ViewModel صادر میشدند.
- اصلاح
cashApiIsValidبه حالت async با انتظار غیرمسدودکننده برای جلوگیری از قفل شدن UI و در عین حال صبر تا اتمام اجرای قبلی. - بهروزرسانی فراخوانیها در
coreEnum.service.tsوapiCmsServerBase.service.tsبرای سازگاری با نسخهی async و جلوگیری از اجرای همزمان ناخواسته.