adminizer 5.0.0-build.5 → 5.0.0-build.7

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.
Files changed (129) hide show
  1. package/assets/{add-Bu8tQJ-4.js → add-DOjh2NLm.js} +1 -1
  2. package/assets/{add-group-DGu5duiB.js → add-group-B2FdiaVg.js} +1 -1
  3. package/assets/{add-user-CBxwz52X.js → add-user-C07In-rU.js} +1 -1
  4. package/assets/{app-layout-DWEZvQS6.js → app-layout-CvW8DKyk.js} +1 -1
  5. package/assets/app.js +34 -34
  6. package/assets/{catalog-hm4fq7Rc.js → catalog-CObbOCOb.js} +1 -1
  7. package/assets/controls/ckeditor.es.js +267 -264
  8. package/assets/controls/jsoneditor.es.js +13334 -13251
  9. package/assets/controls/leaflet.es.js +1023 -1004
  10. package/assets/controls/toast-ui.es.js +1825 -1817
  11. package/assets/{dashboard-D3tpXRmb.js → dashboard-DRxpsbtY.js} +1 -1
  12. package/assets/{history-ovGckMBV.js → history-srOjJz94.js} +1 -1
  13. package/assets/{list-VCPbebWA.js → list-BObKdaDd.js} +1 -1
  14. package/assets/manifest.json +24 -24
  15. package/assets/{module-BXHHDcbq.js → module-CdaN8Pkb.js} +1 -1
  16. package/assets/{notification-CgyQ2bvc.js → notification-DMwIGHiv.js} +1 -1
  17. package/assets/{user-filters-list-Chx6TKlb.js → user-filters-list-CnRaXLuv.js} +1 -1
  18. package/assets/{welcome-qcRgV8Fe.js → welcome-DrLD1BEN.js} +1 -1
  19. package/controllers/catalog/FrontendCatalogAdapter.d.ts +1 -1
  20. package/controllers/catalog/FrontentCatalogAdapter.d.ts +1 -1
  21. package/controllers/feedback/feedbackController.d.ts +1 -1
  22. package/controllers/history-actions/HistoryController.d.ts +1 -1
  23. package/controllers/media-manager/mediaManagerAdapter.d.ts +1 -1
  24. package/helpers/accessRightsHelper.d.ts +3 -3
  25. package/helpers/configHelper.d.ts +3 -3
  26. package/helpers/configHelper.js +8 -1
  27. package/helpers/controllerHelper.d.ts +2 -2
  28. package/helpers/fieldsHelper.d.ts +2 -2
  29. package/helpers/filterDatetimeHelper.d.ts +1 -1
  30. package/helpers/inertiaActionsHelper.d.ts +2 -2
  31. package/helpers/inertiaAddHelper.d.ts +4 -4
  32. package/helpers/inertiaGroupHelper.d.ts +3 -3
  33. package/helpers/inertiaListHelper.d.ts +3 -3
  34. package/helpers/inertiaMenuHelper.d.ts +2 -2
  35. package/helpers/inertiaUserHelper.d.ts +3 -3
  36. package/helpers/menuHelper.d.ts +2 -2
  37. package/helpers/translationHelper.d.ts +2 -2
  38. package/index.d.ts +58 -58
  39. package/interfaces/adminpanelConfig.d.ts +4 -4
  40. package/interfaces/global.d.ts +6 -6
  41. package/interfaces/internalModelAccess.d.ts +1 -1
  42. package/interfaces/listQueryBuilder.d.ts +1 -1
  43. package/interfaces/types.d.ts +2 -2
  44. package/lib/Adminizer.d.ts +25 -25
  45. package/lib/DataAccessor.d.ts +6 -6
  46. package/lib/DataAccessor.js +5 -1
  47. package/lib/MiddlewareManager.d.ts +1 -1
  48. package/lib/access-rights/AccessRightsHandler.d.ts +2 -2
  49. package/lib/ai-assistant/AbstractAiModelService.d.ts +2 -2
  50. package/lib/ai-assistant/AiAssistantHandler.d.ts +4 -4
  51. package/lib/app-manager/AdminizerApp.d.ts +10 -10
  52. package/lib/app-manager/AppManager.d.ts +2 -2
  53. package/lib/app-manager/AssetHandler.d.ts +2 -2
  54. package/lib/app-manager/ConfigLayerHandler.d.ts +2 -2
  55. package/lib/app-manager/ControllerHandler.d.ts +2 -2
  56. package/lib/catalog/AbstractCatalog.d.ts +1 -1
  57. package/lib/catalog/CatalogHandler.d.ts +1 -1
  58. package/lib/controls/ControlsHandler.d.ts +1 -1
  59. package/lib/controls/codeEditor/MonacoEditor.d.ts +1 -1
  60. package/lib/controls/geojsoneditor/GeoEditor.d.ts +1 -1
  61. package/lib/controls/jsoneditor/JsonEditor.d.ts +1 -1
  62. package/lib/controls/markdown/ToastUiEditor.d.ts +1 -1
  63. package/lib/controls/table/Handsontable.d.ts +1 -1
  64. package/lib/controls/wysiwyg/CKeditor.d.ts +1 -1
  65. package/lib/feedback/FeedbackHandler.d.ts +2 -2
  66. package/lib/filters/ConditionValidator.d.ts +1 -1
  67. package/lib/filters/FilterCustomFieldHandler.d.ts +2 -2
  68. package/lib/filters/FilterService.d.ts +4 -4
  69. package/lib/filters/index.d.ts +6 -6
  70. package/lib/history-actions/AbstractHistoryAdapter.d.ts +6 -6
  71. package/lib/history-actions/DefaultHistoryAdapter.d.ts +4 -4
  72. package/lib/history-actions/HistoryHandler.d.ts +1 -1
  73. package/lib/list-query-builder/ListQueryBuilder.d.ts +7 -7
  74. package/lib/media-manager/AbstractMediaManager.d.ts +2 -2
  75. package/lib/media-manager/MediaManagerHandler.d.ts +1 -1
  76. package/lib/media-manager/Thumb.d.ts +1 -1
  77. package/lib/media-manager/helpers/MediaManagerHelper.d.ts +5 -5
  78. package/lib/model/AbstractModel.d.ts +9 -4
  79. package/lib/model/InternalModelAccessFactory.d.ts +2 -2
  80. package/lib/model/ModelHandler.d.ts +3 -3
  81. package/lib/model/adapter/sequelize.d.ts +2 -2
  82. package/lib/model/adapter/sequelize.js +4 -2
  83. package/lib/model/adapter/typeorm.d.ts +2 -2
  84. package/lib/model/adapter/typeorm.js +1 -1
  85. package/lib/model/internalModelRepository.d.ts +2 -2
  86. package/lib/notifications/AbstractNotificationService.d.ts +4 -4
  87. package/lib/notifications/GeneralNotificationService.d.ts +2 -2
  88. package/lib/notifications/NotificationHandler.d.ts +2 -2
  89. package/lib/notifications/SystemNotificationService.d.ts +2 -2
  90. package/lib/requestProcessor.d.ts +1 -1
  91. package/lib/widgets/abstractAction.d.ts +1 -1
  92. package/lib/widgets/abstractCustom.d.ts +2 -2
  93. package/lib/widgets/abstractInfo.d.ts +1 -1
  94. package/lib/widgets/abstractLink.d.ts +2 -2
  95. package/lib/widgets/abstractSwitch.d.ts +1 -1
  96. package/lib/widgets/abstractWidgetBase.d.ts +1 -1
  97. package/lib/widgets/widgetHandler.d.ts +9 -9
  98. package/models/Filter.d.ts +1 -1
  99. package/models/FilterColumn.d.ts +1 -1
  100. package/models/Group.d.ts +1 -1
  101. package/models/HistoryActions.d.ts +1 -1
  102. package/models/MediaManagerAP.d.ts +2 -2
  103. package/models/MediaManagerAssociationsAP.d.ts +1 -1
  104. package/models/MediaManagerMetaAP.d.ts +1 -1
  105. package/models/User.d.ts +2 -2
  106. package/models/UserNotification.d.ts +1 -1
  107. package/package.json +1 -1
  108. package/services/FeedService.d.ts +3 -3
  109. package/system/Router.d.ts +1 -1
  110. package/system/Router.js +9 -1
  111. package/system/bindAccessRights.d.ts +1 -1
  112. package/system/bindAuthorization.d.ts +1 -1
  113. package/system/bindControls.d.ts +1 -1
  114. package/system/bindCors.d.ts +1 -1
  115. package/system/bindCustomFilterHandlers.d.ts +1 -1
  116. package/system/bindDashboardWidgets.d.ts +1 -1
  117. package/system/bindDev.d.ts +1 -1
  118. package/system/bindHistory.d.ts +1 -1
  119. package/system/bindInertia.d.ts +1 -1
  120. package/system/bindMediaManager.d.ts +1 -1
  121. package/system/bindNotifications.d.ts +1 -1
  122. package/system/bindReqFunctions.d.ts +1 -1
  123. package/system/bindTranslations.d.ts +1 -1
  124. package/system/buildInternalModelAccess.d.ts +3 -3
  125. package/system/defaults.d.ts +1 -1
  126. package/system/routePolicies.d.ts +1 -1
  127. package/system/systemModelContracts.d.ts +1 -1
  128. package/system/systemModelContracts.js +11 -7
  129. package/system/validateSystemModels.d.ts +1 -1
@@ -1,5 +1,5 @@
1
- import { InternalModelAccessMap, InternalModelRepository } from "../../interfaces/internalModelAccess";
2
- import { AbstractModel } from "./AbstractModel";
1
+ import { InternalModelAccessMap, InternalModelRepository } from "../../interfaces/internalModelAccess.js";
2
+ import { AbstractModel } from "./AbstractModel.js";
3
3
  export declare const DEFAULT_INTERNAL_MODEL_ACCESS: InternalModelAccessMap;
4
4
  export declare class InternalModelScope {
5
5
  private readonly getModel;
@@ -1,6 +1,6 @@
1
- import { AbstractModel } from "./AbstractModel";
2
- import { InternalModelAccessMap, InternalModelRepository } from "../../interfaces/internalModelAccess";
3
- import { InternalModelScope } from "./InternalModelAccessFactory";
1
+ import { AbstractModel } from "./AbstractModel.js";
2
+ import { InternalModelAccessMap, InternalModelRepository } from "../../interfaces/internalModelAccess.js";
3
+ import { InternalModelScope } from "./InternalModelAccessFactory.js";
4
4
  export interface AppModelAccessRecord {
5
5
  id: string;
6
6
  appName: string;
@@ -1,6 +1,6 @@
1
1
  import { Sequelize, ModelStatic } from "sequelize";
2
- import { AbstractAdapter, AbstractAdapterOptions, AbstractModel, Attribute } from "../AbstractModel";
3
- import { QueryCriteria } from "../../../interfaces/queryCriteria";
2
+ import { AbstractAdapter, AbstractAdapterOptions, AbstractModel, Attribute } from "../AbstractModel.js";
3
+ import { QueryCriteria } from "../../../interfaces/queryCriteria.js";
4
4
  export declare function mapSequelizeToAdminizerAttributes(model: ModelStatic<any>): Record<string, Attribute>;
5
5
  export declare class SequelizeModel<T> extends AbstractModel<T> {
6
6
  private model;
@@ -17,8 +17,10 @@ function resolveType(type) {
17
17
  return "number";
18
18
  if (sqlType.includes("json"))
19
19
  return "json";
20
- if (sqlType.includes("date"))
21
- return "string";
20
+ // Sequelize renders temporal types per dialect: sqlite gives DATETIME/DATE,
21
+ // postgres TIMESTAMP WITH TIME ZONE, mysql DATETIME/TIMESTAMP. Match all of them.
22
+ if (sqlType.includes("date") || sqlType.includes("time"))
23
+ return "date";
22
24
  return "ref";
23
25
  }
24
26
  export function mapSequelizeToAdminizerAttributes(model) {
@@ -1,6 +1,6 @@
1
1
  import { DataSource, EntityMetadata, EntitySchema, ObjectLiteral } from "typeorm";
2
- import { AbstractAdapter, AbstractAdapterOptions, AbstractModel, ModelAttributes } from "../AbstractModel";
3
- import { QueryCriteria } from "../../../interfaces/queryCriteria";
2
+ import { AbstractAdapter, AbstractAdapterOptions, AbstractModel, ModelAttributes } from "../AbstractModel.js";
3
+ import { QueryCriteria } from "../../../interfaces/queryCriteria.js";
4
4
  /**
5
5
  * Experimental TypeORM adapter.
6
6
  *
@@ -24,7 +24,7 @@ function resolveAdminizerTypeFromColumn(column) {
24
24
  if (type.includes("json"))
25
25
  return "json";
26
26
  if (type.includes("date") || type.includes("time"))
27
- return "string";
27
+ return "date";
28
28
  if (type.includes("char") || type.includes("text") || type.includes("uuid") || type.includes("string")) {
29
29
  return "string";
30
30
  }
@@ -1,3 +1,3 @@
1
- import { InternalModelRepository } from "../../interfaces/internalModelAccess";
2
- import { AbstractModel } from "./AbstractModel";
1
+ import { InternalModelRepository } from "../../interfaces/internalModelAccess.js";
2
+ import { AbstractModel } from "./AbstractModel.js";
3
3
  export declare function createInternalModelRepository<T>(modelName: string, model: AbstractModel<T>): InternalModelRepository<T>;
@@ -1,8 +1,8 @@
1
1
  import { EventEmitter } from 'events';
2
- import { Adminizer } from '../Adminizer';
3
- import { INotification, INotificationEvent } from '../../interfaces/types';
4
- import { NotificationModel } from "../../models/Notification";
5
- import { User } from "../../models/User";
2
+ import { Adminizer } from '../Adminizer.js';
3
+ import { INotification, INotificationEvent } from '../../interfaces/types.js';
4
+ import { NotificationModel } from "../../models/Notification.js";
5
+ import { User } from "../../models/User.js";
6
6
  /**
7
7
  * ░█████╗░██████╗░░██████╗████████╗██████╗░░█████╗░░█████╗░████████╗
8
8
  * ██╔══██╗██╔══██╗██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██╔══██╗╚══██╔══╝
@@ -1,5 +1,5 @@
1
- import { AbstractNotificationService } from './AbstractNotificationService';
2
- import { INotification } from '../../interfaces/types';
1
+ import { AbstractNotificationService } from './AbstractNotificationService.js';
2
+ import { INotification } from '../../interfaces/types.js';
3
3
  export declare class GeneralNotificationService extends AbstractNotificationService {
4
4
  readonly notificationClass = "general";
5
5
  readonly displayName: string;
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from 'events';
2
- import { AbstractNotificationService } from "./AbstractNotificationService";
3
- import { INotification } from '../../interfaces/types';
2
+ import { AbstractNotificationService } from "./AbstractNotificationService.js";
3
+ import { INotification } from '../../interfaces/types.js';
4
4
  export declare class NotificationHandler extends EventEmitter {
5
5
  private services;
6
6
  constructor();
@@ -1,5 +1,5 @@
1
- import { AbstractNotificationService } from './AbstractNotificationService';
2
- import { INotification } from '../../interfaces/types';
1
+ import { AbstractNotificationService } from './AbstractNotificationService.js';
2
+ import { INotification } from '../../interfaces/types.js';
3
3
  export declare class SystemNotificationService extends AbstractNotificationService {
4
4
  readonly notificationClass = "system";
5
5
  readonly displayName: string;
@@ -1,4 +1,4 @@
1
- import { Fields } from "../helpers/fieldsHelper";
1
+ import { Fields } from "../helpers/fieldsHelper.js";
2
2
  type PostParams = Record<string, string | number | boolean | object | string[] | number[] | null>;
3
3
  /**
4
4
  * Default helper that will contain all methods
@@ -1,4 +1,4 @@
1
- import { BaseWidget } from "./abstractWidgetBase";
1
+ import { BaseWidget } from "./abstractWidgetBase.js";
2
2
  export declare abstract class ActionBase extends BaseWidget {
3
3
  readonly widgetType = "action";
4
4
  /** Widget background css color */
@@ -1,5 +1,5 @@
1
- import { MaterialIcon } from "../../interfaces/MaaterialIcons";
2
- import type { AppAsset } from "../app-manager/AdminizerApp";
1
+ import { MaterialIcon } from "../../interfaces/MaaterialIcons.js";
2
+ import type { AppAsset } from "../app-manager/AdminizerApp.js";
3
3
  export declare abstract class CustomBase {
4
4
  /** Widget unique id */
5
5
  abstract readonly id: string;
@@ -1,4 +1,4 @@
1
- import { BaseWidget } from "./abstractWidgetBase";
1
+ import { BaseWidget } from "./abstractWidgetBase.js";
2
2
  export interface WidgetInfoContext {
3
3
  user?: ReqType["user"];
4
4
  }
@@ -1,5 +1,5 @@
1
- import { BaseWidget } from "./abstractWidgetBase";
2
- import { MaterialIcon } from "../../interfaces/MaaterialIcons";
1
+ import { BaseWidget } from "./abstractWidgetBase.js";
2
+ import { MaterialIcon } from "../../interfaces/MaaterialIcons.js";
3
3
  export interface Links {
4
4
  name: string;
5
5
  description: string;
@@ -1,4 +1,4 @@
1
- import { BaseWidget } from "./abstractWidgetBase";
1
+ import { BaseWidget } from "./abstractWidgetBase.js";
2
2
  export declare abstract class SwitchBase extends BaseWidget {
3
3
  readonly widgetType = "switcher";
4
4
  /** Widget background css color */
@@ -1,4 +1,4 @@
1
- import { MaterialIcon } from "../../interfaces/MaaterialIcons";
1
+ import { MaterialIcon } from "../../interfaces/MaaterialIcons.js";
2
2
  export declare abstract class BaseWidget {
3
3
  /** Widget unique id */
4
4
  abstract readonly id: string;
@@ -1,12 +1,12 @@
1
- import { SwitchBase } from "./abstractSwitch";
2
- import { InfoBase } from "./abstractInfo";
3
- import { ActionBase } from "./abstractAction";
4
- import { LinkBase } from "./abstractLink";
5
- import { CustomBase } from "./abstractCustom";
6
- import { AdminpanelIcon } from "../../interfaces/adminpanelConfig";
7
- import { Adminizer } from "../Adminizer";
8
- import { User } from "../../models/User";
9
- import { I18n } from "../I18n";
1
+ import { SwitchBase } from "./abstractSwitch.js";
2
+ import { InfoBase } from "./abstractInfo.js";
3
+ import { ActionBase } from "./abstractAction.js";
4
+ import { LinkBase } from "./abstractLink.js";
5
+ import { CustomBase } from "./abstractCustom.js";
6
+ import { AdminpanelIcon } from "../../interfaces/adminpanelConfig.js";
7
+ import { Adminizer } from "../Adminizer.js";
8
+ import { User } from "../../models/User.js";
9
+ import { I18n } from "../I18n.js";
10
10
  export type WidgetType = (SwitchBase | InfoBase | ActionBase | LinkBase | CustomBase);
11
11
  export interface WidgetConfig {
12
12
  id: string;
@@ -1,4 +1,4 @@
1
- import type { FilterColumn } from "./FilterColumn";
1
+ import type { FilterColumn } from "./FilterColumn.js";
2
2
  /**
3
3
  * Filter operators for query conditions
4
4
  */
@@ -1,4 +1,4 @@
1
- import type { Filter } from "./Filter";
1
+ import type { Filter } from "./Filter.js";
2
2
  /**
3
3
  * FilterColumn interface for TypeScript
4
4
  */
package/models/Group.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { User } from "./User";
1
+ import type { User } from "./User.js";
2
2
  export interface Group {
3
3
  id?: number;
4
4
  name: string;
@@ -1,4 +1,4 @@
1
- import type { User } from "./User";
1
+ import type { User } from "./User.js";
2
2
  export interface HistoryActions {
3
3
  id?: number;
4
4
  modelId: number | string;
@@ -1,5 +1,5 @@
1
- import type { MediaManagerAssociationsAP } from "./MediaManagerAssociationsAP";
2
- import type { MediaManagerMetaAP } from "./MediaManagerMetaAP";
1
+ import type { MediaManagerAssociationsAP } from "./MediaManagerAssociationsAP.js";
2
+ import type { MediaManagerMetaAP } from "./MediaManagerMetaAP.js";
3
3
  export interface MediaManagerAP {
4
4
  id: string;
5
5
  parent?: MediaManagerAP;
@@ -1,4 +1,4 @@
1
- import type { MediaManagerAP } from "./MediaManagerAP";
1
+ import type { MediaManagerAP } from "./MediaManagerAP.js";
2
2
  export interface MediaManagerAssociationsAP {
3
3
  id: string;
4
4
  mediaManagerId?: string;
@@ -1,4 +1,4 @@
1
- import type { MediaManagerAP } from "./MediaManagerAP";
1
+ import type { MediaManagerAP } from "./MediaManagerAP.js";
2
2
  export interface MediaManagerMetaAP {
3
3
  id?: string;
4
4
  key?: string;
package/models/User.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { WidgetConfig, WidgetsLayouts } from "../lib/widgets/widgetHandler";
2
- import type { Group } from "./Group";
1
+ import type { WidgetConfig, WidgetsLayouts } from "../lib/widgets/widgetHandler.js";
2
+ import type { Group } from "./Group.js";
3
3
  export interface User {
4
4
  id?: number;
5
5
  login: string;
@@ -1,4 +1,4 @@
1
- import type { Notification } from "./Notification";
1
+ import type { Notification } from "./Notification.js";
2
2
  export interface UserNotification {
3
3
  id: number;
4
4
  userId: number;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adminizer",
3
3
  "type": "module",
4
- "version": "5.0.0-build.5",
4
+ "version": "5.0.0-build.7",
5
5
  "main": "index.js",
6
6
  "exports": {
7
7
  ".": "./index.js",
@@ -1,6 +1,6 @@
1
- import { Adminizer } from "../lib/Adminizer";
2
- import { Filter } from "../models/Filter";
3
- import { User } from "../models/User";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
+ import { Filter } from "../models/Filter.js";
3
+ import { User } from "../models/User.js";
4
4
  /**
5
5
  * Feed export format types
6
6
  */
@@ -1,4 +1,4 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export default class Router {
3
3
  adminizer: Adminizer;
4
4
  constructor(adminizer: Adminizer);
package/system/Router.js CHANGED
@@ -29,9 +29,10 @@ import { Adminizer } from "../lib/Adminizer.js";
29
29
  import timezones from "../controllers/timezones.js";
30
30
  import { NotificationController } from "../controllers/notifications/NotificationController.js";
31
31
  import { HistoryController } from "../controllers/history-actions/HistoryController.js";
32
+ import { AiAssistantController } from "../controllers/ai/AiAssistantController.js";
32
33
  import listUserFilters from "../controllers/listUserFilters.js";
33
34
  import { requireAnyPermission, requireAuthAPI, requireAuthEnabled, requireAuthUI, requirePermission } from "../policies/authPolicies.js";
34
- import { catalogToken, groupFilterVisibilityToken, historyToken, mediaManagerToken, modelCreateToken, modelDeleteToken, modelReadToken, modelUpdateToken, widgetToken, widgetsToken } from "../policies/permissionResolvers.js";
35
+ import { aiModelToken, catalogToken, groupFilterVisibilityToken, historyToken, mediaManagerToken, modelCreateToken, modelDeleteToken, modelReadToken, modelUpdateToken, widgetToken, widgetsToken } from "../policies/permissionResolvers.js";
35
36
  import { bindWithMiddlewares } from "./routePolicies.js";
36
37
  export default class Router {
37
38
  adminizer;
@@ -217,6 +218,13 @@ export default class Router {
217
218
  */
218
219
  adminizer.app.get(`${adminizer.config.routePrefix}/api/user-key`, withPolicies(getUserApiKey, requireAuthEnabled(), requireAuthAPI()));
219
220
  adminizer.app.post(`${adminizer.config.routePrefix}/api/user-key/regenerate`, withPolicies(regenerateUserApiKey, requireAuthEnabled(), requireAuthAPI()));
221
+ /**
222
+ * AI assistant — consumed by src/assets/js/contexts/AiAssistantContext.tsx
223
+ */
224
+ adminizer.app.get(`${adminizer.config.routePrefix}/api/ai-assistant/models`, withPolicies(AiAssistantController.getModels, requireAuthAPI()));
225
+ adminizer.app.get(`${adminizer.config.routePrefix}/api/ai-assistant/history/:modelId`, withPolicies(AiAssistantController.getHistory, requireAuthAPI(), requirePermission(aiModelToken)));
226
+ adminizer.app.post(`${adminizer.config.routePrefix}/api/ai-assistant/query`, withPolicies(AiAssistantController.sendMessage, requireAuthAPI(), requirePermission(aiModelToken)));
227
+ adminizer.app.delete(`${adminizer.config.routePrefix}/api/ai-assistant/history/:modelId`, withPolicies(AiAssistantController.resetHistory, requireAuthAPI(), requirePermission(aiModelToken)));
220
228
  adminizer.app.get(`${adminizer.config.routePrefix}/get-timezones`, withPolicies(timezones, requireAuthUI()));
221
229
  if (adminizer.config.models) {
222
230
  for (let model in adminizer.config.models) {
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export default function bindAccessRights(adminizer: Adminizer): Promise<void>;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export default function bindAuthorization(adminizer: Adminizer): Promise<void>;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export declare function bindControls(adminizer: Adminizer): void;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export declare function bindCors(adminizer: Adminizer): void;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export default function bindCustomFilterHandlers(adminizer: Adminizer): void;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from '../lib/Adminizer';
1
+ import { Adminizer } from '../lib/Adminizer.js';
2
2
  export default function bindDashboardWidgets(adminizer: Adminizer): Promise<void>;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export default function bindDev(adminizer: Adminizer): void;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export default function bindHistory(adminizer: Adminizer): void;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export declare function bindInertia(adminizer: Adminizer): void;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export default function bindMediaManager(adminizer: Adminizer): void;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from '../lib/Adminizer';
1
+ import { Adminizer } from '../lib/Adminizer.js';
2
2
  export declare function bindNotifications(adminizer: Adminizer): void;
@@ -1,3 +1,3 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export declare function createDeprecatedAdminizerProxy(adminizer: Adminizer, warn?: (message: string) => void): Adminizer;
3
3
  export default function bindReqFunctions(adminizer: Adminizer): void;
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export default function bindTranslations(adminizer: Adminizer): void;
@@ -1,4 +1,4 @@
1
- import { AdminpanelConfig } from "../interfaces/adminpanelConfig";
2
- import { InternalModelAccessMap } from "../interfaces/internalModelAccess";
3
- import { ModelHandler } from "../lib/model/ModelHandler";
1
+ import { AdminpanelConfig } from "../interfaces/adminpanelConfig.js";
2
+ import { InternalModelAccessMap } from "../interfaces/internalModelAccess.js";
3
+ import { ModelHandler } from "../lib/model/ModelHandler.js";
4
4
  export declare function buildInternalModelAccess(config: AdminpanelConfig, modelHandler: ModelHandler): InternalModelAccessMap | undefined;
@@ -1,4 +1,4 @@
1
- import { AdminpanelConfig } from "../interfaces/adminpanelConfig";
1
+ import { AdminpanelConfig } from "../interfaces/adminpanelConfig.js";
2
2
  export declare function setDefaultConfig(config: AdminpanelConfig): void;
3
3
  export declare function getDefaultConfig(): AdminpanelConfig;
4
4
  export declare function defaults(): {
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export declare function bindWithMiddlewares(adminizer: Adminizer, middlewares: MiddlewareType[], action: MiddlewareType, policies?: MiddlewareType[]): MiddlewareType[];
@@ -1,4 +1,4 @@
1
- import type { AbstractModel, Attribute } from "../lib/model/AbstractModel";
1
+ import type { AbstractModel, Attribute } from "../lib/model/AbstractModel.js";
2
2
  export interface SystemModelAttributeContract {
3
3
  type?: Attribute["type"];
4
4
  required?: boolean;
@@ -61,8 +61,8 @@ export const SYSTEM_MODEL_CONTRACTS = [
61
61
  color: { type: "string" },
62
62
  version: { type: "number" },
63
63
  columns: { relation: { kind: "many", target: "FilterColumn" } },
64
- createdAt: { type: "string" },
65
- updatedAt: { type: "string" },
64
+ createdAt: { type: "date" },
65
+ updatedAt: { type: "date" },
66
66
  },
67
67
  },
68
68
  {
@@ -87,8 +87,8 @@ export const SYSTEM_MODEL_CONTRACTS = [
87
87
  diff: { type: "json" },
88
88
  user: { relation: { kind: "one", target: "User" } },
89
89
  isCurrent: { type: "boolean" },
90
- createdAt: { type: "string" },
91
- updatedAt: { type: "string" },
90
+ createdAt: { type: "date" },
91
+ updatedAt: { type: "date" },
92
92
  preview: { type: "boolean" },
93
93
  },
94
94
  },
@@ -102,8 +102,8 @@ export const SYSTEM_MODEL_CONTRACTS = [
102
102
  notificationClass: { type: "string" },
103
103
  channel: { type: "string" },
104
104
  metadata: { type: "json" },
105
- createdAt: { type: "string" },
106
- updatedAt: { type: "string" },
105
+ createdAt: { type: "date" },
106
+ updatedAt: { type: "date" },
107
107
  },
108
108
  },
109
109
  {
@@ -128,7 +128,11 @@ export function validateSystemModelContract(model, contract, options = {}) {
128
128
  errors.push(`attribute "${attributeName}" is missing`);
129
129
  continue;
130
130
  }
131
- if (expected.type && actual.type !== expected.type) {
131
+ // Before `date` existed, temporal columns were reported as `string`.
132
+ // Keep accepting that from third-party adapters that have not been updated.
133
+ const typeMatches = expected.type === actual.type
134
+ || (expected.type === "date" && actual.type === "string");
135
+ if (expected.type && !typeMatches) {
132
136
  errors.push(`attribute "${attributeName}" must have type "${expected.type}", received "${actual.type}"`);
133
137
  }
134
138
  if (expected.required === true && actual.required !== true) {
@@ -1,2 +1,2 @@
1
- import { Adminizer } from "../lib/Adminizer";
1
+ import { Adminizer } from "../lib/Adminizer.js";
2
2
  export declare function validateSystemModels(adminizer: Adminizer): void;