@gzl10/nexus-sdk 0.20.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -182,7 +182,7 @@ function useImageField(config) {
182
182
  accept = "image/*",
183
183
  maxSize = "1MB",
184
184
  folder,
185
- isPublic,
185
+ visibility,
186
186
  dedupe,
187
187
  required,
188
188
  nullable,
@@ -202,7 +202,7 @@ function useImageField(config) {
202
202
  accept,
203
203
  maxSize: parseFileSize(maxSize),
204
204
  folder,
205
- isPublic,
205
+ visibility,
206
206
  dedupe
207
207
  },
208
208
  meta: {
@@ -218,7 +218,7 @@ function useFileField(config) {
218
218
  accept = "*/*",
219
219
  maxSize = "10MB",
220
220
  folder,
221
- isPublic,
221
+ visibility,
222
222
  dedupe,
223
223
  required,
224
224
  nullable,
@@ -238,7 +238,7 @@ function useFileField(config) {
238
238
  accept,
239
239
  maxSize: parseFileSize(maxSize),
240
240
  folder,
241
- isPublic,
241
+ visibility,
242
242
  dedupe
243
243
  },
244
244
  meta: {
@@ -255,7 +255,7 @@ function useMultiImageField(config) {
255
255
  maxSize = "1MB",
256
256
  maxFiles = 10,
257
257
  folder,
258
- isPublic,
258
+ visibility,
259
259
  dedupe,
260
260
  thumbnails,
261
261
  required,
@@ -277,7 +277,7 @@ function useMultiImageField(config) {
277
277
  maxSize: parseFileSize(maxSize),
278
278
  maxFiles,
279
279
  folder,
280
- isPublic,
280
+ visibility,
281
281
  dedupe,
282
282
  thumbnails
283
283
  },
@@ -295,7 +295,7 @@ function useMultiFileField(config) {
295
295
  maxSize = "10MB",
296
296
  maxFiles = 10,
297
297
  folder,
298
- isPublic,
298
+ visibility,
299
299
  dedupe,
300
300
  required,
301
301
  nullable,
@@ -316,7 +316,7 @@ function useMultiFileField(config) {
316
316
  maxSize: parseFileSize(maxSize),
317
317
  maxFiles,
318
318
  folder,
319
- isPublic,
319
+ visibility,
320
320
  dedupe
321
321
  },
322
322
  meta: {
@@ -740,6 +740,19 @@ function useTagsField(config) {
740
740
  };
741
741
  }
742
742
 
743
+ // src/fields/attachments.ts
744
+ function useAttachmentsField(config) {
745
+ const { label, hint, accept, maxFiles, ...overrides } = config ?? {};
746
+ return {
747
+ label: label ?? { en: "Attachments", es: "Adjuntos" },
748
+ input: "attachments",
749
+ hint,
750
+ storage: accept || maxFiles ? { accept, maxFiles } : void 0,
751
+ meta: { showInDisplay: true, showInForm: true },
752
+ ...overrides
753
+ };
754
+ }
755
+
743
756
  // src/fields/name.ts
744
757
  function useNameField(config) {
745
758
  const {
@@ -977,6 +990,7 @@ export {
977
990
  useCheckboxField,
978
991
  usePasswordField,
979
992
  useTagsField,
993
+ useAttachmentsField,
980
994
  useNameField,
981
995
  useDescriptionField,
982
996
  useMetadataField,
@@ -1,5 +1,5 @@
1
- import { L as LocalizedString, b as FieldDefinition } from '../field-Bs1fIux8.js';
2
- import { d as CollectionEntityDefinition, f as DagEntityDefinition, e as EventEntityDefinition, aL as RolePermission } from '../entity-en_fBKjq.js';
1
+ import { L as LocalizedString, b as FieldDefinition } from '../field-C8Z1keXe.js';
2
+ import { d as CollectionEntityDefinition, f as DagEntityDefinition, e as EventEntityDefinition, aN as RolePermission } from '../entity-DurRjSbT.js';
3
3
  import 'knex';
4
4
  import 'express';
5
5
  import 'pino';
@@ -67,7 +67,7 @@ type EntityFactory<T> = (config?: CollectionEntityConfig) => T;
67
67
 
68
68
  /**
69
69
  * Default CASL permissions for polymorphic entities.
70
- * - All users can read
70
+ * - All authenticated users can read
71
71
  * - Authenticated users can create (own)
72
72
  * - Users can update/delete their own records
73
73
  * - Admins can manage all
@@ -17,11 +17,11 @@ import {
17
17
  useTextareaField,
18
18
  useUrlField,
19
19
  userIdField
20
- } from "../chunk-WHLUKKQO.js";
20
+ } from "../chunk-ZWGEZMYN.js";
21
21
 
22
22
  // src/collection/helpers.ts
23
23
  var polymorphicCaslPermissions = {
24
- "*": { actions: ["read"] },
24
+ "@": { actions: ["read"] },
25
25
  USER: {
26
26
  actions: ["create", "update", "delete"],
27
27
  conditions: { user_id: "${user.id}" }
@@ -215,9 +215,9 @@ var createAttachmentsEntity = createEntityFactory(
215
215
 
216
216
  // src/collection/polymorphic/tags.entity.ts
217
217
  var DEFAULT_TABLE3 = "tags";
218
- var DEFAULT_SUBJECT3 = "NxTag";
218
+ var DEFAULT_SUBJECT3 = "TaxonomyTag";
219
219
  var tagsCaslPermissions = {
220
- "*": { actions: ["read"] },
220
+ "@": { actions: ["read"] },
221
221
  USER: { actions: ["create"] },
222
222
  ADMIN: { actions: ["manage"] }
223
223
  };
@@ -303,7 +303,7 @@ var tagEntitiesEntity = {
303
303
  { columns: ["entity_type", "entity_id"] }
304
304
  ],
305
305
  casl: {
306
- subject: "NxTagEntity",
306
+ subject: "TaxonomyPolymorphicTag",
307
307
  permissions: tagsCaslPermissions
308
308
  }
309
309
  };
@@ -425,7 +425,7 @@ var createFavoritesEntity = createEntityFactory(
425
425
  var DEFAULT_TABLE6 = "ratings";
426
426
  var DEFAULT_SUBJECT6 = "NxRating";
427
427
  var ratingsCaslPermissions = {
428
- "*": { actions: ["read"] },
428
+ "@": { actions: ["read"] },
429
429
  USER: {
430
430
  actions: ["create", "update", "delete"],
431
431
  conditions: { user_id: "${user.id}" }
@@ -488,7 +488,7 @@ var createRatingsEntity = createEntityFactory(
488
488
  var DEFAULT_TABLE7 = "reactions";
489
489
  var DEFAULT_SUBJECT7 = "NxReaction";
490
490
  var reactionsCaslPermissions = {
491
- "*": { actions: ["read"] },
491
+ "@": { actions: ["read"] },
492
492
  USER: {
493
493
  actions: ["create", "delete"],
494
494
  conditions: { user_id: "${user.id}" }
@@ -622,7 +622,7 @@ var createMentionsEntity = createEntityFactory(
622
622
  var DEFAULT_TABLE9 = "options";
623
623
  var DEFAULT_SUBJECT9 = "NxOption";
624
624
  var optionsCaslPermissions = {
625
- "*": { actions: ["read"] },
625
+ "@": { actions: ["read"] },
626
626
  ADMIN: { actions: ["manage"] }
627
627
  };
628
628
  var OPTION_GROUPS = {
@@ -1,6 +1,6 @@
1
1
  import { Knex } from 'knex';
2
2
  import { Request, Router, RequestHandler, Response } from 'express';
3
- import { L as LocalizedString, b as FieldDefinition, j as LocaleConfig, E as EntityIndex, F as FieldCondition } from './field-Bs1fIux8.js';
3
+ import { L as LocalizedString, b as FieldDefinition, j as LocaleConfig, E as EntityIndex, F as FieldCondition } from './field-C8Z1keXe.js';
4
4
  import { Logger } from 'pino';
5
5
 
6
6
  /**
@@ -193,7 +193,12 @@ interface RolePermission {
193
193
  interface EntityCaslConfig {
194
194
  /** CASL subject name. Default: inferred from table */
195
195
  subject?: string;
196
- /** Role-based permissions. Keys are role names or '*' wildcard */
196
+ /**
197
+ * Role-based permissions.
198
+ * Keys are role names or special wildcards:
199
+ * - `'*'` — all users including anonymous (unauthenticated)
200
+ * - `'@'` — all authenticated users (any role, but NOT anonymous)
201
+ */
197
202
  permissions?: Record<string, RolePermission | RolePermission[]>;
198
203
  /** Fields excluded from 'read' permission unless explicitly granted */
199
204
  sensitiveFields?: string[];
@@ -1154,10 +1159,6 @@ interface RegisterPluginOptions {
1154
1159
  disableEndpoints?: boolean;
1155
1160
  }
1156
1161
 
1157
- /**
1158
- * Module context types
1159
- */
1160
-
1161
1162
  /**
1162
1163
  * Generic validation schema interface compatible with Zod.
1163
1164
  */
@@ -1452,6 +1453,8 @@ interface EngineContext {
1452
1453
  hasPlugin: (name: string) => boolean;
1453
1454
  getPluginByCode: (code: string) => PluginManifest | undefined;
1454
1455
  hasPluginByCode: (code: string) => boolean;
1456
+ /** Get an entity definition by module name and entity identifier */
1457
+ getEntityDefinition: (moduleName: string, entityName: string) => EntityDefinition | undefined;
1455
1458
  }
1456
1459
  /**
1457
1460
  * Services registry namespace.
@@ -1605,7 +1608,6 @@ interface SeedContext {
1605
1608
  es?: string;
1606
1609
  [key: string]: string | undefined;
1607
1610
  };
1608
- is_system?: boolean;
1609
1611
  /** CASL permissions. Keys: subject (case-insensitive). Values: action arrays. */
1610
1612
  permissions?: Record<string, Array<'read' | 'create' | 'update' | 'delete' | 'manage' | 'execute'>>;
1611
1613
  }): Promise<void>;
@@ -1632,6 +1634,77 @@ interface SeedContext {
1632
1634
  raw(table: string, data: Record<string, unknown> | Record<string, unknown>[]): Promise<number>;
1633
1635
  }
1634
1636
 
1637
+ /**
1638
+ * A workflow state with display metadata.
1639
+ */
1640
+ interface WorkflowState {
1641
+ /** Unique state identifier (stored in DB) */
1642
+ value: string;
1643
+ /** Human-readable label */
1644
+ label: LocalizedString;
1645
+ /** Hex color for badges and board columns */
1646
+ color?: string;
1647
+ /** Iconify icon name */
1648
+ icon?: string;
1649
+ }
1650
+ /**
1651
+ * A valid transition between two workflow states.
1652
+ */
1653
+ interface WorkflowTransition {
1654
+ /** Source state value */
1655
+ from: string;
1656
+ /** Target state value */
1657
+ to: string;
1658
+ /** Optional CASL action required for this transition (checked beyond base 'update' permission) */
1659
+ casl?: {
1660
+ action: string;
1661
+ };
1662
+ }
1663
+ /**
1664
+ * Workflow configuration for entity definitions.
1665
+ * Declares states, valid transitions, and optional per-transition CASL permissions.
1666
+ * Only applicable to mutable entity types: collection, tree, dag.
1667
+ */
1668
+ interface WorkflowConfig {
1669
+ /** Field name that holds the workflow state (default: 'status') */
1670
+ field?: string;
1671
+ /** Initial state value for new records (required, must exist in states) */
1672
+ initial: string;
1673
+ /** Available states with display metadata */
1674
+ states: WorkflowState[];
1675
+ /** Valid state transitions */
1676
+ transitions: WorkflowTransition[];
1677
+ /** Label for the auto-injected field (default: { en: 'Status', es: 'Estado' }) */
1678
+ fieldLabel?: LocalizedString;
1679
+ }
1680
+ /**
1681
+ * Serializable workflow state for frontend consumption.
1682
+ */
1683
+ interface WorkflowStateDTO {
1684
+ value: string;
1685
+ label: LocalizedString;
1686
+ color?: string;
1687
+ icon?: string;
1688
+ }
1689
+ /**
1690
+ * Serializable workflow transition for frontend consumption.
1691
+ */
1692
+ interface WorkflowTransitionDTO {
1693
+ from: string;
1694
+ to: string;
1695
+ /** CASL action name required for this transition (frontend checks ability.can(action, subject)) */
1696
+ caslAction?: string;
1697
+ }
1698
+ /**
1699
+ * Serializable workflow config for EntityDefinitionDTO.
1700
+ */
1701
+ interface WorkflowDTO {
1702
+ field: string;
1703
+ initial: string;
1704
+ states: WorkflowStateDTO[];
1705
+ transitions: WorkflowTransitionDTO[];
1706
+ }
1707
+
1635
1708
  /**
1636
1709
  * Entity definition types - discriminated union for all entity types
1637
1710
  */
@@ -1780,6 +1853,13 @@ interface ActionDefinition {
1780
1853
  }
1781
1854
  /** @deprecated Use ActionDefinition instead */
1782
1855
  type EntityAction = ActionDefinition;
1856
+ /** Configuration for file attachments on an entity */
1857
+ interface AttachableConfig {
1858
+ /** Accepted MIME types (e.g. 'image/*,application/pdf'). If omitted, all types allowed. */
1859
+ accept?: string;
1860
+ /** Max number of attached files per entity instance. If omitted, unlimited. */
1861
+ maxFiles?: number;
1862
+ }
1783
1863
  /**
1784
1864
  * Base properties shared by all EntityDefinition types.
1785
1865
  * @internal
@@ -1797,8 +1877,6 @@ interface BaseEntityDefinition {
1797
1877
  fields: Record<string, FieldDefinition>;
1798
1878
  /** CASL authorization configuration */
1799
1879
  casl?: EntityCaslConfig;
1800
- /** If true, all endpoints are publicly accessible without authentication (default-deny) */
1801
- public?: boolean;
1802
1880
  /** API route prefix */
1803
1881
  routePrefix?: string;
1804
1882
  /** UI sidebar ordering (default: 999) */
@@ -1842,12 +1920,16 @@ interface BaseEntityDefinition {
1842
1920
  * On startup, JSONs from data/seeds/ are imported with upsert semantics.
1843
1921
  */
1844
1922
  seedable?: boolean;
1923
+ /** If true, this entity supports taxonomy tagging via tag_assignments pivot. UI renders tag selector. */
1924
+ taggeable?: boolean;
1925
+ /** If true or config, this entity supports file attachments via file_attachments pivot. UI renders file picker. */
1926
+ attachable?: boolean | AttachableConfig;
1845
1927
  }
1846
1928
  /**
1847
1929
  * Public type exposing the common properties shared by all entity definition types.
1848
1930
  * Use this when writing generic code that works with any entity definition.
1849
1931
  */
1850
- type SharedEntityProperties = Pick<BaseEntityDefinition, 'table' | 'label' | 'labelPlural' | 'icon' | 'fields' | 'casl' | 'public' | 'routePrefix' | 'order' | 'displayMode' | 'groupBy' | 'subgroupBy' | 'calendarFrom' | 'calendarTo' | 'defaultSort' | 'hidden' | 'expose' | 'middleware' | 'adapter' | 'hooks' | 'realtime'>;
1932
+ type SharedEntityProperties = Pick<BaseEntityDefinition, 'table' | 'label' | 'labelPlural' | 'icon' | 'fields' | 'casl' | 'routePrefix' | 'order' | 'displayMode' | 'groupBy' | 'subgroupBy' | 'calendarFrom' | 'calendarTo' | 'defaultSort' | 'hidden' | 'expose' | 'middleware' | 'adapter' | 'hooks' | 'realtime' | 'taggeable' | 'attachable'>;
1851
1933
  /**
1852
1934
  * Collection entity - the most common entity type with full CRUD operations.
1853
1935
  */
@@ -1885,12 +1967,14 @@ interface CollectionEntityDefinition extends BaseEntityDefinition {
1885
1967
  allowEdit?: boolean;
1886
1968
  /** Allow deleting records. When false, DELETE endpoint is not mounted. Default: true */
1887
1969
  allowDelete?: boolean;
1970
+ /** Workflow configuration: states, transitions, and per-transition CASL permissions */
1971
+ workflow?: WorkflowConfig;
1888
1972
  }
1889
1973
  /**
1890
1974
  * Singleton entity - stores a single record in the shared single_records table.
1891
1975
  * When scopeField is set, operates in scoped mode (multiple records keyed by scope).
1892
1976
  */
1893
- interface SingleEntityDefinition extends Pick<BaseEntityDefinition, 'label' | 'labelPlural' | 'icon' | 'fields' | 'casl' | 'public' | 'routePrefix' | 'order' | 'hidden' | 'expose' | 'hooks' | 'realtime'> {
1977
+ interface SingleEntityDefinition extends Pick<BaseEntityDefinition, 'label' | 'labelPlural' | 'icon' | 'fields' | 'casl' | 'routePrefix' | 'order' | 'hidden' | 'expose' | 'hooks' | 'realtime'> {
1894
1978
  type: 'single' | 'config';
1895
1979
  /** Unique key in single_records table */
1896
1980
  key: string;
@@ -1942,6 +2026,8 @@ interface TreeEntityDefinition extends BaseEntityDefinition {
1942
2026
  allowEdit?: boolean;
1943
2027
  allowDelete?: boolean;
1944
2028
  allowDragDrop?: boolean;
2029
+ /** Workflow configuration: states, transitions, and per-transition CASL permissions */
2030
+ workflow?: WorkflowConfig;
1945
2031
  }
1946
2032
  /**
1947
2033
  * DAG entity - Directed Acyclic Graph with multiple parents.
@@ -1960,6 +2046,8 @@ interface DagEntityDefinition extends BaseEntityDefinition {
1960
2046
  allowEdit?: boolean;
1961
2047
  allowDelete?: boolean;
1962
2048
  allowDragDrop?: boolean;
2049
+ /** Workflow configuration: states, transitions, and per-transition CASL permissions */
2050
+ workflow?: WorkflowConfig;
1963
2051
  }
1964
2052
  /**
1965
2053
  * Retention policy for automatic data cleanup.
@@ -2022,8 +2110,6 @@ interface ComputedEntityDefinition {
2022
2110
  };
2023
2111
  isSingle?: boolean;
2024
2112
  casl?: EntityCaslConfig;
2025
- /** If true, all endpoints are publicly accessible without authentication (default-deny) */
2026
- public?: boolean;
2027
2113
  routePrefix?: string;
2028
2114
  order?: number;
2029
2115
  displayMode?: DisplayMode;
@@ -2055,8 +2141,6 @@ interface ViewEntityDefinition {
2055
2141
  fields: Record<string, FieldDefinition>;
2056
2142
  query?: string | ((db: Knex) => Knex.QueryBuilder);
2057
2143
  casl?: EntityCaslConfig;
2058
- /** If true, all endpoints are publicly accessible without authentication (default-deny) */
2059
- public?: boolean;
2060
2144
  routePrefix?: string;
2061
2145
  order?: number;
2062
2146
  /** If false, HTTP routes are not mounted and entity is excluded from frontend DTO. Service, hooks, and CASL still work. Default: true */
@@ -2083,4 +2167,4 @@ type TempEntityDefinition = Omit<CollectionEntityDefinition, 'type'> & {
2083
2167
  */
2084
2168
  type EntityDefinition = CollectionEntityDefinition | SingleEntityDefinition | ExternalEntityDefinition | VirtualEntityDefinition | ComputedEntityDefinition | ViewEntityDefinition | ReferenceEntityDefinition | TreeEntityDefinition | DagEntityDefinition | EventEntityDefinition;
2085
2169
 
2086
- export { type CoreServices as $, type ActionDefinition as A, type BaseAuthRequest as B, type ConfirmConfig as C, type DisplayMode as D, type EntityType as E, type CacheStats as F, type CapabilitiesRegistry as G, type CaslAction as H, type CategoryMeta as I, type CollectionEntityService as J, type ComputedEntityService as K, type ConfigContext as L, type ModuleContext as M, type ConfigEntityDefinition as N, type ConfigEntityService as O, type PostActionPipeline as P, type ConfirmationType as Q, type RealtimeMode as R, type SingleEntityDefinition as S, type TreeEntityDefinition as T, type ContextCrypto as U, type ViewEntityDefinition as V, type ContextEvents as W, type ContextEventsHub as X, type ContextHelpers as Y, type ContextSocket as Z, type CoreContext as _, type Category as a, type SendMailOptions as a$, type CreateEntityServiceOptions as a0, type CustomRouteDefinition as a1, DEFAULT_TENANT_ID as a2, type DagEntityService as a3, type DatabaseAdapter as a4, type DbContext as a5, type EngineContext as a6, type EntityAction as a7, type EntityCaslConfig as a8, type EntityChangePayload as a9, type PluginConfigField as aA, type PluginConfigSchema as aB, type PluginEnvVar as aC, type PluginManifest as aD, type PluginSetupInfo as aE, type PostAction as aF, type RateLimitOptions as aG, type ReferenceEntityDefinition as aH, type ReferenceEntityService as aI, type RegisterPluginOptions as aJ, type RetentionPolicy as aK, type RolePermission as aL, type RouteParameterDefinition as aM, type RouteResponseDefinition as aN, type RuntimeContext as aO, type SSEHelper as aP, type SSEOptions as aQ, type SSESender as aR, type SchemaAdapter as aS, type SchemaAlterTableBuilder as aT, type SchemaColumnBuilder as aU, type SchemaColumnInfo as aV, type SchemaForeignKeyBuilder as aW, type SchemaTableBuilder as aX, type ScopedCacheManager as aY, type SeedConfig as aZ, type SeedContext as a_, type EntityController as aa, type EntityHandler as ab, type EntityQuery as ac, type EntityRealtimeEmits as ad, type EntityRealtimeEvents as ae, type EntityServiceHooks as af, type EventEmitterLike as ag, type EventEntityService as ah, type ExternalEntityDefinition as ai, type ExternalEntityService as aj, type FilterOperators as ak, type FilterValue as al, type ForbiddenErrorConstructor as am, type ForbiddenErrorInstance as an, type HttpMethod as ao, type LoggerReporter as ap, type ManagedCache as aq, type ModuleAbilities as ar, type ModuleManifest as as, type ModuleMiddlewares as at, type ModuleRequirements as au, type PageDefinition as av, type PageType as aw, type PaginatedResult as ax, type PaginationParams as ay, type PaginationParamsWithOffset as az, type PageDefinitionDTO as b, type SendMailResult as b0, type ServerEntityQuery as b1, type ServicesContext as b2, type SharedEntityProperties as b3, type SingleEntityService as b4, type SocketIOBroadcastOperator as b5, type SocketIOServer as b6, type TempEntityDefinition as b7, type TempEntityService as b8, type TempRetentionPolicy as b9, type TreeEntityService as ba, type TreeNode as bb, type TypedEntityQuery as bc, type ValidateSchemas as bd, type ValidationDetail as be, type ValidationSchema as bf, type ViewEntityService as bg, type VirtualEntityDefinition as bh, type VirtualEntityService as bi, type WidgetDefinition as bj, type WidgetLayout as bk, entityRoom as bl, type ComputedEntityDefinition as c, type CollectionEntityDefinition as d, type EventEntityDefinition as e, type DagEntityDefinition as f, type EntityDefinition as g, type AbilityLike as h, type ActionEntityService as i, type ActionInjection as j, type AdaptersContext as k, type AppManifest as l, type AuthRequest as m, type BaseEntityService as n, type BaseMailService as o, type BaseRolesService as p, type BaseUser as q, type BaseUsersService as r, type BatchLogEntry as s, type BatchProgressEvent as t, type BridgeRule as u, type BridgeTarget as v, CATEGORIES as w, CATEGORY_ORDER as x, type CacheManagerContract as y, type CacheOptions as z };
2170
+ export { type ContextSocket as $, type ActionDefinition as A, type BaseAuthRequest as B, type ConfirmConfig as C, type DisplayMode as D, type EntityType as E, type CacheOptions as F, type CacheStats as G, type CapabilitiesRegistry as H, type CaslAction as I, type CategoryMeta as J, type CollectionEntityService as K, type ComputedEntityService as L, type ModuleContext as M, type ConfigContext as N, type ConfigEntityDefinition as O, type PostActionPipeline as P, type ConfigEntityService as Q, type RealtimeMode as R, type SingleEntityDefinition as S, type TreeEntityDefinition as T, type ConfirmationType as U, type ViewEntityDefinition as V, type WorkflowDTO as W, type ContextCrypto as X, type ContextEvents as Y, type ContextEventsHub as Z, type ContextHelpers as _, type Category as a, type SeedConfig as a$, type CoreContext as a0, type CoreServices as a1, type CreateEntityServiceOptions as a2, type CustomRouteDefinition as a3, DEFAULT_TENANT_ID as a4, type DagEntityService as a5, type DatabaseAdapter as a6, type DbContext as a7, type EngineContext as a8, type EntityAction as a9, type PaginationParams as aA, type PaginationParamsWithOffset as aB, type PluginConfigField as aC, type PluginConfigSchema as aD, type PluginEnvVar as aE, type PluginManifest as aF, type PluginSetupInfo as aG, type PostAction as aH, type RateLimitOptions as aI, type ReferenceEntityDefinition as aJ, type ReferenceEntityService as aK, type RegisterPluginOptions as aL, type RetentionPolicy as aM, type RolePermission as aN, type RouteParameterDefinition as aO, type RouteResponseDefinition as aP, type RuntimeContext as aQ, type SSEHelper as aR, type SSEOptions as aS, type SSESender as aT, type SchemaAdapter as aU, type SchemaAlterTableBuilder as aV, type SchemaColumnBuilder as aW, type SchemaColumnInfo as aX, type SchemaForeignKeyBuilder as aY, type SchemaTableBuilder as aZ, type ScopedCacheManager as a_, type EntityCaslConfig as aa, type EntityChangePayload as ab, type EntityController as ac, type EntityHandler as ad, type EntityQuery as ae, type EntityRealtimeEmits as af, type EntityRealtimeEvents as ag, type EntityServiceHooks as ah, type EventEmitterLike as ai, type EventEntityService as aj, type ExternalEntityDefinition as ak, type ExternalEntityService as al, type FilterOperators as am, type FilterValue as an, type ForbiddenErrorConstructor as ao, type ForbiddenErrorInstance as ap, type HttpMethod as aq, type LoggerReporter as ar, type ManagedCache as as, type ModuleAbilities as at, type ModuleManifest as au, type ModuleMiddlewares as av, type ModuleRequirements as aw, type PageDefinition as ax, type PageType as ay, type PaginatedResult as az, type PageDefinitionDTO as b, type SeedContext as b0, type SendMailOptions as b1, type SendMailResult as b2, type ServerEntityQuery as b3, type ServicesContext as b4, type SharedEntityProperties as b5, type SingleEntityService as b6, type SocketIOBroadcastOperator as b7, type SocketIOServer as b8, type TempEntityDefinition as b9, type TempEntityService as ba, type TempRetentionPolicy as bb, type TreeEntityService as bc, type TreeNode as bd, type TypedEntityQuery as be, type ValidateSchemas as bf, type ValidationDetail as bg, type ValidationSchema as bh, type ViewEntityService as bi, type VirtualEntityDefinition as bj, type VirtualEntityService as bk, type WidgetDefinition as bl, type WidgetLayout as bm, type WorkflowConfig as bn, type WorkflowState as bo, type WorkflowStateDTO as bp, type WorkflowTransition as bq, type WorkflowTransitionDTO as br, entityRoom as bs, type ComputedEntityDefinition as c, type CollectionEntityDefinition as d, type EventEntityDefinition as e, type DagEntityDefinition as f, type EntityDefinition as g, type AbilityLike as h, type ActionEntityService as i, type ActionInjection as j, type AdaptersContext as k, type AppManifest as l, type AttachableConfig as m, type AuthRequest as n, type BaseEntityService as o, type BaseMailService as p, type BaseRolesService as q, type BaseUser as r, type BaseUsersService as s, type BatchLogEntry as t, type BatchProgressEvent as u, type BridgeRule as v, type BridgeTarget as w, CATEGORIES as x, CATEGORY_ORDER as y, type CacheManagerContract as z };
@@ -274,8 +274,8 @@ interface FieldStorageConfig {
274
274
  }>;
275
275
  /** Enable SHA256 hash deduplication */
276
276
  dedupe?: boolean;
277
- /** If true, files are publicly accessible without authentication */
278
- isPublic?: boolean;
277
+ /** File visibility: 'public' (anyone), 'internal' (authenticated), 'private' (owner only) */
278
+ visibility?: 'public' | 'internal' | 'private';
279
279
  }
280
280
  /**
281
281
  * Field metadata for UI behavior and data operations.
@@ -1,4 +1,4 @@
1
- import { b as FieldDefinition } from '../field-Bs1fIux8.js';
1
+ import { b as FieldDefinition } from '../field-C8Z1keXe.js';
2
2
  import { MasterType } from '../masters/index.js';
3
3
 
4
4
  /**
@@ -337,8 +337,8 @@ interface ImageFieldConfig {
337
337
  maxSize?: FileSize;
338
338
  /** Storage folder path */
339
339
  folder?: string;
340
- /** Mark uploaded files as public (accessible without authentication) */
341
- isPublic?: boolean;
340
+ /** File visibility: public (no auth required), internal (org members), or private (owner only) */
341
+ visibility?: 'public' | 'internal' | 'private';
342
342
  /** Enable SHA256 hash deduplication (default: false) */
343
343
  dedupe?: boolean;
344
344
  /** Is field required? (default: false) */
@@ -390,8 +390,8 @@ interface FileFieldConfig {
390
390
  maxSize?: FileSize;
391
391
  /** Storage folder path */
392
392
  folder?: string;
393
- /** Mark uploaded files as public (accessible without authentication) */
394
- isPublic?: boolean;
393
+ /** File visibility: public (no auth required), internal (org members), or private (owner only) */
394
+ visibility?: 'public' | 'internal' | 'private';
395
395
  /** Enable SHA256 hash deduplication (default: false) */
396
396
  dedupe?: boolean;
397
397
  /** Is field required? (default: false) */
@@ -453,8 +453,8 @@ interface MultiImageFieldConfig {
453
453
  maxFiles?: number;
454
454
  /** Storage folder path */
455
455
  folder?: string;
456
- /** Mark uploaded files as public (accessible without authentication) */
457
- isPublic?: boolean;
456
+ /** File visibility: public (no auth required), internal (org members), or private (owner only) */
457
+ visibility?: 'public' | 'internal' | 'private';
458
458
  /** Enable SHA256 hash deduplication (default: false) */
459
459
  dedupe?: boolean;
460
460
  /** Thumbnail sizes to auto-generate */
@@ -513,8 +513,8 @@ interface MultiFileFieldConfig {
513
513
  maxFiles?: number;
514
514
  /** Storage folder path */
515
515
  folder?: string;
516
- /** Mark uploaded files as public (accessible without authentication) */
517
- isPublic?: boolean;
516
+ /** File visibility: public (no auth required), internal (org members), or private (owner only) */
517
+ visibility?: 'public' | 'internal' | 'private';
518
518
  /** Enable SHA256 hash deduplication (default: false) */
519
519
  dedupe?: boolean;
520
520
  /** Is field required? (default: false) */
@@ -1378,6 +1378,49 @@ interface TagsFieldConfig {
1378
1378
  */
1379
1379
  declare function useTagsField(config?: TagsFieldConfig & FieldOverrides): FieldDefinition;
1380
1380
 
1381
+ /**
1382
+ * Attachments Field Factory
1383
+ *
1384
+ * Virtual field for file attachments. No DB column — data in file_attachments pivot.
1385
+ * Requires entity to declare `attachable: true` or `attachable: { ... }`.
1386
+ */
1387
+
1388
+ /**
1389
+ * Configuration for attachments fields.
1390
+ */
1391
+ interface AttachmentsFieldConfig {
1392
+ /** Field label (localized) */
1393
+ label?: string | {
1394
+ en: string;
1395
+ es?: string;
1396
+ };
1397
+ /** Help text shown below the input */
1398
+ hint?: string | {
1399
+ en: string;
1400
+ es?: string;
1401
+ };
1402
+ /** Accepted MIME types — overrides entity-level accept */
1403
+ accept?: string;
1404
+ /** Max number of attached files — overrides entity-level maxFiles */
1405
+ maxFiles?: number;
1406
+ }
1407
+ /**
1408
+ * Create a virtual field for file attachments.
1409
+ *
1410
+ * No DB column is created — data lives in the file_attachments pivot table.
1411
+ * The entity must declare `attachable: true` or `attachable: { ... }`.
1412
+ *
1413
+ * @example
1414
+ * ```typescript
1415
+ * documents: useAttachmentsField({
1416
+ * label: { en: 'Documents', es: 'Documentos' },
1417
+ * accept: 'application/pdf,image/*',
1418
+ * maxFiles: 10
1419
+ * })
1420
+ * ```
1421
+ */
1422
+ declare function useAttachmentsField(config?: AttachmentsFieldConfig & FieldOverrides): FieldDefinition;
1423
+
1381
1424
  /**
1382
1425
  * Name Field Factory
1383
1426
  *
@@ -1627,4 +1670,4 @@ declare const auditFields: Record<string, FieldDefinition>;
1627
1670
  /** deleted_at for soft-delete pattern */
1628
1671
  declare const softDeleteFields: Record<string, FieldDefinition>;
1629
1672
 
1630
- export { type CheckboxFieldConfig, type CodeFieldConfig, type ColorFieldConfig, type DatetimeFieldConfig, type DescriptionFieldConfig, type EmailFieldConfig, type EnabledFieldConfig, type ExpiresAtFieldConfig, type FieldOverrides, type FileFieldConfig, type FileSize, type IconFieldConfig, type IdFieldConfig, type IdType, type ImageFieldConfig, type JsonFieldConfig, type LocalizedFieldConfig, type MasterSelectConfig, type MetadataFieldConfig, type MultiFileFieldConfig, type MultiImageFieldConfig, type NameFieldConfig, type NumberFieldConfig, type PasswordFieldConfig, type PatternIdConfig, type PublicFieldConfig, type RelationSelectConfig, type SelectOption, type StaticSelectConfig, type SwitchFieldConfig, type TagsFieldConfig, type TextFieldConfig, type TextUniqueFieldConfig, type TextareaFieldConfig, type UrlFieldConfig, auditFields, idField, isActiveField, orderField, parseFileSize, softDeleteFields, timestampFields, useCheckboxField, useCodeField, useColorField, useDatetimeField, useDescriptionField, useEmailField, useEnabledField, useExpiresAtField, useFileField, useIconField, useIdField, useImageField, useJsonField, useLocalizedField, useMetadataField, useMultiFileField, useMultiImageField, useNameField, useNumberField, usePasswordField, usePublicField, useSelectField, useSwitchField, useTagsField, useTextField, useTextUniqueField, useTextareaField, useUrlField, userIdField };
1673
+ export { type AttachmentsFieldConfig, type CheckboxFieldConfig, type CodeFieldConfig, type ColorFieldConfig, type DatetimeFieldConfig, type DescriptionFieldConfig, type EmailFieldConfig, type EnabledFieldConfig, type ExpiresAtFieldConfig, type FieldOverrides, type FileFieldConfig, type FileSize, type IconFieldConfig, type IdFieldConfig, type IdType, type ImageFieldConfig, type JsonFieldConfig, type LocalizedFieldConfig, type MasterSelectConfig, type MetadataFieldConfig, type MultiFileFieldConfig, type MultiImageFieldConfig, type NameFieldConfig, type NumberFieldConfig, type PasswordFieldConfig, type PatternIdConfig, type PublicFieldConfig, type RelationSelectConfig, type SelectOption, type StaticSelectConfig, type SwitchFieldConfig, type TagsFieldConfig, type TextFieldConfig, type TextUniqueFieldConfig, type TextareaFieldConfig, type UrlFieldConfig, auditFields, idField, isActiveField, orderField, parseFileSize, softDeleteFields, timestampFields, useAttachmentsField, useCheckboxField, useCodeField, useColorField, useDatetimeField, useDescriptionField, useEmailField, useEnabledField, useExpiresAtField, useFileField, useIconField, useIdField, useImageField, useJsonField, useLocalizedField, useMetadataField, useMultiFileField, useMultiImageField, useNameField, useNumberField, usePasswordField, usePublicField, useSelectField, useSwitchField, useTagsField, useTextField, useTextUniqueField, useTextareaField, useUrlField, userIdField };
@@ -6,6 +6,7 @@ import {
6
6
  parseFileSize,
7
7
  softDeleteFields,
8
8
  timestampFields,
9
+ useAttachmentsField,
9
10
  useCheckboxField,
10
11
  useCodeField,
11
12
  useColorField,
@@ -35,7 +36,7 @@ import {
35
36
  useTextareaField,
36
37
  useUrlField,
37
38
  userIdField
38
- } from "../chunk-WHLUKKQO.js";
39
+ } from "../chunk-ZWGEZMYN.js";
39
40
  export {
40
41
  auditFields,
41
42
  idField,
@@ -44,6 +45,7 @@ export {
44
45
  parseFileSize,
45
46
  softDeleteFields,
46
47
  timestampFields,
48
+ useAttachmentsField,
47
49
  useCheckboxField,
48
50
  useCodeField,
49
51
  useColorField,
package/dist/index.d.ts CHANGED
@@ -2,10 +2,10 @@ import { Knex } from 'knex';
2
2
  export { Knex } from 'knex';
3
3
  import { Request, Response } from 'express';
4
4
  export { CookieOptions, NextFunction, Request, RequestHandler, Response, Router } from 'express';
5
- import { C as ConfirmConfig, P as PostActionPipeline, a as Category, E as EntityType, D as DisplayMode, R as RealtimeMode, b as PageDefinitionDTO, c as ComputedEntityDefinition, d as CollectionEntityDefinition, e as EventEntityDefinition, V as ViewEntityDefinition, T as TreeEntityDefinition, f as DagEntityDefinition, g as EntityDefinition, S as SingleEntityDefinition, A as ActionDefinition, M as ModuleContext } from './entity-en_fBKjq.js';
6
- export { h as AbilityLike, i as ActionEntityService, j as ActionInjection, k as AdaptersContext, l as AppManifest, m as AuthRequest, B as BaseAuthRequest, n as BaseEntityService, o as BaseMailService, p as BaseRolesService, q as BaseUser, r as BaseUsersService, s as BatchLogEntry, t as BatchProgressEvent, u as BridgeRule, v as BridgeTarget, w as CATEGORIES, x as CATEGORY_ORDER, y as CacheManagerContract, z as CacheOptions, F as CacheStats, G as CapabilitiesRegistry, H as CaslAction, I as CategoryMeta, J as CollectionEntityService, K as ComputedEntityService, L as ConfigContext, N as ConfigEntityDefinition, O as ConfigEntityService, Q as ConfirmationType, U as ContextCrypto, W as ContextEvents, X as ContextEventsHub, Y as ContextHelpers, Z as ContextSocket, _ as CoreContext, $ as CoreServices, a0 as CreateEntityServiceOptions, a1 as CustomRouteDefinition, a2 as DEFAULT_TENANT_ID, a3 as DagEntityService, a4 as DatabaseAdapter, a5 as DbContext, a6 as EngineContext, a7 as EntityAction, a8 as EntityCaslConfig, a9 as EntityChangePayload, aa as EntityController, ab as EntityHandler, ac as EntityQuery, ad as EntityRealtimeEmits, ae as EntityRealtimeEvents, af as EntityServiceHooks, ag as EventEmitterLike, ah as EventEntityService, ai as ExternalEntityDefinition, aj as ExternalEntityService, ak as FilterOperators, al as FilterValue, am as ForbiddenErrorConstructor, an as ForbiddenErrorInstance, ao as HttpMethod, ap as LoggerReporter, aq as ManagedCache, ar as ModuleAbilities, as as ModuleManifest, at as ModuleMiddlewares, au as ModuleRequirements, av as PageDefinition, aw as PageType, ax as PaginatedResult, ay as PaginationParams, az as PaginationParamsWithOffset, aA as PluginConfigField, aB as PluginConfigSchema, aC as PluginEnvVar, aD as PluginManifest, aE as PluginSetupInfo, aF as PostAction, aG as RateLimitOptions, aH as ReferenceEntityDefinition, aI as ReferenceEntityService, aJ as RegisterPluginOptions, aK as RetentionPolicy, aL as RolePermission, aM as RouteParameterDefinition, aN as RouteResponseDefinition, aO as RuntimeContext, aP as SSEHelper, aQ as SSEOptions, aR as SSESender, aS as SchemaAdapter, aT as SchemaAlterTableBuilder, aU as SchemaColumnBuilder, aV as SchemaColumnInfo, aW as SchemaForeignKeyBuilder, aX as SchemaTableBuilder, aY as ScopedCacheManager, aZ as SeedConfig, a_ as SeedContext, a$ as SendMailOptions, b0 as SendMailResult, b1 as ServerEntityQuery, b2 as ServicesContext, b3 as SharedEntityProperties, b4 as SingleEntityService, b5 as SocketIOBroadcastOperator, b6 as SocketIOServer, b7 as TempEntityDefinition, b8 as TempEntityService, b9 as TempRetentionPolicy, ba as TreeEntityService, bb as TreeNode, bc as TypedEntityQuery, bd as ValidateSchemas, be as ValidationDetail, bf as ValidationSchema, bg as ViewEntityService, bh as VirtualEntityDefinition, bi as VirtualEntityService, bj as WidgetDefinition, bk as WidgetLayout, bl as entityRoom } from './entity-en_fBKjq.js';
7
- import { L as LocalizedString, F as FieldCondition, I as InputType, a as FieldMeta, b as FieldDefinition } from './field-Bs1fIux8.js';
8
- export { A as AuthProviderInfo, c as AuthProviderService, C as ConditionalBoolean, D as DEFAULT_LOCALES, d as DbType, E as EntityIndex, e as FieldDbConfig, f as FieldOptions, g as FieldRelation, h as FieldStorageConfig, i as FieldValidationConfig, j as LocaleConfig, k as getCountLabel, l as getFallbackLocale, r as refOptions, m as resolveLocalized } from './field-Bs1fIux8.js';
5
+ import { C as ConfirmConfig, P as PostActionPipeline, a as Category, E as EntityType, D as DisplayMode, R as RealtimeMode, W as WorkflowDTO, b as PageDefinitionDTO, c as ComputedEntityDefinition, d as CollectionEntityDefinition, e as EventEntityDefinition, V as ViewEntityDefinition, T as TreeEntityDefinition, f as DagEntityDefinition, g as EntityDefinition, S as SingleEntityDefinition, A as ActionDefinition, M as ModuleContext } from './entity-DurRjSbT.js';
6
+ export { h as AbilityLike, i as ActionEntityService, j as ActionInjection, k as AdaptersContext, l as AppManifest, m as AttachableConfig, n as AuthRequest, B as BaseAuthRequest, o as BaseEntityService, p as BaseMailService, q as BaseRolesService, r as BaseUser, s as BaseUsersService, t as BatchLogEntry, u as BatchProgressEvent, v as BridgeRule, w as BridgeTarget, x as CATEGORIES, y as CATEGORY_ORDER, z as CacheManagerContract, F as CacheOptions, G as CacheStats, H as CapabilitiesRegistry, I as CaslAction, J as CategoryMeta, K as CollectionEntityService, L as ComputedEntityService, N as ConfigContext, O as ConfigEntityDefinition, Q as ConfigEntityService, U as ConfirmationType, X as ContextCrypto, Y as ContextEvents, Z as ContextEventsHub, _ as ContextHelpers, $ as ContextSocket, a0 as CoreContext, a1 as CoreServices, a2 as CreateEntityServiceOptions, a3 as CustomRouteDefinition, a4 as DEFAULT_TENANT_ID, a5 as DagEntityService, a6 as DatabaseAdapter, a7 as DbContext, a8 as EngineContext, a9 as EntityAction, aa as EntityCaslConfig, ab as EntityChangePayload, ac as EntityController, ad as EntityHandler, ae as EntityQuery, af as EntityRealtimeEmits, ag as EntityRealtimeEvents, ah as EntityServiceHooks, ai as EventEmitterLike, aj as EventEntityService, ak as ExternalEntityDefinition, al as ExternalEntityService, am as FilterOperators, an as FilterValue, ao as ForbiddenErrorConstructor, ap as ForbiddenErrorInstance, aq as HttpMethod, ar as LoggerReporter, as as ManagedCache, at as ModuleAbilities, au as ModuleManifest, av as ModuleMiddlewares, aw as ModuleRequirements, ax as PageDefinition, ay as PageType, az as PaginatedResult, aA as PaginationParams, aB as PaginationParamsWithOffset, aC as PluginConfigField, aD as PluginConfigSchema, aE as PluginEnvVar, aF as PluginManifest, aG as PluginSetupInfo, aH as PostAction, aI as RateLimitOptions, aJ as ReferenceEntityDefinition, aK as ReferenceEntityService, aL as RegisterPluginOptions, aM as RetentionPolicy, aN as RolePermission, aO as RouteParameterDefinition, aP as RouteResponseDefinition, aQ as RuntimeContext, aR as SSEHelper, aS as SSEOptions, aT as SSESender, aU as SchemaAdapter, aV as SchemaAlterTableBuilder, aW as SchemaColumnBuilder, aX as SchemaColumnInfo, aY as SchemaForeignKeyBuilder, aZ as SchemaTableBuilder, a_ as ScopedCacheManager, a$ as SeedConfig, b0 as SeedContext, b1 as SendMailOptions, b2 as SendMailResult, b3 as ServerEntityQuery, b4 as ServicesContext, b5 as SharedEntityProperties, b6 as SingleEntityService, b7 as SocketIOBroadcastOperator, b8 as SocketIOServer, b9 as TempEntityDefinition, ba as TempEntityService, bb as TempRetentionPolicy, bc as TreeEntityService, bd as TreeNode, be as TypedEntityQuery, bf as ValidateSchemas, bg as ValidationDetail, bh as ValidationSchema, bi as ViewEntityService, bj as VirtualEntityDefinition, bk as VirtualEntityService, bl as WidgetDefinition, bm as WidgetLayout, bn as WorkflowConfig, bo as WorkflowState, bp as WorkflowStateDTO, bq as WorkflowTransition, br as WorkflowTransitionDTO, bs as entityRoom } from './entity-DurRjSbT.js';
7
+ import { L as LocalizedString, F as FieldCondition, I as InputType, a as FieldMeta, b as FieldDefinition } from './field-C8Z1keXe.js';
8
+ export { A as AuthProviderInfo, c as AuthProviderService, C as ConditionalBoolean, D as DEFAULT_LOCALES, d as DbType, E as EntityIndex, e as FieldDbConfig, f as FieldOptions, g as FieldRelation, h as FieldStorageConfig, i as FieldValidationConfig, j as LocaleConfig, k as getCountLabel, l as getFallbackLocale, r as refOptions, m as resolveLocalized } from './field-C8Z1keXe.js';
9
9
  import 'pino';
10
10
 
11
11
  /** Webhook configuration record */
@@ -110,7 +110,7 @@ interface FieldDefinitionDTO {
110
110
  height: number;
111
111
  }>;
112
112
  dedupe?: boolean;
113
- isPublic?: boolean;
113
+ visibility?: 'public' | 'internal' | 'private';
114
114
  };
115
115
  meta?: FieldMeta;
116
116
  inputProps?: Record<string, unknown>;
@@ -207,6 +207,15 @@ interface EntityDefinitionDTO {
207
207
  liveOn?: string[];
208
208
  /** Auto-refresh interval in ms. Frontend polls data at this rate. */
209
209
  refreshInterval?: number;
210
+ /** Entity supports taxonomy tagging (tag_assignments pivot) */
211
+ taggeable?: boolean;
212
+ /** Entity supports file attachments (file_attachments pivot). true = all types, config = restrictions. */
213
+ attachable?: boolean | {
214
+ accept?: string;
215
+ maxFiles?: number;
216
+ };
217
+ /** Workflow configuration: states, transitions, CASL actions */
218
+ workflow?: WorkflowDTO;
210
219
  }
211
220
  /**
212
221
  * Serializable module for API responses.
@@ -651,7 +660,7 @@ declare function assertAllowedDomain(email: string, allowedDomainsJson: string |
651
660
  * Official Nexus plugins maintained by the core team.
652
661
  * Used by the backend to populate the plugin store.
653
662
  */
654
- declare const OFFICIAL_PLUGINS: readonly ["@gzl10/nexus-plugin-ai", "@gzl10/nexus-plugin-auth-providers", "@gzl10/nexus-plugin-baserow", "@gzl10/nexus-plugin-charts", "@gzl10/nexus-plugin-cms", "@gzl10/nexus-plugin-compliance", "@gzl10/nexus-plugin-docker", "@gzl10/nexus-plugin-dropbox", "@gzl10/nexus-plugin-feeds", "@gzl10/nexus-plugin-google-drive", "@gzl10/nexus-plugin-headscale", "@gzl10/nexus-plugin-importer", "@gzl10/nexus-plugin-links", "@gzl10/nexus-plugin-n8n", "@gzl10/nexus-plugin-notifications", "@gzl10/nexus-plugin-notion", "@gzl10/nexus-plugin-oidc-server", "@gzl10/nexus-plugin-opnsense", "@gzl10/nexus-plugin-plane", "@gzl10/nexus-plugin-prisma", "@gzl10/nexus-plugin-remote", "@gzl10/nexus-plugin-schedules", "@gzl10/nexus-plugin-scim", "@gzl10/nexus-plugin-scraper", "@gzl10/nexus-plugin-secrets", "@gzl10/nexus-plugin-tags", "@gzl10/nexus-plugin-uptime", "@gzl10/nexus-plugin-webhooks"];
663
+ declare const OFFICIAL_PLUGINS: readonly ["@gzl10/nexus-plugin-ai", "@gzl10/nexus-plugin-auth-providers", "@gzl10/nexus-plugin-baserow", "@gzl10/nexus-plugin-charts", "@gzl10/nexus-plugin-cms", "@gzl10/nexus-plugin-compliance", "@gzl10/nexus-plugin-docker", "@gzl10/nexus-plugin-dropbox", "@gzl10/nexus-plugin-feeds", "@gzl10/nexus-plugin-google-drive", "@gzl10/nexus-plugin-headscale", "@gzl10/nexus-plugin-importer", "@gzl10/nexus-plugin-bookmarks", "@gzl10/nexus-plugin-n8n", "@gzl10/nexus-plugin-notifications", "@gzl10/nexus-plugin-notion", "@gzl10/nexus-plugin-oidc-server", "@gzl10/nexus-plugin-opnsense", "@gzl10/nexus-plugin-plane", "@gzl10/nexus-plugin-prisma", "@gzl10/nexus-plugin-remote", "@gzl10/nexus-plugin-scim", "@gzl10/nexus-plugin-scraper", "@gzl10/nexus-plugin-secrets", "@gzl10/nexus-plugin-uptime", "@gzl10/nexus-plugin-webhooks"];
655
664
  type OfficialPluginName = typeof OFFICIAL_PLUGINS[number];
656
665
 
657
666
  /**
@@ -733,4 +742,4 @@ type KnexCreateTableBuilder = Knex.CreateTableBuilder;
733
742
  type KnexAlterTableBuilder = Knex.AlterTableBuilder;
734
743
  type KnexTransaction = Knex.Transaction;
735
744
 
736
- export { ActionDefinition, type ActionDefinitionDTO, type AuthorizationParams, type CapabilitiesDTO, Category, CollectionEntityDefinition, type CombinedManifestDTO, ComputedEntityDefinition, ConfirmConfig, type CreateWebhookInput, type CreateWebhookResponse, DagEntityDefinition, DisplayMode, type DomainFilterOptions, type DomainFilterResult, EntityDefinition, type EntityDefinitionDTO, EntityType, EventEntityDefinition, FieldCondition, FieldDefinition, type FieldDefinitionDTO, FieldMeta, type IdTokenClaims, InputType, type KnexAlterTableBuilder, type KnexCreateTableBuilder, type KnexTransaction, LocalizedString, type ManifestDTO, ModuleContext, type ModuleDTO, type NonPersistentEntityDefinition, OFFICIAL_PLUGINS, type OfficialPluginName, type OidcClient, type OidcDiscoveryDocument, type OidcState, type OidcTokens, type OidcUserInfo, PageDefinitionDTO, type PersistentEntityDefinition, type PluginActionResult, type PluginDTO, type PluginSetupInfoDTO, type PluginStateDTO, PostActionPipeline, RealtimeMode, type SessionResult, SingleEntityDefinition, type StateManager, type TicketItem, type TicketProvider, type TicketResult, type TicketStatus, type TicketSubmission, type TokenExchangeParams, type TokenValidationConfig, TreeEntityDefinition, type UpdateWebhookInput, type ValidationError, type ValidationResult, ViewEntityDefinition, type Webhook, type WebhookDelivery, assertAllowedDomain, assertNever, checkAllowedDomain, composeFields, createOidcClient, createStateManager, defineAction, getEntityName, getEntitySubject, getOidcClient, hasTable, isPersistentEntity, isSingletonEntity, validateEntityDefinition };
745
+ export { ActionDefinition, type ActionDefinitionDTO, type AuthorizationParams, type CapabilitiesDTO, Category, CollectionEntityDefinition, type CombinedManifestDTO, ComputedEntityDefinition, ConfirmConfig, type CreateWebhookInput, type CreateWebhookResponse, DagEntityDefinition, DisplayMode, type DomainFilterOptions, type DomainFilterResult, EntityDefinition, type EntityDefinitionDTO, EntityType, EventEntityDefinition, FieldCondition, FieldDefinition, type FieldDefinitionDTO, FieldMeta, type IdTokenClaims, InputType, type KnexAlterTableBuilder, type KnexCreateTableBuilder, type KnexTransaction, LocalizedString, type ManifestDTO, ModuleContext, type ModuleDTO, type NonPersistentEntityDefinition, OFFICIAL_PLUGINS, type OfficialPluginName, type OidcClient, type OidcDiscoveryDocument, type OidcState, type OidcTokens, type OidcUserInfo, PageDefinitionDTO, type PersistentEntityDefinition, type PluginActionResult, type PluginDTO, type PluginSetupInfoDTO, type PluginStateDTO, PostActionPipeline, RealtimeMode, type SessionResult, SingleEntityDefinition, type StateManager, type TicketItem, type TicketProvider, type TicketResult, type TicketStatus, type TicketSubmission, type TokenExchangeParams, type TokenValidationConfig, TreeEntityDefinition, type UpdateWebhookInput, type ValidationError, type ValidationResult, ViewEntityDefinition, type Webhook, type WebhookDelivery, WorkflowDTO, assertAllowedDomain, assertNever, checkAllowedDomain, composeFields, createOidcClient, createStateManager, defineAction, getEntityName, getEntitySubject, getOidcClient, hasTable, isPersistentEntity, isSingletonEntity, validateEntityDefinition };
package/dist/index.js CHANGED
@@ -247,7 +247,7 @@ var OFFICIAL_PLUGINS = [
247
247
  "@gzl10/nexus-plugin-google-drive",
248
248
  "@gzl10/nexus-plugin-headscale",
249
249
  "@gzl10/nexus-plugin-importer",
250
- "@gzl10/nexus-plugin-links",
250
+ "@gzl10/nexus-plugin-bookmarks",
251
251
  "@gzl10/nexus-plugin-n8n",
252
252
  "@gzl10/nexus-plugin-notifications",
253
253
  "@gzl10/nexus-plugin-notion",
@@ -256,11 +256,9 @@ var OFFICIAL_PLUGINS = [
256
256
  "@gzl10/nexus-plugin-plane",
257
257
  "@gzl10/nexus-plugin-prisma",
258
258
  "@gzl10/nexus-plugin-remote",
259
- "@gzl10/nexus-plugin-schedules",
260
259
  "@gzl10/nexus-plugin-scim",
261
260
  "@gzl10/nexus-plugin-scraper",
262
261
  "@gzl10/nexus-plugin-secrets",
263
- "@gzl10/nexus-plugin-tags",
264
262
  "@gzl10/nexus-plugin-uptime",
265
263
  "@gzl10/nexus-plugin-webhooks"
266
264
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gzl10/nexus-sdk",
3
- "version": "0.20.0",
3
+ "version": "0.21.0",
4
4
  "description": "SDK types for creating Nexus plugins and modules",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",