@elqnt/entity 1.0.2 → 1.0.5

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.
@@ -1,4 +1,6 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// models/entity.ts
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+ // models/entity.ts
2
4
  var OperatorEq = "eq";
3
5
  var OperatorNe = "ne";
4
6
  var OperatorGt = "gt";
@@ -179,4 +181,4 @@ var EntityViewList = "entity.view.list";
179
181
 
180
182
 
181
183
  exports.OperatorEq = OperatorEq; exports.OperatorNe = OperatorNe; exports.OperatorGt = OperatorGt; exports.OperatorGte = OperatorGte; exports.OperatorLt = OperatorLt; exports.OperatorLte = OperatorLte; exports.OperatorIn = OperatorIn; exports.OperatorNin = OperatorNin; exports.OperatorContains = OperatorContains; exports.OperatorStartsWith = OperatorStartsWith; exports.OperatorEndsWith = OperatorEndsWith; exports.OperatorExists = OperatorExists; exports.OperatorEmpty = OperatorEmpty; exports.OperatorBetween = OperatorBetween; exports.EntityFilterOperators = EntityFilterOperators; exports.EntityFieldTypeString = EntityFieldTypeString; exports.EntityFieldTypeStringMultiline = EntityFieldTypeStringMultiline; exports.EntityFieldTypeText = EntityFieldTypeText; exports.EntityFieldTypeInt = EntityFieldTypeInt; exports.EntityFieldTypeFloat = EntityFieldTypeFloat; exports.EntityFieldTypeBool = EntityFieldTypeBool; exports.EntityFieldTypeDate = EntityFieldTypeDate; exports.EntityFieldTypeDateTime = EntityFieldTypeDateTime; exports.EntityFieldTypeEmail = EntityFieldTypeEmail; exports.EntityFieldTypePhone = EntityFieldTypePhone; exports.EntityFieldTypeURL = EntityFieldTypeURL; exports.EntityFieldTypeDropdown = EntityFieldTypeDropdown; exports.EntityFieldTypeMultiSelect = EntityFieldTypeMultiSelect; exports.EntityFieldTypeLookup = EntityFieldTypeLookup; exports.EntityFieldTypeMultiLookup = EntityFieldTypeMultiLookup; exports.EntityFieldTypeCurrency = EntityFieldTypeCurrency; exports.EntityFieldTypeFile = EntityFieldTypeFile; exports.EntityFieldTypeImage = EntityFieldTypeImage; exports.EntityFieldTypeJSON = EntityFieldTypeJSON; exports.EntityFieldTypes = EntityFieldTypes; exports.RecordChangeActionCreated = RecordChangeActionCreated; exports.RecordChangeActionUpdated = RecordChangeActionUpdated; exports.RecordChangeActionDeleted = RecordChangeActionDeleted; exports.EntityOrgSchemaCreate = EntityOrgSchemaCreate; exports.EntityOrgSchemaDrop = EntityOrgSchemaDrop; exports.EntityDefinitionCreate = EntityDefinitionCreate; exports.EntityDefinitionCreated = EntityDefinitionCreated; exports.EntityDefinitionUpdate = EntityDefinitionUpdate; exports.EntityDefinitionGet = EntityDefinitionGet; exports.EntityDefinitionGetServer = EntityDefinitionGetServer; exports.EntityDefinitionList = EntityDefinitionList; exports.EntityDefinitionUpdated = EntityDefinitionUpdated; exports.EntityDefinitionDelete = EntityDefinitionDelete; exports.EntityDefinitionDeleted = EntityDefinitionDeleted; exports.EntityRecordCreate = EntityRecordCreate; exports.EntityRecordCreated = EntityRecordCreated; exports.EntityRecordGet = EntityRecordGet; exports.EntityRecordQuery = EntityRecordQuery; exports.EntityRecordCount = EntityRecordCount; exports.EntityRecordUpdate = EntityRecordUpdate; exports.EntityRecordUpdated = EntityRecordUpdated; exports.EntityRecordDelete = EntityRecordDelete; exports.EntityRecordDeleted = EntityRecordDeleted; exports.EntityRecordsBulkCreate = EntityRecordsBulkCreate; exports.EntityRecordsBulkCreated = EntityRecordsBulkCreated; exports.EntityRecordsBulkUpdate = EntityRecordsBulkUpdate; exports.EntityRecordsBulkUpdated = EntityRecordsBulkUpdated; exports.EntityRecordsBulkDelete = EntityRecordsBulkDelete; exports.EntityRecordsBulkDeleted = EntityRecordsBulkDeleted; exports.EntityViewCreate = EntityViewCreate; exports.EntityViewCreated = EntityViewCreated; exports.EntityViewUpdate = EntityViewUpdate; exports.EntityViewUpdated = EntityViewUpdated; exports.EntityViewDelete = EntityViewDelete; exports.EntityViewDeleted = EntityViewDeleted; exports.EntityViewList = EntityViewList;
182
- //# sourceMappingURL=chunk-K2MPIZE7.js.map
184
+ //# sourceMappingURL=chunk-4GC36G4D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/chunk-4GC36G4D.js","../models/entity.ts"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACA;ACQO,IAAM,WAAA,EAAmC,IAAA;AAIzC,IAAM,WAAA,EAAmC,IAAA;AAIzC,IAAM,WAAA,EAAmC,IAAA;AAIzC,IAAM,YAAA,EAAoC,KAAA;AAI1C,IAAM,WAAA,EAAmC,IAAA;AAIzC,IAAM,YAAA,EAAoC,KAAA;AAI1C,IAAM,WAAA,EAAmC,IAAA;AAIzC,IAAM,YAAA,EAAoC,KAAA;AAI1C,IAAM,iBAAA,EAAyC,UAAA;AAI/C,IAAM,mBAAA,EAA2C,YAAA;AAIjD,IAAM,iBAAA,EAAyC,UAAA;AAI/C,IAAM,eAAA,EAAuC,QAAA;AAI7C,IAAM,cAAA,EAAsC,OAAA;AAI5C,IAAM,gBAAA,EAAwC,SAAA;AAE9C,IAAM,sBAAA,EAAwB;AAAA,EACnC,EAAA,EAAI,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,WAAW,CAAA;AAAA,EACrC,EAAA,EAAI,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,eAAe,CAAA;AAAA,EACzC,EAAA,EAAI,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,eAAe,CAAA;AAAA,EACzC,GAAA,EAAK,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,2BAA2B,CAAA;AAAA,EACvD,EAAA,EAAI,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,YAAY,CAAA;AAAA,EACtC,GAAA,EAAK,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,wBAAwB,CAAA;AAAA,EACpD,EAAA,EAAI,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,KAAK,CAAA;AAAA,EAC/B,GAAA,EAAK,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,SAAS,CAAA;AAAA,EACrC,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,WAAW,CAAA;AAAA,EACjD,UAAA,EAAY,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,cAAc,CAAA;AAAA,EACxD,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,YAAY,CAAA;AAAA,EAClD,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,SAAS,CAAA;AAAA,EAC3C,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,QAAQ,CAAA;AAAA,EACxC,OAAA,EAAS,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,UAAU;AAChD,CAAA;AAMO,IAAM,sBAAA,EAAyC,QAAA;AAC/C,IAAM,+BAAA,EAAkD,iBAAA;AACxD,IAAM,oBAAA,EAAuC,MAAA;AAC7C,IAAM,mBAAA,EAAsC,KAAA;AAC5C,IAAM,qBAAA,EAAwC,OAAA;AAC9C,IAAM,oBAAA,EAAuC,MAAA;AAC7C,IAAM,oBAAA,EAAuC,MAAA;AAC7C,IAAM,wBAAA,EAA2C,UAAA;AACjD,IAAM,qBAAA,EAAwC,OAAA;AAC9C,IAAM,qBAAA,EAAwC,OAAA;AAC9C,IAAM,mBAAA,EAAsC,KAAA;AAC5C,IAAM,wBAAA,EAA2C,UAAA;AACjD,IAAM,2BAAA,EAA8C,aAAA;AACpD,IAAM,sBAAA,EAAyC,QAAA;AAC/C,IAAM,2BAAA,EAA8C,aAAA;AACpD,IAAM,wBAAA,EAA2C,UAAA;AACjD,IAAM,oBAAA,EAAuC,MAAA;AAC7C,IAAM,qBAAA,EAAwC,OAAA;AAC9C,IAAM,oBAAA,EAAuC,MAAA;AAE7C,IAAM,iBAAA,EAAmB;AAAA,EAC9B,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,aAAa,CAAA;AAAA,EAC/C,eAAA,EAAiB,EAAE,KAAA,EAAO,iBAAA,EAAmB,KAAA,EAAO,YAAY,CAAA;AAAA,EAChE,IAAA,EAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,mBAAmB,CAAA;AAAA,EACjD,GAAA,EAAK,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,UAAU,CAAA;AAAA,EACtC,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,UAAU,CAAA;AAAA,EAC1C,IAAA,EAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,UAAU,CAAA;AAAA,EACxC,IAAA,EAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,OAAO,CAAA;AAAA,EACrC,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,cAAc,CAAA;AAAA,EACpD,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,QAAQ,CAAA;AAAA,EACxC,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,QAAQ,CAAA;AAAA,EACxC,GAAA,EAAK,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,MAAM,CAAA;AAAA,EAClC,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,WAAW,CAAA;AAAA,EACjD,WAAA,EAAa,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,eAAe,CAAA;AAAA,EAC3D,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,SAAS,CAAA;AAAA,EAC3C,WAAA,EAAa,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,eAAe,CAAA;AAAA,EAC3D,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,WAAW,CAAA;AAAA,EACjD,IAAA,EAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,OAAO,CAAA;AAAA,EACrC,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,QAAQ,CAAA;AAAA,EACxC,IAAA,EAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,OAAO;AACvC,CAAA;AA0VO,IAAM,0BAAA,EAAgD,SAAA;AACtD,IAAM,0BAAA,EAAgD,SAAA;AACtD,IAAM,0BAAA,EAAgD,SAAA;AAKtD,IAAM,sBAAA,EAAwB,0BAAA;AAC9B,IAAM,oBAAA,EAAsB,wBAAA;AAC5B,IAAM,uBAAA,EAAyB,0BAAA;AAC/B,IAAM,wBAAA,EAA0B,2BAAA;AAChC,IAAM,uBAAA,EAAyB,0BAAA;AAC/B,IAAM,oBAAA,EAAsB,uBAAA;AAC5B,IAAM,0BAAA,EAA4B,8BAAA;AAClC,IAAM,qBAAA,EAAuB,wBAAA;AAC7B,IAAM,wBAAA,EAA0B,2BAAA;AAChC,IAAM,uBAAA,EAAyB,0BAAA;AAC/B,IAAM,wBAAA,EAA0B,2BAAA;AAChC,IAAM,mBAAA,EAAqB,sBAAA;AAC3B,IAAM,oBAAA,EAAsB,uBAAA;AAC5B,IAAM,gBAAA,EAAkB,mBAAA;AACxB,IAAM,kBAAA,EAAoB,qBAAA;AAC1B,IAAM,kBAAA,EAAoB,qBAAA;AAC1B,IAAM,mBAAA,EAAqB,sBAAA;AAC3B,IAAM,oBAAA,EAAsB,uBAAA;AAC5B,IAAM,mBAAA,EAAqB,sBAAA;AAC3B,IAAM,oBAAA,EAAsB,uBAAA;AAC5B,IAAM,wBAAA,EAA0B,4BAAA;AAChC,IAAM,yBAAA,EAA2B,6BAAA;AACjC,IAAM,wBAAA,EAA0B,4BAAA;AAChC,IAAM,yBAAA,EAA2B,6BAAA;AACjC,IAAM,wBAAA,EAA0B,4BAAA;AAChC,IAAM,yBAAA,EAA2B,6BAAA;AACjC,IAAM,iBAAA,EAAmB,oBAAA;AACzB,IAAM,kBAAA,EAAoB,qBAAA;AAC1B,IAAM,iBAAA,EAAmB,oBAAA;AACzB,IAAM,kBAAA,EAAoB,qBAAA;AAC1B,IAAM,iBAAA,EAAmB,oBAAA;AACzB,IAAM,kBAAA,EAAoB,qBAAA;AAC1B,IAAM,eAAA,EAAiB,kBAAA;ADjZ9B;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,0hHAAC","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/chunk-4GC36G4D.js","sourcesContent":[null,"// Code generated by tygo. DO NOT EDIT.\nimport { JSONSchema } from \"@elqnt/types\";\n\n//////////\n// source: constants.go\n\nexport type EntityFilterOperator = string;\n/**\n * todo: move to types package\n */\nexport const OperatorEq: EntityFilterOperator = \"eq\";\n/**\n * todo: move to types package\n */\nexport const OperatorNe: EntityFilterOperator = \"ne\";\n/**\n * todo: move to types package\n */\nexport const OperatorGt: EntityFilterOperator = \"gt\";\n/**\n * todo: move to types package\n */\nexport const OperatorGte: EntityFilterOperator = \"gte\";\n/**\n * todo: move to types package\n */\nexport const OperatorLt: EntityFilterOperator = \"lt\";\n/**\n * todo: move to types package\n */\nexport const OperatorLte: EntityFilterOperator = \"lte\";\n/**\n * todo: move to types package\n */\nexport const OperatorIn: EntityFilterOperator = \"in\";\n/**\n * todo: move to types package\n */\nexport const OperatorNin: EntityFilterOperator = \"nin\";\n/**\n * todo: move to types package\n */\nexport const OperatorContains: EntityFilterOperator = \"contains\";\n/**\n * todo: move to types package\n */\nexport const OperatorStartsWith: EntityFilterOperator = \"startsWith\";\n/**\n * todo: move to types package\n */\nexport const OperatorEndsWith: EntityFilterOperator = \"endsWith\";\n/**\n * todo: move to types package\n */\nexport const OperatorExists: EntityFilterOperator = \"exists\";\n/**\n * todo: move to types package\n */\nexport const OperatorEmpty: EntityFilterOperator = \"empty\";\n/**\n * todo: move to types package\n */\nexport const OperatorBetween: EntityFilterOperator = \"between\";\n\nexport const EntityFilterOperators = {\n eq: { value: 'eq', label: 'Equal to' },\n ne: { value: 'ne', label: 'Not equal to' },\n gt: { value: 'gt', label: 'Greater than' },\n gte: { value: 'gte', label: 'Greater than or equal to' },\n lt: { value: 'lt', label: 'Less than' },\n lte: { value: 'lte', label: 'Less than or equal to' },\n in: { value: 'in', label: 'In' },\n nin: { value: 'nin', label: 'Not in' },\n contains: { value: 'contains', label: 'Contains' },\n startsWith: { value: 'startsWith', label: 'Starts with' },\n endsWith: { value: 'endsWith', label: 'Ends with' },\n exists: { value: 'exists', label: 'Exists' },\n empty: { value: 'empty', label: 'Empty' },\n between: { value: 'between', label: 'Between' }\n} as const;\n\nexport type EntityFilterOperatorTS = keyof typeof EntityFilterOperators;\nexport type EntityFilterOperatorOptionTS = typeof EntityFilterOperators[EntityFilterOperatorTS];\n\nexport type EntityFieldType = string;\nexport const EntityFieldTypeString: EntityFieldType = \"string\";\nexport const EntityFieldTypeStringMultiline: EntityFieldType = \"stringMultiline\";\nexport const EntityFieldTypeText: EntityFieldType = \"text\";\nexport const EntityFieldTypeInt: EntityFieldType = \"int\";\nexport const EntityFieldTypeFloat: EntityFieldType = \"float\";\nexport const EntityFieldTypeBool: EntityFieldType = \"bool\";\nexport const EntityFieldTypeDate: EntityFieldType = \"date\";\nexport const EntityFieldTypeDateTime: EntityFieldType = \"datetime\";\nexport const EntityFieldTypeEmail: EntityFieldType = \"email\";\nexport const EntityFieldTypePhone: EntityFieldType = \"phone\";\nexport const EntityFieldTypeURL: EntityFieldType = \"url\";\nexport const EntityFieldTypeDropdown: EntityFieldType = \"dropdown\";\nexport const EntityFieldTypeMultiSelect: EntityFieldType = \"multiselect\";\nexport const EntityFieldTypeLookup: EntityFieldType = \"lookup\";\nexport const EntityFieldTypeMultiLookup: EntityFieldType = \"multilookup\";\nexport const EntityFieldTypeCurrency: EntityFieldType = \"currency\";\nexport const EntityFieldTypeFile: EntityFieldType = \"file\";\nexport const EntityFieldTypeImage: EntityFieldType = \"image\";\nexport const EntityFieldTypeJSON: EntityFieldType = \"json\";\n\nexport const EntityFieldTypes = {\n string: { value: 'string', label: 'Short Text' },\n stringMultiline: { value: 'stringMultiline', label: 'Long Text' },\n text: { value: 'text', label: 'Rich Text Editor' },\n int: { value: 'int', label: 'Integer' },\n float: { value: 'float', label: 'Decimal' },\n bool: { value: 'bool', label: 'Boolean' },\n date: { value: 'date', label: 'Date' },\n datetime: { value: 'datetime', label: 'Date & Time' },\n email: { value: 'email', label: 'Email' },\n phone: { value: 'phone', label: 'Phone' },\n url: { value: 'url', label: 'URL' },\n dropdown: { value: 'dropdown', label: 'Dropdown' },\n multiselect: { value: 'multiselect', label: 'Multi Select' },\n lookup: { value: 'lookup', label: 'Lookup' },\n multilookup: { value: 'multilookup', label: 'Multi Lookup' },\n currency: { value: 'currency', label: 'Currency' },\n file: { value: 'file', label: 'File' },\n image: { value: 'image', label: 'Image' },\n json: { value: 'json', label: 'JSON' }\n} as const;\n\nexport type EntityFieldTypeTS = keyof typeof EntityFieldTypes;\nexport type EntityFieldTypeOptionTS = typeof EntityFieldTypes[EntityFieldTypeTS];\n\n\n//////////\n// source: entities-models.go\n\nexport interface EntityDefinition {\n id: string /* uuid */;\n name: string;\n displayName: string;\n module: string;\n description: string;\n schema: JSONSchema;\n defaultViewId: string /* uuid */;\n metadata?: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\nexport interface EntityRecord {\n id: string /* uuid */;\n entityId: string /* uuid */;\n name: string;\n fields: { [key: string]: any}; // ** must match the entity definition schema\n tags?: string[];\n metadata?: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\n/**\n * View defines how to display entity records in a list\n */\nexport interface View {\n id: string /* uuid */;\n entityId: string /* uuid */;\n name: string;\n displayName: string;\n description?: string;\n isDefault: boolean;\n columns: ViewColumn[];\n filters: Filter[];\n sort: Sort[];\n}\nexport interface Filter {\n field: string;\n operator: EntityFilterOperator;\n value: any;\n}\nexport interface Sort {\n field: string;\n direction: number /* int */; // 1 for asc, -1 for desc\n}\nexport interface FieldValidation {\n required: boolean;\n min?: number /* float64 */;\n max?: number /* float64 */;\n minLength?: number /* int */;\n maxLength?: number /* int */;\n pattern?: string;\n customRules?: ValidationRule[];\n}\nexport interface ValidationRule {\n name: string;\n conditions: ValidationRuleCondition[];\n}\nexport interface ValidationRuleCondition {\n field: string;\n operator: string;\n value: any;\n}\nexport interface RecordReference {\n entityName: string;\n recordId: string /* uuid */;\n fieldName: string;\n referencedAt: string /* RFC3339 */;\n}\nexport interface InsertOneResult {\n insertedId: string;\n success: boolean;\n error: string;\n}\n/**\n * Query related models\n */\nexport interface EntityQuery {\n filters: { [key: string]: any};\n page: number /* int64 */;\n pageSize: number /* int64 */;\n sortBy: string;\n sortOrder: number /* int */;\n includeLookups?: LookupInclude[];\n include?: string[]; // Fields to include\n exclude?: string[]; // Fields to exclude\n}\nexport interface LookupInclude {\n entityName: string;\n fieldName: string;\n fields?: string[];\n}\nexport interface QueryRequest {\n orgId: string;\n entityName: string;\n viewId?: string /* uuid */;\n query: EntityQuery;\n}\n/**\n * Request/Response models\n */\nexport interface CreateEntityDefinitionRequest {\n orgId: string;\n definition: EntityDefinition;\n}\nexport interface CreateOrgSchemaRequest {\n orgId: string /* uuid */;\n}\nexport interface CreateOrgSchemaResponse {\n metadata: ResponseMetadata;\n}\nexport interface DropOrgSchemaRequest {\n orgId: string /* uuid */;\n}\nexport interface DropOrgSchemaResponse {\n metadata: ResponseMetadata;\n}\nexport interface CreateRecordRequest {\n orgId: string;\n entityName: string;\n record: EntityRecord;\n}\nexport interface UpdateRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string /* uuid */;\n record: EntityRecord;\n}\nexport interface DeleteRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string;\n}\n/**\n * View models\n */\nexport interface EntityView {\n id: string /* uuid */;\n name: string;\n displayName: string;\n entityName: string;\n columns: ViewColumn[];\n filters: ViewFilter[];\n lookups: LookupInclude[];\n sortBy?: string;\n sortOrder?: number /* int */;\n isDefault: boolean;\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\nexport interface ViewColumn {\n fieldName: string;\n displayName: string;\n width: number /* int */;\n sortable: boolean;\n visible: boolean;\n order: number /* int */;\n}\nexport interface ViewFilter {\n fieldName: string;\n operator: string;\n value: any;\n}\n/**\n * Bulk operation models\n */\nexport interface BulkCreateRequest {\n orgId: string;\n entityName: string;\n records: EntityRecord[];\n}\nexport interface BulkUpdateRequest {\n orgId: string;\n entityName: string;\n records: EntityRecord[];\n}\nexport interface BulkDeleteRequest {\n orgId: string;\n entityName: string;\n recordIds: string /* uuid */[];\n}\nexport interface UpdateEntityDefinitionRequest {\n orgId: string;\n entityName: string; // Identify which entity to update\n definition: EntityDefinition;\n}\nexport interface GetEntityDefinitionRequest {\n orgId: string;\n entityName: string;\n}\nexport interface DeleteEntityDefinitionRequest {\n orgId: string;\n entityName: string;\n deleteRecords?: boolean; // If true, delete all entity records before deleting definition\n hardDelete?: boolean; // If true, permanently delete from database instead of soft delete\n}\nexport interface ListEntityDefinitionsRequest {\n orgId: string;\n module?: string; // Optional: filter by module (sales, marketing, etc)\n status?: string; // Optional: active, inactive, etc\n}\n/**\n * View related requests\n */\nexport interface CreateViewRequest {\n orgId: string;\n entityName: string;\n view: EntityView;\n}\nexport interface UpdateViewRequest {\n orgId: string;\n view: EntityView;\n}\nexport interface DeleteViewRequest {\n orgId: string;\n viewId: string /* uuid */;\n}\nexport interface GetViewRequest {\n orgId: string;\n viewId: string /* uuid */;\n}\nexport interface ListViewsRequest {\n orgId: string;\n entityName: string;\n}\n/**\n * Response models\n */\nexport interface EntityDefinitionResponse {\n definition: EntityDefinition;\n metadata: ResponseMetadata;\n}\nexport interface ListEntityDefinitionsResponse {\n definitions: EntityDefinition[];\n metadata: ResponseMetadata;\n}\nexport interface EntityViewResponse {\n view: EntityView;\n metadata: ResponseMetadata;\n}\nexport interface ListViewsResponse {\n views: EntityView[];\n metadata: ResponseMetadata;\n}\nexport interface EntityRecordResponse {\n record: EntityRecord;\n metadata: ResponseMetadata;\n}\nexport interface ListEntityRecordsResponse {\n records?: ListResult<EntityRecord>;\n metadata: ResponseMetadata;\n}\n/**\n * Common response metadata\n */\nexport interface ResponseMetadata {\n success: boolean;\n timestamp: string /* RFC3339 */;\n message?: string;\n error?: string;\n}\nexport interface ListOptions {\n Page: number /* int64 */;\n PageSize: number /* int64 */;\n SortBy: string;\n SortOrder: number /* int */;\n Filters: { [key: string]: any};\n Include: string[];\n Exclude: string[];\n}\nexport interface ListResult<T extends any> {\n items: T[];\n totalCount: number /* int64 */;\n currentPage: number /* int64 */;\n pageSize: number /* int64 */;\n totalPages: number /* int64 */;\n}\nexport interface GetEntityRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string;\n}\nexport interface GetEntityRecordResponse {\n record?: EntityRecord;\n metadata: ResponseMetadata;\n}\nexport interface CountEntityRecordsRequest {\n orgId: string;\n entityName: string;\n filters?: { [key: string]: any};\n}\nexport interface CountEntityRecordsResponse {\n count: number /* int64 */;\n metadata: ResponseMetadata;\n}\n\n//////////\n// source: events.go\n\nexport interface EntityRecordChangeEvent {\n orgId: string;\n entityName: string;\n recordId: string;\n record?: EntityRecord;\n changes?: RecordChange;\n action: RecordChangeAction; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport interface RecordChange {\n /**\n * OldValues map[string]TypedValue `json:\"oldValues,omitempty\"`\n * NewValues map[string]TypedValue `json:\"newValues,omitempty\"`\n */\n changedAt: string /* RFC3339 */;\n changedBy: string /* ObjectID */;\n fields: string[]; // List of changed field names for quick reference\n}\nexport interface EntityDefinitionChangeEvent {\n orgId: string;\n definition?: EntityDefinition;\n action: string; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport interface EntityViewChangeEvent {\n orgId: string;\n entityName: string;\n view?: EntityView;\n action: string; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport type RecordChangeAction = string;\nexport const RecordChangeActionCreated: RecordChangeAction = \"created\";\nexport const RecordChangeActionUpdated: RecordChangeAction = \"updated\";\nexport const RecordChangeActionDeleted: RecordChangeAction = \"deleted\";\n\n//////////\n// source: subjects.go\n\nexport const EntityOrgSchemaCreate = \"entity.org.schema.create\";\nexport const EntityOrgSchemaDrop = \"entity.org.schema.drop\";\nexport const EntityDefinitionCreate = \"entity.definition.create\";\nexport const EntityDefinitionCreated = \"entity.definition.created\";\nexport const EntityDefinitionUpdate = \"entity.definition.update\";\nexport const EntityDefinitionGet = \"entity.definition.get\";\nexport const EntityDefinitionGetServer = \"entity.definition.get.server\";\nexport const EntityDefinitionList = \"entity.definition.list\";\nexport const EntityDefinitionUpdated = \"entity.definition.updated\";\nexport const EntityDefinitionDelete = \"entity.definition.delete\";\nexport const EntityDefinitionDeleted = \"entity.definition.deleted\";\nexport const EntityRecordCreate = \"entity.record.create\";\nexport const EntityRecordCreated = \"entity.record.created\";\nexport const EntityRecordGet = \"entity.record.get\";\nexport const EntityRecordQuery = \"entity.record.query\";\nexport const EntityRecordCount = \"entity.record.count\";\nexport const EntityRecordUpdate = \"entity.record.update\";\nexport const EntityRecordUpdated = \"entity.record.updated\";\nexport const EntityRecordDelete = \"entity.record.delete\";\nexport const EntityRecordDeleted = \"entity.record.deleted\";\nexport const EntityRecordsBulkCreate = \"entity.records.bulk.create\";\nexport const EntityRecordsBulkCreated = \"entity.records.bulk.created\";\nexport const EntityRecordsBulkUpdate = \"entity.records.bulk.update\";\nexport const EntityRecordsBulkUpdated = \"entity.records.bulk.updated\";\nexport const EntityRecordsBulkDelete = \"entity.records.bulk.delete\";\nexport const EntityRecordsBulkDeleted = \"entity.records.bulk.deleted\";\nexport const EntityViewCreate = \"entity.view.create\";\nexport const EntityViewCreated = \"entity.view.created\";\nexport const EntityViewUpdate = \"entity.view.update\";\nexport const EntityViewUpdated = \"entity.view.updated\";\nexport const EntityViewDelete = \"entity.view.delete\";\nexport const EntityViewDeleted = \"entity.view.deleted\";\nexport const EntityViewList = \"entity.view.list\";\n"]}
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  // models/entity.ts
2
4
  var OperatorEq = "eq";
3
5
  var OperatorNe = "ne";
@@ -179,4 +181,4 @@ export {
179
181
  EntityViewDeleted,
180
182
  EntityViewList
181
183
  };
182
- //# sourceMappingURL=chunk-QZQSWI3P.mjs.map
184
+ //# sourceMappingURL=chunk-LIACJMHV.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../models/entity.ts"],"sourcesContent":["// Code generated by tygo. DO NOT EDIT.\nimport { JSONSchema } from \"@elqnt/types\";\n\n//////////\n// source: constants.go\n\nexport type EntityFilterOperator = string;\n/**\n * todo: move to types package\n */\nexport const OperatorEq: EntityFilterOperator = \"eq\";\n/**\n * todo: move to types package\n */\nexport const OperatorNe: EntityFilterOperator = \"ne\";\n/**\n * todo: move to types package\n */\nexport const OperatorGt: EntityFilterOperator = \"gt\";\n/**\n * todo: move to types package\n */\nexport const OperatorGte: EntityFilterOperator = \"gte\";\n/**\n * todo: move to types package\n */\nexport const OperatorLt: EntityFilterOperator = \"lt\";\n/**\n * todo: move to types package\n */\nexport const OperatorLte: EntityFilterOperator = \"lte\";\n/**\n * todo: move to types package\n */\nexport const OperatorIn: EntityFilterOperator = \"in\";\n/**\n * todo: move to types package\n */\nexport const OperatorNin: EntityFilterOperator = \"nin\";\n/**\n * todo: move to types package\n */\nexport const OperatorContains: EntityFilterOperator = \"contains\";\n/**\n * todo: move to types package\n */\nexport const OperatorStartsWith: EntityFilterOperator = \"startsWith\";\n/**\n * todo: move to types package\n */\nexport const OperatorEndsWith: EntityFilterOperator = \"endsWith\";\n/**\n * todo: move to types package\n */\nexport const OperatorExists: EntityFilterOperator = \"exists\";\n/**\n * todo: move to types package\n */\nexport const OperatorEmpty: EntityFilterOperator = \"empty\";\n/**\n * todo: move to types package\n */\nexport const OperatorBetween: EntityFilterOperator = \"between\";\n\nexport const EntityFilterOperators = {\n eq: { value: 'eq', label: 'Equal to' },\n ne: { value: 'ne', label: 'Not equal to' },\n gt: { value: 'gt', label: 'Greater than' },\n gte: { value: 'gte', label: 'Greater than or equal to' },\n lt: { value: 'lt', label: 'Less than' },\n lte: { value: 'lte', label: 'Less than or equal to' },\n in: { value: 'in', label: 'In' },\n nin: { value: 'nin', label: 'Not in' },\n contains: { value: 'contains', label: 'Contains' },\n startsWith: { value: 'startsWith', label: 'Starts with' },\n endsWith: { value: 'endsWith', label: 'Ends with' },\n exists: { value: 'exists', label: 'Exists' },\n empty: { value: 'empty', label: 'Empty' },\n between: { value: 'between', label: 'Between' }\n} as const;\n\nexport type EntityFilterOperatorTS = keyof typeof EntityFilterOperators;\nexport type EntityFilterOperatorOptionTS = typeof EntityFilterOperators[EntityFilterOperatorTS];\n\nexport type EntityFieldType = string;\nexport const EntityFieldTypeString: EntityFieldType = \"string\";\nexport const EntityFieldTypeStringMultiline: EntityFieldType = \"stringMultiline\";\nexport const EntityFieldTypeText: EntityFieldType = \"text\";\nexport const EntityFieldTypeInt: EntityFieldType = \"int\";\nexport const EntityFieldTypeFloat: EntityFieldType = \"float\";\nexport const EntityFieldTypeBool: EntityFieldType = \"bool\";\nexport const EntityFieldTypeDate: EntityFieldType = \"date\";\nexport const EntityFieldTypeDateTime: EntityFieldType = \"datetime\";\nexport const EntityFieldTypeEmail: EntityFieldType = \"email\";\nexport const EntityFieldTypePhone: EntityFieldType = \"phone\";\nexport const EntityFieldTypeURL: EntityFieldType = \"url\";\nexport const EntityFieldTypeDropdown: EntityFieldType = \"dropdown\";\nexport const EntityFieldTypeMultiSelect: EntityFieldType = \"multiselect\";\nexport const EntityFieldTypeLookup: EntityFieldType = \"lookup\";\nexport const EntityFieldTypeMultiLookup: EntityFieldType = \"multilookup\";\nexport const EntityFieldTypeCurrency: EntityFieldType = \"currency\";\nexport const EntityFieldTypeFile: EntityFieldType = \"file\";\nexport const EntityFieldTypeImage: EntityFieldType = \"image\";\nexport const EntityFieldTypeJSON: EntityFieldType = \"json\";\n\nexport const EntityFieldTypes = {\n string: { value: 'string', label: 'Short Text' },\n stringMultiline: { value: 'stringMultiline', label: 'Long Text' },\n text: { value: 'text', label: 'Rich Text Editor' },\n int: { value: 'int', label: 'Integer' },\n float: { value: 'float', label: 'Decimal' },\n bool: { value: 'bool', label: 'Boolean' },\n date: { value: 'date', label: 'Date' },\n datetime: { value: 'datetime', label: 'Date & Time' },\n email: { value: 'email', label: 'Email' },\n phone: { value: 'phone', label: 'Phone' },\n url: { value: 'url', label: 'URL' },\n dropdown: { value: 'dropdown', label: 'Dropdown' },\n multiselect: { value: 'multiselect', label: 'Multi Select' },\n lookup: { value: 'lookup', label: 'Lookup' },\n multilookup: { value: 'multilookup', label: 'Multi Lookup' },\n currency: { value: 'currency', label: 'Currency' },\n file: { value: 'file', label: 'File' },\n image: { value: 'image', label: 'Image' },\n json: { value: 'json', label: 'JSON' }\n} as const;\n\nexport type EntityFieldTypeTS = keyof typeof EntityFieldTypes;\nexport type EntityFieldTypeOptionTS = typeof EntityFieldTypes[EntityFieldTypeTS];\n\n\n//////////\n// source: entities-models.go\n\nexport interface EntityDefinition {\n id: string /* uuid */;\n name: string;\n displayName: string;\n module: string;\n description: string;\n schema: JSONSchema;\n defaultViewId: string /* uuid */;\n metadata?: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\nexport interface EntityRecord {\n id: string /* uuid */;\n entityId: string /* uuid */;\n name: string;\n fields: { [key: string]: any}; // ** must match the entity definition schema\n tags?: string[];\n metadata?: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\n/**\n * View defines how to display entity records in a list\n */\nexport interface View {\n id: string /* uuid */;\n entityId: string /* uuid */;\n name: string;\n displayName: string;\n description?: string;\n isDefault: boolean;\n columns: ViewColumn[];\n filters: Filter[];\n sort: Sort[];\n}\nexport interface Filter {\n field: string;\n operator: EntityFilterOperator;\n value: any;\n}\nexport interface Sort {\n field: string;\n direction: number /* int */; // 1 for asc, -1 for desc\n}\nexport interface FieldValidation {\n required: boolean;\n min?: number /* float64 */;\n max?: number /* float64 */;\n minLength?: number /* int */;\n maxLength?: number /* int */;\n pattern?: string;\n customRules?: ValidationRule[];\n}\nexport interface ValidationRule {\n name: string;\n conditions: ValidationRuleCondition[];\n}\nexport interface ValidationRuleCondition {\n field: string;\n operator: string;\n value: any;\n}\nexport interface RecordReference {\n entityName: string;\n recordId: string /* uuid */;\n fieldName: string;\n referencedAt: string /* RFC3339 */;\n}\nexport interface InsertOneResult {\n insertedId: string;\n success: boolean;\n error: string;\n}\n/**\n * Query related models\n */\nexport interface EntityQuery {\n filters: { [key: string]: any};\n page: number /* int64 */;\n pageSize: number /* int64 */;\n sortBy: string;\n sortOrder: number /* int */;\n includeLookups?: LookupInclude[];\n include?: string[]; // Fields to include\n exclude?: string[]; // Fields to exclude\n}\nexport interface LookupInclude {\n entityName: string;\n fieldName: string;\n fields?: string[];\n}\nexport interface QueryRequest {\n orgId: string;\n entityName: string;\n viewId?: string /* uuid */;\n query: EntityQuery;\n}\n/**\n * Request/Response models\n */\nexport interface CreateEntityDefinitionRequest {\n orgId: string;\n definition: EntityDefinition;\n}\nexport interface CreateOrgSchemaRequest {\n orgId: string /* uuid */;\n}\nexport interface CreateOrgSchemaResponse {\n metadata: ResponseMetadata;\n}\nexport interface DropOrgSchemaRequest {\n orgId: string /* uuid */;\n}\nexport interface DropOrgSchemaResponse {\n metadata: ResponseMetadata;\n}\nexport interface CreateRecordRequest {\n orgId: string;\n entityName: string;\n record: EntityRecord;\n}\nexport interface UpdateRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string /* uuid */;\n record: EntityRecord;\n}\nexport interface DeleteRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string;\n}\n/**\n * View models\n */\nexport interface EntityView {\n id: string /* uuid */;\n name: string;\n displayName: string;\n entityName: string;\n columns: ViewColumn[];\n filters: ViewFilter[];\n lookups: LookupInclude[];\n sortBy?: string;\n sortOrder?: number /* int */;\n isDefault: boolean;\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\nexport interface ViewColumn {\n fieldName: string;\n displayName: string;\n width: number /* int */;\n sortable: boolean;\n visible: boolean;\n order: number /* int */;\n}\nexport interface ViewFilter {\n fieldName: string;\n operator: string;\n value: any;\n}\n/**\n * Bulk operation models\n */\nexport interface BulkCreateRequest {\n orgId: string;\n entityName: string;\n records: EntityRecord[];\n}\nexport interface BulkUpdateRequest {\n orgId: string;\n entityName: string;\n records: EntityRecord[];\n}\nexport interface BulkDeleteRequest {\n orgId: string;\n entityName: string;\n recordIds: string /* uuid */[];\n}\nexport interface UpdateEntityDefinitionRequest {\n orgId: string;\n entityName: string; // Identify which entity to update\n definition: EntityDefinition;\n}\nexport interface GetEntityDefinitionRequest {\n orgId: string;\n entityName: string;\n}\nexport interface DeleteEntityDefinitionRequest {\n orgId: string;\n entityName: string;\n deleteRecords?: boolean; // If true, delete all entity records before deleting definition\n hardDelete?: boolean; // If true, permanently delete from database instead of soft delete\n}\nexport interface ListEntityDefinitionsRequest {\n orgId: string;\n module?: string; // Optional: filter by module (sales, marketing, etc)\n status?: string; // Optional: active, inactive, etc\n}\n/**\n * View related requests\n */\nexport interface CreateViewRequest {\n orgId: string;\n entityName: string;\n view: EntityView;\n}\nexport interface UpdateViewRequest {\n orgId: string;\n view: EntityView;\n}\nexport interface DeleteViewRequest {\n orgId: string;\n viewId: string /* uuid */;\n}\nexport interface GetViewRequest {\n orgId: string;\n viewId: string /* uuid */;\n}\nexport interface ListViewsRequest {\n orgId: string;\n entityName: string;\n}\n/**\n * Response models\n */\nexport interface EntityDefinitionResponse {\n definition: EntityDefinition;\n metadata: ResponseMetadata;\n}\nexport interface ListEntityDefinitionsResponse {\n definitions: EntityDefinition[];\n metadata: ResponseMetadata;\n}\nexport interface EntityViewResponse {\n view: EntityView;\n metadata: ResponseMetadata;\n}\nexport interface ListViewsResponse {\n views: EntityView[];\n metadata: ResponseMetadata;\n}\nexport interface EntityRecordResponse {\n record: EntityRecord;\n metadata: ResponseMetadata;\n}\nexport interface ListEntityRecordsResponse {\n records?: ListResult<EntityRecord>;\n metadata: ResponseMetadata;\n}\n/**\n * Common response metadata\n */\nexport interface ResponseMetadata {\n success: boolean;\n timestamp: string /* RFC3339 */;\n message?: string;\n error?: string;\n}\nexport interface ListOptions {\n Page: number /* int64 */;\n PageSize: number /* int64 */;\n SortBy: string;\n SortOrder: number /* int */;\n Filters: { [key: string]: any};\n Include: string[];\n Exclude: string[];\n}\nexport interface ListResult<T extends any> {\n items: T[];\n totalCount: number /* int64 */;\n currentPage: number /* int64 */;\n pageSize: number /* int64 */;\n totalPages: number /* int64 */;\n}\nexport interface GetEntityRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string;\n}\nexport interface GetEntityRecordResponse {\n record?: EntityRecord;\n metadata: ResponseMetadata;\n}\nexport interface CountEntityRecordsRequest {\n orgId: string;\n entityName: string;\n filters?: { [key: string]: any};\n}\nexport interface CountEntityRecordsResponse {\n count: number /* int64 */;\n metadata: ResponseMetadata;\n}\n\n//////////\n// source: events.go\n\nexport interface EntityRecordChangeEvent {\n orgId: string;\n entityName: string;\n recordId: string;\n record?: EntityRecord;\n changes?: RecordChange;\n action: RecordChangeAction; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport interface RecordChange {\n /**\n * OldValues map[string]TypedValue `json:\"oldValues,omitempty\"`\n * NewValues map[string]TypedValue `json:\"newValues,omitempty\"`\n */\n changedAt: string /* RFC3339 */;\n changedBy: string /* ObjectID */;\n fields: string[]; // List of changed field names for quick reference\n}\nexport interface EntityDefinitionChangeEvent {\n orgId: string;\n definition?: EntityDefinition;\n action: string; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport interface EntityViewChangeEvent {\n orgId: string;\n entityName: string;\n view?: EntityView;\n action: string; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport type RecordChangeAction = string;\nexport const RecordChangeActionCreated: RecordChangeAction = \"created\";\nexport const RecordChangeActionUpdated: RecordChangeAction = \"updated\";\nexport const RecordChangeActionDeleted: RecordChangeAction = \"deleted\";\n\n//////////\n// source: subjects.go\n\nexport const EntityOrgSchemaCreate = \"entity.org.schema.create\";\nexport const EntityOrgSchemaDrop = \"entity.org.schema.drop\";\nexport const EntityDefinitionCreate = \"entity.definition.create\";\nexport const EntityDefinitionCreated = \"entity.definition.created\";\nexport const EntityDefinitionUpdate = \"entity.definition.update\";\nexport const EntityDefinitionGet = \"entity.definition.get\";\nexport const EntityDefinitionGetServer = \"entity.definition.get.server\";\nexport const EntityDefinitionList = \"entity.definition.list\";\nexport const EntityDefinitionUpdated = \"entity.definition.updated\";\nexport const EntityDefinitionDelete = \"entity.definition.delete\";\nexport const EntityDefinitionDeleted = \"entity.definition.deleted\";\nexport const EntityRecordCreate = \"entity.record.create\";\nexport const EntityRecordCreated = \"entity.record.created\";\nexport const EntityRecordGet = \"entity.record.get\";\nexport const EntityRecordQuery = \"entity.record.query\";\nexport const EntityRecordCount = \"entity.record.count\";\nexport const EntityRecordUpdate = \"entity.record.update\";\nexport const EntityRecordUpdated = \"entity.record.updated\";\nexport const EntityRecordDelete = \"entity.record.delete\";\nexport const EntityRecordDeleted = \"entity.record.deleted\";\nexport const EntityRecordsBulkCreate = \"entity.records.bulk.create\";\nexport const EntityRecordsBulkCreated = \"entity.records.bulk.created\";\nexport const EntityRecordsBulkUpdate = \"entity.records.bulk.update\";\nexport const EntityRecordsBulkUpdated = \"entity.records.bulk.updated\";\nexport const EntityRecordsBulkDelete = \"entity.records.bulk.delete\";\nexport const EntityRecordsBulkDeleted = \"entity.records.bulk.deleted\";\nexport const EntityViewCreate = \"entity.view.create\";\nexport const EntityViewCreated = \"entity.view.created\";\nexport const EntityViewUpdate = \"entity.view.update\";\nexport const EntityViewUpdated = \"entity.view.updated\";\nexport const EntityViewDelete = \"entity.view.delete\";\nexport const EntityViewDeleted = \"entity.view.deleted\";\nexport const EntityViewList = \"entity.view.list\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../models/entity.ts"],"sourcesContent":["// Code generated by tygo. DO NOT EDIT.\nimport { JSONSchema } from \"@elqnt/types\";\n\n//////////\n// source: constants.go\n\nexport type EntityFilterOperator = string;\n/**\n * todo: move to types package\n */\nexport const OperatorEq: EntityFilterOperator = \"eq\";\n/**\n * todo: move to types package\n */\nexport const OperatorNe: EntityFilterOperator = \"ne\";\n/**\n * todo: move to types package\n */\nexport const OperatorGt: EntityFilterOperator = \"gt\";\n/**\n * todo: move to types package\n */\nexport const OperatorGte: EntityFilterOperator = \"gte\";\n/**\n * todo: move to types package\n */\nexport const OperatorLt: EntityFilterOperator = \"lt\";\n/**\n * todo: move to types package\n */\nexport const OperatorLte: EntityFilterOperator = \"lte\";\n/**\n * todo: move to types package\n */\nexport const OperatorIn: EntityFilterOperator = \"in\";\n/**\n * todo: move to types package\n */\nexport const OperatorNin: EntityFilterOperator = \"nin\";\n/**\n * todo: move to types package\n */\nexport const OperatorContains: EntityFilterOperator = \"contains\";\n/**\n * todo: move to types package\n */\nexport const OperatorStartsWith: EntityFilterOperator = \"startsWith\";\n/**\n * todo: move to types package\n */\nexport const OperatorEndsWith: EntityFilterOperator = \"endsWith\";\n/**\n * todo: move to types package\n */\nexport const OperatorExists: EntityFilterOperator = \"exists\";\n/**\n * todo: move to types package\n */\nexport const OperatorEmpty: EntityFilterOperator = \"empty\";\n/**\n * todo: move to types package\n */\nexport const OperatorBetween: EntityFilterOperator = \"between\";\n\nexport const EntityFilterOperators = {\n eq: { value: 'eq', label: 'Equal to' },\n ne: { value: 'ne', label: 'Not equal to' },\n gt: { value: 'gt', label: 'Greater than' },\n gte: { value: 'gte', label: 'Greater than or equal to' },\n lt: { value: 'lt', label: 'Less than' },\n lte: { value: 'lte', label: 'Less than or equal to' },\n in: { value: 'in', label: 'In' },\n nin: { value: 'nin', label: 'Not in' },\n contains: { value: 'contains', label: 'Contains' },\n startsWith: { value: 'startsWith', label: 'Starts with' },\n endsWith: { value: 'endsWith', label: 'Ends with' },\n exists: { value: 'exists', label: 'Exists' },\n empty: { value: 'empty', label: 'Empty' },\n between: { value: 'between', label: 'Between' }\n} as const;\n\nexport type EntityFilterOperatorTS = keyof typeof EntityFilterOperators;\nexport type EntityFilterOperatorOptionTS = typeof EntityFilterOperators[EntityFilterOperatorTS];\n\nexport type EntityFieldType = string;\nexport const EntityFieldTypeString: EntityFieldType = \"string\";\nexport const EntityFieldTypeStringMultiline: EntityFieldType = \"stringMultiline\";\nexport const EntityFieldTypeText: EntityFieldType = \"text\";\nexport const EntityFieldTypeInt: EntityFieldType = \"int\";\nexport const EntityFieldTypeFloat: EntityFieldType = \"float\";\nexport const EntityFieldTypeBool: EntityFieldType = \"bool\";\nexport const EntityFieldTypeDate: EntityFieldType = \"date\";\nexport const EntityFieldTypeDateTime: EntityFieldType = \"datetime\";\nexport const EntityFieldTypeEmail: EntityFieldType = \"email\";\nexport const EntityFieldTypePhone: EntityFieldType = \"phone\";\nexport const EntityFieldTypeURL: EntityFieldType = \"url\";\nexport const EntityFieldTypeDropdown: EntityFieldType = \"dropdown\";\nexport const EntityFieldTypeMultiSelect: EntityFieldType = \"multiselect\";\nexport const EntityFieldTypeLookup: EntityFieldType = \"lookup\";\nexport const EntityFieldTypeMultiLookup: EntityFieldType = \"multilookup\";\nexport const EntityFieldTypeCurrency: EntityFieldType = \"currency\";\nexport const EntityFieldTypeFile: EntityFieldType = \"file\";\nexport const EntityFieldTypeImage: EntityFieldType = \"image\";\nexport const EntityFieldTypeJSON: EntityFieldType = \"json\";\n\nexport const EntityFieldTypes = {\n string: { value: 'string', label: 'Short Text' },\n stringMultiline: { value: 'stringMultiline', label: 'Long Text' },\n text: { value: 'text', label: 'Rich Text Editor' },\n int: { value: 'int', label: 'Integer' },\n float: { value: 'float', label: 'Decimal' },\n bool: { value: 'bool', label: 'Boolean' },\n date: { value: 'date', label: 'Date' },\n datetime: { value: 'datetime', label: 'Date & Time' },\n email: { value: 'email', label: 'Email' },\n phone: { value: 'phone', label: 'Phone' },\n url: { value: 'url', label: 'URL' },\n dropdown: { value: 'dropdown', label: 'Dropdown' },\n multiselect: { value: 'multiselect', label: 'Multi Select' },\n lookup: { value: 'lookup', label: 'Lookup' },\n multilookup: { value: 'multilookup', label: 'Multi Lookup' },\n currency: { value: 'currency', label: 'Currency' },\n file: { value: 'file', label: 'File' },\n image: { value: 'image', label: 'Image' },\n json: { value: 'json', label: 'JSON' }\n} as const;\n\nexport type EntityFieldTypeTS = keyof typeof EntityFieldTypes;\nexport type EntityFieldTypeOptionTS = typeof EntityFieldTypes[EntityFieldTypeTS];\n\n\n//////////\n// source: entities-models.go\n\nexport interface EntityDefinition {\n id: string /* uuid */;\n name: string;\n displayName: string;\n module: string;\n description: string;\n schema: JSONSchema;\n defaultViewId: string /* uuid */;\n metadata?: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\nexport interface EntityRecord {\n id: string /* uuid */;\n entityId: string /* uuid */;\n name: string;\n fields: { [key: string]: any}; // ** must match the entity definition schema\n tags?: string[];\n metadata?: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\n/**\n * View defines how to display entity records in a list\n */\nexport interface View {\n id: string /* uuid */;\n entityId: string /* uuid */;\n name: string;\n displayName: string;\n description?: string;\n isDefault: boolean;\n columns: ViewColumn[];\n filters: Filter[];\n sort: Sort[];\n}\nexport interface Filter {\n field: string;\n operator: EntityFilterOperator;\n value: any;\n}\nexport interface Sort {\n field: string;\n direction: number /* int */; // 1 for asc, -1 for desc\n}\nexport interface FieldValidation {\n required: boolean;\n min?: number /* float64 */;\n max?: number /* float64 */;\n minLength?: number /* int */;\n maxLength?: number /* int */;\n pattern?: string;\n customRules?: ValidationRule[];\n}\nexport interface ValidationRule {\n name: string;\n conditions: ValidationRuleCondition[];\n}\nexport interface ValidationRuleCondition {\n field: string;\n operator: string;\n value: any;\n}\nexport interface RecordReference {\n entityName: string;\n recordId: string /* uuid */;\n fieldName: string;\n referencedAt: string /* RFC3339 */;\n}\nexport interface InsertOneResult {\n insertedId: string;\n success: boolean;\n error: string;\n}\n/**\n * Query related models\n */\nexport interface EntityQuery {\n filters: { [key: string]: any};\n page: number /* int64 */;\n pageSize: number /* int64 */;\n sortBy: string;\n sortOrder: number /* int */;\n includeLookups?: LookupInclude[];\n include?: string[]; // Fields to include\n exclude?: string[]; // Fields to exclude\n}\nexport interface LookupInclude {\n entityName: string;\n fieldName: string;\n fields?: string[];\n}\nexport interface QueryRequest {\n orgId: string;\n entityName: string;\n viewId?: string /* uuid */;\n query: EntityQuery;\n}\n/**\n * Request/Response models\n */\nexport interface CreateEntityDefinitionRequest {\n orgId: string;\n definition: EntityDefinition;\n}\nexport interface CreateOrgSchemaRequest {\n orgId: string /* uuid */;\n}\nexport interface CreateOrgSchemaResponse {\n metadata: ResponseMetadata;\n}\nexport interface DropOrgSchemaRequest {\n orgId: string /* uuid */;\n}\nexport interface DropOrgSchemaResponse {\n metadata: ResponseMetadata;\n}\nexport interface CreateRecordRequest {\n orgId: string;\n entityName: string;\n record: EntityRecord;\n}\nexport interface UpdateRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string /* uuid */;\n record: EntityRecord;\n}\nexport interface DeleteRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string;\n}\n/**\n * View models\n */\nexport interface EntityView {\n id: string /* uuid */;\n name: string;\n displayName: string;\n entityName: string;\n columns: ViewColumn[];\n filters: ViewFilter[];\n lookups: LookupInclude[];\n sortBy?: string;\n sortOrder?: number /* int */;\n isDefault: boolean;\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\nexport interface ViewColumn {\n fieldName: string;\n displayName: string;\n width: number /* int */;\n sortable: boolean;\n visible: boolean;\n order: number /* int */;\n}\nexport interface ViewFilter {\n fieldName: string;\n operator: string;\n value: any;\n}\n/**\n * Bulk operation models\n */\nexport interface BulkCreateRequest {\n orgId: string;\n entityName: string;\n records: EntityRecord[];\n}\nexport interface BulkUpdateRequest {\n orgId: string;\n entityName: string;\n records: EntityRecord[];\n}\nexport interface BulkDeleteRequest {\n orgId: string;\n entityName: string;\n recordIds: string /* uuid */[];\n}\nexport interface UpdateEntityDefinitionRequest {\n orgId: string;\n entityName: string; // Identify which entity to update\n definition: EntityDefinition;\n}\nexport interface GetEntityDefinitionRequest {\n orgId: string;\n entityName: string;\n}\nexport interface DeleteEntityDefinitionRequest {\n orgId: string;\n entityName: string;\n deleteRecords?: boolean; // If true, delete all entity records before deleting definition\n hardDelete?: boolean; // If true, permanently delete from database instead of soft delete\n}\nexport interface ListEntityDefinitionsRequest {\n orgId: string;\n module?: string; // Optional: filter by module (sales, marketing, etc)\n status?: string; // Optional: active, inactive, etc\n}\n/**\n * View related requests\n */\nexport interface CreateViewRequest {\n orgId: string;\n entityName: string;\n view: EntityView;\n}\nexport interface UpdateViewRequest {\n orgId: string;\n view: EntityView;\n}\nexport interface DeleteViewRequest {\n orgId: string;\n viewId: string /* uuid */;\n}\nexport interface GetViewRequest {\n orgId: string;\n viewId: string /* uuid */;\n}\nexport interface ListViewsRequest {\n orgId: string;\n entityName: string;\n}\n/**\n * Response models\n */\nexport interface EntityDefinitionResponse {\n definition: EntityDefinition;\n metadata: ResponseMetadata;\n}\nexport interface ListEntityDefinitionsResponse {\n definitions: EntityDefinition[];\n metadata: ResponseMetadata;\n}\nexport interface EntityViewResponse {\n view: EntityView;\n metadata: ResponseMetadata;\n}\nexport interface ListViewsResponse {\n views: EntityView[];\n metadata: ResponseMetadata;\n}\nexport interface EntityRecordResponse {\n record: EntityRecord;\n metadata: ResponseMetadata;\n}\nexport interface ListEntityRecordsResponse {\n records?: ListResult<EntityRecord>;\n metadata: ResponseMetadata;\n}\n/**\n * Common response metadata\n */\nexport interface ResponseMetadata {\n success: boolean;\n timestamp: string /* RFC3339 */;\n message?: string;\n error?: string;\n}\nexport interface ListOptions {\n Page: number /* int64 */;\n PageSize: number /* int64 */;\n SortBy: string;\n SortOrder: number /* int */;\n Filters: { [key: string]: any};\n Include: string[];\n Exclude: string[];\n}\nexport interface ListResult<T extends any> {\n items: T[];\n totalCount: number /* int64 */;\n currentPage: number /* int64 */;\n pageSize: number /* int64 */;\n totalPages: number /* int64 */;\n}\nexport interface GetEntityRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string;\n}\nexport interface GetEntityRecordResponse {\n record?: EntityRecord;\n metadata: ResponseMetadata;\n}\nexport interface CountEntityRecordsRequest {\n orgId: string;\n entityName: string;\n filters?: { [key: string]: any};\n}\nexport interface CountEntityRecordsResponse {\n count: number /* int64 */;\n metadata: ResponseMetadata;\n}\n\n//////////\n// source: events.go\n\nexport interface EntityRecordChangeEvent {\n orgId: string;\n entityName: string;\n recordId: string;\n record?: EntityRecord;\n changes?: RecordChange;\n action: RecordChangeAction; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport interface RecordChange {\n /**\n * OldValues map[string]TypedValue `json:\"oldValues,omitempty\"`\n * NewValues map[string]TypedValue `json:\"newValues,omitempty\"`\n */\n changedAt: string /* RFC3339 */;\n changedBy: string /* ObjectID */;\n fields: string[]; // List of changed field names for quick reference\n}\nexport interface EntityDefinitionChangeEvent {\n orgId: string;\n definition?: EntityDefinition;\n action: string; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport interface EntityViewChangeEvent {\n orgId: string;\n entityName: string;\n view?: EntityView;\n action: string; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport type RecordChangeAction = string;\nexport const RecordChangeActionCreated: RecordChangeAction = \"created\";\nexport const RecordChangeActionUpdated: RecordChangeAction = \"updated\";\nexport const RecordChangeActionDeleted: RecordChangeAction = \"deleted\";\n\n//////////\n// source: subjects.go\n\nexport const EntityOrgSchemaCreate = \"entity.org.schema.create\";\nexport const EntityOrgSchemaDrop = \"entity.org.schema.drop\";\nexport const EntityDefinitionCreate = \"entity.definition.create\";\nexport const EntityDefinitionCreated = \"entity.definition.created\";\nexport const EntityDefinitionUpdate = \"entity.definition.update\";\nexport const EntityDefinitionGet = \"entity.definition.get\";\nexport const EntityDefinitionGetServer = \"entity.definition.get.server\";\nexport const EntityDefinitionList = \"entity.definition.list\";\nexport const EntityDefinitionUpdated = \"entity.definition.updated\";\nexport const EntityDefinitionDelete = \"entity.definition.delete\";\nexport const EntityDefinitionDeleted = \"entity.definition.deleted\";\nexport const EntityRecordCreate = \"entity.record.create\";\nexport const EntityRecordCreated = \"entity.record.created\";\nexport const EntityRecordGet = \"entity.record.get\";\nexport const EntityRecordQuery = \"entity.record.query\";\nexport const EntityRecordCount = \"entity.record.count\";\nexport const EntityRecordUpdate = \"entity.record.update\";\nexport const EntityRecordUpdated = \"entity.record.updated\";\nexport const EntityRecordDelete = \"entity.record.delete\";\nexport const EntityRecordDeleted = \"entity.record.deleted\";\nexport const EntityRecordsBulkCreate = \"entity.records.bulk.create\";\nexport const EntityRecordsBulkCreated = \"entity.records.bulk.created\";\nexport const EntityRecordsBulkUpdate = \"entity.records.bulk.update\";\nexport const EntityRecordsBulkUpdated = \"entity.records.bulk.updated\";\nexport const EntityRecordsBulkDelete = \"entity.records.bulk.delete\";\nexport const EntityRecordsBulkDeleted = \"entity.records.bulk.deleted\";\nexport const EntityViewCreate = \"entity.view.create\";\nexport const EntityViewCreated = \"entity.view.created\";\nexport const EntityViewUpdate = \"entity.view.update\";\nexport const EntityViewUpdated = \"entity.view.updated\";\nexport const EntityViewDelete = \"entity.view.delete\";\nexport const EntityViewDeleted = \"entity.view.deleted\";\nexport const EntityViewList = \"entity.view.list\";\n"],"mappings":"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","names":[]}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
4
 
@@ -70,7 +70,8 @@
70
70
 
71
71
 
72
72
 
73
- var _chunkK2MPIZE7js = require('./chunk-K2MPIZE7.js');
73
+
74
+ var _chunk4GC36G4Djs = require('./chunk-4GC36G4D.js');
74
75
 
75
76
  // context/entity-definition-context.tsx
76
77
  var _react = require('react');
@@ -219,7 +220,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
219
220
  }
220
221
  dispatch(setOperationLoading({ operation: "createOrgSchema", loading: true }));
221
222
  try {
222
- const response = await request(_chunkK2MPIZE7js.EntityOrgSchemaCreate, { orgId: targetOrgId });
223
+ const response = await request(_chunk4GC36G4Djs.EntityOrgSchemaCreate, { orgId: targetOrgId });
223
224
  if (response instanceof Error) {
224
225
  throw response;
225
226
  }
@@ -237,7 +238,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
237
238
  }
238
239
  dispatch(setOperationLoading({ operation: "dropOrgSchema", loading: true }));
239
240
  try {
240
- const response = await request(_chunkK2MPIZE7js.EntityOrgSchemaDrop, { orgId: targetOrgId });
241
+ const response = await request(_chunk4GC36G4Djs.EntityOrgSchemaDrop, { orgId: targetOrgId });
241
242
  if (response instanceof Error) {
242
243
  throw response;
243
244
  }
@@ -254,7 +255,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
254
255
  if (loadingStates[loadingKey]) return;
255
256
  dispatch(setOperationLoading({ operation: loadingKey, loading: true }));
256
257
  try {
257
- const response = await request(_chunkK2MPIZE7js.EntityDefinitionList, { orgId, module });
258
+ const response = await request(_chunk4GC36G4Djs.EntityDefinitionList, { orgId, module });
258
259
  if (response instanceof Error) {
259
260
  dispatch(setError(response.message));
260
261
  } else {
@@ -282,7 +283,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
282
283
  setOperationLoading({ operation: `load_${name}`, loading: true })
283
284
  );
284
285
  try {
285
- const response = await request(_chunkK2MPIZE7js.EntityDefinitionGet, { entityName: name, orgId }, {});
286
+ const response = await request(_chunk4GC36G4Djs.EntityDefinitionGet, { entityName: name, orgId }, {});
286
287
  if (response instanceof Error) {
287
288
  dispatch(setError(response.message));
288
289
  return;
@@ -307,7 +308,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
307
308
  }
308
309
  dispatch(setOperationLoading({ operation: "create", loading: true }));
309
310
  try {
310
- const response = await request(_chunkK2MPIZE7js.EntityDefinitionCreate, { definition, orgId }, {});
311
+ const response = await request(_chunk4GC36G4Djs.EntityDefinitionCreate, { definition, orgId }, {});
311
312
  if (response instanceof Error) {
312
313
  console.error("createDefinition error", response);
313
314
  throw response;
@@ -329,7 +330,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
329
330
  );
330
331
  try {
331
332
  const response = await request(
332
- _chunkK2MPIZE7js.EntityDefinitionUpdate,
333
+ _chunk4GC36G4Djs.EntityDefinitionUpdate,
333
334
  {
334
335
  entityName: name,
335
336
  definition,
@@ -358,7 +359,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
358
359
  setOperationLoading({ operation: `delete_${name}`, loading: true })
359
360
  );
360
361
  try {
361
- const response = await request(_chunkK2MPIZE7js.EntityDefinitionDelete, { entityName: name, orgId }, {});
362
+ const response = await request(_chunk4GC36G4Djs.EntityDefinitionDelete, { entityName: name, orgId }, {});
362
363
  if (response instanceof Error) {
363
364
  throw response;
364
365
  }
@@ -378,7 +379,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
378
379
  dispatch(setOperationLoading({ operation: loadingKey, loading: true }));
379
380
  try {
380
381
  const response = await request(
381
- _chunkK2MPIZE7js.EntityViewList,
382
+ _chunk4GC36G4Djs.EntityViewList,
382
383
  { entityName: entityName2, orgId },
383
384
  {}
384
385
  );
@@ -407,7 +408,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
407
408
  dispatch(setOperationLoading({ operation: "create_view", loading: true }));
408
409
  try {
409
410
  const response = await request(
410
- _chunkK2MPIZE7js.EntityViewCreate,
411
+ _chunk4GC36G4Djs.EntityViewCreate,
411
412
  { entityName: entityName2, view, orgId },
412
413
  {}
413
414
  );
@@ -434,7 +435,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
434
435
  );
435
436
  try {
436
437
  const response = await request(
437
- _chunkK2MPIZE7js.EntityViewUpdate,
438
+ _chunk4GC36G4Djs.EntityViewUpdate,
438
439
  { view, orgId },
439
440
  {}
440
441
  );
@@ -461,7 +462,7 @@ function useEntityDefinition(orgId, entityName, options = {}) {
461
462
  );
462
463
  try {
463
464
  const response = await request(
464
- _chunkK2MPIZE7js.EntityViewDelete,
465
+ _chunk4GC36G4Djs.EntityViewDelete,
465
466
  { viewId, orgId },
466
467
  {}
467
468
  );
@@ -684,7 +685,7 @@ function useEntityRecord(orgId, entityName, options = {}) {
684
685
  try {
685
686
  const queryParams = { ...recordState.params, ...params };
686
687
  const response = await request(
687
- _chunkK2MPIZE7js.EntityRecordQuery,
688
+ _chunk4GC36G4Djs.EntityRecordQuery,
688
689
  {
689
690
  orgId,
690
691
  entityName,
@@ -721,7 +722,7 @@ function useEntityRecord(orgId, entityName, options = {}) {
721
722
  if (loadingStates[loadingKey]) return;
722
723
  dispatch(setOperationLoading2({ operation: loadingKey, loading: true }));
723
724
  try {
724
- const response = await request(_chunkK2MPIZE7js.EntityRecordGet, { entityName, recordId, orgId }, {});
725
+ const response = await request(_chunk4GC36G4Djs.EntityRecordGet, { entityName, recordId, orgId }, {});
725
726
  if (response instanceof Error) {
726
727
  dispatch(setError2(response.message));
727
728
  return;
@@ -744,7 +745,7 @@ function useEntityRecord(orgId, entityName, options = {}) {
744
745
  );
745
746
  try {
746
747
  const response = await request(
747
- _chunkK2MPIZE7js.EntityRecordCreate,
748
+ _chunk4GC36G4Djs.EntityRecordCreate,
748
749
  {
749
750
  orgId,
750
751
  entityName,
@@ -774,7 +775,7 @@ function useEntityRecord(orgId, entityName, options = {}) {
774
775
  );
775
776
  try {
776
777
  const response = await request(
777
- _chunkK2MPIZE7js.EntityRecordUpdate,
778
+ _chunk4GC36G4Djs.EntityRecordUpdate,
778
779
  {
779
780
  orgId,
780
781
  entityName,
@@ -805,7 +806,7 @@ function useEntityRecord(orgId, entityName, options = {}) {
805
806
  );
806
807
  try {
807
808
  const response = await request(
808
- _chunkK2MPIZE7js.EntityRecordDelete,
809
+ _chunk4GC36G4Djs.EntityRecordDelete,
809
810
  {
810
811
  orgId,
811
812
  entityName,
@@ -829,7 +830,7 @@ function useEntityRecord(orgId, entityName, options = {}) {
829
830
  }
830
831
  try {
831
832
  const response = await request(
832
- _chunkK2MPIZE7js.EntityRecordCount,
833
+ _chunk4GC36G4Djs.EntityRecordCount,
833
834
  {
834
835
  orgId,
835
836
  entityName,
@@ -853,7 +854,7 @@ function useEntityRecord(orgId, entityName, options = {}) {
853
854
  throw new Error("Not connected or missing orgId");
854
855
  }
855
856
  try {
856
- const response = await request(_chunkK2MPIZE7js.EntityRecordGet, { entityName, recordId, orgId }, {});
857
+ const response = await request(_chunk4GC36G4Djs.EntityRecordGet, { entityName, recordId, orgId }, {});
857
858
  if (response instanceof Error) {
858
859
  console.error("Error fetching record:", response.message);
859
860
  return null;
@@ -1070,5 +1071,5 @@ var PREDEFINED_COLORS = [
1070
1071
 
1071
1072
 
1072
1073
 
1073
- exports.EntityDefinitionContext = EntityDefinitionContext; exports.EntityDefinitionCreate = _chunkK2MPIZE7js.EntityDefinitionCreate; exports.EntityDefinitionCreated = _chunkK2MPIZE7js.EntityDefinitionCreated; exports.EntityDefinitionDelete = _chunkK2MPIZE7js.EntityDefinitionDelete; exports.EntityDefinitionDeleted = _chunkK2MPIZE7js.EntityDefinitionDeleted; exports.EntityDefinitionGet = _chunkK2MPIZE7js.EntityDefinitionGet; exports.EntityDefinitionGetServer = _chunkK2MPIZE7js.EntityDefinitionGetServer; exports.EntityDefinitionList = _chunkK2MPIZE7js.EntityDefinitionList; exports.EntityDefinitionProvider = EntityDefinitionProvider; exports.EntityDefinitionUpdate = _chunkK2MPIZE7js.EntityDefinitionUpdate; exports.EntityDefinitionUpdated = _chunkK2MPIZE7js.EntityDefinitionUpdated; exports.EntityFieldTypeBool = _chunkK2MPIZE7js.EntityFieldTypeBool; exports.EntityFieldTypeCurrency = _chunkK2MPIZE7js.EntityFieldTypeCurrency; exports.EntityFieldTypeDate = _chunkK2MPIZE7js.EntityFieldTypeDate; exports.EntityFieldTypeDateTime = _chunkK2MPIZE7js.EntityFieldTypeDateTime; exports.EntityFieldTypeDropdown = _chunkK2MPIZE7js.EntityFieldTypeDropdown; exports.EntityFieldTypeEmail = _chunkK2MPIZE7js.EntityFieldTypeEmail; exports.EntityFieldTypeFile = _chunkK2MPIZE7js.EntityFieldTypeFile; exports.EntityFieldTypeFloat = _chunkK2MPIZE7js.EntityFieldTypeFloat; exports.EntityFieldTypeImage = _chunkK2MPIZE7js.EntityFieldTypeImage; exports.EntityFieldTypeInt = _chunkK2MPIZE7js.EntityFieldTypeInt; exports.EntityFieldTypeJSON = _chunkK2MPIZE7js.EntityFieldTypeJSON; exports.EntityFieldTypeLookup = _chunkK2MPIZE7js.EntityFieldTypeLookup; exports.EntityFieldTypeMultiLookup = _chunkK2MPIZE7js.EntityFieldTypeMultiLookup; exports.EntityFieldTypeMultiSelect = _chunkK2MPIZE7js.EntityFieldTypeMultiSelect; exports.EntityFieldTypePhone = _chunkK2MPIZE7js.EntityFieldTypePhone; exports.EntityFieldTypeString = _chunkK2MPIZE7js.EntityFieldTypeString; exports.EntityFieldTypeStringMultiline = _chunkK2MPIZE7js.EntityFieldTypeStringMultiline; exports.EntityFieldTypeText = _chunkK2MPIZE7js.EntityFieldTypeText; exports.EntityFieldTypeURL = _chunkK2MPIZE7js.EntityFieldTypeURL; exports.EntityFieldTypes = _chunkK2MPIZE7js.EntityFieldTypes; exports.EntityFilterOperators = _chunkK2MPIZE7js.EntityFilterOperators; exports.EntityOrgSchemaCreate = _chunkK2MPIZE7js.EntityOrgSchemaCreate; exports.EntityOrgSchemaDrop = _chunkK2MPIZE7js.EntityOrgSchemaDrop; exports.EntityRecordContext = EntityRecordContext; exports.EntityRecordCount = _chunkK2MPIZE7js.EntityRecordCount; exports.EntityRecordCreate = _chunkK2MPIZE7js.EntityRecordCreate; exports.EntityRecordCreated = _chunkK2MPIZE7js.EntityRecordCreated; exports.EntityRecordDelete = _chunkK2MPIZE7js.EntityRecordDelete; exports.EntityRecordDeleted = _chunkK2MPIZE7js.EntityRecordDeleted; exports.EntityRecordGet = _chunkK2MPIZE7js.EntityRecordGet; exports.EntityRecordProvider = EntityRecordProvider; exports.EntityRecordQuery = _chunkK2MPIZE7js.EntityRecordQuery; exports.EntityRecordUpdate = _chunkK2MPIZE7js.EntityRecordUpdate; exports.EntityRecordUpdated = _chunkK2MPIZE7js.EntityRecordUpdated; exports.EntityRecordsBulkCreate = _chunkK2MPIZE7js.EntityRecordsBulkCreate; exports.EntityRecordsBulkCreated = _chunkK2MPIZE7js.EntityRecordsBulkCreated; exports.EntityRecordsBulkDelete = _chunkK2MPIZE7js.EntityRecordsBulkDelete; exports.EntityRecordsBulkDeleted = _chunkK2MPIZE7js.EntityRecordsBulkDeleted; exports.EntityRecordsBulkUpdate = _chunkK2MPIZE7js.EntityRecordsBulkUpdate; exports.EntityRecordsBulkUpdated = _chunkK2MPIZE7js.EntityRecordsBulkUpdated; exports.EntityViewCreate = _chunkK2MPIZE7js.EntityViewCreate; exports.EntityViewCreated = _chunkK2MPIZE7js.EntityViewCreated; exports.EntityViewDelete = _chunkK2MPIZE7js.EntityViewDelete; exports.EntityViewDeleted = _chunkK2MPIZE7js.EntityViewDeleted; exports.EntityViewList = _chunkK2MPIZE7js.EntityViewList; exports.EntityViewUpdate = _chunkK2MPIZE7js.EntityViewUpdate; exports.EntityViewUpdated = _chunkK2MPIZE7js.EntityViewUpdated; exports.OperatorBetween = _chunkK2MPIZE7js.OperatorBetween; exports.OperatorContains = _chunkK2MPIZE7js.OperatorContains; exports.OperatorEmpty = _chunkK2MPIZE7js.OperatorEmpty; exports.OperatorEndsWith = _chunkK2MPIZE7js.OperatorEndsWith; exports.OperatorEq = _chunkK2MPIZE7js.OperatorEq; exports.OperatorExists = _chunkK2MPIZE7js.OperatorExists; exports.OperatorGt = _chunkK2MPIZE7js.OperatorGt; exports.OperatorGte = _chunkK2MPIZE7js.OperatorGte; exports.OperatorIn = _chunkK2MPIZE7js.OperatorIn; exports.OperatorLt = _chunkK2MPIZE7js.OperatorLt; exports.OperatorLte = _chunkK2MPIZE7js.OperatorLte; exports.OperatorNe = _chunkK2MPIZE7js.OperatorNe; exports.OperatorNin = _chunkK2MPIZE7js.OperatorNin; exports.OperatorStartsWith = _chunkK2MPIZE7js.OperatorStartsWith; exports.PREDEFINED_COLORS = PREDEFINED_COLORS; exports.RecordChangeActionCreated = _chunkK2MPIZE7js.RecordChangeActionCreated; exports.RecordChangeActionDeleted = _chunkK2MPIZE7js.RecordChangeActionDeleted; exports.RecordChangeActionUpdated = _chunkK2MPIZE7js.RecordChangeActionUpdated; exports.entityDefinitionReducer = entityDefinitionReducer; exports.entityRecordReducer = entityRecordReducer; exports.useDebounce = useDebounce; exports.useEntityDefinition = useEntityDefinition; exports.useEntityDefinitionContext = useEntityDefinitionContext; exports.useEntityDefinitionDetails = useEntityDefinitionDetails; exports.useEntityRecord = useEntityRecord; exports.useEntityRecordContext = useEntityRecordContext;
1074
+ exports.EntityDefinitionContext = EntityDefinitionContext; exports.EntityDefinitionCreate = _chunk4GC36G4Djs.EntityDefinitionCreate; exports.EntityDefinitionCreated = _chunk4GC36G4Djs.EntityDefinitionCreated; exports.EntityDefinitionDelete = _chunk4GC36G4Djs.EntityDefinitionDelete; exports.EntityDefinitionDeleted = _chunk4GC36G4Djs.EntityDefinitionDeleted; exports.EntityDefinitionGet = _chunk4GC36G4Djs.EntityDefinitionGet; exports.EntityDefinitionGetServer = _chunk4GC36G4Djs.EntityDefinitionGetServer; exports.EntityDefinitionList = _chunk4GC36G4Djs.EntityDefinitionList; exports.EntityDefinitionProvider = EntityDefinitionProvider; exports.EntityDefinitionUpdate = _chunk4GC36G4Djs.EntityDefinitionUpdate; exports.EntityDefinitionUpdated = _chunk4GC36G4Djs.EntityDefinitionUpdated; exports.EntityFieldTypeBool = _chunk4GC36G4Djs.EntityFieldTypeBool; exports.EntityFieldTypeCurrency = _chunk4GC36G4Djs.EntityFieldTypeCurrency; exports.EntityFieldTypeDate = _chunk4GC36G4Djs.EntityFieldTypeDate; exports.EntityFieldTypeDateTime = _chunk4GC36G4Djs.EntityFieldTypeDateTime; exports.EntityFieldTypeDropdown = _chunk4GC36G4Djs.EntityFieldTypeDropdown; exports.EntityFieldTypeEmail = _chunk4GC36G4Djs.EntityFieldTypeEmail; exports.EntityFieldTypeFile = _chunk4GC36G4Djs.EntityFieldTypeFile; exports.EntityFieldTypeFloat = _chunk4GC36G4Djs.EntityFieldTypeFloat; exports.EntityFieldTypeImage = _chunk4GC36G4Djs.EntityFieldTypeImage; exports.EntityFieldTypeInt = _chunk4GC36G4Djs.EntityFieldTypeInt; exports.EntityFieldTypeJSON = _chunk4GC36G4Djs.EntityFieldTypeJSON; exports.EntityFieldTypeLookup = _chunk4GC36G4Djs.EntityFieldTypeLookup; exports.EntityFieldTypeMultiLookup = _chunk4GC36G4Djs.EntityFieldTypeMultiLookup; exports.EntityFieldTypeMultiSelect = _chunk4GC36G4Djs.EntityFieldTypeMultiSelect; exports.EntityFieldTypePhone = _chunk4GC36G4Djs.EntityFieldTypePhone; exports.EntityFieldTypeString = _chunk4GC36G4Djs.EntityFieldTypeString; exports.EntityFieldTypeStringMultiline = _chunk4GC36G4Djs.EntityFieldTypeStringMultiline; exports.EntityFieldTypeText = _chunk4GC36G4Djs.EntityFieldTypeText; exports.EntityFieldTypeURL = _chunk4GC36G4Djs.EntityFieldTypeURL; exports.EntityFieldTypes = _chunk4GC36G4Djs.EntityFieldTypes; exports.EntityFilterOperators = _chunk4GC36G4Djs.EntityFilterOperators; exports.EntityOrgSchemaCreate = _chunk4GC36G4Djs.EntityOrgSchemaCreate; exports.EntityOrgSchemaDrop = _chunk4GC36G4Djs.EntityOrgSchemaDrop; exports.EntityRecordContext = EntityRecordContext; exports.EntityRecordCount = _chunk4GC36G4Djs.EntityRecordCount; exports.EntityRecordCreate = _chunk4GC36G4Djs.EntityRecordCreate; exports.EntityRecordCreated = _chunk4GC36G4Djs.EntityRecordCreated; exports.EntityRecordDelete = _chunk4GC36G4Djs.EntityRecordDelete; exports.EntityRecordDeleted = _chunk4GC36G4Djs.EntityRecordDeleted; exports.EntityRecordGet = _chunk4GC36G4Djs.EntityRecordGet; exports.EntityRecordProvider = EntityRecordProvider; exports.EntityRecordQuery = _chunk4GC36G4Djs.EntityRecordQuery; exports.EntityRecordUpdate = _chunk4GC36G4Djs.EntityRecordUpdate; exports.EntityRecordUpdated = _chunk4GC36G4Djs.EntityRecordUpdated; exports.EntityRecordsBulkCreate = _chunk4GC36G4Djs.EntityRecordsBulkCreate; exports.EntityRecordsBulkCreated = _chunk4GC36G4Djs.EntityRecordsBulkCreated; exports.EntityRecordsBulkDelete = _chunk4GC36G4Djs.EntityRecordsBulkDelete; exports.EntityRecordsBulkDeleted = _chunk4GC36G4Djs.EntityRecordsBulkDeleted; exports.EntityRecordsBulkUpdate = _chunk4GC36G4Djs.EntityRecordsBulkUpdate; exports.EntityRecordsBulkUpdated = _chunk4GC36G4Djs.EntityRecordsBulkUpdated; exports.EntityViewCreate = _chunk4GC36G4Djs.EntityViewCreate; exports.EntityViewCreated = _chunk4GC36G4Djs.EntityViewCreated; exports.EntityViewDelete = _chunk4GC36G4Djs.EntityViewDelete; exports.EntityViewDeleted = _chunk4GC36G4Djs.EntityViewDeleted; exports.EntityViewList = _chunk4GC36G4Djs.EntityViewList; exports.EntityViewUpdate = _chunk4GC36G4Djs.EntityViewUpdate; exports.EntityViewUpdated = _chunk4GC36G4Djs.EntityViewUpdated; exports.OperatorBetween = _chunk4GC36G4Djs.OperatorBetween; exports.OperatorContains = _chunk4GC36G4Djs.OperatorContains; exports.OperatorEmpty = _chunk4GC36G4Djs.OperatorEmpty; exports.OperatorEndsWith = _chunk4GC36G4Djs.OperatorEndsWith; exports.OperatorEq = _chunk4GC36G4Djs.OperatorEq; exports.OperatorExists = _chunk4GC36G4Djs.OperatorExists; exports.OperatorGt = _chunk4GC36G4Djs.OperatorGt; exports.OperatorGte = _chunk4GC36G4Djs.OperatorGte; exports.OperatorIn = _chunk4GC36G4Djs.OperatorIn; exports.OperatorLt = _chunk4GC36G4Djs.OperatorLt; exports.OperatorLte = _chunk4GC36G4Djs.OperatorLte; exports.OperatorNe = _chunk4GC36G4Djs.OperatorNe; exports.OperatorNin = _chunk4GC36G4Djs.OperatorNin; exports.OperatorStartsWith = _chunk4GC36G4Djs.OperatorStartsWith; exports.PREDEFINED_COLORS = PREDEFINED_COLORS; exports.RecordChangeActionCreated = _chunk4GC36G4Djs.RecordChangeActionCreated; exports.RecordChangeActionDeleted = _chunk4GC36G4Djs.RecordChangeActionDeleted; exports.RecordChangeActionUpdated = _chunk4GC36G4Djs.RecordChangeActionUpdated; exports.entityDefinitionReducer = entityDefinitionReducer; exports.entityRecordReducer = entityRecordReducer; exports.useDebounce = useDebounce; exports.useEntityDefinition = useEntityDefinition; exports.useEntityDefinitionContext = useEntityDefinitionContext; exports.useEntityDefinitionDetails = useEntityDefinitionDetails; exports.useEntityRecord = useEntityRecord; exports.useEntityRecordContext = useEntityRecordContext;
1074
1075
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/index.js","../context/entity-definition-context.tsx","../hooks/use-entity-definition.ts","../store/entity-definition-slice.ts","../hooks/use-entity-definition-details.ts","../hooks/use-entity-record.ts","../store/entity-record-slice.ts","../hooks/use-debounce.ts","../context/entity-record-context.tsx","../consts/colors.ts"],"names":["useEffect","useSelector","initialState","setLoading","setOperationLoading","setError","useCallback","error"],"mappings":"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ACK,EAAA;AAGvB,EAAA;AAI7B;AAE6C;AACO,EAAA;AAEpC,EAAA;AACF,IAAA;AACR,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;ADy4BsD;AACA;AQt7BvB;AA0B3B;AArBO;AAW0B;AACnC,EAAA;AACA,EAAA;AACA,EAAA;AACW,EAAA;AACiB;AACa,EAAA;AACS,EAAA;AAG3B,EAAA;AAIzB;AAEyC;AACO,EAAA;AAEhC,EAAA;AACF,IAAA;AACR,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;ARm6BsD;AACA;AS/8BrB;AACC,EAAA;AACG,EAAA;AACA,EAAA;AACD,EAAA;AACD,EAAA;AACA,EAAA;AACE,EAAA;AACA,EAAA;AACrC;ATi9BsD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/index.js","sourcesContent":[null,"\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport {\n useEntityDefinition,\n UseEntityDefinitionType,\n UseEntityDefinitionOptions,\n} from \"../hooks\";\n\nexport const EntityDefinitionContext = createContext<\n UseEntityDefinitionType | undefined\n>(undefined);\n\nexport interface EntityDefinitionProviderProps {\n children: React.ReactNode;\n orgId: string;\n entityName?: string;\n options?: UseEntityDefinitionOptions;\n}\n\nexport function EntityDefinitionProvider({\n children,\n orgId,\n entityName,\n options = {},\n}: EntityDefinitionProviderProps) {\n const hookValue = useEntityDefinition(orgId, entityName, options);\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <EntityDefinitionContext.Provider value={value}>\n {children}\n </EntityDefinitionContext.Provider>\n );\n}\n\nexport function useEntityDefinitionContext() {\n const context = useContext(EntityDefinitionContext);\n\n if (!context) {\n throw new Error(\n \"useEntityDefinitionContext must be used within an EntityDefinitionProvider\"\n );\n }\n\n return context;\n}\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport {\n CreateEntityDefinitionRequest,\n CreateOrgSchemaRequest,\n CreateOrgSchemaResponse,\n CreateViewRequest,\n DropOrgSchemaRequest,\n DropOrgSchemaResponse,\n DeleteEntityDefinitionRequest,\n DeleteViewRequest,\n EntityDefinition,\n EntityDefinitionCreate,\n EntityDefinitionDelete,\n EntityDefinitionGet,\n EntityDefinitionList,\n EntityDefinitionResponse,\n EntityDefinitionUpdate,\n EntityOrgSchemaCreate,\n EntityOrgSchemaDrop,\n EntityView,\n EntityViewCreate,\n EntityViewDelete,\n EntityViewList,\n EntityViewResponse,\n EntityViewUpdate,\n GetEntityDefinitionRequest,\n ListEntityDefinitionsRequest,\n ListEntityDefinitionsResponse,\n ListViewsRequest,\n ListViewsResponse,\n ResponseMetadata,\n UpdateEntityDefinitionRequest,\n UpdateViewRequest,\n} from \"../models\";\nimport {\n addDefinition,\n addView,\n EntityDefinitionSelector,\n removeDefinition,\n removeView,\n setDefinitions,\n setError,\n setLoading,\n setOperationLoading,\n setSelectedDefinition,\n setViews,\n updateDefinition,\n updateView,\n} from \"../store/entity-definition-slice\";\n\nexport type UseEntityDefinitionType = {\n // State\n definitions: Record<string, EntityDefinition>;\n selectedDefinition?: EntityDefinition;\n views: Record<string, EntityView[]>;\n selectedView?: EntityView;\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Organization operations\n createOrgSchema: (orgId: string) => Promise<CreateOrgSchemaResponse>;\n dropOrgSchema: (orgId: string) => Promise<DropOrgSchemaResponse>;\n\n // Definition operations\n loadDefinitions: () => Promise<void>;\n loadDefinition: (name: string) => Promise<void>;\n createDefinition: (\n definition: EntityDefinition\n ) => Promise<EntityDefinitionResponse>;\n updateDefinition: (\n name: string,\n definition: EntityDefinition\n ) => Promise<EntityDefinitionResponse>;\n deleteDefinition: (name: string) => Promise<ResponseMetadata>;\n\n // View operations\n loadViews: (entityName: string) => Promise<void>;\n createView: (entityName: string, view: EntityView) => Promise<EntityView>;\n updateView: (entityName: string, view: EntityView) => Promise<EntityView>;\n deleteView: (\n entityName: string,\n viewId: string\n ) => Promise<{ success: boolean }>;\n\n // Utilities\n refresh: () => void;\n};\n\nexport interface UseEntityDefinitionOptions {\n autoLoad?: boolean;\n module?: string;\n}\n\n// todo: performance improvement: use selectors\n// const selectEntityDefinition = (state: EntityDefinitionSelector) => state.entityDefinition;\n\nexport function useEntityDefinition(\n orgId: string | undefined,\n entityName?: string,\n options: UseEntityDefinitionOptions = {}\n): UseEntityDefinitionType {\n const { autoLoad, module } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n // todo: performance improvement: use selectors\n\n // const selectDefinitions = createSelector(\n // selectEntityDefinition,\n // (state) => state.definitions\n // );\n // const selectSelectedDefinition = createSelector(\n // selectEntityDefinition,\n // (state) => state.selectedDefinition\n // );\n\n // // Similar selectors for views, selectedView, isLoading, loadingStates, error...\n\n // // In the hook\n // const definitions = useSelector(selectDefinitions);\n // const selectedDefinition = useSelector(selectSelectedDefinition);\n // const views = useSelector(selectViews);\n\n const definitions = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.definitions\n );\n const selectedDefinition = useSelector(\n (state: EntityDefinitionSelector) =>\n state.entityDefinition.selectedDefinition\n );\n const views = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.views\n );\n const selectedView = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.selectedView\n );\n const isLoading = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.isLoading\n );\n const loadingStates = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.loadingStates\n );\n const error = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.error\n );\n\n const createOrgSchema = useCallback(\n async (targetOrgId: string): Promise<CreateOrgSchemaResponse> => {\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n dispatch(setOperationLoading({ operation: \"createOrgSchema\", loading: true }));\n\n try {\n const response = await request<\n CreateOrgSchemaRequest,\n CreateOrgSchemaResponse\n >(EntityOrgSchemaCreate, { orgId: targetOrgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"createOrgSchema\", loading: false }));\n }\n },\n [natsConnected, dispatch, request]\n );\n\n const dropOrgSchema = useCallback(\n async (targetOrgId: string): Promise<DropOrgSchemaResponse> => {\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n dispatch(setOperationLoading({ operation: \"dropOrgSchema\", loading: true }));\n\n try {\n const response = await request<\n DropOrgSchemaRequest,\n DropOrgSchemaResponse\n >(EntityOrgSchemaDrop, { orgId: targetOrgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"dropOrgSchema\", loading: false }));\n }\n },\n [natsConnected, dispatch, request]\n );\n\n const loadDefinitions = useCallback(async () => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = \"loadDefinitions\";\n if (loadingStates[loadingKey]) return; // Prevent concurrent loads\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n ListEntityDefinitionsRequest,\n ListEntityDefinitionsResponse\n >(EntityDefinitionList, { orgId, module });\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else {\n dispatch(setDefinitions(response?.definitions ?? []));\n }\n } catch (err) {\n dispatch(setError(err instanceof Error ? err.message : \"Unknown error\"));\n } finally {\n dispatch(setOperationLoading({ operation: loadingKey, loading: false }));\n }\n }, [natsConnected, orgId, options.module, dispatch, request]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n loadDefinitions();\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId]);\n\n const loadDefinition = useCallback(\n async (name: string) => {\n if (!natsConnected || !orgId) return;\n\n dispatch(\n setOperationLoading({ operation: `load_${name}`, loading: true })\n );\n try {\n const response = await request<\n GetEntityDefinitionRequest,\n EntityDefinitionResponse\n >(EntityDefinitionGet, { entityName: name, orgId }, {});\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedDefinition(response.definition));\n } finally {\n dispatch(\n setOperationLoading({ operation: `load_${name}`, loading: false })\n );\n }\n },\n [natsConnected, orgId, dispatch, request]\n );\n\n useEffect(() => {\n if (natsConnected && orgId && entityName) {\n loadDefinition(entityName);\n }\n }, [natsConnected, orgId, entityName, loadDefinition]);\n\n const createDefinition = async (definition: EntityDefinition) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create\", loading: true }));\n\n try {\n const response = await request<\n CreateEntityDefinitionRequest,\n EntityDefinitionResponse\n >(EntityDefinitionCreate, { definition, orgId }, {});\n\n // console.log(\"createDefinition response\", response);\n\n if (response instanceof Error) {\n console.error(\"createDefinition error\", response);\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(addDefinition(response.definition));\n }\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"create\", loading: false }));\n }\n };\n\n const updateDefinitionById = async (\n name: string,\n definition: EntityDefinition\n ) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${name}`, loading: true })\n );\n try {\n const response = await request<\n UpdateEntityDefinitionRequest,\n EntityDefinitionResponse\n >(\n EntityDefinitionUpdate,\n {\n entityName: name,\n definition,\n orgId,\n },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(updateDefinition(response.definition));\n }\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `update_${name}`, loading: false })\n );\n }\n };\n\n const deleteDefinition = async (name: string) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_${name}`, loading: true })\n );\n try {\n const response = await request<\n DeleteEntityDefinitionRequest,\n ResponseMetadata\n >(EntityDefinitionDelete, { entityName: name, orgId }, {});\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeDefinition(name));\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `delete_${name}`, loading: false })\n );\n }\n };\n\n const loadViews = useCallback(\n async (entityName: string): Promise<void> => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `loadViews_${entityName}`;\n if (loadingStates[loadingKey]) return; // Prevent concurrent loads\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<ListViewsRequest, ListViewsResponse>(\n EntityViewList,\n { entityName, orgId },\n {}\n );\n\n console.log(\"loadViews response\", response);\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setViews({ entityName, views: response.views }));\n } catch (err) {\n dispatch(\n setError(err instanceof Error ? err.message : \"Unknown error\")\n );\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, loadingStates, dispatch, request]\n );\n\n const createView = async (entityName: string, view: EntityView) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create_view\", loading: true }));\n try {\n const response = await request<CreateViewRequest, EntityViewResponse>(\n EntityViewCreate,\n { entityName, view, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(addView({ entityName, view: response.view }));\n return response.view;\n } finally {\n dispatch(\n setOperationLoading({ operation: \"create_view\", loading: false })\n );\n }\n };\n\n const updateViewById = async (entityName: string, view: EntityView) => {\n if (!natsConnected || !orgId || !view.id) {\n throw new Error(\"Not connected, missing orgId, or invalid view\");\n }\n\n dispatch(\n setOperationLoading({\n operation: `update_view_${view.id}`,\n loading: true,\n })\n );\n try {\n const response = await request<UpdateViewRequest, EntityViewResponse>(\n EntityViewUpdate,\n { view, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n // console.log(\"updateViewById response\", response);\n\n dispatch(updateView({ entityName, view: response.view }));\n return response.view;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `update_view_${view.id}`,\n loading: false,\n })\n );\n }\n };\n\n const deleteView = async (entityName: string, viewId: string) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_view_${viewId}`, loading: true })\n );\n try {\n const response = await request<DeleteViewRequest, ResponseMetadata>(\n EntityViewDelete,\n { viewId, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeView({ entityName, viewId }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `delete_view_${viewId}`,\n loading: false,\n })\n );\n }\n };\n\n const refresh = useCallback(() => {\n if (!natsConnected || !orgId) return;\n\n if (entityName) {\n loadDefinition(entityName);\n } else {\n dispatch(setLoading(true));\n loadDefinitions().finally(() => dispatch(setLoading(false)));\n }\n }, [natsConnected, orgId, entityName, loadDefinition, dispatch]);\n\n return {\n // State\n definitions,\n selectedDefinition,\n views,\n selectedView,\n isLoading,\n loadingStates,\n error,\n\n // Organization operations\n createOrgSchema,\n dropOrgSchema,\n\n // Definition operations\n loadDefinitions,\n loadDefinition,\n createDefinition,\n updateDefinition: updateDefinitionById,\n deleteDefinition,\n\n // View operations\n loadViews,\n createView,\n updateView: updateViewById,\n deleteView,\n\n // Utilities\n refresh,\n };\n}\n","// store/entityDefinitionSlice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { EntityDefinition, EntityView } from \"../models\";\nexport interface EntityDefinitionState {\n definitions: Record<string, EntityDefinition>;\n selectedDefinition?: EntityDefinition;\n views: Record<string, EntityView[]>;\n selectedView?: EntityView;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface EntityDefinitionSelector {\n entityDefinition: EntityDefinitionState;\n}\n\nconst initialState: EntityDefinitionState = {\n definitions: {},\n views: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst entityDefinitionSlice = createSlice({\n name: \"entityDefinition\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setDefinitions: (state, action: PayloadAction<EntityDefinition[]>) => {\n state.definitions = action.payload.reduce(\n (acc, def) => {\n acc[def.name] = def;\n return acc;\n },\n {} as Record<string, EntityDefinition>\n );\n },\n addDefinition: (state, action: PayloadAction<EntityDefinition>) => {\n const definition = action.payload;\n state.definitions[definition.name] = definition;\n },\n updateDefinition: (state, action: PayloadAction<EntityDefinition>) => {\n const definition = action.payload;\n state.definitions[definition.name] = definition;\n if (state.selectedDefinition?.name === definition.name) {\n state.selectedDefinition = definition;\n }\n },\n removeDefinition: (state, action: PayloadAction<string>) => {\n delete state.definitions[action.payload];\n if (state.selectedDefinition?.name === action.payload) {\n state.selectedDefinition = undefined;\n }\n },\n setSelectedDefinition: (\n state,\n action: PayloadAction<EntityDefinition | undefined>\n ) => {\n state.selectedDefinition = action.payload;\n },\n setViews: (\n state,\n action: PayloadAction<{ entityName: string; views: EntityView[] }>\n ) => {\n const { entityName, views } = action.payload;\n state.views[entityName] = views;\n },\n addView: (\n state,\n action: PayloadAction<{ entityName: string; view: EntityView }>\n ) => {\n const { entityName, view } = action.payload;\n if (!state.views[entityName]) {\n state.views[entityName] = [];\n }\n state.views[entityName].push(view);\n },\n updateView: (\n state,\n action: PayloadAction<{ entityName: string; view: EntityView }>\n ) => {\n const { entityName, view } = action.payload;\n const views = state.views[entityName];\n if (views) {\n const index = views.findIndex((v) => v.id === view.id);\n if (index !== -1) {\n views[index] = view;\n if (state.selectedView?.id === view.id) {\n state.selectedView = view;\n }\n }\n }\n },\n removeView: (\n state,\n action: PayloadAction<{ entityName: string; viewId: string }>\n ) => {\n const { entityName, viewId } = action.payload;\n const views = state.views[entityName];\n if (views) {\n state.views[entityName] = views.filter((v) => v.id !== viewId);\n if (state.selectedView?.id === viewId) {\n state.selectedView = undefined;\n }\n }\n },\n setSelectedView: (state, action: PayloadAction<EntityView | undefined>) => {\n state.selectedView = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setDefinitions,\n addDefinition,\n updateDefinition,\n removeDefinition,\n setSelectedDefinition,\n setViews,\n addView,\n updateView,\n removeView,\n setSelectedView,\n} = entityDefinitionSlice.actions;\n\nexport const entityDefinitionReducer = entityDefinitionSlice.reducer;\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useEntityDefinitionContext } from \"../context/entity-definition-context\";\nimport { EntityDefinition } from \"../models\";\n\nexport function useEntityDefinitionDetails(entityName: string) {\n const context = useEntityDefinitionContext();\n const definition = context.definitions[entityName];\n\n const loadDefinitionDetails = useCallback(async () => {\n return context.loadDefinition(entityName);\n }, [context, entityName]);\n\n useEffect(() => {\n if (entityName && !definition) {\n loadDefinitionDetails();\n }\n }, [definition, entityName, loadDefinitionDetails]);\n\n return {\n definition,\n isLoading: context.loadingStates[`load_${entityName}`],\n error: context.error,\n updateDefinition: (updatedDef: EntityDefinition) =>\n context.updateDefinition(entityName, updatedDef),\n deleteDefinition: () => context.deleteDefinition(entityName),\n refresh: loadDefinitionDetails,\n };\n}\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport {\n CreateRecordRequest,\n DeleteRecordRequest,\n EntityQuery,\n EntityRecord,\n EntityRecordCreate,\n EntityRecordDelete,\n EntityRecordGet,\n EntityRecordQuery,\n EntityRecordCount,\n EntityRecordResponse,\n EntityRecordUpdate,\n GetEntityRecordRequest,\n ListEntityRecordsResponse,\n QueryRequest,\n ResponseMetadata,\n UpdateRecordRequest,\n CountEntityRecordsRequest,\n CountEntityRecordsResponse,\n} from \"../models\";\nimport {\n addRecord,\n EntityRecordSelector,\n removeRecord,\n setError,\n setOperationLoading,\n setRecords,\n setSelected,\n setSelectedRecord,\n updateQueryParams,\n updateRecord,\n} from \"../store/entity-record-slice\";\n\nexport type UseEntityRecordType = {\n // State\n records: Record<string, EntityRecord>;\n selectedRecord?: EntityRecord;\n params: EntityQuery;\n selected: string[];\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Operations\n loadRecords: (params?: Partial<EntityQuery>) => Promise<void>;\n createRecord: (record: EntityRecord) => Promise<EntityRecordResponse>;\n updateRecord: (record: EntityRecord) => Promise<EntityRecordResponse>;\n deleteRecord: (recordId: string) => Promise<ResponseMetadata>;\n loadRecord: (recordId: string) => Promise<void>;\n countRecords: (filters?: Record<string, any>) => Promise<number>;\n getEntityRecordById: (recordId: string) => Promise<EntityRecord | null>;\n\n\n // Selection\n selectRecords: (ids: string[]) => void;\n clearSelection: () => void;\n\n // Query\n updateParams: (params: Partial<EntityQuery>) => void;\n refresh: () => void;\n};\n\nconst defaultQuery: EntityQuery = {\n filters: {},\n page: 1,\n pageSize: 25,\n sortBy: \"metadata.createdAt\",\n sortOrder: -1,\n};\n\nexport function useEntityRecord(\n orgId: string | undefined,\n entityName: string,\n options: { autoLoad?: boolean } = {}\n): UseEntityRecordType {\n const { autoLoad = true } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n const recordState = useSelector(\n (state: EntityRecordSelector) =>\n state.entityRecord.records[entityName] || {\n items: {},\n params: defaultQuery,\n meta: {\n items: [],\n totalCount: 0,\n currentPage: 1,\n pageSize: 25,\n totalPages: 0,\n },\n selected: [],\n }\n );\n\n const selectedRecord = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.selectedRecord\n );\n\n const isLoading = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.isLoading\n );\n const loadingStates = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.loadingStates\n );\n const error = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.error\n );\n\n const loadRecords = useCallback(\n async (params?: Partial<EntityQuery>) => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `load_${entityName}`;\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const queryParams = { ...recordState.params, ...params };\n // console.log(\"will loadRecords\", queryParams);\n\n const response = await request<QueryRequest, ListEntityRecordsResponse>(\n EntityRecordQuery,\n {\n orgId,\n entityName,\n query: queryParams,\n }\n );\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else if (response.records) {\n dispatch(\n setRecords({\n entityName,\n records: response.records,\n params: queryParams,\n })\n );\n }\n } catch (err) {\n dispatch(\n setError(err instanceof Error ? err.message : \"Unknown error\")\n );\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, entityName, recordState.params, dispatch, request]\n );\n\n const loadRecord = useCallback(\n async (recordId: string) => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `load_${recordId}`;\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n GetEntityRecordRequest,\n EntityRecordResponse\n >(EntityRecordGet, { entityName, recordId, orgId }, {});\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedRecord({ record: response.record }));\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, entityName, recordState.params, dispatch, request]\n );\n\n const createRecord = async (\n record: EntityRecord\n ): Promise<EntityRecordResponse> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: \"create_record\", loading: true })\n );\n\n try {\n const response = await request<CreateRecordRequest, EntityRecordResponse>(\n EntityRecordCreate,\n {\n orgId,\n entityName,\n record,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(addRecord({ entityName, record: response.record }));\n }\n\n // Refresh list after create\n loadRecords();\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: \"create_record\", loading: false })\n );\n }\n };\n\n const updateRecordById = async (\n record: EntityRecord\n ): Promise<EntityRecordResponse> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${record.id}`, loading: true })\n );\n\n try {\n const response = await request<UpdateRecordRequest, EntityRecordResponse>(\n EntityRecordUpdate,\n {\n orgId,\n entityName,\n record,\n recordId: record.id,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(updateRecord({ entityName, record: response.record }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `update_${record.id}`,\n loading: false,\n })\n );\n }\n };\n\n const deleteRecordById = async (\n recordId: string\n ): Promise<ResponseMetadata> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_${recordId}`, loading: true })\n );\n\n try {\n const response = await request<DeleteRecordRequest, ResponseMetadata>(\n EntityRecordDelete,\n {\n orgId,\n entityName,\n recordId,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeRecord({ entityName, recordId }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `delete_${recordId}`, loading: false })\n );\n }\n };\n\n const countRecords = async (filters?: Record<string, any>): Promise<number> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n try {\n const response = await request<CountEntityRecordsRequest, CountEntityRecordsResponse>(\n EntityRecordCount,\n {\n orgId,\n entityName,\n filters: filters || {},\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (!response.metadata?.success) {\n throw new Error(response.metadata?.error || \"Failed to count records\");\n }\n\n return response.count || 0;\n } catch (err) {\n console.error(\"Error counting records:\", err);\n return 0;\n }\n };\n\n const getEntityRecordById = async (\n recordId: string\n ): Promise<EntityRecord | null> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n try {\n const response = await request<\n GetEntityRecordRequest,\n EntityRecordResponse\n >(EntityRecordGet, { entityName, recordId, orgId }, {});\n\n if (response instanceof Error) {\n console.error(\"Error fetching record:\", response.message);\n return null;\n }\n\n return response.record || null;\n } catch (error) {\n console.error(\"Error in getEntityRecordById:\", error);\n return null;\n }\n };\n\n const selectRecords = (ids: string[]) => {\n dispatch(setSelected({ entityName, ids }));\n };\n\n const clearSelection = () => {\n dispatch(setSelected({ entityName, ids: [] }));\n };\n\n const updateParams = (params: Partial<EntityQuery>) => {\n console.log(\"updating query params\", params);\n dispatch(updateQueryParams({ entityName, params }));\n loadRecords(params);\n };\n\n const refresh = useCallback(() => {\n loadRecords();\n }, [loadRecords]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n loadRecords();\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId]);\n\n return {\n // State\n records: recordState.items,\n params: recordState.params,\n selected: recordState.selected,\n selectedRecord,\n isLoading,\n loadingStates,\n error,\n\n // Operations\n loadRecords,\n createRecord,\n updateRecord: updateRecordById,\n deleteRecord: deleteRecordById,\n loadRecord,\n countRecords,\n getEntityRecordById,\n // Selection\n selectRecords,\n clearSelection,\n\n // Query\n updateParams,\n refresh,\n };\n}\n","// store/entity-record-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { EntityQuery, EntityRecord, EntityView, ListResult } from \"../models\";\n\nexport interface EntityRecordState {\n records: {\n [entityName: string]: {\n items: Record<string, EntityRecord>;\n params: EntityQuery;\n meta: ListResult<EntityRecord>;\n selected: string[]; // Selected record IDs\n };\n };\n selectedRecord?: EntityRecord;\n activeView?: EntityView;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface EntityRecordSelector {\n entityRecord: EntityRecordState;\n}\n\nconst initialState: EntityRecordState = {\n records: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst entityRecordSlice = createSlice({\n name: \"entityRecord\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n\n setRecords: (\n state,\n action: PayloadAction<{\n entityName: string;\n records: ListResult<EntityRecord>;\n params: EntityQuery;\n }>\n ) => {\n const { entityName, records, params } = action.payload;\n state.records[entityName] = {\n items: records.items.reduce(\n (acc, record) => {\n acc[record.id] = record;\n return acc;\n },\n {} as Record<string, EntityRecord>\n ),\n params,\n meta: records,\n selected: [],\n };\n },\n\n addRecord: (\n state,\n action: PayloadAction<{ entityName: string; record: EntityRecord }>\n ) => {\n const { entityName, record } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].items[record.id] = record;\n }\n },\n\n updateRecord: (\n state,\n action: PayloadAction<{ entityName: string; record: EntityRecord }>\n ) => {\n const { entityName, record } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].items[record.id] = record;\n }\n },\n\n removeRecord: (\n state,\n action: PayloadAction<{ entityName: string; recordId: string }>\n ) => {\n const { entityName, recordId } = action.payload;\n if (state.records[entityName]) {\n delete state.records[entityName].items[recordId];\n state.records[entityName].selected = state.records[\n entityName\n ].selected.filter((id) => id !== recordId);\n }\n },\n\n setSelected: (\n state,\n action: PayloadAction<{ entityName: string; ids: string[] }>\n ) => {\n const { entityName, ids } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].selected = ids;\n }\n },\n\n setActiveView: (state, action: PayloadAction<EntityView | undefined>) => {\n state.activeView = action.payload;\n },\n\n updateQueryParams: (\n state,\n action: PayloadAction<{\n entityName: string;\n params: Partial<EntityQuery>;\n }>\n ) => {\n const { entityName, params } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].params = {\n ...state.records[entityName].params,\n ...params,\n };\n }\n },\n\n setSelectedRecord: (\n state,\n action: PayloadAction<{ record: EntityRecord }>\n ) => {\n const { record } = action.payload;\n state.selectedRecord = record;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setRecords,\n addRecord,\n updateRecord,\n removeRecord,\n setSelected,\n setSelectedRecord,\n setActiveView,\n updateQueryParams,\n} = entityRecordSlice.actions;\n\nexport const entityRecordReducer = entityRecordSlice.reducer;\n","\"use client\";\n\nimport { useCallback, useRef } from 'react';\n\nexport function useDebounce<T extends (...args: any[]) => any>(\n callback: T,\n delay: number\n): (...args: Parameters<T>) => void {\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n\n return useCallback((...args: Parameters<T>) => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n\n timerRef.current = setTimeout(() => {\n callback(...args);\n }, delay);\n }, [callback, delay]);\n}\n\n","\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport { useEntityRecord, UseEntityRecordType } from \"../hooks\";\n\nexport const EntityRecordContext = createContext<\n UseEntityRecordType | undefined\n>(undefined);\n\nexport interface EntityRecordProviderProps {\n children: React.ReactNode;\n orgId: string;\n entityName: string;\n options?: {\n autoLoad?: boolean;\n };\n}\n\nexport function EntityRecordProvider({\n children,\n orgId,\n entityName,\n options = {},\n}: EntityRecordProviderProps) {\n const hookValue = useEntityRecord(orgId, entityName, options);\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <EntityRecordContext.Provider value={value}>\n {children}\n </EntityRecordContext.Provider>\n );\n}\n\nexport function useEntityRecordContext() {\n const context = useContext(EntityRecordContext);\n\n if (!context) {\n throw new Error(\n \"useEntityRecordContext must be used within an EntityRecordProvider\"\n );\n }\n\n return context;\n}\n","// Predefined colors with their display names\nexport const PREDEFINED_COLORS = [\n { value: \"#EF4444\", name: \"Red\" },\n { value: \"#F97316\", name: \"Orange\" },\n { value: \"#EAB308\", name: \"Yellow\" },\n { value: \"#22C55E\", name: \"Green\" },\n { value: \"#06B6D4\", name: \"Cyan\" },\n { value: \"#3B82F6\", name: \"Blue\" },\n { value: \"#6366F1\", name: \"Indigo\" },\n { value: \"#A855F7\", name: \"Purple\" },\n];\n"]}
1
+ {"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/index.js","../context/entity-definition-context.tsx","../hooks/use-entity-definition.ts","../store/entity-definition-slice.ts","../hooks/use-entity-definition-details.ts","../hooks/use-entity-record.ts","../store/entity-record-slice.ts","../hooks/use-debounce.ts","../context/entity-record-context.tsx","../consts/colors.ts"],"names":["useEffect","useSelector","initialState","setLoading","setOperationLoading","setError","useCallback","error"],"mappings":"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B;AACa,EAAA;AACK,EAAA;AAGvB,EAAA;AAI7B;AAE6C;AACO,EAAA;AAEpC,EAAA;AACF,IAAA;AACR,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;AD04BsD;AACA;AQv7BvB;AA0B3B;AArBO;AAW0B;AACnC,EAAA;AACA,EAAA;AACA,EAAA;AACW,EAAA;AACiB;AACa,EAAA;AACS,EAAA;AAG3B,EAAA;AAIzB;AAEyC;AACO,EAAA;AAEhC,EAAA;AACF,IAAA;AACR,MAAA;AACF,IAAA;AACF,EAAA;AAEO,EAAA;AACT;ARo6BsD;AACA;ASh9BrB;AACC,EAAA;AACG,EAAA;AACA,EAAA;AACD,EAAA;AACD,EAAA;AACA,EAAA;AACE,EAAA;AACA,EAAA;AACrC;ATk9BsD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/index.js","sourcesContent":[null,"\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport {\n useEntityDefinition,\n UseEntityDefinitionType,\n UseEntityDefinitionOptions,\n} from \"../hooks\";\n\nexport const EntityDefinitionContext = createContext<\n UseEntityDefinitionType | undefined\n>(undefined);\n\nexport interface EntityDefinitionProviderProps {\n children: React.ReactNode;\n orgId: string;\n entityName?: string;\n options?: UseEntityDefinitionOptions;\n}\n\nexport function EntityDefinitionProvider({\n children,\n orgId,\n entityName,\n options = {},\n}: EntityDefinitionProviderProps) {\n const hookValue = useEntityDefinition(orgId, entityName, options);\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <EntityDefinitionContext.Provider value={value}>\n {children}\n </EntityDefinitionContext.Provider>\n );\n}\n\nexport function useEntityDefinitionContext() {\n const context = useContext(EntityDefinitionContext);\n\n if (!context) {\n throw new Error(\n \"useEntityDefinitionContext must be used within an EntityDefinitionProvider\"\n );\n }\n\n return context;\n}\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport {\n CreateEntityDefinitionRequest,\n CreateOrgSchemaRequest,\n CreateOrgSchemaResponse,\n CreateViewRequest,\n DropOrgSchemaRequest,\n DropOrgSchemaResponse,\n DeleteEntityDefinitionRequest,\n DeleteViewRequest,\n EntityDefinition,\n EntityDefinitionCreate,\n EntityDefinitionDelete,\n EntityDefinitionGet,\n EntityDefinitionList,\n EntityDefinitionResponse,\n EntityDefinitionUpdate,\n EntityOrgSchemaCreate,\n EntityOrgSchemaDrop,\n EntityView,\n EntityViewCreate,\n EntityViewDelete,\n EntityViewList,\n EntityViewResponse,\n EntityViewUpdate,\n GetEntityDefinitionRequest,\n ListEntityDefinitionsRequest,\n ListEntityDefinitionsResponse,\n ListViewsRequest,\n ListViewsResponse,\n ResponseMetadata,\n UpdateEntityDefinitionRequest,\n UpdateViewRequest,\n} from \"../models\";\nimport {\n addDefinition,\n addView,\n EntityDefinitionSelector,\n removeDefinition,\n removeView,\n setDefinitions,\n setError,\n setLoading,\n setOperationLoading,\n setSelectedDefinition,\n setViews,\n updateDefinition,\n updateView,\n} from \"../store/entity-definition-slice\";\n\nexport type UseEntityDefinitionType = {\n // State\n definitions: Record<string, EntityDefinition>;\n selectedDefinition?: EntityDefinition;\n views: Record<string, EntityView[]>;\n selectedView?: EntityView;\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Organization operations\n createOrgSchema: (orgId: string) => Promise<CreateOrgSchemaResponse>;\n dropOrgSchema: (orgId: string) => Promise<DropOrgSchemaResponse>;\n\n // Definition operations\n loadDefinitions: () => Promise<void>;\n loadDefinition: (name: string) => Promise<void>;\n createDefinition: (\n definition: EntityDefinition\n ) => Promise<EntityDefinitionResponse>;\n updateDefinition: (\n name: string,\n definition: EntityDefinition\n ) => Promise<EntityDefinitionResponse>;\n deleteDefinition: (name: string) => Promise<ResponseMetadata>;\n\n // View operations\n loadViews: (entityName: string) => Promise<void>;\n createView: (entityName: string, view: EntityView) => Promise<EntityView>;\n updateView: (entityName: string, view: EntityView) => Promise<EntityView>;\n deleteView: (\n entityName: string,\n viewId: string\n ) => Promise<{ success: boolean }>;\n\n // Utilities\n refresh: () => void;\n};\n\nexport interface UseEntityDefinitionOptions {\n autoLoad?: boolean;\n module?: string;\n}\n\n// todo: performance improvement: use selectors\n// const selectEntityDefinition = (state: EntityDefinitionSelector) => state.entityDefinition;\n\nexport function useEntityDefinition(\n orgId: string | undefined,\n entityName?: string,\n options: UseEntityDefinitionOptions = {}\n): UseEntityDefinitionType {\n const { autoLoad, module } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n // todo: performance improvement: use selectors\n\n // const selectDefinitions = createSelector(\n // selectEntityDefinition,\n // (state) => state.definitions\n // );\n // const selectSelectedDefinition = createSelector(\n // selectEntityDefinition,\n // (state) => state.selectedDefinition\n // );\n\n // // Similar selectors for views, selectedView, isLoading, loadingStates, error...\n\n // // In the hook\n // const definitions = useSelector(selectDefinitions);\n // const selectedDefinition = useSelector(selectSelectedDefinition);\n // const views = useSelector(selectViews);\n\n const definitions = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.definitions\n );\n const selectedDefinition = useSelector(\n (state: EntityDefinitionSelector) =>\n state.entityDefinition.selectedDefinition\n );\n const views = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.views\n );\n const selectedView = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.selectedView\n );\n const isLoading = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.isLoading\n );\n const loadingStates = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.loadingStates\n );\n const error = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.error\n );\n\n const createOrgSchema = useCallback(\n async (targetOrgId: string): Promise<CreateOrgSchemaResponse> => {\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n dispatch(setOperationLoading({ operation: \"createOrgSchema\", loading: true }));\n\n try {\n const response = await request<\n CreateOrgSchemaRequest,\n CreateOrgSchemaResponse\n >(EntityOrgSchemaCreate, { orgId: targetOrgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"createOrgSchema\", loading: false }));\n }\n },\n [natsConnected, dispatch, request]\n );\n\n const dropOrgSchema = useCallback(\n async (targetOrgId: string): Promise<DropOrgSchemaResponse> => {\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n dispatch(setOperationLoading({ operation: \"dropOrgSchema\", loading: true }));\n\n try {\n const response = await request<\n DropOrgSchemaRequest,\n DropOrgSchemaResponse\n >(EntityOrgSchemaDrop, { orgId: targetOrgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"dropOrgSchema\", loading: false }));\n }\n },\n [natsConnected, dispatch, request]\n );\n\n const loadDefinitions = useCallback(async () => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = \"loadDefinitions\";\n if (loadingStates[loadingKey]) return; // Prevent concurrent loads\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n ListEntityDefinitionsRequest,\n ListEntityDefinitionsResponse\n >(EntityDefinitionList, { orgId, module });\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else {\n dispatch(setDefinitions(response?.definitions ?? []));\n }\n } catch (err) {\n dispatch(setError(err instanceof Error ? err.message : \"Unknown error\"));\n } finally {\n dispatch(setOperationLoading({ operation: loadingKey, loading: false }));\n }\n }, [natsConnected, orgId, options.module, dispatch, request]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n loadDefinitions();\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId]);\n\n const loadDefinition = useCallback(\n async (name: string) => {\n if (!natsConnected || !orgId) return;\n\n dispatch(\n setOperationLoading({ operation: `load_${name}`, loading: true })\n );\n try {\n const response = await request<\n GetEntityDefinitionRequest,\n EntityDefinitionResponse\n >(EntityDefinitionGet, { entityName: name, orgId }, {});\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedDefinition(response.definition));\n } finally {\n dispatch(\n setOperationLoading({ operation: `load_${name}`, loading: false })\n );\n }\n },\n [natsConnected, orgId, dispatch, request]\n );\n\n useEffect(() => {\n if (natsConnected && orgId && entityName) {\n loadDefinition(entityName);\n }\n }, [natsConnected, orgId, entityName, loadDefinition]);\n\n const createDefinition = async (definition: EntityDefinition) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create\", loading: true }));\n\n try {\n const response = await request<\n CreateEntityDefinitionRequest,\n EntityDefinitionResponse\n >(EntityDefinitionCreate, { definition, orgId }, {});\n\n // console.log(\"createDefinition response\", response);\n\n if (response instanceof Error) {\n console.error(\"createDefinition error\", response);\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(addDefinition(response.definition));\n }\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"create\", loading: false }));\n }\n };\n\n const updateDefinitionById = async (\n name: string,\n definition: EntityDefinition\n ) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${name}`, loading: true })\n );\n try {\n const response = await request<\n UpdateEntityDefinitionRequest,\n EntityDefinitionResponse\n >(\n EntityDefinitionUpdate,\n {\n entityName: name,\n definition,\n orgId,\n },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(updateDefinition(response.definition));\n }\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `update_${name}`, loading: false })\n );\n }\n };\n\n const deleteDefinition = async (name: string) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_${name}`, loading: true })\n );\n try {\n const response = await request<\n DeleteEntityDefinitionRequest,\n ResponseMetadata\n >(EntityDefinitionDelete, { entityName: name, orgId }, {});\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeDefinition(name));\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `delete_${name}`, loading: false })\n );\n }\n };\n\n const loadViews = useCallback(\n async (entityName: string): Promise<void> => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `loadViews_${entityName}`;\n if (loadingStates[loadingKey]) return; // Prevent concurrent loads\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<ListViewsRequest, ListViewsResponse>(\n EntityViewList,\n { entityName, orgId },\n {}\n );\n\n console.log(\"loadViews response\", response);\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setViews({ entityName, views: response.views }));\n } catch (err) {\n dispatch(\n setError(err instanceof Error ? err.message : \"Unknown error\")\n );\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, loadingStates, dispatch, request]\n );\n\n const createView = async (entityName: string, view: EntityView) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create_view\", loading: true }));\n try {\n const response = await request<CreateViewRequest, EntityViewResponse>(\n EntityViewCreate,\n { entityName, view, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(addView({ entityName, view: response.view }));\n return response.view;\n } finally {\n dispatch(\n setOperationLoading({ operation: \"create_view\", loading: false })\n );\n }\n };\n\n const updateViewById = async (entityName: string, view: EntityView) => {\n if (!natsConnected || !orgId || !view.id) {\n throw new Error(\"Not connected, missing orgId, or invalid view\");\n }\n\n dispatch(\n setOperationLoading({\n operation: `update_view_${view.id}`,\n loading: true,\n })\n );\n try {\n const response = await request<UpdateViewRequest, EntityViewResponse>(\n EntityViewUpdate,\n { view, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n // console.log(\"updateViewById response\", response);\n\n dispatch(updateView({ entityName, view: response.view }));\n return response.view;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `update_view_${view.id}`,\n loading: false,\n })\n );\n }\n };\n\n const deleteView = async (entityName: string, viewId: string) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_view_${viewId}`, loading: true })\n );\n try {\n const response = await request<DeleteViewRequest, ResponseMetadata>(\n EntityViewDelete,\n { viewId, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeView({ entityName, viewId }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `delete_view_${viewId}`,\n loading: false,\n })\n );\n }\n };\n\n const refresh = useCallback(() => {\n if (!natsConnected || !orgId) return;\n\n if (entityName) {\n loadDefinition(entityName);\n } else {\n dispatch(setLoading(true));\n loadDefinitions().finally(() => dispatch(setLoading(false)));\n }\n }, [natsConnected, orgId, entityName, loadDefinition, dispatch]);\n\n return {\n // State\n definitions,\n selectedDefinition,\n views,\n selectedView,\n isLoading,\n loadingStates,\n error,\n\n // Organization operations\n createOrgSchema,\n dropOrgSchema,\n\n // Definition operations\n loadDefinitions,\n loadDefinition,\n createDefinition,\n updateDefinition: updateDefinitionById,\n deleteDefinition,\n\n // View operations\n loadViews,\n createView,\n updateView: updateViewById,\n deleteView,\n\n // Utilities\n refresh,\n };\n}\n","// store/entityDefinitionSlice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { EntityDefinition, EntityView } from \"../models\";\nexport interface EntityDefinitionState {\n definitions: Record<string, EntityDefinition>;\n selectedDefinition?: EntityDefinition;\n views: Record<string, EntityView[]>;\n selectedView?: EntityView;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface EntityDefinitionSelector {\n entityDefinition: EntityDefinitionState;\n}\n\nconst initialState: EntityDefinitionState = {\n definitions: {},\n views: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst entityDefinitionSlice = createSlice({\n name: \"entityDefinition\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setDefinitions: (state, action: PayloadAction<EntityDefinition[]>) => {\n state.definitions = action.payload.reduce(\n (acc, def) => {\n acc[def.name] = def;\n return acc;\n },\n {} as Record<string, EntityDefinition>\n );\n },\n addDefinition: (state, action: PayloadAction<EntityDefinition>) => {\n const definition = action.payload;\n state.definitions[definition.name] = definition;\n },\n updateDefinition: (state, action: PayloadAction<EntityDefinition>) => {\n const definition = action.payload;\n state.definitions[definition.name] = definition;\n if (state.selectedDefinition?.name === definition.name) {\n state.selectedDefinition = definition;\n }\n },\n removeDefinition: (state, action: PayloadAction<string>) => {\n delete state.definitions[action.payload];\n if (state.selectedDefinition?.name === action.payload) {\n state.selectedDefinition = undefined;\n }\n },\n setSelectedDefinition: (\n state,\n action: PayloadAction<EntityDefinition | undefined>\n ) => {\n state.selectedDefinition = action.payload;\n },\n setViews: (\n state,\n action: PayloadAction<{ entityName: string; views: EntityView[] }>\n ) => {\n const { entityName, views } = action.payload;\n state.views[entityName] = views;\n },\n addView: (\n state,\n action: PayloadAction<{ entityName: string; view: EntityView }>\n ) => {\n const { entityName, view } = action.payload;\n if (!state.views[entityName]) {\n state.views[entityName] = [];\n }\n state.views[entityName].push(view);\n },\n updateView: (\n state,\n action: PayloadAction<{ entityName: string; view: EntityView }>\n ) => {\n const { entityName, view } = action.payload;\n const views = state.views[entityName];\n if (views) {\n const index = views.findIndex((v) => v.id === view.id);\n if (index !== -1) {\n views[index] = view;\n if (state.selectedView?.id === view.id) {\n state.selectedView = view;\n }\n }\n }\n },\n removeView: (\n state,\n action: PayloadAction<{ entityName: string; viewId: string }>\n ) => {\n const { entityName, viewId } = action.payload;\n const views = state.views[entityName];\n if (views) {\n state.views[entityName] = views.filter((v) => v.id !== viewId);\n if (state.selectedView?.id === viewId) {\n state.selectedView = undefined;\n }\n }\n },\n setSelectedView: (state, action: PayloadAction<EntityView | undefined>) => {\n state.selectedView = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setDefinitions,\n addDefinition,\n updateDefinition,\n removeDefinition,\n setSelectedDefinition,\n setViews,\n addView,\n updateView,\n removeView,\n setSelectedView,\n} = entityDefinitionSlice.actions;\n\nexport const entityDefinitionReducer = entityDefinitionSlice.reducer;\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useEntityDefinitionContext } from \"../context/entity-definition-context\";\nimport { EntityDefinition } from \"../models\";\n\nexport function useEntityDefinitionDetails(entityName: string) {\n const context = useEntityDefinitionContext();\n const definition = context.definitions[entityName];\n\n const loadDefinitionDetails = useCallback(async () => {\n return context.loadDefinition(entityName);\n }, [context, entityName]);\n\n useEffect(() => {\n if (entityName && !definition) {\n loadDefinitionDetails();\n }\n }, [definition, entityName, loadDefinitionDetails]);\n\n return {\n definition,\n isLoading: context.loadingStates[`load_${entityName}`],\n error: context.error,\n updateDefinition: (updatedDef: EntityDefinition) =>\n context.updateDefinition(entityName, updatedDef),\n deleteDefinition: () => context.deleteDefinition(entityName),\n refresh: loadDefinitionDetails,\n };\n}\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport {\n CreateRecordRequest,\n DeleteRecordRequest,\n EntityQuery,\n EntityRecord,\n EntityRecordCreate,\n EntityRecordDelete,\n EntityRecordGet,\n EntityRecordQuery,\n EntityRecordCount,\n EntityRecordResponse,\n EntityRecordUpdate,\n GetEntityRecordRequest,\n ListEntityRecordsResponse,\n QueryRequest,\n ResponseMetadata,\n UpdateRecordRequest,\n CountEntityRecordsRequest,\n CountEntityRecordsResponse,\n} from \"../models\";\nimport {\n addRecord,\n EntityRecordSelector,\n removeRecord,\n setError,\n setOperationLoading,\n setRecords,\n setSelected,\n setSelectedRecord,\n updateQueryParams,\n updateRecord,\n} from \"../store/entity-record-slice\";\n\nexport type UseEntityRecordType = {\n // State\n records: Record<string, EntityRecord>;\n selectedRecord?: EntityRecord;\n params: EntityQuery;\n selected: string[];\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Operations\n loadRecords: (params?: Partial<EntityQuery>) => Promise<void>;\n createRecord: (record: EntityRecord) => Promise<EntityRecordResponse>;\n updateRecord: (record: EntityRecord) => Promise<EntityRecordResponse>;\n deleteRecord: (recordId: string) => Promise<ResponseMetadata>;\n loadRecord: (recordId: string) => Promise<void>;\n countRecords: (filters?: Record<string, any>) => Promise<number>;\n getEntityRecordById: (recordId: string) => Promise<EntityRecord | null>;\n\n\n // Selection\n selectRecords: (ids: string[]) => void;\n clearSelection: () => void;\n\n // Query\n updateParams: (params: Partial<EntityQuery>) => void;\n refresh: () => void;\n};\n\nconst defaultQuery: EntityQuery = {\n filters: {},\n page: 1,\n pageSize: 25,\n sortBy: \"metadata.createdAt\",\n sortOrder: -1,\n};\n\nexport function useEntityRecord(\n orgId: string | undefined,\n entityName: string,\n options: { autoLoad?: boolean } = {}\n): UseEntityRecordType {\n const { autoLoad = true } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n const recordState = useSelector(\n (state: EntityRecordSelector) =>\n state.entityRecord.records[entityName] || {\n items: {},\n params: defaultQuery,\n meta: {\n items: [],\n totalCount: 0,\n currentPage: 1,\n pageSize: 25,\n totalPages: 0,\n },\n selected: [],\n }\n );\n\n const selectedRecord = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.selectedRecord\n );\n\n const isLoading = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.isLoading\n );\n const loadingStates = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.loadingStates\n );\n const error = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.error\n );\n\n const loadRecords = useCallback(\n async (params?: Partial<EntityQuery>) => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `load_${entityName}`;\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const queryParams = { ...recordState.params, ...params };\n // console.log(\"will loadRecords\", queryParams);\n\n const response = await request<QueryRequest, ListEntityRecordsResponse>(\n EntityRecordQuery,\n {\n orgId,\n entityName,\n query: queryParams,\n }\n );\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else if (response.records) {\n dispatch(\n setRecords({\n entityName,\n records: response.records,\n params: queryParams,\n })\n );\n }\n } catch (err) {\n dispatch(\n setError(err instanceof Error ? err.message : \"Unknown error\")\n );\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, entityName, recordState.params, dispatch, request]\n );\n\n const loadRecord = useCallback(\n async (recordId: string) => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `load_${recordId}`;\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n GetEntityRecordRequest,\n EntityRecordResponse\n >(EntityRecordGet, { entityName, recordId, orgId }, {});\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedRecord({ record: response.record }));\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, entityName, recordState.params, dispatch, request]\n );\n\n const createRecord = async (\n record: EntityRecord\n ): Promise<EntityRecordResponse> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: \"create_record\", loading: true })\n );\n\n try {\n const response = await request<CreateRecordRequest, EntityRecordResponse>(\n EntityRecordCreate,\n {\n orgId,\n entityName,\n record,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(addRecord({ entityName, record: response.record }));\n }\n\n // Refresh list after create\n loadRecords();\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: \"create_record\", loading: false })\n );\n }\n };\n\n const updateRecordById = async (\n record: EntityRecord\n ): Promise<EntityRecordResponse> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${record.id}`, loading: true })\n );\n\n try {\n const response = await request<UpdateRecordRequest, EntityRecordResponse>(\n EntityRecordUpdate,\n {\n orgId,\n entityName,\n record,\n recordId: record.id,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(updateRecord({ entityName, record: response.record }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `update_${record.id}`,\n loading: false,\n })\n );\n }\n };\n\n const deleteRecordById = async (\n recordId: string\n ): Promise<ResponseMetadata> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_${recordId}`, loading: true })\n );\n\n try {\n const response = await request<DeleteRecordRequest, ResponseMetadata>(\n EntityRecordDelete,\n {\n orgId,\n entityName,\n recordId,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeRecord({ entityName, recordId }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `delete_${recordId}`, loading: false })\n );\n }\n };\n\n const countRecords = async (filters?: Record<string, any>): Promise<number> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n try {\n const response = await request<CountEntityRecordsRequest, CountEntityRecordsResponse>(\n EntityRecordCount,\n {\n orgId,\n entityName,\n filters: filters || {},\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (!response.metadata?.success) {\n throw new Error(response.metadata?.error || \"Failed to count records\");\n }\n\n return response.count || 0;\n } catch (err) {\n console.error(\"Error counting records:\", err);\n return 0;\n }\n };\n\n const getEntityRecordById = async (\n recordId: string\n ): Promise<EntityRecord | null> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n try {\n const response = await request<\n GetEntityRecordRequest,\n EntityRecordResponse\n >(EntityRecordGet, { entityName, recordId, orgId }, {});\n\n if (response instanceof Error) {\n console.error(\"Error fetching record:\", response.message);\n return null;\n }\n\n return response.record || null;\n } catch (error) {\n console.error(\"Error in getEntityRecordById:\", error);\n return null;\n }\n };\n\n const selectRecords = (ids: string[]) => {\n dispatch(setSelected({ entityName, ids }));\n };\n\n const clearSelection = () => {\n dispatch(setSelected({ entityName, ids: [] }));\n };\n\n const updateParams = (params: Partial<EntityQuery>) => {\n console.log(\"updating query params\", params);\n dispatch(updateQueryParams({ entityName, params }));\n loadRecords(params);\n };\n\n const refresh = useCallback(() => {\n loadRecords();\n }, [loadRecords]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n loadRecords();\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId]);\n\n return {\n // State\n records: recordState.items,\n params: recordState.params,\n selected: recordState.selected,\n selectedRecord,\n isLoading,\n loadingStates,\n error,\n\n // Operations\n loadRecords,\n createRecord,\n updateRecord: updateRecordById,\n deleteRecord: deleteRecordById,\n loadRecord,\n countRecords,\n getEntityRecordById,\n // Selection\n selectRecords,\n clearSelection,\n\n // Query\n updateParams,\n refresh,\n };\n}\n","// store/entity-record-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { EntityQuery, EntityRecord, EntityView, ListResult } from \"../models\";\n\nexport interface EntityRecordState {\n records: {\n [entityName: string]: {\n items: Record<string, EntityRecord>;\n params: EntityQuery;\n meta: ListResult<EntityRecord>;\n selected: string[]; // Selected record IDs\n };\n };\n selectedRecord?: EntityRecord;\n activeView?: EntityView;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface EntityRecordSelector {\n entityRecord: EntityRecordState;\n}\n\nconst initialState: EntityRecordState = {\n records: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst entityRecordSlice = createSlice({\n name: \"entityRecord\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n\n setRecords: (\n state,\n action: PayloadAction<{\n entityName: string;\n records: ListResult<EntityRecord>;\n params: EntityQuery;\n }>\n ) => {\n const { entityName, records, params } = action.payload;\n state.records[entityName] = {\n items: records.items.reduce(\n (acc, record) => {\n acc[record.id] = record;\n return acc;\n },\n {} as Record<string, EntityRecord>\n ),\n params,\n meta: records,\n selected: [],\n };\n },\n\n addRecord: (\n state,\n action: PayloadAction<{ entityName: string; record: EntityRecord }>\n ) => {\n const { entityName, record } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].items[record.id] = record;\n }\n },\n\n updateRecord: (\n state,\n action: PayloadAction<{ entityName: string; record: EntityRecord }>\n ) => {\n const { entityName, record } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].items[record.id] = record;\n }\n },\n\n removeRecord: (\n state,\n action: PayloadAction<{ entityName: string; recordId: string }>\n ) => {\n const { entityName, recordId } = action.payload;\n if (state.records[entityName]) {\n delete state.records[entityName].items[recordId];\n state.records[entityName].selected = state.records[\n entityName\n ].selected.filter((id) => id !== recordId);\n }\n },\n\n setSelected: (\n state,\n action: PayloadAction<{ entityName: string; ids: string[] }>\n ) => {\n const { entityName, ids } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].selected = ids;\n }\n },\n\n setActiveView: (state, action: PayloadAction<EntityView | undefined>) => {\n state.activeView = action.payload;\n },\n\n updateQueryParams: (\n state,\n action: PayloadAction<{\n entityName: string;\n params: Partial<EntityQuery>;\n }>\n ) => {\n const { entityName, params } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].params = {\n ...state.records[entityName].params,\n ...params,\n };\n }\n },\n\n setSelectedRecord: (\n state,\n action: PayloadAction<{ record: EntityRecord }>\n ) => {\n const { record } = action.payload;\n state.selectedRecord = record;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setRecords,\n addRecord,\n updateRecord,\n removeRecord,\n setSelected,\n setSelectedRecord,\n setActiveView,\n updateQueryParams,\n} = entityRecordSlice.actions;\n\nexport const entityRecordReducer = entityRecordSlice.reducer;\n","\"use client\";\n\nimport { useCallback, useRef } from 'react';\n\nexport function useDebounce<T extends (...args: any[]) => any>(\n callback: T,\n delay: number\n): (...args: Parameters<T>) => void {\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n\n return useCallback((...args: Parameters<T>) => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n\n timerRef.current = setTimeout(() => {\n callback(...args);\n }, delay);\n }, [callback, delay]);\n}\n\n","\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport { useEntityRecord, UseEntityRecordType } from \"../hooks\";\n\nexport const EntityRecordContext = createContext<\n UseEntityRecordType | undefined\n>(undefined);\n\nexport interface EntityRecordProviderProps {\n children: React.ReactNode;\n orgId: string;\n entityName: string;\n options?: {\n autoLoad?: boolean;\n };\n}\n\nexport function EntityRecordProvider({\n children,\n orgId,\n entityName,\n options = {},\n}: EntityRecordProviderProps) {\n const hookValue = useEntityRecord(orgId, entityName, options);\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <EntityRecordContext.Provider value={value}>\n {children}\n </EntityRecordContext.Provider>\n );\n}\n\nexport function useEntityRecordContext() {\n const context = useContext(EntityRecordContext);\n\n if (!context) {\n throw new Error(\n \"useEntityRecordContext must be used within an EntityRecordProvider\"\n );\n }\n\n return context;\n}\n","// Predefined colors with their display names\nexport const PREDEFINED_COLORS = [\n { value: \"#EF4444\", name: \"Red\" },\n { value: \"#F97316\", name: \"Orange\" },\n { value: \"#EAB308\", name: \"Yellow\" },\n { value: \"#22C55E\", name: \"Green\" },\n { value: \"#06B6D4\", name: \"Cyan\" },\n { value: \"#3B82F6\", name: \"Blue\" },\n { value: \"#6366F1\", name: \"Indigo\" },\n { value: \"#A855F7\", name: \"Purple\" },\n];\n"]}
package/dist/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import {
2
3
  EntityDefinitionCreate,
3
4
  EntityDefinitionCreated,
@@ -70,7 +71,7 @@ import {
70
71
  RecordChangeActionCreated,
71
72
  RecordChangeActionDeleted,
72
73
  RecordChangeActionUpdated
73
- } from "./chunk-QZQSWI3P.mjs";
74
+ } from "./chunk-LIACJMHV.mjs";
74
75
 
75
76
  // context/entity-definition-context.tsx
76
77
  import { createContext, useContext, useMemo } from "react";
@@ -1 +1 @@
1
- {"version":3,"sources":["../context/entity-definition-context.tsx","../hooks/use-entity-definition.ts","../store/entity-definition-slice.ts","../hooks/use-entity-definition-details.ts","../hooks/use-entity-record.ts","../store/entity-record-slice.ts","../hooks/use-debounce.ts","../context/entity-record-context.tsx","../consts/colors.ts"],"sourcesContent":["\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport {\n useEntityDefinition,\n UseEntityDefinitionType,\n UseEntityDefinitionOptions,\n} from \"../hooks\";\n\nexport const EntityDefinitionContext = createContext<\n UseEntityDefinitionType | undefined\n>(undefined);\n\nexport interface EntityDefinitionProviderProps {\n children: React.ReactNode;\n orgId: string;\n entityName?: string;\n options?: UseEntityDefinitionOptions;\n}\n\nexport function EntityDefinitionProvider({\n children,\n orgId,\n entityName,\n options = {},\n}: EntityDefinitionProviderProps) {\n const hookValue = useEntityDefinition(orgId, entityName, options);\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <EntityDefinitionContext.Provider value={value}>\n {children}\n </EntityDefinitionContext.Provider>\n );\n}\n\nexport function useEntityDefinitionContext() {\n const context = useContext(EntityDefinitionContext);\n\n if (!context) {\n throw new Error(\n \"useEntityDefinitionContext must be used within an EntityDefinitionProvider\"\n );\n }\n\n return context;\n}\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport {\n CreateEntityDefinitionRequest,\n CreateOrgSchemaRequest,\n CreateOrgSchemaResponse,\n CreateViewRequest,\n DropOrgSchemaRequest,\n DropOrgSchemaResponse,\n DeleteEntityDefinitionRequest,\n DeleteViewRequest,\n EntityDefinition,\n EntityDefinitionCreate,\n EntityDefinitionDelete,\n EntityDefinitionGet,\n EntityDefinitionList,\n EntityDefinitionResponse,\n EntityDefinitionUpdate,\n EntityOrgSchemaCreate,\n EntityOrgSchemaDrop,\n EntityView,\n EntityViewCreate,\n EntityViewDelete,\n EntityViewList,\n EntityViewResponse,\n EntityViewUpdate,\n GetEntityDefinitionRequest,\n ListEntityDefinitionsRequest,\n ListEntityDefinitionsResponse,\n ListViewsRequest,\n ListViewsResponse,\n ResponseMetadata,\n UpdateEntityDefinitionRequest,\n UpdateViewRequest,\n} from \"../models\";\nimport {\n addDefinition,\n addView,\n EntityDefinitionSelector,\n removeDefinition,\n removeView,\n setDefinitions,\n setError,\n setLoading,\n setOperationLoading,\n setSelectedDefinition,\n setViews,\n updateDefinition,\n updateView,\n} from \"../store/entity-definition-slice\";\n\nexport type UseEntityDefinitionType = {\n // State\n definitions: Record<string, EntityDefinition>;\n selectedDefinition?: EntityDefinition;\n views: Record<string, EntityView[]>;\n selectedView?: EntityView;\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Organization operations\n createOrgSchema: (orgId: string) => Promise<CreateOrgSchemaResponse>;\n dropOrgSchema: (orgId: string) => Promise<DropOrgSchemaResponse>;\n\n // Definition operations\n loadDefinitions: () => Promise<void>;\n loadDefinition: (name: string) => Promise<void>;\n createDefinition: (\n definition: EntityDefinition\n ) => Promise<EntityDefinitionResponse>;\n updateDefinition: (\n name: string,\n definition: EntityDefinition\n ) => Promise<EntityDefinitionResponse>;\n deleteDefinition: (name: string) => Promise<ResponseMetadata>;\n\n // View operations\n loadViews: (entityName: string) => Promise<void>;\n createView: (entityName: string, view: EntityView) => Promise<EntityView>;\n updateView: (entityName: string, view: EntityView) => Promise<EntityView>;\n deleteView: (\n entityName: string,\n viewId: string\n ) => Promise<{ success: boolean }>;\n\n // Utilities\n refresh: () => void;\n};\n\nexport interface UseEntityDefinitionOptions {\n autoLoad?: boolean;\n module?: string;\n}\n\n// todo: performance improvement: use selectors\n// const selectEntityDefinition = (state: EntityDefinitionSelector) => state.entityDefinition;\n\nexport function useEntityDefinition(\n orgId: string | undefined,\n entityName?: string,\n options: UseEntityDefinitionOptions = {}\n): UseEntityDefinitionType {\n const { autoLoad, module } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n // todo: performance improvement: use selectors\n\n // const selectDefinitions = createSelector(\n // selectEntityDefinition,\n // (state) => state.definitions\n // );\n // const selectSelectedDefinition = createSelector(\n // selectEntityDefinition,\n // (state) => state.selectedDefinition\n // );\n\n // // Similar selectors for views, selectedView, isLoading, loadingStates, error...\n\n // // In the hook\n // const definitions = useSelector(selectDefinitions);\n // const selectedDefinition = useSelector(selectSelectedDefinition);\n // const views = useSelector(selectViews);\n\n const definitions = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.definitions\n );\n const selectedDefinition = useSelector(\n (state: EntityDefinitionSelector) =>\n state.entityDefinition.selectedDefinition\n );\n const views = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.views\n );\n const selectedView = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.selectedView\n );\n const isLoading = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.isLoading\n );\n const loadingStates = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.loadingStates\n );\n const error = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.error\n );\n\n const createOrgSchema = useCallback(\n async (targetOrgId: string): Promise<CreateOrgSchemaResponse> => {\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n dispatch(setOperationLoading({ operation: \"createOrgSchema\", loading: true }));\n\n try {\n const response = await request<\n CreateOrgSchemaRequest,\n CreateOrgSchemaResponse\n >(EntityOrgSchemaCreate, { orgId: targetOrgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"createOrgSchema\", loading: false }));\n }\n },\n [natsConnected, dispatch, request]\n );\n\n const dropOrgSchema = useCallback(\n async (targetOrgId: string): Promise<DropOrgSchemaResponse> => {\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n dispatch(setOperationLoading({ operation: \"dropOrgSchema\", loading: true }));\n\n try {\n const response = await request<\n DropOrgSchemaRequest,\n DropOrgSchemaResponse\n >(EntityOrgSchemaDrop, { orgId: targetOrgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"dropOrgSchema\", loading: false }));\n }\n },\n [natsConnected, dispatch, request]\n );\n\n const loadDefinitions = useCallback(async () => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = \"loadDefinitions\";\n if (loadingStates[loadingKey]) return; // Prevent concurrent loads\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n ListEntityDefinitionsRequest,\n ListEntityDefinitionsResponse\n >(EntityDefinitionList, { orgId, module });\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else {\n dispatch(setDefinitions(response?.definitions ?? []));\n }\n } catch (err) {\n dispatch(setError(err instanceof Error ? err.message : \"Unknown error\"));\n } finally {\n dispatch(setOperationLoading({ operation: loadingKey, loading: false }));\n }\n }, [natsConnected, orgId, options.module, dispatch, request]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n loadDefinitions();\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId]);\n\n const loadDefinition = useCallback(\n async (name: string) => {\n if (!natsConnected || !orgId) return;\n\n dispatch(\n setOperationLoading({ operation: `load_${name}`, loading: true })\n );\n try {\n const response = await request<\n GetEntityDefinitionRequest,\n EntityDefinitionResponse\n >(EntityDefinitionGet, { entityName: name, orgId }, {});\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedDefinition(response.definition));\n } finally {\n dispatch(\n setOperationLoading({ operation: `load_${name}`, loading: false })\n );\n }\n },\n [natsConnected, orgId, dispatch, request]\n );\n\n useEffect(() => {\n if (natsConnected && orgId && entityName) {\n loadDefinition(entityName);\n }\n }, [natsConnected, orgId, entityName, loadDefinition]);\n\n const createDefinition = async (definition: EntityDefinition) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create\", loading: true }));\n\n try {\n const response = await request<\n CreateEntityDefinitionRequest,\n EntityDefinitionResponse\n >(EntityDefinitionCreate, { definition, orgId }, {});\n\n // console.log(\"createDefinition response\", response);\n\n if (response instanceof Error) {\n console.error(\"createDefinition error\", response);\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(addDefinition(response.definition));\n }\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"create\", loading: false }));\n }\n };\n\n const updateDefinitionById = async (\n name: string,\n definition: EntityDefinition\n ) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${name}`, loading: true })\n );\n try {\n const response = await request<\n UpdateEntityDefinitionRequest,\n EntityDefinitionResponse\n >(\n EntityDefinitionUpdate,\n {\n entityName: name,\n definition,\n orgId,\n },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(updateDefinition(response.definition));\n }\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `update_${name}`, loading: false })\n );\n }\n };\n\n const deleteDefinition = async (name: string) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_${name}`, loading: true })\n );\n try {\n const response = await request<\n DeleteEntityDefinitionRequest,\n ResponseMetadata\n >(EntityDefinitionDelete, { entityName: name, orgId }, {});\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeDefinition(name));\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `delete_${name}`, loading: false })\n );\n }\n };\n\n const loadViews = useCallback(\n async (entityName: string): Promise<void> => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `loadViews_${entityName}`;\n if (loadingStates[loadingKey]) return; // Prevent concurrent loads\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<ListViewsRequest, ListViewsResponse>(\n EntityViewList,\n { entityName, orgId },\n {}\n );\n\n console.log(\"loadViews response\", response);\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setViews({ entityName, views: response.views }));\n } catch (err) {\n dispatch(\n setError(err instanceof Error ? err.message : \"Unknown error\")\n );\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, loadingStates, dispatch, request]\n );\n\n const createView = async (entityName: string, view: EntityView) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create_view\", loading: true }));\n try {\n const response = await request<CreateViewRequest, EntityViewResponse>(\n EntityViewCreate,\n { entityName, view, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(addView({ entityName, view: response.view }));\n return response.view;\n } finally {\n dispatch(\n setOperationLoading({ operation: \"create_view\", loading: false })\n );\n }\n };\n\n const updateViewById = async (entityName: string, view: EntityView) => {\n if (!natsConnected || !orgId || !view.id) {\n throw new Error(\"Not connected, missing orgId, or invalid view\");\n }\n\n dispatch(\n setOperationLoading({\n operation: `update_view_${view.id}`,\n loading: true,\n })\n );\n try {\n const response = await request<UpdateViewRequest, EntityViewResponse>(\n EntityViewUpdate,\n { view, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n // console.log(\"updateViewById response\", response);\n\n dispatch(updateView({ entityName, view: response.view }));\n return response.view;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `update_view_${view.id}`,\n loading: false,\n })\n );\n }\n };\n\n const deleteView = async (entityName: string, viewId: string) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_view_${viewId}`, loading: true })\n );\n try {\n const response = await request<DeleteViewRequest, ResponseMetadata>(\n EntityViewDelete,\n { viewId, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeView({ entityName, viewId }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `delete_view_${viewId}`,\n loading: false,\n })\n );\n }\n };\n\n const refresh = useCallback(() => {\n if (!natsConnected || !orgId) return;\n\n if (entityName) {\n loadDefinition(entityName);\n } else {\n dispatch(setLoading(true));\n loadDefinitions().finally(() => dispatch(setLoading(false)));\n }\n }, [natsConnected, orgId, entityName, loadDefinition, dispatch]);\n\n return {\n // State\n definitions,\n selectedDefinition,\n views,\n selectedView,\n isLoading,\n loadingStates,\n error,\n\n // Organization operations\n createOrgSchema,\n dropOrgSchema,\n\n // Definition operations\n loadDefinitions,\n loadDefinition,\n createDefinition,\n updateDefinition: updateDefinitionById,\n deleteDefinition,\n\n // View operations\n loadViews,\n createView,\n updateView: updateViewById,\n deleteView,\n\n // Utilities\n refresh,\n };\n}\n","// store/entityDefinitionSlice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { EntityDefinition, EntityView } from \"../models\";\nexport interface EntityDefinitionState {\n definitions: Record<string, EntityDefinition>;\n selectedDefinition?: EntityDefinition;\n views: Record<string, EntityView[]>;\n selectedView?: EntityView;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface EntityDefinitionSelector {\n entityDefinition: EntityDefinitionState;\n}\n\nconst initialState: EntityDefinitionState = {\n definitions: {},\n views: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst entityDefinitionSlice = createSlice({\n name: \"entityDefinition\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setDefinitions: (state, action: PayloadAction<EntityDefinition[]>) => {\n state.definitions = action.payload.reduce(\n (acc, def) => {\n acc[def.name] = def;\n return acc;\n },\n {} as Record<string, EntityDefinition>\n );\n },\n addDefinition: (state, action: PayloadAction<EntityDefinition>) => {\n const definition = action.payload;\n state.definitions[definition.name] = definition;\n },\n updateDefinition: (state, action: PayloadAction<EntityDefinition>) => {\n const definition = action.payload;\n state.definitions[definition.name] = definition;\n if (state.selectedDefinition?.name === definition.name) {\n state.selectedDefinition = definition;\n }\n },\n removeDefinition: (state, action: PayloadAction<string>) => {\n delete state.definitions[action.payload];\n if (state.selectedDefinition?.name === action.payload) {\n state.selectedDefinition = undefined;\n }\n },\n setSelectedDefinition: (\n state,\n action: PayloadAction<EntityDefinition | undefined>\n ) => {\n state.selectedDefinition = action.payload;\n },\n setViews: (\n state,\n action: PayloadAction<{ entityName: string; views: EntityView[] }>\n ) => {\n const { entityName, views } = action.payload;\n state.views[entityName] = views;\n },\n addView: (\n state,\n action: PayloadAction<{ entityName: string; view: EntityView }>\n ) => {\n const { entityName, view } = action.payload;\n if (!state.views[entityName]) {\n state.views[entityName] = [];\n }\n state.views[entityName].push(view);\n },\n updateView: (\n state,\n action: PayloadAction<{ entityName: string; view: EntityView }>\n ) => {\n const { entityName, view } = action.payload;\n const views = state.views[entityName];\n if (views) {\n const index = views.findIndex((v) => v.id === view.id);\n if (index !== -1) {\n views[index] = view;\n if (state.selectedView?.id === view.id) {\n state.selectedView = view;\n }\n }\n }\n },\n removeView: (\n state,\n action: PayloadAction<{ entityName: string; viewId: string }>\n ) => {\n const { entityName, viewId } = action.payload;\n const views = state.views[entityName];\n if (views) {\n state.views[entityName] = views.filter((v) => v.id !== viewId);\n if (state.selectedView?.id === viewId) {\n state.selectedView = undefined;\n }\n }\n },\n setSelectedView: (state, action: PayloadAction<EntityView | undefined>) => {\n state.selectedView = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setDefinitions,\n addDefinition,\n updateDefinition,\n removeDefinition,\n setSelectedDefinition,\n setViews,\n addView,\n updateView,\n removeView,\n setSelectedView,\n} = entityDefinitionSlice.actions;\n\nexport const entityDefinitionReducer = entityDefinitionSlice.reducer;\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useEntityDefinitionContext } from \"../context/entity-definition-context\";\nimport { EntityDefinition } from \"../models\";\n\nexport function useEntityDefinitionDetails(entityName: string) {\n const context = useEntityDefinitionContext();\n const definition = context.definitions[entityName];\n\n const loadDefinitionDetails = useCallback(async () => {\n return context.loadDefinition(entityName);\n }, [context, entityName]);\n\n useEffect(() => {\n if (entityName && !definition) {\n loadDefinitionDetails();\n }\n }, [definition, entityName, loadDefinitionDetails]);\n\n return {\n definition,\n isLoading: context.loadingStates[`load_${entityName}`],\n error: context.error,\n updateDefinition: (updatedDef: EntityDefinition) =>\n context.updateDefinition(entityName, updatedDef),\n deleteDefinition: () => context.deleteDefinition(entityName),\n refresh: loadDefinitionDetails,\n };\n}\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport {\n CreateRecordRequest,\n DeleteRecordRequest,\n EntityQuery,\n EntityRecord,\n EntityRecordCreate,\n EntityRecordDelete,\n EntityRecordGet,\n EntityRecordQuery,\n EntityRecordCount,\n EntityRecordResponse,\n EntityRecordUpdate,\n GetEntityRecordRequest,\n ListEntityRecordsResponse,\n QueryRequest,\n ResponseMetadata,\n UpdateRecordRequest,\n CountEntityRecordsRequest,\n CountEntityRecordsResponse,\n} from \"../models\";\nimport {\n addRecord,\n EntityRecordSelector,\n removeRecord,\n setError,\n setOperationLoading,\n setRecords,\n setSelected,\n setSelectedRecord,\n updateQueryParams,\n updateRecord,\n} from \"../store/entity-record-slice\";\n\nexport type UseEntityRecordType = {\n // State\n records: Record<string, EntityRecord>;\n selectedRecord?: EntityRecord;\n params: EntityQuery;\n selected: string[];\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Operations\n loadRecords: (params?: Partial<EntityQuery>) => Promise<void>;\n createRecord: (record: EntityRecord) => Promise<EntityRecordResponse>;\n updateRecord: (record: EntityRecord) => Promise<EntityRecordResponse>;\n deleteRecord: (recordId: string) => Promise<ResponseMetadata>;\n loadRecord: (recordId: string) => Promise<void>;\n countRecords: (filters?: Record<string, any>) => Promise<number>;\n getEntityRecordById: (recordId: string) => Promise<EntityRecord | null>;\n\n\n // Selection\n selectRecords: (ids: string[]) => void;\n clearSelection: () => void;\n\n // Query\n updateParams: (params: Partial<EntityQuery>) => void;\n refresh: () => void;\n};\n\nconst defaultQuery: EntityQuery = {\n filters: {},\n page: 1,\n pageSize: 25,\n sortBy: \"metadata.createdAt\",\n sortOrder: -1,\n};\n\nexport function useEntityRecord(\n orgId: string | undefined,\n entityName: string,\n options: { autoLoad?: boolean } = {}\n): UseEntityRecordType {\n const { autoLoad = true } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n const recordState = useSelector(\n (state: EntityRecordSelector) =>\n state.entityRecord.records[entityName] || {\n items: {},\n params: defaultQuery,\n meta: {\n items: [],\n totalCount: 0,\n currentPage: 1,\n pageSize: 25,\n totalPages: 0,\n },\n selected: [],\n }\n );\n\n const selectedRecord = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.selectedRecord\n );\n\n const isLoading = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.isLoading\n );\n const loadingStates = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.loadingStates\n );\n const error = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.error\n );\n\n const loadRecords = useCallback(\n async (params?: Partial<EntityQuery>) => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `load_${entityName}`;\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const queryParams = { ...recordState.params, ...params };\n // console.log(\"will loadRecords\", queryParams);\n\n const response = await request<QueryRequest, ListEntityRecordsResponse>(\n EntityRecordQuery,\n {\n orgId,\n entityName,\n query: queryParams,\n }\n );\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else if (response.records) {\n dispatch(\n setRecords({\n entityName,\n records: response.records,\n params: queryParams,\n })\n );\n }\n } catch (err) {\n dispatch(\n setError(err instanceof Error ? err.message : \"Unknown error\")\n );\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, entityName, recordState.params, dispatch, request]\n );\n\n const loadRecord = useCallback(\n async (recordId: string) => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `load_${recordId}`;\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n GetEntityRecordRequest,\n EntityRecordResponse\n >(EntityRecordGet, { entityName, recordId, orgId }, {});\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedRecord({ record: response.record }));\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, entityName, recordState.params, dispatch, request]\n );\n\n const createRecord = async (\n record: EntityRecord\n ): Promise<EntityRecordResponse> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: \"create_record\", loading: true })\n );\n\n try {\n const response = await request<CreateRecordRequest, EntityRecordResponse>(\n EntityRecordCreate,\n {\n orgId,\n entityName,\n record,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(addRecord({ entityName, record: response.record }));\n }\n\n // Refresh list after create\n loadRecords();\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: \"create_record\", loading: false })\n );\n }\n };\n\n const updateRecordById = async (\n record: EntityRecord\n ): Promise<EntityRecordResponse> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${record.id}`, loading: true })\n );\n\n try {\n const response = await request<UpdateRecordRequest, EntityRecordResponse>(\n EntityRecordUpdate,\n {\n orgId,\n entityName,\n record,\n recordId: record.id,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(updateRecord({ entityName, record: response.record }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `update_${record.id}`,\n loading: false,\n })\n );\n }\n };\n\n const deleteRecordById = async (\n recordId: string\n ): Promise<ResponseMetadata> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_${recordId}`, loading: true })\n );\n\n try {\n const response = await request<DeleteRecordRequest, ResponseMetadata>(\n EntityRecordDelete,\n {\n orgId,\n entityName,\n recordId,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeRecord({ entityName, recordId }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `delete_${recordId}`, loading: false })\n );\n }\n };\n\n const countRecords = async (filters?: Record<string, any>): Promise<number> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n try {\n const response = await request<CountEntityRecordsRequest, CountEntityRecordsResponse>(\n EntityRecordCount,\n {\n orgId,\n entityName,\n filters: filters || {},\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (!response.metadata?.success) {\n throw new Error(response.metadata?.error || \"Failed to count records\");\n }\n\n return response.count || 0;\n } catch (err) {\n console.error(\"Error counting records:\", err);\n return 0;\n }\n };\n\n const getEntityRecordById = async (\n recordId: string\n ): Promise<EntityRecord | null> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n try {\n const response = await request<\n GetEntityRecordRequest,\n EntityRecordResponse\n >(EntityRecordGet, { entityName, recordId, orgId }, {});\n\n if (response instanceof Error) {\n console.error(\"Error fetching record:\", response.message);\n return null;\n }\n\n return response.record || null;\n } catch (error) {\n console.error(\"Error in getEntityRecordById:\", error);\n return null;\n }\n };\n\n const selectRecords = (ids: string[]) => {\n dispatch(setSelected({ entityName, ids }));\n };\n\n const clearSelection = () => {\n dispatch(setSelected({ entityName, ids: [] }));\n };\n\n const updateParams = (params: Partial<EntityQuery>) => {\n console.log(\"updating query params\", params);\n dispatch(updateQueryParams({ entityName, params }));\n loadRecords(params);\n };\n\n const refresh = useCallback(() => {\n loadRecords();\n }, [loadRecords]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n loadRecords();\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId]);\n\n return {\n // State\n records: recordState.items,\n params: recordState.params,\n selected: recordState.selected,\n selectedRecord,\n isLoading,\n loadingStates,\n error,\n\n // Operations\n loadRecords,\n createRecord,\n updateRecord: updateRecordById,\n deleteRecord: deleteRecordById,\n loadRecord,\n countRecords,\n getEntityRecordById,\n // Selection\n selectRecords,\n clearSelection,\n\n // Query\n updateParams,\n refresh,\n };\n}\n","// store/entity-record-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { EntityQuery, EntityRecord, EntityView, ListResult } from \"../models\";\n\nexport interface EntityRecordState {\n records: {\n [entityName: string]: {\n items: Record<string, EntityRecord>;\n params: EntityQuery;\n meta: ListResult<EntityRecord>;\n selected: string[]; // Selected record IDs\n };\n };\n selectedRecord?: EntityRecord;\n activeView?: EntityView;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface EntityRecordSelector {\n entityRecord: EntityRecordState;\n}\n\nconst initialState: EntityRecordState = {\n records: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst entityRecordSlice = createSlice({\n name: \"entityRecord\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n\n setRecords: (\n state,\n action: PayloadAction<{\n entityName: string;\n records: ListResult<EntityRecord>;\n params: EntityQuery;\n }>\n ) => {\n const { entityName, records, params } = action.payload;\n state.records[entityName] = {\n items: records.items.reduce(\n (acc, record) => {\n acc[record.id] = record;\n return acc;\n },\n {} as Record<string, EntityRecord>\n ),\n params,\n meta: records,\n selected: [],\n };\n },\n\n addRecord: (\n state,\n action: PayloadAction<{ entityName: string; record: EntityRecord }>\n ) => {\n const { entityName, record } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].items[record.id] = record;\n }\n },\n\n updateRecord: (\n state,\n action: PayloadAction<{ entityName: string; record: EntityRecord }>\n ) => {\n const { entityName, record } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].items[record.id] = record;\n }\n },\n\n removeRecord: (\n state,\n action: PayloadAction<{ entityName: string; recordId: string }>\n ) => {\n const { entityName, recordId } = action.payload;\n if (state.records[entityName]) {\n delete state.records[entityName].items[recordId];\n state.records[entityName].selected = state.records[\n entityName\n ].selected.filter((id) => id !== recordId);\n }\n },\n\n setSelected: (\n state,\n action: PayloadAction<{ entityName: string; ids: string[] }>\n ) => {\n const { entityName, ids } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].selected = ids;\n }\n },\n\n setActiveView: (state, action: PayloadAction<EntityView | undefined>) => {\n state.activeView = action.payload;\n },\n\n updateQueryParams: (\n state,\n action: PayloadAction<{\n entityName: string;\n params: Partial<EntityQuery>;\n }>\n ) => {\n const { entityName, params } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].params = {\n ...state.records[entityName].params,\n ...params,\n };\n }\n },\n\n setSelectedRecord: (\n state,\n action: PayloadAction<{ record: EntityRecord }>\n ) => {\n const { record } = action.payload;\n state.selectedRecord = record;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setRecords,\n addRecord,\n updateRecord,\n removeRecord,\n setSelected,\n setSelectedRecord,\n setActiveView,\n updateQueryParams,\n} = entityRecordSlice.actions;\n\nexport const entityRecordReducer = entityRecordSlice.reducer;\n","\"use client\";\n\nimport { useCallback, useRef } from 'react';\n\nexport function useDebounce<T extends (...args: any[]) => any>(\n callback: T,\n delay: number\n): (...args: Parameters<T>) => void {\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n\n return useCallback((...args: Parameters<T>) => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n\n timerRef.current = setTimeout(() => {\n callback(...args);\n }, delay);\n }, [callback, delay]);\n}\n\n","\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport { useEntityRecord, UseEntityRecordType } from \"../hooks\";\n\nexport const EntityRecordContext = createContext<\n UseEntityRecordType | undefined\n>(undefined);\n\nexport interface EntityRecordProviderProps {\n children: React.ReactNode;\n orgId: string;\n entityName: string;\n options?: {\n autoLoad?: boolean;\n };\n}\n\nexport function EntityRecordProvider({\n children,\n orgId,\n entityName,\n options = {},\n}: EntityRecordProviderProps) {\n const hookValue = useEntityRecord(orgId, entityName, options);\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <EntityRecordContext.Provider value={value}>\n {children}\n </EntityRecordContext.Provider>\n );\n}\n\nexport function useEntityRecordContext() {\n const context = useContext(EntityRecordContext);\n\n if (!context) {\n throw new Error(\n \"useEntityRecordContext must be used within an EntityRecordProvider\"\n );\n }\n\n return context;\n}\n","// Predefined colors with their display names\nexport const PREDEFINED_COLORS = [\n { value: \"#EF4444\", name: \"Red\" },\n { value: \"#F97316\", name: \"Orange\" },\n { value: \"#EAB308\", name: \"Yellow\" },\n { value: \"#22C55E\", name: \"Green\" },\n { value: \"#06B6D4\", name: \"Cyan\" },\n { value: \"#3B82F6\", name: \"Blue\" },\n { value: \"#6366F1\", name: \"Indigo\" },\n { value: \"#A855F7\", name: \"Purple\" },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAgB,eAAe,YAAY,eAAe;;;ACA1D,SAAS,aAAa,iBAAiB;AACvC,SAAS,aAAa,mBAAmB;AACzC,SAAS,sBAAsB;;;ACH/B,SAAS,mBAAkC;AAgB3C,IAAM,eAAsC;AAAA,EAC1C,aAAa,CAAC;AAAA,EACd,OAAO,CAAC;AAAA,EACR,WAAW;AAAA,EACX,eAAe,CAAC;AAClB;AAEA,IAAM,wBAAwB,YAAY;AAAA,EACxC,MAAM;AAAA,EACN;AAAA,EACA,UAAU;AAAA,IACR,YAAY,CAAC,OAAO,WAAmC;AACrD,YAAM,YAAY,OAAO;AAAA,IAC3B;AAAA,IACA,qBAAqB,CACnB,OACA,WACG;AACH,YAAM,cAAc,OAAO,QAAQ,SAAS,IAAI,OAAO,QAAQ;AAAA,IACjE;AAAA,IACA,UAAU,CAAC,OAAO,WAA8C;AAC9D,YAAM,QAAQ,OAAO;AAAA,IACvB;AAAA,IACA,gBAAgB,CAAC,OAAO,WAA8C;AACpE,YAAM,cAAc,OAAO,QAAQ;AAAA,QACjC,CAAC,KAAK,QAAQ;AACZ,cAAI,IAAI,IAAI,IAAI;AAChB,iBAAO;AAAA,QACT;AAAA,QACA,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,eAAe,CAAC,OAAO,WAA4C;AACjE,YAAM,aAAa,OAAO;AAC1B,YAAM,YAAY,WAAW,IAAI,IAAI;AAAA,IACvC;AAAA,IACA,kBAAkB,CAAC,OAAO,WAA4C;AACpE,YAAM,aAAa,OAAO;AAC1B,YAAM,YAAY,WAAW,IAAI,IAAI;AACrC,UAAI,MAAM,oBAAoB,SAAS,WAAW,MAAM;AACtD,cAAM,qBAAqB;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,kBAAkB,CAAC,OAAO,WAAkC;AAC1D,aAAO,MAAM,YAAY,OAAO,OAAO;AACvC,UAAI,MAAM,oBAAoB,SAAS,OAAO,SAAS;AACrD,cAAM,qBAAqB;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,uBAAuB,CACrB,OACA,WACG;AACH,YAAM,qBAAqB,OAAO;AAAA,IACpC;AAAA,IACA,UAAU,CACR,OACA,WACG;AACH,YAAM,EAAE,YAAY,MAAM,IAAI,OAAO;AACrC,YAAM,MAAM,UAAU,IAAI;AAAA,IAC5B;AAAA,IACA,SAAS,CACP,OACA,WACG;AACH,YAAM,EAAE,YAAY,KAAK,IAAI,OAAO;AACpC,UAAI,CAAC,MAAM,MAAM,UAAU,GAAG;AAC5B,cAAM,MAAM,UAAU,IAAI,CAAC;AAAA,MAC7B;AACA,YAAM,MAAM,UAAU,EAAE,KAAK,IAAI;AAAA,IACnC;AAAA,IACA,YAAY,CACV,OACA,WACG;AACH,YAAM,EAAE,YAAY,KAAK,IAAI,OAAO;AACpC,YAAM,QAAQ,MAAM,MAAM,UAAU;AACpC,UAAI,OAAO;AACT,cAAM,QAAQ,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE;AACrD,YAAI,UAAU,IAAI;AAChB,gBAAM,KAAK,IAAI;AACf,cAAI,MAAM,cAAc,OAAO,KAAK,IAAI;AACtC,kBAAM,eAAe;AAAA,UACvB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,YAAY,CACV,OACA,WACG;AACH,YAAM,EAAE,YAAY,OAAO,IAAI,OAAO;AACtC,YAAM,QAAQ,MAAM,MAAM,UAAU;AACpC,UAAI,OAAO;AACT,cAAM,MAAM,UAAU,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,MAAM;AAC7D,YAAI,MAAM,cAAc,OAAO,QAAQ;AACrC,gBAAM,eAAe;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,IACA,iBAAiB,CAAC,OAAO,WAAkD;AACzE,YAAM,eAAe,OAAO;AAAA,IAC9B;AAAA,EACF;AACF,CAAC;AAEM,IAAM;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI,sBAAsB;AAEnB,IAAM,0BAA0B,sBAAsB;;;ADvCtD,SAAS,oBACd,OACA,YACA,UAAsC,CAAC,GACd;AACzB,QAAM,EAAE,UAAU,OAAO,IAAI;AAC7B,QAAM,EAAE,eAAe,QAAQ,IAAI,eAAe;AAClD,QAAM,WAAW,YAAY;AAoB7B,QAAM,cAAc;AAAA,IAClB,CAAC,UAAoC,MAAM,iBAAiB;AAAA,EAC9D;AACA,QAAM,qBAAqB;AAAA,IACzB,CAAC,UACC,MAAM,iBAAiB;AAAA,EAC3B;AACA,QAAM,QAAQ;AAAA,IACZ,CAAC,UAAoC,MAAM,iBAAiB;AAAA,EAC9D;AACA,QAAM,eAAe;AAAA,IACnB,CAAC,UAAoC,MAAM,iBAAiB;AAAA,EAC9D;AACA,QAAM,YAAY;AAAA,IAChB,CAAC,UAAoC,MAAM,iBAAiB;AAAA,EAC9D;AACA,QAAM,gBAAgB;AAAA,IACpB,CAAC,UAAoC,MAAM,iBAAiB;AAAA,EAC9D;AACA,QAAM,QAAQ;AAAA,IACZ,CAAC,UAAoC,MAAM,iBAAiB;AAAA,EAC9D;AAEA,QAAM,kBAAkB;AAAA,IACtB,OAAO,gBAA0D;AAC/D,UAAI,CAAC,eAAe;AAClB,cAAM,IAAI,MAAM,uBAAuB;AAAA,MACzC;AAEA,eAAS,oBAAoB,EAAE,WAAW,mBAAmB,SAAS,KAAK,CAAC,CAAC;AAE7E,UAAI;AACF,cAAM,WAAW,MAAM,QAGrB,uBAAuB,EAAE,OAAO,YAAY,CAAC;AAE/C,YAAI,oBAAoB,OAAO;AAC7B,gBAAM;AAAA,QACR;AAEA,eAAO;AAAA,MACT,UAAE;AACA,iBAAS,oBAAoB,EAAE,WAAW,mBAAmB,SAAS,MAAM,CAAC,CAAC;AAAA,MAChF;AAAA,IACF;AAAA,IACA,CAAC,eAAe,UAAU,OAAO;AAAA,EACnC;AAEA,QAAM,gBAAgB;AAAA,IACpB,OAAO,gBAAwD;AAC7D,UAAI,CAAC,eAAe;AAClB,cAAM,IAAI,MAAM,uBAAuB;AAAA,MACzC;AAEA,eAAS,oBAAoB,EAAE,WAAW,iBAAiB,SAAS,KAAK,CAAC,CAAC;AAE3E,UAAI;AACF,cAAM,WAAW,MAAM,QAGrB,qBAAqB,EAAE,OAAO,YAAY,CAAC;AAE7C,YAAI,oBAAoB,OAAO;AAC7B,gBAAM;AAAA,QACR;AAEA,eAAO;AAAA,MACT,UAAE;AACA,iBAAS,oBAAoB,EAAE,WAAW,iBAAiB,SAAS,MAAM,CAAC,CAAC;AAAA,MAC9E;AAAA,IACF;AAAA,IACA,CAAC,eAAe,UAAU,OAAO;AAAA,EACnC;AAEA,QAAM,kBAAkB,YAAY,YAAY;AAC9C,QAAI,CAAC,iBAAiB,CAAC,MAAO;AAE9B,UAAM,aAAa;AACnB,QAAI,cAAc,UAAU,EAAG;AAE/B,aAAS,oBAAoB,EAAE,WAAW,YAAY,SAAS,KAAK,CAAC,CAAC;AAEtE,QAAI;AACF,YAAM,WAAW,MAAM,QAGrB,sBAAsB,EAAE,OAAO,OAAO,CAAC;AAEzC,UAAI,oBAAoB,OAAO;AAC7B,iBAAS,SAAS,SAAS,OAAO,CAAC;AAAA,MACrC,OAAO;AACL,iBAAS,eAAe,UAAU,eAAe,CAAC,CAAC,CAAC;AAAA,MACtD;AAAA,IACF,SAAS,KAAK;AACZ,eAAS,SAAS,eAAe,QAAQ,IAAI,UAAU,eAAe,CAAC;AAAA,IACzE,UAAE;AACA,eAAS,oBAAoB,EAAE,WAAW,YAAY,SAAS,MAAM,CAAC,CAAC;AAAA,IACzE;AAAA,EACF,GAAG,CAAC,eAAe,OAAO,QAAQ,QAAQ,UAAU,OAAO,CAAC;AAE5D,YAAU,MAAM;AACd,QAAI,UAAU;AAEd,QAAI,YAAY,iBAAiB,SAAS,SAAS;AACjD,sBAAgB;AAAA,IAClB;AAEA,WAAO,MAAM;AACX,gBAAU;AAAA,IACZ;AAAA,EACF,GAAG,CAAC,UAAU,eAAe,KAAK,CAAC;AAEnC,QAAM,iBAAiB;AAAA,IACrB,OAAO,SAAiB;AACtB,UAAI,CAAC,iBAAiB,CAAC,MAAO;AAE9B;AAAA,QACE,oBAAoB,EAAE,WAAW,QAAQ,IAAI,IAAI,SAAS,KAAK,CAAC;AAAA,MAClE;AACA,UAAI;AACF,cAAM,WAAW,MAAM,QAGrB,qBAAqB,EAAE,YAAY,MAAM,MAAM,GAAG,CAAC,CAAC;AAEtD,YAAI,oBAAoB,OAAO;AAC7B,mBAAS,SAAS,SAAS,OAAO,CAAC;AACnC;AAAA,QACF;AAEA,iBAAS,sBAAsB,SAAS,UAAU,CAAC;AAAA,MACrD,UAAE;AACA;AAAA,UACE,oBAAoB,EAAE,WAAW,QAAQ,IAAI,IAAI,SAAS,MAAM,CAAC;AAAA,QACnE;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,eAAe,OAAO,UAAU,OAAO;AAAA,EAC1C;AAEA,YAAU,MAAM;AACd,QAAI,iBAAiB,SAAS,YAAY;AACxC,qBAAe,UAAU;AAAA,IAC3B;AAAA,EACF,GAAG,CAAC,eAAe,OAAO,YAAY,cAAc,CAAC;AAErD,QAAM,mBAAmB,OAAO,eAAiC;AAC/D,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,aAAS,oBAAoB,EAAE,WAAW,UAAU,SAAS,KAAK,CAAC,CAAC;AAEpE,QAAI;AACF,YAAM,WAAW,MAAM,QAGrB,wBAAwB,EAAE,YAAY,MAAM,GAAG,CAAC,CAAC;AAInD,UAAI,oBAAoB,OAAO;AAC7B,gBAAQ,MAAM,0BAA0B,QAAQ;AAChD,cAAM;AAAA,MACR;AAEA,UAAI,SAAS,SAAS,SAAS;AAC7B,iBAAS,cAAc,SAAS,UAAU,CAAC;AAAA,MAC7C;AACA,aAAO;AAAA,IACT,UAAE;AACA,eAAS,oBAAoB,EAAE,WAAW,UAAU,SAAS,MAAM,CAAC,CAAC;AAAA,IACvE;AAAA,EACF;AAEA,QAAM,uBAAuB,OAC3B,MACA,eACG;AACH,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA;AAAA,MACE,oBAAoB,EAAE,WAAW,UAAU,IAAI,IAAI,SAAS,KAAK,CAAC;AAAA,IACpE;AACA,QAAI;AACF,YAAM,WAAW,MAAM;AAAA,QAIrB;AAAA,QACA;AAAA,UACE,YAAY;AAAA,UACZ;AAAA,UACA;AAAA,QACF;AAAA,QACA,CAAC;AAAA,MACH;AAEA,UAAI,oBAAoB,OAAO;AAC7B,cAAM;AAAA,MACR;AAEA,UAAI,SAAS,SAAS,SAAS;AAC7B,iBAAS,iBAAiB,SAAS,UAAU,CAAC;AAAA,MAChD;AAEA,aAAO;AAAA,IACT,UAAE;AACA;AAAA,QACE,oBAAoB,EAAE,WAAW,UAAU,IAAI,IAAI,SAAS,MAAM,CAAC;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AAEA,QAAM,mBAAmB,OAAO,SAAiB;AAC/C,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA;AAAA,MACE,oBAAoB,EAAE,WAAW,UAAU,IAAI,IAAI,SAAS,KAAK,CAAC;AAAA,IACpE;AACA,QAAI;AACF,YAAM,WAAW,MAAM,QAGrB,wBAAwB,EAAE,YAAY,MAAM,MAAM,GAAG,CAAC,CAAC;AAEzD,UAAI,oBAAoB,OAAO;AAC7B,cAAM;AAAA,MACR;AAEA,eAAS,iBAAiB,IAAI,CAAC;AAC/B,aAAO;AAAA,IACT,UAAE;AACA;AAAA,QACE,oBAAoB,EAAE,WAAW,UAAU,IAAI,IAAI,SAAS,MAAM,CAAC;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AAEA,QAAM,YAAY;AAAA,IAChB,OAAOA,gBAAsC;AAC3C,UAAI,CAAC,iBAAiB,CAAC,MAAO;AAE9B,YAAM,aAAa,aAAaA,WAAU;AAC1C,UAAI,cAAc,UAAU,EAAG;AAE/B,eAAS,oBAAoB,EAAE,WAAW,YAAY,SAAS,KAAK,CAAC,CAAC;AAEtE,UAAI;AACF,cAAM,WAAW,MAAM;AAAA,UACrB;AAAA,UACA,EAAE,YAAAA,aAAY,MAAM;AAAA,UACpB,CAAC;AAAA,QACH;AAEA,gBAAQ,IAAI,sBAAsB,QAAQ;AAE1C,YAAI,oBAAoB,OAAO;AAC7B,mBAAS,SAAS,SAAS,OAAO,CAAC;AACnC;AAAA,QACF;AAEA,iBAAS,SAAS,EAAE,YAAAA,aAAY,OAAO,SAAS,MAAM,CAAC,CAAC;AAAA,MAC1D,SAAS,KAAK;AACZ;AAAA,UACE,SAAS,eAAe,QAAQ,IAAI,UAAU,eAAe;AAAA,QAC/D;AAAA,MACF,UAAE;AACA;AAAA,UACE,oBAAoB,EAAE,WAAW,YAAY,SAAS,MAAM,CAAC;AAAA,QAC/D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,eAAe,OAAO,eAAe,UAAU,OAAO;AAAA,EACzD;AAEA,QAAM,aAAa,OAAOA,aAAoB,SAAqB;AACjE,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,aAAS,oBAAoB,EAAE,WAAW,eAAe,SAAS,KAAK,CAAC,CAAC;AACzE,QAAI;AACF,YAAM,WAAW,MAAM;AAAA,QACrB;AAAA,QACA,EAAE,YAAAA,aAAY,MAAM,MAAM;AAAA,QAC1B,CAAC;AAAA,MACH;AAEA,UAAI,oBAAoB,OAAO;AAC7B,cAAM;AAAA,MACR;AAEA,eAAS,QAAQ,EAAE,YAAAA,aAAY,MAAM,SAAS,KAAK,CAAC,CAAC;AACrD,aAAO,SAAS;AAAA,IAClB,UAAE;AACA;AAAA,QACE,oBAAoB,EAAE,WAAW,eAAe,SAAS,MAAM,CAAC;AAAA,MAClE;AAAA,IACF;AAAA,EACF;AAEA,QAAM,iBAAiB,OAAOA,aAAoB,SAAqB;AACrE,QAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,IAAI;AACxC,YAAM,IAAI,MAAM,+CAA+C;AAAA,IACjE;AAEA;AAAA,MACE,oBAAoB;AAAA,QAClB,WAAW,eAAe,KAAK,EAAE;AAAA,QACjC,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,QAAI;AACF,YAAM,WAAW,MAAM;AAAA,QACrB;AAAA,QACA,EAAE,MAAM,MAAM;AAAA,QACd,CAAC;AAAA,MACH;AAEA,UAAI,oBAAoB,OAAO;AAC7B,cAAM;AAAA,MACR;AAIA,eAAS,WAAW,EAAE,YAAAA,aAAY,MAAM,SAAS,KAAK,CAAC,CAAC;AACxD,aAAO,SAAS;AAAA,IAClB,UAAE;AACA;AAAA,QACE,oBAAoB;AAAA,UAClB,WAAW,eAAe,KAAK,EAAE;AAAA,UACjC,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,QAAM,aAAa,OAAOA,aAAoB,WAAmB;AAC/D,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA;AAAA,MACE,oBAAoB,EAAE,WAAW,eAAe,MAAM,IAAI,SAAS,KAAK,CAAC;AAAA,IAC3E;AACA,QAAI;AACF,YAAM,WAAW,MAAM;AAAA,QACrB;AAAA,QACA,EAAE,QAAQ,MAAM;AAAA,QAChB,CAAC;AAAA,MACH;AAEA,UAAI,oBAAoB,OAAO;AAC7B,cAAM;AAAA,MACR;AAEA,eAAS,WAAW,EAAE,YAAAA,aAAY,OAAO,CAAC,CAAC;AAC3C,aAAO;AAAA,IACT,UAAE;AACA;AAAA,QACE,oBAAoB;AAAA,UAClB,WAAW,eAAe,MAAM;AAAA,UAChC,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,QAAM,UAAU,YAAY,MAAM;AAChC,QAAI,CAAC,iBAAiB,CAAC,MAAO;AAE9B,QAAI,YAAY;AACd,qBAAe,UAAU;AAAA,IAC3B,OAAO;AACL,eAAS,WAAW,IAAI,CAAC;AACzB,sBAAgB,EAAE,QAAQ,MAAM,SAAS,WAAW,KAAK,CAAC,CAAC;AAAA,IAC7D;AAAA,EACF,GAAG,CAAC,eAAe,OAAO,YAAY,gBAAgB,QAAQ,CAAC;AAE/D,SAAO;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA;AAAA,IAGA;AAAA,EACF;AACF;;;AE7hBA,SAAS,eAAAC,cAAa,aAAAC,kBAAiB;AAIhC,SAAS,2BAA2B,YAAoB;AAC7D,QAAM,UAAU,2BAA2B;AAC3C,QAAM,aAAa,QAAQ,YAAY,UAAU;AAEjD,QAAM,wBAAwBC,aAAY,YAAY;AACpD,WAAO,QAAQ,eAAe,UAAU;AAAA,EAC1C,GAAG,CAAC,SAAS,UAAU,CAAC;AAExB,EAAAC,WAAU,MAAM;AACd,QAAI,cAAc,CAAC,YAAY;AAC7B,4BAAsB;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,YAAY,YAAY,qBAAqB,CAAC;AAElD,SAAO;AAAA,IACL;AAAA,IACA,WAAW,QAAQ,cAAc,QAAQ,UAAU,EAAE;AAAA,IACrD,OAAO,QAAQ;AAAA,IACf,kBAAkB,CAAC,eACjB,QAAQ,iBAAiB,YAAY,UAAU;AAAA,IACjD,kBAAkB,MAAM,QAAQ,iBAAiB,UAAU;AAAA,IAC3D,SAAS;AAAA,EACX;AACF;;;AC3BA,SAAS,eAAAC,cAAa,aAAAC,kBAAiB;AACvC,SAAS,eAAAC,cAAa,eAAAC,oBAAmB;AACzC,SAAS,kBAAAC,uBAAsB;;;ACH/B,SAAS,eAAAC,oBAAkC;AAuB3C,IAAMC,gBAAkC;AAAA,EACtC,SAAS,CAAC;AAAA,EACV,WAAW;AAAA,EACX,eAAe,CAAC;AAClB;AAEA,IAAM,oBAAoBD,aAAY;AAAA,EACpC,MAAM;AAAA,EACN,cAAAC;AAAA,EACA,UAAU;AAAA,IACR,YAAY,CAAC,OAAO,WAAmC;AACrD,YAAM,YAAY,OAAO;AAAA,IAC3B;AAAA,IAEA,qBAAqB,CACnB,OACA,WACG;AACH,YAAM,cAAc,OAAO,QAAQ,SAAS,IAAI,OAAO,QAAQ;AAAA,IACjE;AAAA,IAEA,UAAU,CAAC,OAAO,WAA8C;AAC9D,YAAM,QAAQ,OAAO;AAAA,IACvB;AAAA,IAEA,YAAY,CACV,OACA,WAKG;AACH,YAAM,EAAE,YAAY,SAAS,OAAO,IAAI,OAAO;AAC/C,YAAM,QAAQ,UAAU,IAAI;AAAA,QAC1B,OAAO,QAAQ,MAAM;AAAA,UACnB,CAAC,KAAK,WAAW;AACf,gBAAI,OAAO,EAAE,IAAI;AACjB,mBAAO;AAAA,UACT;AAAA,UACA,CAAC;AAAA,QACH;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,UAAU,CAAC;AAAA,MACb;AAAA,IACF;AAAA,IAEA,WAAW,CACT,OACA,WACG;AACH,YAAM,EAAE,YAAY,OAAO,IAAI,OAAO;AACtC,UAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,cAAM,QAAQ,UAAU,EAAE,MAAM,OAAO,EAAE,IAAI;AAAA,MAC/C;AAAA,IACF;AAAA,IAEA,cAAc,CACZ,OACA,WACG;AACH,YAAM,EAAE,YAAY,OAAO,IAAI,OAAO;AACtC,UAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,cAAM,QAAQ,UAAU,EAAE,MAAM,OAAO,EAAE,IAAI;AAAA,MAC/C;AAAA,IACF;AAAA,IAEA,cAAc,CACZ,OACA,WACG;AACH,YAAM,EAAE,YAAY,SAAS,IAAI,OAAO;AACxC,UAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,eAAO,MAAM,QAAQ,UAAU,EAAE,MAAM,QAAQ;AAC/C,cAAM,QAAQ,UAAU,EAAE,WAAW,MAAM,QACzC,UACF,EAAE,SAAS,OAAO,CAAC,OAAO,OAAO,QAAQ;AAAA,MAC3C;AAAA,IACF;AAAA,IAEA,aAAa,CACX,OACA,WACG;AACH,YAAM,EAAE,YAAY,IAAI,IAAI,OAAO;AACnC,UAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,cAAM,QAAQ,UAAU,EAAE,WAAW;AAAA,MACvC;AAAA,IACF;AAAA,IAEA,eAAe,CAAC,OAAO,WAAkD;AACvE,YAAM,aAAa,OAAO;AAAA,IAC5B;AAAA,IAEA,mBAAmB,CACjB,OACA,WAIG;AACH,YAAM,EAAE,YAAY,OAAO,IAAI,OAAO;AACtC,UAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,cAAM,QAAQ,UAAU,EAAE,SAAS;AAAA,UACjC,GAAG,MAAM,QAAQ,UAAU,EAAE;AAAA,UAC7B,GAAG;AAAA,QACL;AAAA,MACF;AAAA,IACF;AAAA,IAEA,mBAAmB,CACjB,OACA,WACG;AACH,YAAM,EAAE,OAAO,IAAI,OAAO;AAC1B,YAAM,iBAAiB;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAEM,IAAM;AAAA,EACX,YAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,UAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI,kBAAkB;AAEf,IAAM,sBAAsB,kBAAkB;;;AD5FrD,IAAM,eAA4B;AAAA,EAChC,SAAS,CAAC;AAAA,EACV,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,WAAW;AACb;AAEO,SAAS,gBACd,OACA,YACA,UAAkC,CAAC,GACd;AACrB,QAAM,EAAE,WAAW,KAAK,IAAI;AAC5B,QAAM,EAAE,eAAe,QAAQ,IAAIC,gBAAe;AAClD,QAAM,WAAWC,aAAY;AAE7B,QAAM,cAAcC;AAAA,IAClB,CAAC,UACC,MAAM,aAAa,QAAQ,UAAU,KAAK;AAAA,MACxC,OAAO,CAAC;AAAA,MACR,QAAQ;AAAA,MACR,MAAM;AAAA,QACJ,OAAO,CAAC;AAAA,QACR,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,UAAU;AAAA,QACV,YAAY;AAAA,MACd;AAAA,MACA,UAAU,CAAC;AAAA,IACb;AAAA,EACJ;AAEA,QAAM,iBAAiBA;AAAA,IACrB,CAAC,UAAgC,MAAM,aAAa;AAAA,EACtD;AAEA,QAAM,YAAYA;AAAA,IAChB,CAAC,UAAgC,MAAM,aAAa;AAAA,EACtD;AACA,QAAM,gBAAgBA;AAAA,IACpB,CAAC,UAAgC,MAAM,aAAa;AAAA,EACtD;AACA,QAAM,QAAQA;AAAA,IACZ,CAAC,UAAgC,MAAM,aAAa;AAAA,EACtD;AAEA,QAAM,cAAcC;AAAA,IAClB,OAAO,WAAkC;AACvC,UAAI,CAAC,iBAAiB,CAAC,MAAO;AAE9B,YAAM,aAAa,QAAQ,UAAU;AACrC,UAAI,cAAc,UAAU,EAAG;AAE/B,eAASC,qBAAoB,EAAE,WAAW,YAAY,SAAS,KAAK,CAAC,CAAC;AAEtE,UAAI;AACF,cAAM,cAAc,EAAE,GAAG,YAAY,QAAQ,GAAG,OAAO;AAGvD,cAAM,WAAW,MAAM;AAAA,UACrB;AAAA,UACA;AAAA,YACE;AAAA,YACA;AAAA,YACA,OAAO;AAAA,UACT;AAAA,QACF;AAEA,YAAI,oBAAoB,OAAO;AAC7B,mBAASC,UAAS,SAAS,OAAO,CAAC;AAAA,QACrC,WAAW,SAAS,SAAS;AAC3B;AAAA,YACE,WAAW;AAAA,cACT;AAAA,cACA,SAAS,SAAS;AAAA,cAClB,QAAQ;AAAA,YACV,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF,SAAS,KAAK;AACZ;AAAA,UACEA,UAAS,eAAe,QAAQ,IAAI,UAAU,eAAe;AAAA,QAC/D;AAAA,MACF,UAAE;AACA;AAAA,UACED,qBAAoB,EAAE,WAAW,YAAY,SAAS,MAAM,CAAC;AAAA,QAC/D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,eAAe,OAAO,YAAY,YAAY,QAAQ,UAAU,OAAO;AAAA,EAC1E;AAEA,QAAM,aAAaD;AAAA,IACjB,OAAO,aAAqB;AAC1B,UAAI,CAAC,iBAAiB,CAAC,MAAO;AAE9B,YAAM,aAAa,QAAQ,QAAQ;AACnC,UAAI,cAAc,UAAU,EAAG;AAE/B,eAASC,qBAAoB,EAAE,WAAW,YAAY,SAAS,KAAK,CAAC,CAAC;AAEtE,UAAI;AACF,cAAM,WAAW,MAAM,QAGrB,iBAAiB,EAAE,YAAY,UAAU,MAAM,GAAG,CAAC,CAAC;AAEtD,YAAI,oBAAoB,OAAO;AAC7B,mBAASC,UAAS,SAAS,OAAO,CAAC;AACnC;AAAA,QACF;AAEA,iBAAS,kBAAkB,EAAE,QAAQ,SAAS,OAAO,CAAC,CAAC;AAAA,MACzD,UAAE;AACA;AAAA,UACED,qBAAoB,EAAE,WAAW,YAAY,SAAS,MAAM,CAAC;AAAA,QAC/D;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,eAAe,OAAO,YAAY,YAAY,QAAQ,UAAU,OAAO;AAAA,EAC1E;AAEA,QAAM,eAAe,OACnB,WACkC;AAClC,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA;AAAA,MACEA,qBAAoB,EAAE,WAAW,iBAAiB,SAAS,KAAK,CAAC;AAAA,IACnE;AAEA,QAAI;AACF,YAAM,WAAW,MAAM;AAAA,QACrB;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAEA,UAAI,oBAAoB,OAAO;AAC7B,cAAM;AAAA,MACR;AAEA,UAAI,SAAS,SAAS,SAAS;AAC7B,iBAAS,UAAU,EAAE,YAAY,QAAQ,SAAS,OAAO,CAAC,CAAC;AAAA,MAC7D;AAGA,kBAAY;AAEZ,aAAO;AAAA,IACT,UAAE;AACA;AAAA,QACEA,qBAAoB,EAAE,WAAW,iBAAiB,SAAS,MAAM,CAAC;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AAEA,QAAM,mBAAmB,OACvB,WACkC;AAClC,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA;AAAA,MACEA,qBAAoB,EAAE,WAAW,UAAU,OAAO,EAAE,IAAI,SAAS,KAAK,CAAC;AAAA,IACzE;AAEA,QAAI;AACF,YAAM,WAAW,MAAM;AAAA,QACrB;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU,OAAO;AAAA,QACnB;AAAA,MACF;AAEA,UAAI,oBAAoB,OAAO;AAC7B,cAAM;AAAA,MACR;AAEA,eAAS,aAAa,EAAE,YAAY,QAAQ,SAAS,OAAO,CAAC,CAAC;AAC9D,aAAO;AAAA,IACT,UAAE;AACA;AAAA,QACEA,qBAAoB;AAAA,UAClB,WAAW,UAAU,OAAO,EAAE;AAAA,UAC9B,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,QAAM,mBAAmB,OACvB,aAC8B;AAC9B,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA;AAAA,MACEA,qBAAoB,EAAE,WAAW,UAAU,QAAQ,IAAI,SAAS,KAAK,CAAC;AAAA,IACxE;AAEA,QAAI;AACF,YAAM,WAAW,MAAM;AAAA,QACrB;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAEA,UAAI,oBAAoB,OAAO;AAC7B,cAAM;AAAA,MACR;AAEA,eAAS,aAAa,EAAE,YAAY,SAAS,CAAC,CAAC;AAC/C,aAAO;AAAA,IACT,UAAE;AACA;AAAA,QACEA,qBAAoB,EAAE,WAAW,UAAU,QAAQ,IAAI,SAAS,MAAM,CAAC;AAAA,MACzE;AAAA,IACF;AAAA,EACF;AAEA,QAAM,eAAe,OAAO,YAAmD;AAC7E,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,QAAI;AACF,YAAM,WAAW,MAAM;AAAA,QACrB;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA,UACA,SAAS,WAAW,CAAC;AAAA,QACvB;AAAA,MACF;AAEA,UAAI,oBAAoB,OAAO;AAC7B,cAAM;AAAA,MACR;AAEA,UAAI,CAAC,SAAS,UAAU,SAAS;AAC/B,cAAM,IAAI,MAAM,SAAS,UAAU,SAAS,yBAAyB;AAAA,MACvE;AAEA,aAAO,SAAS,SAAS;AAAA,IAC3B,SAAS,KAAK;AACZ,cAAQ,MAAM,2BAA2B,GAAG;AAC5C,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,sBAAsB,OAC1B,aACiC;AACjC,QAAI,CAAC,iBAAiB,CAAC,OAAO;AAC5B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,QAAI;AACF,YAAM,WAAW,MAAM,QAGrB,iBAAiB,EAAE,YAAY,UAAU,MAAM,GAAG,CAAC,CAAC;AAEtD,UAAI,oBAAoB,OAAO;AAC7B,gBAAQ,MAAM,0BAA0B,SAAS,OAAO;AACxD,eAAO;AAAA,MACT;AAEA,aAAO,SAAS,UAAU;AAAA,IAC5B,SAASE,QAAO;AACd,cAAQ,MAAM,iCAAiCA,MAAK;AACpD,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,gBAAgB,CAAC,QAAkB;AACvC,aAAS,YAAY,EAAE,YAAY,IAAI,CAAC,CAAC;AAAA,EAC3C;AAEA,QAAM,iBAAiB,MAAM;AAC3B,aAAS,YAAY,EAAE,YAAY,KAAK,CAAC,EAAE,CAAC,CAAC;AAAA,EAC/C;AAEA,QAAM,eAAe,CAAC,WAAiC;AACrD,YAAQ,IAAI,yBAAyB,MAAM;AAC3C,aAAS,kBAAkB,EAAE,YAAY,OAAO,CAAC,CAAC;AAClD,gBAAY,MAAM;AAAA,EACpB;AAEA,QAAM,UAAUH,aAAY,MAAM;AAChC,gBAAY;AAAA,EACd,GAAG,CAAC,WAAW,CAAC;AAEhB,EAAAI,WAAU,MAAM;AACd,QAAI,UAAU;AAEd,QAAI,YAAY,iBAAiB,SAAS,SAAS;AACjD,kBAAY;AAAA,IACd;AAEA,WAAO,MAAM;AACX,gBAAU;AAAA,IACZ;AAAA,EACF,GAAG,CAAC,UAAU,eAAe,KAAK,CAAC;AAEnC,SAAO;AAAA;AAAA,IAEL,SAAS,YAAY;AAAA,IACrB,QAAQ,YAAY;AAAA,IACpB,UAAU,YAAY;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,EACF;AACF;;;AE3ZA,SAAS,eAAAC,cAAa,cAAc;AAE7B,SAAS,YACd,UACA,OACkC;AAClC,QAAM,WAAW,OAA8B,IAAI;AAEnD,SAAOA,aAAY,IAAI,SAAwB;AAC7C,QAAI,SAAS,SAAS;AACpB,mBAAa,SAAS,OAAO;AAAA,IAC/B;AAEA,aAAS,UAAU,WAAW,MAAM;AAClC,eAAS,GAAG,IAAI;AAAA,IAClB,GAAG,KAAK;AAAA,EACV,GAAG,CAAC,UAAU,KAAK,CAAC;AACtB;;;ANWI;AArBG,IAAM,0BAA0B,cAErC,MAAS;AASJ,SAAS,yBAAyB;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU,CAAC;AACb,GAAkC;AAChC,QAAM,YAAY,oBAAoB,OAAO,YAAY,OAAO;AAChE,QAAM,QAAQ,QAAQ,MAAM,WAAW,CAAC,SAAS,CAAC;AAElD,SACE,oBAAC,wBAAwB,UAAxB,EAAiC,OAC/B,UACH;AAEJ;AAEO,SAAS,6BAA6B;AAC3C,QAAM,UAAU,WAAW,uBAAuB;AAElD,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;;;AO5CA,SAAgB,iBAAAC,gBAAe,cAAAC,aAAY,WAAAC,gBAAe;AA0BtD,gBAAAC,YAAA;AAvBG,IAAM,sBAAsBC,eAEjC,MAAS;AAWJ,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU,CAAC;AACb,GAA8B;AAC5B,QAAM,YAAY,gBAAgB,OAAO,YAAY,OAAO;AAC5D,QAAM,QAAQC,SAAQ,MAAM,WAAW,CAAC,SAAS,CAAC;AAElD,SACE,gBAAAF,KAAC,oBAAoB,UAApB,EAA6B,OAC3B,UACH;AAEJ;AAEO,SAAS,yBAAyB;AACvC,QAAM,UAAUG,YAAW,mBAAmB;AAE9C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;;;AC3CO,IAAM,oBAAoB;AAAA,EAC/B,EAAE,OAAO,WAAW,MAAM,MAAM;AAAA,EAChC,EAAE,OAAO,WAAW,MAAM,SAAS;AAAA,EACnC,EAAE,OAAO,WAAW,MAAM,SAAS;AAAA,EACnC,EAAE,OAAO,WAAW,MAAM,QAAQ;AAAA,EAClC,EAAE,OAAO,WAAW,MAAM,OAAO;AAAA,EACjC,EAAE,OAAO,WAAW,MAAM,OAAO;AAAA,EACjC,EAAE,OAAO,WAAW,MAAM,SAAS;AAAA,EACnC,EAAE,OAAO,WAAW,MAAM,SAAS;AACrC;","names":["entityName","useCallback","useEffect","useCallback","useEffect","useCallback","useEffect","useDispatch","useSelector","useNatsContext","createSlice","initialState","setLoading","setOperationLoading","setError","useNatsContext","useDispatch","useSelector","useCallback","setOperationLoading","setError","error","useEffect","useCallback","createContext","useContext","useMemo","jsx","createContext","useMemo","useContext"]}
1
+ {"version":3,"sources":["../context/entity-definition-context.tsx","../hooks/use-entity-definition.ts","../store/entity-definition-slice.ts","../hooks/use-entity-definition-details.ts","../hooks/use-entity-record.ts","../store/entity-record-slice.ts","../hooks/use-debounce.ts","../context/entity-record-context.tsx","../consts/colors.ts"],"sourcesContent":["\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport {\n useEntityDefinition,\n UseEntityDefinitionType,\n UseEntityDefinitionOptions,\n} from \"../hooks\";\n\nexport const EntityDefinitionContext = createContext<\n UseEntityDefinitionType | undefined\n>(undefined);\n\nexport interface EntityDefinitionProviderProps {\n children: React.ReactNode;\n orgId: string;\n entityName?: string;\n options?: UseEntityDefinitionOptions;\n}\n\nexport function EntityDefinitionProvider({\n children,\n orgId,\n entityName,\n options = {},\n}: EntityDefinitionProviderProps) {\n const hookValue = useEntityDefinition(orgId, entityName, options);\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <EntityDefinitionContext.Provider value={value}>\n {children}\n </EntityDefinitionContext.Provider>\n );\n}\n\nexport function useEntityDefinitionContext() {\n const context = useContext(EntityDefinitionContext);\n\n if (!context) {\n throw new Error(\n \"useEntityDefinitionContext must be used within an EntityDefinitionProvider\"\n );\n }\n\n return context;\n}\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport {\n CreateEntityDefinitionRequest,\n CreateOrgSchemaRequest,\n CreateOrgSchemaResponse,\n CreateViewRequest,\n DropOrgSchemaRequest,\n DropOrgSchemaResponse,\n DeleteEntityDefinitionRequest,\n DeleteViewRequest,\n EntityDefinition,\n EntityDefinitionCreate,\n EntityDefinitionDelete,\n EntityDefinitionGet,\n EntityDefinitionList,\n EntityDefinitionResponse,\n EntityDefinitionUpdate,\n EntityOrgSchemaCreate,\n EntityOrgSchemaDrop,\n EntityView,\n EntityViewCreate,\n EntityViewDelete,\n EntityViewList,\n EntityViewResponse,\n EntityViewUpdate,\n GetEntityDefinitionRequest,\n ListEntityDefinitionsRequest,\n ListEntityDefinitionsResponse,\n ListViewsRequest,\n ListViewsResponse,\n ResponseMetadata,\n UpdateEntityDefinitionRequest,\n UpdateViewRequest,\n} from \"../models\";\nimport {\n addDefinition,\n addView,\n EntityDefinitionSelector,\n removeDefinition,\n removeView,\n setDefinitions,\n setError,\n setLoading,\n setOperationLoading,\n setSelectedDefinition,\n setViews,\n updateDefinition,\n updateView,\n} from \"../store/entity-definition-slice\";\n\nexport type UseEntityDefinitionType = {\n // State\n definitions: Record<string, EntityDefinition>;\n selectedDefinition?: EntityDefinition;\n views: Record<string, EntityView[]>;\n selectedView?: EntityView;\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Organization operations\n createOrgSchema: (orgId: string) => Promise<CreateOrgSchemaResponse>;\n dropOrgSchema: (orgId: string) => Promise<DropOrgSchemaResponse>;\n\n // Definition operations\n loadDefinitions: () => Promise<void>;\n loadDefinition: (name: string) => Promise<void>;\n createDefinition: (\n definition: EntityDefinition\n ) => Promise<EntityDefinitionResponse>;\n updateDefinition: (\n name: string,\n definition: EntityDefinition\n ) => Promise<EntityDefinitionResponse>;\n deleteDefinition: (name: string) => Promise<ResponseMetadata>;\n\n // View operations\n loadViews: (entityName: string) => Promise<void>;\n createView: (entityName: string, view: EntityView) => Promise<EntityView>;\n updateView: (entityName: string, view: EntityView) => Promise<EntityView>;\n deleteView: (\n entityName: string,\n viewId: string\n ) => Promise<{ success: boolean }>;\n\n // Utilities\n refresh: () => void;\n};\n\nexport interface UseEntityDefinitionOptions {\n autoLoad?: boolean;\n module?: string;\n}\n\n// todo: performance improvement: use selectors\n// const selectEntityDefinition = (state: EntityDefinitionSelector) => state.entityDefinition;\n\nexport function useEntityDefinition(\n orgId: string | undefined,\n entityName?: string,\n options: UseEntityDefinitionOptions = {}\n): UseEntityDefinitionType {\n const { autoLoad, module } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n // todo: performance improvement: use selectors\n\n // const selectDefinitions = createSelector(\n // selectEntityDefinition,\n // (state) => state.definitions\n // );\n // const selectSelectedDefinition = createSelector(\n // selectEntityDefinition,\n // (state) => state.selectedDefinition\n // );\n\n // // Similar selectors for views, selectedView, isLoading, loadingStates, error...\n\n // // In the hook\n // const definitions = useSelector(selectDefinitions);\n // const selectedDefinition = useSelector(selectSelectedDefinition);\n // const views = useSelector(selectViews);\n\n const definitions = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.definitions\n );\n const selectedDefinition = useSelector(\n (state: EntityDefinitionSelector) =>\n state.entityDefinition.selectedDefinition\n );\n const views = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.views\n );\n const selectedView = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.selectedView\n );\n const isLoading = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.isLoading\n );\n const loadingStates = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.loadingStates\n );\n const error = useSelector(\n (state: EntityDefinitionSelector) => state.entityDefinition.error\n );\n\n const createOrgSchema = useCallback(\n async (targetOrgId: string): Promise<CreateOrgSchemaResponse> => {\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n dispatch(setOperationLoading({ operation: \"createOrgSchema\", loading: true }));\n\n try {\n const response = await request<\n CreateOrgSchemaRequest,\n CreateOrgSchemaResponse\n >(EntityOrgSchemaCreate, { orgId: targetOrgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"createOrgSchema\", loading: false }));\n }\n },\n [natsConnected, dispatch, request]\n );\n\n const dropOrgSchema = useCallback(\n async (targetOrgId: string): Promise<DropOrgSchemaResponse> => {\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n dispatch(setOperationLoading({ operation: \"dropOrgSchema\", loading: true }));\n\n try {\n const response = await request<\n DropOrgSchemaRequest,\n DropOrgSchemaResponse\n >(EntityOrgSchemaDrop, { orgId: targetOrgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"dropOrgSchema\", loading: false }));\n }\n },\n [natsConnected, dispatch, request]\n );\n\n const loadDefinitions = useCallback(async () => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = \"loadDefinitions\";\n if (loadingStates[loadingKey]) return; // Prevent concurrent loads\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n ListEntityDefinitionsRequest,\n ListEntityDefinitionsResponse\n >(EntityDefinitionList, { orgId, module });\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else {\n dispatch(setDefinitions(response?.definitions ?? []));\n }\n } catch (err) {\n dispatch(setError(err instanceof Error ? err.message : \"Unknown error\"));\n } finally {\n dispatch(setOperationLoading({ operation: loadingKey, loading: false }));\n }\n }, [natsConnected, orgId, options.module, dispatch, request]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n loadDefinitions();\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId]);\n\n const loadDefinition = useCallback(\n async (name: string) => {\n if (!natsConnected || !orgId) return;\n\n dispatch(\n setOperationLoading({ operation: `load_${name}`, loading: true })\n );\n try {\n const response = await request<\n GetEntityDefinitionRequest,\n EntityDefinitionResponse\n >(EntityDefinitionGet, { entityName: name, orgId }, {});\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedDefinition(response.definition));\n } finally {\n dispatch(\n setOperationLoading({ operation: `load_${name}`, loading: false })\n );\n }\n },\n [natsConnected, orgId, dispatch, request]\n );\n\n useEffect(() => {\n if (natsConnected && orgId && entityName) {\n loadDefinition(entityName);\n }\n }, [natsConnected, orgId, entityName, loadDefinition]);\n\n const createDefinition = async (definition: EntityDefinition) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create\", loading: true }));\n\n try {\n const response = await request<\n CreateEntityDefinitionRequest,\n EntityDefinitionResponse\n >(EntityDefinitionCreate, { definition, orgId }, {});\n\n // console.log(\"createDefinition response\", response);\n\n if (response instanceof Error) {\n console.error(\"createDefinition error\", response);\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(addDefinition(response.definition));\n }\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"create\", loading: false }));\n }\n };\n\n const updateDefinitionById = async (\n name: string,\n definition: EntityDefinition\n ) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${name}`, loading: true })\n );\n try {\n const response = await request<\n UpdateEntityDefinitionRequest,\n EntityDefinitionResponse\n >(\n EntityDefinitionUpdate,\n {\n entityName: name,\n definition,\n orgId,\n },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(updateDefinition(response.definition));\n }\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `update_${name}`, loading: false })\n );\n }\n };\n\n const deleteDefinition = async (name: string) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_${name}`, loading: true })\n );\n try {\n const response = await request<\n DeleteEntityDefinitionRequest,\n ResponseMetadata\n >(EntityDefinitionDelete, { entityName: name, orgId }, {});\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeDefinition(name));\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `delete_${name}`, loading: false })\n );\n }\n };\n\n const loadViews = useCallback(\n async (entityName: string): Promise<void> => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `loadViews_${entityName}`;\n if (loadingStates[loadingKey]) return; // Prevent concurrent loads\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<ListViewsRequest, ListViewsResponse>(\n EntityViewList,\n { entityName, orgId },\n {}\n );\n\n console.log(\"loadViews response\", response);\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setViews({ entityName, views: response.views }));\n } catch (err) {\n dispatch(\n setError(err instanceof Error ? err.message : \"Unknown error\")\n );\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, loadingStates, dispatch, request]\n );\n\n const createView = async (entityName: string, view: EntityView) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create_view\", loading: true }));\n try {\n const response = await request<CreateViewRequest, EntityViewResponse>(\n EntityViewCreate,\n { entityName, view, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(addView({ entityName, view: response.view }));\n return response.view;\n } finally {\n dispatch(\n setOperationLoading({ operation: \"create_view\", loading: false })\n );\n }\n };\n\n const updateViewById = async (entityName: string, view: EntityView) => {\n if (!natsConnected || !orgId || !view.id) {\n throw new Error(\"Not connected, missing orgId, or invalid view\");\n }\n\n dispatch(\n setOperationLoading({\n operation: `update_view_${view.id}`,\n loading: true,\n })\n );\n try {\n const response = await request<UpdateViewRequest, EntityViewResponse>(\n EntityViewUpdate,\n { view, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n // console.log(\"updateViewById response\", response);\n\n dispatch(updateView({ entityName, view: response.view }));\n return response.view;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `update_view_${view.id}`,\n loading: false,\n })\n );\n }\n };\n\n const deleteView = async (entityName: string, viewId: string) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_view_${viewId}`, loading: true })\n );\n try {\n const response = await request<DeleteViewRequest, ResponseMetadata>(\n EntityViewDelete,\n { viewId, orgId },\n {}\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeView({ entityName, viewId }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `delete_view_${viewId}`,\n loading: false,\n })\n );\n }\n };\n\n const refresh = useCallback(() => {\n if (!natsConnected || !orgId) return;\n\n if (entityName) {\n loadDefinition(entityName);\n } else {\n dispatch(setLoading(true));\n loadDefinitions().finally(() => dispatch(setLoading(false)));\n }\n }, [natsConnected, orgId, entityName, loadDefinition, dispatch]);\n\n return {\n // State\n definitions,\n selectedDefinition,\n views,\n selectedView,\n isLoading,\n loadingStates,\n error,\n\n // Organization operations\n createOrgSchema,\n dropOrgSchema,\n\n // Definition operations\n loadDefinitions,\n loadDefinition,\n createDefinition,\n updateDefinition: updateDefinitionById,\n deleteDefinition,\n\n // View operations\n loadViews,\n createView,\n updateView: updateViewById,\n deleteView,\n\n // Utilities\n refresh,\n };\n}\n","// store/entityDefinitionSlice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { EntityDefinition, EntityView } from \"../models\";\nexport interface EntityDefinitionState {\n definitions: Record<string, EntityDefinition>;\n selectedDefinition?: EntityDefinition;\n views: Record<string, EntityView[]>;\n selectedView?: EntityView;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface EntityDefinitionSelector {\n entityDefinition: EntityDefinitionState;\n}\n\nconst initialState: EntityDefinitionState = {\n definitions: {},\n views: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst entityDefinitionSlice = createSlice({\n name: \"entityDefinition\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setDefinitions: (state, action: PayloadAction<EntityDefinition[]>) => {\n state.definitions = action.payload.reduce(\n (acc, def) => {\n acc[def.name] = def;\n return acc;\n },\n {} as Record<string, EntityDefinition>\n );\n },\n addDefinition: (state, action: PayloadAction<EntityDefinition>) => {\n const definition = action.payload;\n state.definitions[definition.name] = definition;\n },\n updateDefinition: (state, action: PayloadAction<EntityDefinition>) => {\n const definition = action.payload;\n state.definitions[definition.name] = definition;\n if (state.selectedDefinition?.name === definition.name) {\n state.selectedDefinition = definition;\n }\n },\n removeDefinition: (state, action: PayloadAction<string>) => {\n delete state.definitions[action.payload];\n if (state.selectedDefinition?.name === action.payload) {\n state.selectedDefinition = undefined;\n }\n },\n setSelectedDefinition: (\n state,\n action: PayloadAction<EntityDefinition | undefined>\n ) => {\n state.selectedDefinition = action.payload;\n },\n setViews: (\n state,\n action: PayloadAction<{ entityName: string; views: EntityView[] }>\n ) => {\n const { entityName, views } = action.payload;\n state.views[entityName] = views;\n },\n addView: (\n state,\n action: PayloadAction<{ entityName: string; view: EntityView }>\n ) => {\n const { entityName, view } = action.payload;\n if (!state.views[entityName]) {\n state.views[entityName] = [];\n }\n state.views[entityName].push(view);\n },\n updateView: (\n state,\n action: PayloadAction<{ entityName: string; view: EntityView }>\n ) => {\n const { entityName, view } = action.payload;\n const views = state.views[entityName];\n if (views) {\n const index = views.findIndex((v) => v.id === view.id);\n if (index !== -1) {\n views[index] = view;\n if (state.selectedView?.id === view.id) {\n state.selectedView = view;\n }\n }\n }\n },\n removeView: (\n state,\n action: PayloadAction<{ entityName: string; viewId: string }>\n ) => {\n const { entityName, viewId } = action.payload;\n const views = state.views[entityName];\n if (views) {\n state.views[entityName] = views.filter((v) => v.id !== viewId);\n if (state.selectedView?.id === viewId) {\n state.selectedView = undefined;\n }\n }\n },\n setSelectedView: (state, action: PayloadAction<EntityView | undefined>) => {\n state.selectedView = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setDefinitions,\n addDefinition,\n updateDefinition,\n removeDefinition,\n setSelectedDefinition,\n setViews,\n addView,\n updateView,\n removeView,\n setSelectedView,\n} = entityDefinitionSlice.actions;\n\nexport const entityDefinitionReducer = entityDefinitionSlice.reducer;\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useEntityDefinitionContext } from \"../context/entity-definition-context\";\nimport { EntityDefinition } from \"../models\";\n\nexport function useEntityDefinitionDetails(entityName: string) {\n const context = useEntityDefinitionContext();\n const definition = context.definitions[entityName];\n\n const loadDefinitionDetails = useCallback(async () => {\n return context.loadDefinition(entityName);\n }, [context, entityName]);\n\n useEffect(() => {\n if (entityName && !definition) {\n loadDefinitionDetails();\n }\n }, [definition, entityName, loadDefinitionDetails]);\n\n return {\n definition,\n isLoading: context.loadingStates[`load_${entityName}`],\n error: context.error,\n updateDefinition: (updatedDef: EntityDefinition) =>\n context.updateDefinition(entityName, updatedDef),\n deleteDefinition: () => context.deleteDefinition(entityName),\n refresh: loadDefinitionDetails,\n };\n}\n","\"use client\";\n\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport {\n CreateRecordRequest,\n DeleteRecordRequest,\n EntityQuery,\n EntityRecord,\n EntityRecordCreate,\n EntityRecordDelete,\n EntityRecordGet,\n EntityRecordQuery,\n EntityRecordCount,\n EntityRecordResponse,\n EntityRecordUpdate,\n GetEntityRecordRequest,\n ListEntityRecordsResponse,\n QueryRequest,\n ResponseMetadata,\n UpdateRecordRequest,\n CountEntityRecordsRequest,\n CountEntityRecordsResponse,\n} from \"../models\";\nimport {\n addRecord,\n EntityRecordSelector,\n removeRecord,\n setError,\n setOperationLoading,\n setRecords,\n setSelected,\n setSelectedRecord,\n updateQueryParams,\n updateRecord,\n} from \"../store/entity-record-slice\";\n\nexport type UseEntityRecordType = {\n // State\n records: Record<string, EntityRecord>;\n selectedRecord?: EntityRecord;\n params: EntityQuery;\n selected: string[];\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Operations\n loadRecords: (params?: Partial<EntityQuery>) => Promise<void>;\n createRecord: (record: EntityRecord) => Promise<EntityRecordResponse>;\n updateRecord: (record: EntityRecord) => Promise<EntityRecordResponse>;\n deleteRecord: (recordId: string) => Promise<ResponseMetadata>;\n loadRecord: (recordId: string) => Promise<void>;\n countRecords: (filters?: Record<string, any>) => Promise<number>;\n getEntityRecordById: (recordId: string) => Promise<EntityRecord | null>;\n\n\n // Selection\n selectRecords: (ids: string[]) => void;\n clearSelection: () => void;\n\n // Query\n updateParams: (params: Partial<EntityQuery>) => void;\n refresh: () => void;\n};\n\nconst defaultQuery: EntityQuery = {\n filters: {},\n page: 1,\n pageSize: 25,\n sortBy: \"metadata.createdAt\",\n sortOrder: -1,\n};\n\nexport function useEntityRecord(\n orgId: string | undefined,\n entityName: string,\n options: { autoLoad?: boolean } = {}\n): UseEntityRecordType {\n const { autoLoad = true } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n const recordState = useSelector(\n (state: EntityRecordSelector) =>\n state.entityRecord.records[entityName] || {\n items: {},\n params: defaultQuery,\n meta: {\n items: [],\n totalCount: 0,\n currentPage: 1,\n pageSize: 25,\n totalPages: 0,\n },\n selected: [],\n }\n );\n\n const selectedRecord = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.selectedRecord\n );\n\n const isLoading = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.isLoading\n );\n const loadingStates = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.loadingStates\n );\n const error = useSelector(\n (state: EntityRecordSelector) => state.entityRecord.error\n );\n\n const loadRecords = useCallback(\n async (params?: Partial<EntityQuery>) => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `load_${entityName}`;\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const queryParams = { ...recordState.params, ...params };\n // console.log(\"will loadRecords\", queryParams);\n\n const response = await request<QueryRequest, ListEntityRecordsResponse>(\n EntityRecordQuery,\n {\n orgId,\n entityName,\n query: queryParams,\n }\n );\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else if (response.records) {\n dispatch(\n setRecords({\n entityName,\n records: response.records,\n params: queryParams,\n })\n );\n }\n } catch (err) {\n dispatch(\n setError(err instanceof Error ? err.message : \"Unknown error\")\n );\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, entityName, recordState.params, dispatch, request]\n );\n\n const loadRecord = useCallback(\n async (recordId: string) => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `load_${recordId}`;\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n GetEntityRecordRequest,\n EntityRecordResponse\n >(EntityRecordGet, { entityName, recordId, orgId }, {});\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedRecord({ record: response.record }));\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, entityName, recordState.params, dispatch, request]\n );\n\n const createRecord = async (\n record: EntityRecord\n ): Promise<EntityRecordResponse> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: \"create_record\", loading: true })\n );\n\n try {\n const response = await request<CreateRecordRequest, EntityRecordResponse>(\n EntityRecordCreate,\n {\n orgId,\n entityName,\n record,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(addRecord({ entityName, record: response.record }));\n }\n\n // Refresh list after create\n loadRecords();\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: \"create_record\", loading: false })\n );\n }\n };\n\n const updateRecordById = async (\n record: EntityRecord\n ): Promise<EntityRecordResponse> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${record.id}`, loading: true })\n );\n\n try {\n const response = await request<UpdateRecordRequest, EntityRecordResponse>(\n EntityRecordUpdate,\n {\n orgId,\n entityName,\n record,\n recordId: record.id,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(updateRecord({ entityName, record: response.record }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({\n operation: `update_${record.id}`,\n loading: false,\n })\n );\n }\n };\n\n const deleteRecordById = async (\n recordId: string\n ): Promise<ResponseMetadata> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `delete_${recordId}`, loading: true })\n );\n\n try {\n const response = await request<DeleteRecordRequest, ResponseMetadata>(\n EntityRecordDelete,\n {\n orgId,\n entityName,\n recordId,\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeRecord({ entityName, recordId }));\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `delete_${recordId}`, loading: false })\n );\n }\n };\n\n const countRecords = async (filters?: Record<string, any>): Promise<number> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n try {\n const response = await request<CountEntityRecordsRequest, CountEntityRecordsResponse>(\n EntityRecordCount,\n {\n orgId,\n entityName,\n filters: filters || {},\n }\n );\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (!response.metadata?.success) {\n throw new Error(response.metadata?.error || \"Failed to count records\");\n }\n\n return response.count || 0;\n } catch (err) {\n console.error(\"Error counting records:\", err);\n return 0;\n }\n };\n\n const getEntityRecordById = async (\n recordId: string\n ): Promise<EntityRecord | null> => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n try {\n const response = await request<\n GetEntityRecordRequest,\n EntityRecordResponse\n >(EntityRecordGet, { entityName, recordId, orgId }, {});\n\n if (response instanceof Error) {\n console.error(\"Error fetching record:\", response.message);\n return null;\n }\n\n return response.record || null;\n } catch (error) {\n console.error(\"Error in getEntityRecordById:\", error);\n return null;\n }\n };\n\n const selectRecords = (ids: string[]) => {\n dispatch(setSelected({ entityName, ids }));\n };\n\n const clearSelection = () => {\n dispatch(setSelected({ entityName, ids: [] }));\n };\n\n const updateParams = (params: Partial<EntityQuery>) => {\n console.log(\"updating query params\", params);\n dispatch(updateQueryParams({ entityName, params }));\n loadRecords(params);\n };\n\n const refresh = useCallback(() => {\n loadRecords();\n }, [loadRecords]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n loadRecords();\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId]);\n\n return {\n // State\n records: recordState.items,\n params: recordState.params,\n selected: recordState.selected,\n selectedRecord,\n isLoading,\n loadingStates,\n error,\n\n // Operations\n loadRecords,\n createRecord,\n updateRecord: updateRecordById,\n deleteRecord: deleteRecordById,\n loadRecord,\n countRecords,\n getEntityRecordById,\n // Selection\n selectRecords,\n clearSelection,\n\n // Query\n updateParams,\n refresh,\n };\n}\n","// store/entity-record-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { EntityQuery, EntityRecord, EntityView, ListResult } from \"../models\";\n\nexport interface EntityRecordState {\n records: {\n [entityName: string]: {\n items: Record<string, EntityRecord>;\n params: EntityQuery;\n meta: ListResult<EntityRecord>;\n selected: string[]; // Selected record IDs\n };\n };\n selectedRecord?: EntityRecord;\n activeView?: EntityView;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface EntityRecordSelector {\n entityRecord: EntityRecordState;\n}\n\nconst initialState: EntityRecordState = {\n records: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst entityRecordSlice = createSlice({\n name: \"entityRecord\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n\n setRecords: (\n state,\n action: PayloadAction<{\n entityName: string;\n records: ListResult<EntityRecord>;\n params: EntityQuery;\n }>\n ) => {\n const { entityName, records, params } = action.payload;\n state.records[entityName] = {\n items: records.items.reduce(\n (acc, record) => {\n acc[record.id] = record;\n return acc;\n },\n {} as Record<string, EntityRecord>\n ),\n params,\n meta: records,\n selected: [],\n };\n },\n\n addRecord: (\n state,\n action: PayloadAction<{ entityName: string; record: EntityRecord }>\n ) => {\n const { entityName, record } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].items[record.id] = record;\n }\n },\n\n updateRecord: (\n state,\n action: PayloadAction<{ entityName: string; record: EntityRecord }>\n ) => {\n const { entityName, record } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].items[record.id] = record;\n }\n },\n\n removeRecord: (\n state,\n action: PayloadAction<{ entityName: string; recordId: string }>\n ) => {\n const { entityName, recordId } = action.payload;\n if (state.records[entityName]) {\n delete state.records[entityName].items[recordId];\n state.records[entityName].selected = state.records[\n entityName\n ].selected.filter((id) => id !== recordId);\n }\n },\n\n setSelected: (\n state,\n action: PayloadAction<{ entityName: string; ids: string[] }>\n ) => {\n const { entityName, ids } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].selected = ids;\n }\n },\n\n setActiveView: (state, action: PayloadAction<EntityView | undefined>) => {\n state.activeView = action.payload;\n },\n\n updateQueryParams: (\n state,\n action: PayloadAction<{\n entityName: string;\n params: Partial<EntityQuery>;\n }>\n ) => {\n const { entityName, params } = action.payload;\n if (state.records[entityName]) {\n state.records[entityName].params = {\n ...state.records[entityName].params,\n ...params,\n };\n }\n },\n\n setSelectedRecord: (\n state,\n action: PayloadAction<{ record: EntityRecord }>\n ) => {\n const { record } = action.payload;\n state.selectedRecord = record;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setRecords,\n addRecord,\n updateRecord,\n removeRecord,\n setSelected,\n setSelectedRecord,\n setActiveView,\n updateQueryParams,\n} = entityRecordSlice.actions;\n\nexport const entityRecordReducer = entityRecordSlice.reducer;\n","\"use client\";\n\nimport { useCallback, useRef } from 'react';\n\nexport function useDebounce<T extends (...args: any[]) => any>(\n callback: T,\n delay: number\n): (...args: Parameters<T>) => void {\n const timerRef = useRef<NodeJS.Timeout | null>(null);\n\n return useCallback((...args: Parameters<T>) => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n\n timerRef.current = setTimeout(() => {\n callback(...args);\n }, delay);\n }, [callback, delay]);\n}\n\n","\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport { useEntityRecord, UseEntityRecordType } from \"../hooks\";\n\nexport const EntityRecordContext = createContext<\n UseEntityRecordType | undefined\n>(undefined);\n\nexport interface EntityRecordProviderProps {\n children: React.ReactNode;\n orgId: string;\n entityName: string;\n options?: {\n autoLoad?: boolean;\n };\n}\n\nexport function EntityRecordProvider({\n children,\n orgId,\n entityName,\n options = {},\n}: EntityRecordProviderProps) {\n const hookValue = useEntityRecord(orgId, entityName, options);\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <EntityRecordContext.Provider value={value}>\n {children}\n </EntityRecordContext.Provider>\n );\n}\n\nexport function useEntityRecordContext() {\n const context = useContext(EntityRecordContext);\n\n if (!context) {\n throw new Error(\n \"useEntityRecordContext must be used within an EntityRecordProvider\"\n );\n }\n\n return context;\n}\n","// Predefined colors with their display names\nexport const PREDEFINED_COLORS = [\n { value: \"#EF4444\", name: \"Red\" },\n { value: \"#F97316\", name: \"Orange\" },\n { value: \"#EAB308\", name: \"Yellow\" },\n { value: \"#22C55E\", name: \"Green\" },\n { value: \"#06B6D4\", name: \"Cyan\" },\n { value: \"#3B82F6\", name: \"Blue\" },\n { value: \"#6366F1\", name: \"Indigo\" },\n { value: \"#A855F7\", name: \"Purple\" },\n];\n"],"mappings":"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","names":["entityName","useCallback","useEffect","useCallback","useEffect","useCallback","useEffect","useDispatch","useSelector","useNatsContext","createSlice","initialState","setLoading","setOperationLoading","setError","useNatsContext","useDispatch","useSelector","useCallback","setOperationLoading","setError","error","useEffect","useCallback","createContext","useContext","useMemo","jsx","createContext","useMemo","useContext"]}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
4
 
@@ -70,8 +70,8 @@
70
70
 
71
71
 
72
72
 
73
- var _chunkK2MPIZE7js = require('../chunk-K2MPIZE7.js');
74
73
 
74
+ var _chunk4GC36G4Djs = require('../chunk-4GC36G4D.js');
75
75
 
76
76
 
77
77
 
@@ -143,5 +143,6 @@ var _chunkK2MPIZE7js = require('../chunk-K2MPIZE7.js');
143
143
 
144
144
 
145
145
 
146
- exports.EntityDefinitionCreate = _chunkK2MPIZE7js.EntityDefinitionCreate; exports.EntityDefinitionCreated = _chunkK2MPIZE7js.EntityDefinitionCreated; exports.EntityDefinitionDelete = _chunkK2MPIZE7js.EntityDefinitionDelete; exports.EntityDefinitionDeleted = _chunkK2MPIZE7js.EntityDefinitionDeleted; exports.EntityDefinitionGet = _chunkK2MPIZE7js.EntityDefinitionGet; exports.EntityDefinitionGetServer = _chunkK2MPIZE7js.EntityDefinitionGetServer; exports.EntityDefinitionList = _chunkK2MPIZE7js.EntityDefinitionList; exports.EntityDefinitionUpdate = _chunkK2MPIZE7js.EntityDefinitionUpdate; exports.EntityDefinitionUpdated = _chunkK2MPIZE7js.EntityDefinitionUpdated; exports.EntityFieldTypeBool = _chunkK2MPIZE7js.EntityFieldTypeBool; exports.EntityFieldTypeCurrency = _chunkK2MPIZE7js.EntityFieldTypeCurrency; exports.EntityFieldTypeDate = _chunkK2MPIZE7js.EntityFieldTypeDate; exports.EntityFieldTypeDateTime = _chunkK2MPIZE7js.EntityFieldTypeDateTime; exports.EntityFieldTypeDropdown = _chunkK2MPIZE7js.EntityFieldTypeDropdown; exports.EntityFieldTypeEmail = _chunkK2MPIZE7js.EntityFieldTypeEmail; exports.EntityFieldTypeFile = _chunkK2MPIZE7js.EntityFieldTypeFile; exports.EntityFieldTypeFloat = _chunkK2MPIZE7js.EntityFieldTypeFloat; exports.EntityFieldTypeImage = _chunkK2MPIZE7js.EntityFieldTypeImage; exports.EntityFieldTypeInt = _chunkK2MPIZE7js.EntityFieldTypeInt; exports.EntityFieldTypeJSON = _chunkK2MPIZE7js.EntityFieldTypeJSON; exports.EntityFieldTypeLookup = _chunkK2MPIZE7js.EntityFieldTypeLookup; exports.EntityFieldTypeMultiLookup = _chunkK2MPIZE7js.EntityFieldTypeMultiLookup; exports.EntityFieldTypeMultiSelect = _chunkK2MPIZE7js.EntityFieldTypeMultiSelect; exports.EntityFieldTypePhone = _chunkK2MPIZE7js.EntityFieldTypePhone; exports.EntityFieldTypeString = _chunkK2MPIZE7js.EntityFieldTypeString; exports.EntityFieldTypeStringMultiline = _chunkK2MPIZE7js.EntityFieldTypeStringMultiline; exports.EntityFieldTypeText = _chunkK2MPIZE7js.EntityFieldTypeText; exports.EntityFieldTypeURL = _chunkK2MPIZE7js.EntityFieldTypeURL; exports.EntityFieldTypes = _chunkK2MPIZE7js.EntityFieldTypes; exports.EntityFilterOperators = _chunkK2MPIZE7js.EntityFilterOperators; exports.EntityOrgSchemaCreate = _chunkK2MPIZE7js.EntityOrgSchemaCreate; exports.EntityOrgSchemaDrop = _chunkK2MPIZE7js.EntityOrgSchemaDrop; exports.EntityRecordCount = _chunkK2MPIZE7js.EntityRecordCount; exports.EntityRecordCreate = _chunkK2MPIZE7js.EntityRecordCreate; exports.EntityRecordCreated = _chunkK2MPIZE7js.EntityRecordCreated; exports.EntityRecordDelete = _chunkK2MPIZE7js.EntityRecordDelete; exports.EntityRecordDeleted = _chunkK2MPIZE7js.EntityRecordDeleted; exports.EntityRecordGet = _chunkK2MPIZE7js.EntityRecordGet; exports.EntityRecordQuery = _chunkK2MPIZE7js.EntityRecordQuery; exports.EntityRecordUpdate = _chunkK2MPIZE7js.EntityRecordUpdate; exports.EntityRecordUpdated = _chunkK2MPIZE7js.EntityRecordUpdated; exports.EntityRecordsBulkCreate = _chunkK2MPIZE7js.EntityRecordsBulkCreate; exports.EntityRecordsBulkCreated = _chunkK2MPIZE7js.EntityRecordsBulkCreated; exports.EntityRecordsBulkDelete = _chunkK2MPIZE7js.EntityRecordsBulkDelete; exports.EntityRecordsBulkDeleted = _chunkK2MPIZE7js.EntityRecordsBulkDeleted; exports.EntityRecordsBulkUpdate = _chunkK2MPIZE7js.EntityRecordsBulkUpdate; exports.EntityRecordsBulkUpdated = _chunkK2MPIZE7js.EntityRecordsBulkUpdated; exports.EntityViewCreate = _chunkK2MPIZE7js.EntityViewCreate; exports.EntityViewCreated = _chunkK2MPIZE7js.EntityViewCreated; exports.EntityViewDelete = _chunkK2MPIZE7js.EntityViewDelete; exports.EntityViewDeleted = _chunkK2MPIZE7js.EntityViewDeleted; exports.EntityViewList = _chunkK2MPIZE7js.EntityViewList; exports.EntityViewUpdate = _chunkK2MPIZE7js.EntityViewUpdate; exports.EntityViewUpdated = _chunkK2MPIZE7js.EntityViewUpdated; exports.OperatorBetween = _chunkK2MPIZE7js.OperatorBetween; exports.OperatorContains = _chunkK2MPIZE7js.OperatorContains; exports.OperatorEmpty = _chunkK2MPIZE7js.OperatorEmpty; exports.OperatorEndsWith = _chunkK2MPIZE7js.OperatorEndsWith; exports.OperatorEq = _chunkK2MPIZE7js.OperatorEq; exports.OperatorExists = _chunkK2MPIZE7js.OperatorExists; exports.OperatorGt = _chunkK2MPIZE7js.OperatorGt; exports.OperatorGte = _chunkK2MPIZE7js.OperatorGte; exports.OperatorIn = _chunkK2MPIZE7js.OperatorIn; exports.OperatorLt = _chunkK2MPIZE7js.OperatorLt; exports.OperatorLte = _chunkK2MPIZE7js.OperatorLte; exports.OperatorNe = _chunkK2MPIZE7js.OperatorNe; exports.OperatorNin = _chunkK2MPIZE7js.OperatorNin; exports.OperatorStartsWith = _chunkK2MPIZE7js.OperatorStartsWith; exports.RecordChangeActionCreated = _chunkK2MPIZE7js.RecordChangeActionCreated; exports.RecordChangeActionDeleted = _chunkK2MPIZE7js.RecordChangeActionDeleted; exports.RecordChangeActionUpdated = _chunkK2MPIZE7js.RecordChangeActionUpdated;
146
+
147
+ exports.EntityDefinitionCreate = _chunk4GC36G4Djs.EntityDefinitionCreate; exports.EntityDefinitionCreated = _chunk4GC36G4Djs.EntityDefinitionCreated; exports.EntityDefinitionDelete = _chunk4GC36G4Djs.EntityDefinitionDelete; exports.EntityDefinitionDeleted = _chunk4GC36G4Djs.EntityDefinitionDeleted; exports.EntityDefinitionGet = _chunk4GC36G4Djs.EntityDefinitionGet; exports.EntityDefinitionGetServer = _chunk4GC36G4Djs.EntityDefinitionGetServer; exports.EntityDefinitionList = _chunk4GC36G4Djs.EntityDefinitionList; exports.EntityDefinitionUpdate = _chunk4GC36G4Djs.EntityDefinitionUpdate; exports.EntityDefinitionUpdated = _chunk4GC36G4Djs.EntityDefinitionUpdated; exports.EntityFieldTypeBool = _chunk4GC36G4Djs.EntityFieldTypeBool; exports.EntityFieldTypeCurrency = _chunk4GC36G4Djs.EntityFieldTypeCurrency; exports.EntityFieldTypeDate = _chunk4GC36G4Djs.EntityFieldTypeDate; exports.EntityFieldTypeDateTime = _chunk4GC36G4Djs.EntityFieldTypeDateTime; exports.EntityFieldTypeDropdown = _chunk4GC36G4Djs.EntityFieldTypeDropdown; exports.EntityFieldTypeEmail = _chunk4GC36G4Djs.EntityFieldTypeEmail; exports.EntityFieldTypeFile = _chunk4GC36G4Djs.EntityFieldTypeFile; exports.EntityFieldTypeFloat = _chunk4GC36G4Djs.EntityFieldTypeFloat; exports.EntityFieldTypeImage = _chunk4GC36G4Djs.EntityFieldTypeImage; exports.EntityFieldTypeInt = _chunk4GC36G4Djs.EntityFieldTypeInt; exports.EntityFieldTypeJSON = _chunk4GC36G4Djs.EntityFieldTypeJSON; exports.EntityFieldTypeLookup = _chunk4GC36G4Djs.EntityFieldTypeLookup; exports.EntityFieldTypeMultiLookup = _chunk4GC36G4Djs.EntityFieldTypeMultiLookup; exports.EntityFieldTypeMultiSelect = _chunk4GC36G4Djs.EntityFieldTypeMultiSelect; exports.EntityFieldTypePhone = _chunk4GC36G4Djs.EntityFieldTypePhone; exports.EntityFieldTypeString = _chunk4GC36G4Djs.EntityFieldTypeString; exports.EntityFieldTypeStringMultiline = _chunk4GC36G4Djs.EntityFieldTypeStringMultiline; exports.EntityFieldTypeText = _chunk4GC36G4Djs.EntityFieldTypeText; exports.EntityFieldTypeURL = _chunk4GC36G4Djs.EntityFieldTypeURL; exports.EntityFieldTypes = _chunk4GC36G4Djs.EntityFieldTypes; exports.EntityFilterOperators = _chunk4GC36G4Djs.EntityFilterOperators; exports.EntityOrgSchemaCreate = _chunk4GC36G4Djs.EntityOrgSchemaCreate; exports.EntityOrgSchemaDrop = _chunk4GC36G4Djs.EntityOrgSchemaDrop; exports.EntityRecordCount = _chunk4GC36G4Djs.EntityRecordCount; exports.EntityRecordCreate = _chunk4GC36G4Djs.EntityRecordCreate; exports.EntityRecordCreated = _chunk4GC36G4Djs.EntityRecordCreated; exports.EntityRecordDelete = _chunk4GC36G4Djs.EntityRecordDelete; exports.EntityRecordDeleted = _chunk4GC36G4Djs.EntityRecordDeleted; exports.EntityRecordGet = _chunk4GC36G4Djs.EntityRecordGet; exports.EntityRecordQuery = _chunk4GC36G4Djs.EntityRecordQuery; exports.EntityRecordUpdate = _chunk4GC36G4Djs.EntityRecordUpdate; exports.EntityRecordUpdated = _chunk4GC36G4Djs.EntityRecordUpdated; exports.EntityRecordsBulkCreate = _chunk4GC36G4Djs.EntityRecordsBulkCreate; exports.EntityRecordsBulkCreated = _chunk4GC36G4Djs.EntityRecordsBulkCreated; exports.EntityRecordsBulkDelete = _chunk4GC36G4Djs.EntityRecordsBulkDelete; exports.EntityRecordsBulkDeleted = _chunk4GC36G4Djs.EntityRecordsBulkDeleted; exports.EntityRecordsBulkUpdate = _chunk4GC36G4Djs.EntityRecordsBulkUpdate; exports.EntityRecordsBulkUpdated = _chunk4GC36G4Djs.EntityRecordsBulkUpdated; exports.EntityViewCreate = _chunk4GC36G4Djs.EntityViewCreate; exports.EntityViewCreated = _chunk4GC36G4Djs.EntityViewCreated; exports.EntityViewDelete = _chunk4GC36G4Djs.EntityViewDelete; exports.EntityViewDeleted = _chunk4GC36G4Djs.EntityViewDeleted; exports.EntityViewList = _chunk4GC36G4Djs.EntityViewList; exports.EntityViewUpdate = _chunk4GC36G4Djs.EntityViewUpdate; exports.EntityViewUpdated = _chunk4GC36G4Djs.EntityViewUpdated; exports.OperatorBetween = _chunk4GC36G4Djs.OperatorBetween; exports.OperatorContains = _chunk4GC36G4Djs.OperatorContains; exports.OperatorEmpty = _chunk4GC36G4Djs.OperatorEmpty; exports.OperatorEndsWith = _chunk4GC36G4Djs.OperatorEndsWith; exports.OperatorEq = _chunk4GC36G4Djs.OperatorEq; exports.OperatorExists = _chunk4GC36G4Djs.OperatorExists; exports.OperatorGt = _chunk4GC36G4Djs.OperatorGt; exports.OperatorGte = _chunk4GC36G4Djs.OperatorGte; exports.OperatorIn = _chunk4GC36G4Djs.OperatorIn; exports.OperatorLt = _chunk4GC36G4Djs.OperatorLt; exports.OperatorLte = _chunk4GC36G4Djs.OperatorLte; exports.OperatorNe = _chunk4GC36G4Djs.OperatorNe; exports.OperatorNin = _chunk4GC36G4Djs.OperatorNin; exports.OperatorStartsWith = _chunk4GC36G4Djs.OperatorStartsWith; exports.RecordChangeActionCreated = _chunk4GC36G4Djs.RecordChangeActionCreated; exports.RecordChangeActionDeleted = _chunk4GC36G4Djs.RecordChangeActionDeleted; exports.RecordChangeActionUpdated = _chunk4GC36G4Djs.RecordChangeActionUpdated;
147
148
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/models/index.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,itJAAC","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/models/index.js"}
1
+ {"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/models/index.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,itJAAC","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/models/index.js"}
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import {
2
3
  EntityDefinitionCreate,
3
4
  EntityDefinitionCreated,
@@ -70,7 +71,7 @@ import {
70
71
  RecordChangeActionCreated,
71
72
  RecordChangeActionDeleted,
72
73
  RecordChangeActionUpdated
73
- } from "../chunk-QZQSWI3P.mjs";
74
+ } from "../chunk-LIACJMHV.mjs";
74
75
  export {
75
76
  EntityDefinitionCreate,
76
77
  EntityDefinitionCreated,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elqnt/entity",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "description": "Dynamic entity management for Eloquent platform",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/chunk-K2MPIZE7.js","../models/entity.ts"],"names":[],"mappings":"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","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/entity/dist/chunk-K2MPIZE7.js","sourcesContent":[null,"// Code generated by tygo. DO NOT EDIT.\nimport { JSONSchema } from \"@elqnt/types\";\n\n//////////\n// source: constants.go\n\nexport type EntityFilterOperator = string;\n/**\n * todo: move to types package\n */\nexport const OperatorEq: EntityFilterOperator = \"eq\";\n/**\n * todo: move to types package\n */\nexport const OperatorNe: EntityFilterOperator = \"ne\";\n/**\n * todo: move to types package\n */\nexport const OperatorGt: EntityFilterOperator = \"gt\";\n/**\n * todo: move to types package\n */\nexport const OperatorGte: EntityFilterOperator = \"gte\";\n/**\n * todo: move to types package\n */\nexport const OperatorLt: EntityFilterOperator = \"lt\";\n/**\n * todo: move to types package\n */\nexport const OperatorLte: EntityFilterOperator = \"lte\";\n/**\n * todo: move to types package\n */\nexport const OperatorIn: EntityFilterOperator = \"in\";\n/**\n * todo: move to types package\n */\nexport const OperatorNin: EntityFilterOperator = \"nin\";\n/**\n * todo: move to types package\n */\nexport const OperatorContains: EntityFilterOperator = \"contains\";\n/**\n * todo: move to types package\n */\nexport const OperatorStartsWith: EntityFilterOperator = \"startsWith\";\n/**\n * todo: move to types package\n */\nexport const OperatorEndsWith: EntityFilterOperator = \"endsWith\";\n/**\n * todo: move to types package\n */\nexport const OperatorExists: EntityFilterOperator = \"exists\";\n/**\n * todo: move to types package\n */\nexport const OperatorEmpty: EntityFilterOperator = \"empty\";\n/**\n * todo: move to types package\n */\nexport const OperatorBetween: EntityFilterOperator = \"between\";\n\nexport const EntityFilterOperators = {\n eq: { value: 'eq', label: 'Equal to' },\n ne: { value: 'ne', label: 'Not equal to' },\n gt: { value: 'gt', label: 'Greater than' },\n gte: { value: 'gte', label: 'Greater than or equal to' },\n lt: { value: 'lt', label: 'Less than' },\n lte: { value: 'lte', label: 'Less than or equal to' },\n in: { value: 'in', label: 'In' },\n nin: { value: 'nin', label: 'Not in' },\n contains: { value: 'contains', label: 'Contains' },\n startsWith: { value: 'startsWith', label: 'Starts with' },\n endsWith: { value: 'endsWith', label: 'Ends with' },\n exists: { value: 'exists', label: 'Exists' },\n empty: { value: 'empty', label: 'Empty' },\n between: { value: 'between', label: 'Between' }\n} as const;\n\nexport type EntityFilterOperatorTS = keyof typeof EntityFilterOperators;\nexport type EntityFilterOperatorOptionTS = typeof EntityFilterOperators[EntityFilterOperatorTS];\n\nexport type EntityFieldType = string;\nexport const EntityFieldTypeString: EntityFieldType = \"string\";\nexport const EntityFieldTypeStringMultiline: EntityFieldType = \"stringMultiline\";\nexport const EntityFieldTypeText: EntityFieldType = \"text\";\nexport const EntityFieldTypeInt: EntityFieldType = \"int\";\nexport const EntityFieldTypeFloat: EntityFieldType = \"float\";\nexport const EntityFieldTypeBool: EntityFieldType = \"bool\";\nexport const EntityFieldTypeDate: EntityFieldType = \"date\";\nexport const EntityFieldTypeDateTime: EntityFieldType = \"datetime\";\nexport const EntityFieldTypeEmail: EntityFieldType = \"email\";\nexport const EntityFieldTypePhone: EntityFieldType = \"phone\";\nexport const EntityFieldTypeURL: EntityFieldType = \"url\";\nexport const EntityFieldTypeDropdown: EntityFieldType = \"dropdown\";\nexport const EntityFieldTypeMultiSelect: EntityFieldType = \"multiselect\";\nexport const EntityFieldTypeLookup: EntityFieldType = \"lookup\";\nexport const EntityFieldTypeMultiLookup: EntityFieldType = \"multilookup\";\nexport const EntityFieldTypeCurrency: EntityFieldType = \"currency\";\nexport const EntityFieldTypeFile: EntityFieldType = \"file\";\nexport const EntityFieldTypeImage: EntityFieldType = \"image\";\nexport const EntityFieldTypeJSON: EntityFieldType = \"json\";\n\nexport const EntityFieldTypes = {\n string: { value: 'string', label: 'Short Text' },\n stringMultiline: { value: 'stringMultiline', label: 'Long Text' },\n text: { value: 'text', label: 'Rich Text Editor' },\n int: { value: 'int', label: 'Integer' },\n float: { value: 'float', label: 'Decimal' },\n bool: { value: 'bool', label: 'Boolean' },\n date: { value: 'date', label: 'Date' },\n datetime: { value: 'datetime', label: 'Date & Time' },\n email: { value: 'email', label: 'Email' },\n phone: { value: 'phone', label: 'Phone' },\n url: { value: 'url', label: 'URL' },\n dropdown: { value: 'dropdown', label: 'Dropdown' },\n multiselect: { value: 'multiselect', label: 'Multi Select' },\n lookup: { value: 'lookup', label: 'Lookup' },\n multilookup: { value: 'multilookup', label: 'Multi Lookup' },\n currency: { value: 'currency', label: 'Currency' },\n file: { value: 'file', label: 'File' },\n image: { value: 'image', label: 'Image' },\n json: { value: 'json', label: 'JSON' }\n} as const;\n\nexport type EntityFieldTypeTS = keyof typeof EntityFieldTypes;\nexport type EntityFieldTypeOptionTS = typeof EntityFieldTypes[EntityFieldTypeTS];\n\n\n//////////\n// source: entities-models.go\n\nexport interface EntityDefinition {\n id: string /* uuid */;\n name: string;\n displayName: string;\n module: string;\n description: string;\n schema: JSONSchema;\n defaultViewId: string /* uuid */;\n metadata?: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\nexport interface EntityRecord {\n id: string /* uuid */;\n entityId: string /* uuid */;\n name: string;\n fields: { [key: string]: any}; // ** must match the entity definition schema\n tags?: string[];\n metadata?: { [key: string]: any};\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\n/**\n * View defines how to display entity records in a list\n */\nexport interface View {\n id: string /* uuid */;\n entityId: string /* uuid */;\n name: string;\n displayName: string;\n description?: string;\n isDefault: boolean;\n columns: ViewColumn[];\n filters: Filter[];\n sort: Sort[];\n}\nexport interface Filter {\n field: string;\n operator: EntityFilterOperator;\n value: any;\n}\nexport interface Sort {\n field: string;\n direction: number /* int */; // 1 for asc, -1 for desc\n}\nexport interface FieldValidation {\n required: boolean;\n min?: number /* float64 */;\n max?: number /* float64 */;\n minLength?: number /* int */;\n maxLength?: number /* int */;\n pattern?: string;\n customRules?: ValidationRule[];\n}\nexport interface ValidationRule {\n name: string;\n conditions: ValidationRuleCondition[];\n}\nexport interface ValidationRuleCondition {\n field: string;\n operator: string;\n value: any;\n}\nexport interface RecordReference {\n entityName: string;\n recordId: string /* uuid */;\n fieldName: string;\n referencedAt: string /* RFC3339 */;\n}\nexport interface InsertOneResult {\n insertedId: string;\n success: boolean;\n error: string;\n}\n/**\n * Query related models\n */\nexport interface EntityQuery {\n filters: { [key: string]: any};\n page: number /* int64 */;\n pageSize: number /* int64 */;\n sortBy: string;\n sortOrder: number /* int */;\n includeLookups?: LookupInclude[];\n include?: string[]; // Fields to include\n exclude?: string[]; // Fields to exclude\n}\nexport interface LookupInclude {\n entityName: string;\n fieldName: string;\n fields?: string[];\n}\nexport interface QueryRequest {\n orgId: string;\n entityName: string;\n viewId?: string /* uuid */;\n query: EntityQuery;\n}\n/**\n * Request/Response models\n */\nexport interface CreateEntityDefinitionRequest {\n orgId: string;\n definition: EntityDefinition;\n}\nexport interface CreateOrgSchemaRequest {\n orgId: string /* uuid */;\n}\nexport interface CreateOrgSchemaResponse {\n metadata: ResponseMetadata;\n}\nexport interface DropOrgSchemaRequest {\n orgId: string /* uuid */;\n}\nexport interface DropOrgSchemaResponse {\n metadata: ResponseMetadata;\n}\nexport interface CreateRecordRequest {\n orgId: string;\n entityName: string;\n record: EntityRecord;\n}\nexport interface UpdateRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string /* uuid */;\n record: EntityRecord;\n}\nexport interface DeleteRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string;\n}\n/**\n * View models\n */\nexport interface EntityView {\n id: string /* uuid */;\n name: string;\n displayName: string;\n entityName: string;\n columns: ViewColumn[];\n filters: ViewFilter[];\n lookups: LookupInclude[];\n sortBy?: string;\n sortOrder?: number /* int */;\n isDefault: boolean;\n createdAt: string /* RFC3339 */;\n updatedAt: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\nexport interface ViewColumn {\n fieldName: string;\n displayName: string;\n width: number /* int */;\n sortable: boolean;\n visible: boolean;\n order: number /* int */;\n}\nexport interface ViewFilter {\n fieldName: string;\n operator: string;\n value: any;\n}\n/**\n * Bulk operation models\n */\nexport interface BulkCreateRequest {\n orgId: string;\n entityName: string;\n records: EntityRecord[];\n}\nexport interface BulkUpdateRequest {\n orgId: string;\n entityName: string;\n records: EntityRecord[];\n}\nexport interface BulkDeleteRequest {\n orgId: string;\n entityName: string;\n recordIds: string /* uuid */[];\n}\nexport interface UpdateEntityDefinitionRequest {\n orgId: string;\n entityName: string; // Identify which entity to update\n definition: EntityDefinition;\n}\nexport interface GetEntityDefinitionRequest {\n orgId: string;\n entityName: string;\n}\nexport interface DeleteEntityDefinitionRequest {\n orgId: string;\n entityName: string;\n deleteRecords?: boolean; // If true, delete all entity records before deleting definition\n hardDelete?: boolean; // If true, permanently delete from database instead of soft delete\n}\nexport interface ListEntityDefinitionsRequest {\n orgId: string;\n module?: string; // Optional: filter by module (sales, marketing, etc)\n status?: string; // Optional: active, inactive, etc\n}\n/**\n * View related requests\n */\nexport interface CreateViewRequest {\n orgId: string;\n entityName: string;\n view: EntityView;\n}\nexport interface UpdateViewRequest {\n orgId: string;\n view: EntityView;\n}\nexport interface DeleteViewRequest {\n orgId: string;\n viewId: string /* uuid */;\n}\nexport interface GetViewRequest {\n orgId: string;\n viewId: string /* uuid */;\n}\nexport interface ListViewsRequest {\n orgId: string;\n entityName: string;\n}\n/**\n * Response models\n */\nexport interface EntityDefinitionResponse {\n definition: EntityDefinition;\n metadata: ResponseMetadata;\n}\nexport interface ListEntityDefinitionsResponse {\n definitions: EntityDefinition[];\n metadata: ResponseMetadata;\n}\nexport interface EntityViewResponse {\n view: EntityView;\n metadata: ResponseMetadata;\n}\nexport interface ListViewsResponse {\n views: EntityView[];\n metadata: ResponseMetadata;\n}\nexport interface EntityRecordResponse {\n record: EntityRecord;\n metadata: ResponseMetadata;\n}\nexport interface ListEntityRecordsResponse {\n records?: ListResult<EntityRecord>;\n metadata: ResponseMetadata;\n}\n/**\n * Common response metadata\n */\nexport interface ResponseMetadata {\n success: boolean;\n timestamp: string /* RFC3339 */;\n message?: string;\n error?: string;\n}\nexport interface ListOptions {\n Page: number /* int64 */;\n PageSize: number /* int64 */;\n SortBy: string;\n SortOrder: number /* int */;\n Filters: { [key: string]: any};\n Include: string[];\n Exclude: string[];\n}\nexport interface ListResult<T extends any> {\n items: T[];\n totalCount: number /* int64 */;\n currentPage: number /* int64 */;\n pageSize: number /* int64 */;\n totalPages: number /* int64 */;\n}\nexport interface GetEntityRecordRequest {\n orgId: string;\n entityName: string;\n recordId: string;\n}\nexport interface GetEntityRecordResponse {\n record?: EntityRecord;\n metadata: ResponseMetadata;\n}\nexport interface CountEntityRecordsRequest {\n orgId: string;\n entityName: string;\n filters?: { [key: string]: any};\n}\nexport interface CountEntityRecordsResponse {\n count: number /* int64 */;\n metadata: ResponseMetadata;\n}\n\n//////////\n// source: events.go\n\nexport interface EntityRecordChangeEvent {\n orgId: string;\n entityName: string;\n recordId: string;\n record?: EntityRecord;\n changes?: RecordChange;\n action: RecordChangeAction; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport interface RecordChange {\n /**\n * OldValues map[string]TypedValue `json:\"oldValues,omitempty\"`\n * NewValues map[string]TypedValue `json:\"newValues,omitempty\"`\n */\n changedAt: string /* RFC3339 */;\n changedBy: string /* ObjectID */;\n fields: string[]; // List of changed field names for quick reference\n}\nexport interface EntityDefinitionChangeEvent {\n orgId: string;\n definition?: EntityDefinition;\n action: string; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport interface EntityViewChangeEvent {\n orgId: string;\n entityName: string;\n view?: EntityView;\n action: string; // created, updated, deleted\n timestamp: string /* RFC3339 */;\n}\nexport type RecordChangeAction = string;\nexport const RecordChangeActionCreated: RecordChangeAction = \"created\";\nexport const RecordChangeActionUpdated: RecordChangeAction = \"updated\";\nexport const RecordChangeActionDeleted: RecordChangeAction = \"deleted\";\n\n//////////\n// source: subjects.go\n\nexport const EntityOrgSchemaCreate = \"entity.org.schema.create\";\nexport const EntityOrgSchemaDrop = \"entity.org.schema.drop\";\nexport const EntityDefinitionCreate = \"entity.definition.create\";\nexport const EntityDefinitionCreated = \"entity.definition.created\";\nexport const EntityDefinitionUpdate = \"entity.definition.update\";\nexport const EntityDefinitionGet = \"entity.definition.get\";\nexport const EntityDefinitionGetServer = \"entity.definition.get.server\";\nexport const EntityDefinitionList = \"entity.definition.list\";\nexport const EntityDefinitionUpdated = \"entity.definition.updated\";\nexport const EntityDefinitionDelete = \"entity.definition.delete\";\nexport const EntityDefinitionDeleted = \"entity.definition.deleted\";\nexport const EntityRecordCreate = \"entity.record.create\";\nexport const EntityRecordCreated = \"entity.record.created\";\nexport const EntityRecordGet = \"entity.record.get\";\nexport const EntityRecordQuery = \"entity.record.query\";\nexport const EntityRecordCount = \"entity.record.count\";\nexport const EntityRecordUpdate = \"entity.record.update\";\nexport const EntityRecordUpdated = \"entity.record.updated\";\nexport const EntityRecordDelete = \"entity.record.delete\";\nexport const EntityRecordDeleted = \"entity.record.deleted\";\nexport const EntityRecordsBulkCreate = \"entity.records.bulk.create\";\nexport const EntityRecordsBulkCreated = \"entity.records.bulk.created\";\nexport const EntityRecordsBulkUpdate = \"entity.records.bulk.update\";\nexport const EntityRecordsBulkUpdated = \"entity.records.bulk.updated\";\nexport const EntityRecordsBulkDelete = \"entity.records.bulk.delete\";\nexport const EntityRecordsBulkDeleted = \"entity.records.bulk.deleted\";\nexport const EntityViewCreate = \"entity.view.create\";\nexport const EntityViewCreated = \"entity.view.created\";\nexport const EntityViewUpdate = \"entity.view.update\";\nexport const EntityViewUpdated = \"entity.view.updated\";\nexport const EntityViewDelete = \"entity.view.delete\";\nexport const EntityViewDeleted = \"entity.view.deleted\";\nexport const EntityViewList = \"entity.view.list\";\n"]}