@revealui/contracts 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +160 -0
  3. package/dist/a2a/index.d.ts +383 -0
  4. package/dist/a2a/index.d.ts.map +1 -0
  5. package/dist/a2a/index.js +276 -0
  6. package/dist/a2a/index.js.map +1 -0
  7. package/dist/actions/action-validator.d.ts +48 -0
  8. package/dist/actions/action-validator.d.ts.map +1 -0
  9. package/dist/actions/action-validator.js +288 -0
  10. package/dist/actions/action-validator.js.map +1 -0
  11. package/dist/actions/index.d.ts +7 -0
  12. package/dist/actions/index.d.ts.map +1 -0
  13. package/dist/actions/index.js +7 -0
  14. package/dist/actions/index.js.map +1 -0
  15. package/dist/agents/index.d.ts +628 -0
  16. package/dist/agents/index.d.ts.map +1 -0
  17. package/dist/agents/index.js +511 -0
  18. package/dist/agents/index.js.map +1 -0
  19. package/dist/agents/types.d.ts +22 -0
  20. package/dist/agents/types.d.ts.map +1 -0
  21. package/dist/agents/types.js +2 -0
  22. package/dist/agents/types.js.map +1 -0
  23. package/dist/api/auth.d.ts +60 -0
  24. package/dist/api/auth.d.ts.map +1 -0
  25. package/dist/api/auth.js +84 -0
  26. package/dist/api/auth.js.map +1 -0
  27. package/dist/api/chat.d.ts +45 -0
  28. package/dist/api/chat.d.ts.map +1 -0
  29. package/dist/api/chat.js +55 -0
  30. package/dist/api/chat.js.map +1 -0
  31. package/dist/api/gdpr.d.ts +39 -0
  32. package/dist/api/gdpr.d.ts.map +1 -0
  33. package/dist/api/gdpr.js +53 -0
  34. package/dist/api/gdpr.js.map +1 -0
  35. package/dist/cms/collection.d.ts +108 -0
  36. package/dist/cms/collection.d.ts.map +1 -0
  37. package/dist/cms/collection.js +144 -0
  38. package/dist/cms/collection.js.map +1 -0
  39. package/dist/cms/compat.d.ts +128 -0
  40. package/dist/cms/compat.d.ts.map +1 -0
  41. package/dist/cms/compat.js +141 -0
  42. package/dist/cms/compat.js.map +1 -0
  43. package/dist/cms/config-contract.d.ts +278 -0
  44. package/dist/cms/config-contract.d.ts.map +1 -0
  45. package/dist/cms/config-contract.js +220 -0
  46. package/dist/cms/config-contract.js.map +1 -0
  47. package/dist/cms/config.d.ts +351 -0
  48. package/dist/cms/config.d.ts.map +1 -0
  49. package/dist/cms/config.js +50 -0
  50. package/dist/cms/config.js.map +1 -0
  51. package/dist/cms/errors.d.ts +122 -0
  52. package/dist/cms/errors.d.ts.map +1 -0
  53. package/dist/cms/errors.js +163 -0
  54. package/dist/cms/errors.js.map +1 -0
  55. package/dist/cms/extensibility.d.ts +211 -0
  56. package/dist/cms/extensibility.d.ts.map +1 -0
  57. package/dist/cms/extensibility.js +313 -0
  58. package/dist/cms/extensibility.js.map +1 -0
  59. package/dist/cms/field.d.ts +69 -0
  60. package/dist/cms/field.d.ts.map +1 -0
  61. package/dist/cms/field.js +94 -0
  62. package/dist/cms/field.js.map +1 -0
  63. package/dist/cms/functions.d.ts +466 -0
  64. package/dist/cms/functions.d.ts.map +1 -0
  65. package/dist/cms/functions.js +19 -0
  66. package/dist/cms/functions.js.map +1 -0
  67. package/dist/cms/global.d.ts +45 -0
  68. package/dist/cms/global.d.ts.map +1 -0
  69. package/dist/cms/global.js +62 -0
  70. package/dist/cms/global.js.map +1 -0
  71. package/dist/cms/index.d.ts +23 -0
  72. package/dist/cms/index.d.ts.map +1 -0
  73. package/dist/cms/index.js +42 -0
  74. package/dist/cms/index.js.map +1 -0
  75. package/dist/cms/structure.d.ts +1601 -0
  76. package/dist/cms/structure.d.ts.map +1 -0
  77. package/dist/cms/structure.js +757 -0
  78. package/dist/cms/structure.js.map +1 -0
  79. package/dist/content/index.d.ts +1542 -0
  80. package/dist/content/index.d.ts.map +1 -0
  81. package/dist/content/index.js +522 -0
  82. package/dist/content/index.js.map +1 -0
  83. package/dist/database/bridge.d.ts +177 -0
  84. package/dist/database/bridge.d.ts.map +1 -0
  85. package/dist/database/bridge.js +139 -0
  86. package/dist/database/bridge.js.map +1 -0
  87. package/dist/database/index.d.ts +8 -0
  88. package/dist/database/index.d.ts.map +1 -0
  89. package/dist/database/index.js +9 -0
  90. package/dist/database/index.js.map +1 -0
  91. package/dist/database/type-bridge.d.ts +178 -0
  92. package/dist/database/type-bridge.d.ts.map +1 -0
  93. package/dist/database/type-bridge.js +154 -0
  94. package/dist/database/type-bridge.js.map +1 -0
  95. package/dist/entities/agent-context.d.ts +280 -0
  96. package/dist/entities/agent-context.d.ts.map +1 -0
  97. package/dist/entities/agent-context.js +390 -0
  98. package/dist/entities/agent-context.js.map +1 -0
  99. package/dist/entities/agent-memory.d.ts +661 -0
  100. package/dist/entities/agent-memory.d.ts.map +1 -0
  101. package/dist/entities/agent-memory.js +544 -0
  102. package/dist/entities/agent-memory.js.map +1 -0
  103. package/dist/entities/board.d.ts +95 -0
  104. package/dist/entities/board.d.ts.map +1 -0
  105. package/dist/entities/board.js +99 -0
  106. package/dist/entities/board.js.map +1 -0
  107. package/dist/entities/code-provenance.d.ts +270 -0
  108. package/dist/entities/code-provenance.d.ts.map +1 -0
  109. package/dist/entities/code-provenance.js +339 -0
  110. package/dist/entities/code-provenance.js.map +1 -0
  111. package/dist/entities/index.d.ts +22 -0
  112. package/dist/entities/index.d.ts.map +1 -0
  113. package/dist/entities/index.js +22 -0
  114. package/dist/entities/index.js.map +1 -0
  115. package/dist/entities/media.d.ts +485 -0
  116. package/dist/entities/media.d.ts.map +1 -0
  117. package/dist/entities/media.js +606 -0
  118. package/dist/entities/media.js.map +1 -0
  119. package/dist/entities/page-revision.d.ts +390 -0
  120. package/dist/entities/page-revision.d.ts.map +1 -0
  121. package/dist/entities/page-revision.js +406 -0
  122. package/dist/entities/page-revision.js.map +1 -0
  123. package/dist/entities/page.d.ts +2349 -0
  124. package/dist/entities/page.d.ts.map +1 -0
  125. package/dist/entities/page.js +377 -0
  126. package/dist/entities/page.js.map +1 -0
  127. package/dist/entities/post.d.ts +619 -0
  128. package/dist/entities/post.d.ts.map +1 -0
  129. package/dist/entities/post.js +555 -0
  130. package/dist/entities/post.js.map +1 -0
  131. package/dist/entities/price.d.ts +772 -0
  132. package/dist/entities/price.d.ts.map +1 -0
  133. package/dist/entities/price.js +308 -0
  134. package/dist/entities/price.js.map +1 -0
  135. package/dist/entities/product.d.ts +753 -0
  136. package/dist/entities/product.d.ts.map +1 -0
  137. package/dist/entities/product.js +307 -0
  138. package/dist/entities/product.js.map +1 -0
  139. package/dist/entities/session.d.ts +222 -0
  140. package/dist/entities/session.d.ts.map +1 -0
  141. package/dist/entities/session.js +253 -0
  142. package/dist/entities/session.js.map +1 -0
  143. package/dist/entities/site.d.ts +387 -0
  144. package/dist/entities/site.d.ts.map +1 -0
  145. package/dist/entities/site.js +348 -0
  146. package/dist/entities/site.js.map +1 -0
  147. package/dist/entities/ticket-comment.d.ts +49 -0
  148. package/dist/entities/ticket-comment.d.ts.map +1 -0
  149. package/dist/entities/ticket-comment.js +58 -0
  150. package/dist/entities/ticket-comment.js.map +1 -0
  151. package/dist/entities/ticket-label.d.ts +64 -0
  152. package/dist/entities/ticket-label.d.ts.map +1 -0
  153. package/dist/entities/ticket-label.js +77 -0
  154. package/dist/entities/ticket-label.js.map +1 -0
  155. package/dist/entities/ticket.d.ts +204 -0
  156. package/dist/entities/ticket.d.ts.map +1 -0
  157. package/dist/entities/ticket.js +205 -0
  158. package/dist/entities/ticket.js.map +1 -0
  159. package/dist/entities/user.d.ts +336 -0
  160. package/dist/entities/user.d.ts.map +1 -0
  161. package/dist/entities/user.js +255 -0
  162. package/dist/entities/user.js.map +1 -0
  163. package/dist/foundation/contract.d.ts +221 -0
  164. package/dist/foundation/contract.d.ts.map +1 -0
  165. package/dist/foundation/contract.js +133 -0
  166. package/dist/foundation/contract.js.map +1 -0
  167. package/dist/foundation/index.d.ts +7 -0
  168. package/dist/foundation/index.d.ts.map +1 -0
  169. package/dist/foundation/index.js +7 -0
  170. package/dist/foundation/index.js.map +1 -0
  171. package/dist/generated/contracts.d.ts +1514 -0
  172. package/dist/generated/contracts.d.ts.map +1 -0
  173. package/dist/generated/contracts.js +959 -0
  174. package/dist/generated/contracts.js.map +1 -0
  175. package/dist/generated/database.d.ts +48 -0
  176. package/dist/generated/database.d.ts.map +1 -0
  177. package/dist/generated/database.js +17 -0
  178. package/dist/generated/database.js.map +1 -0
  179. package/dist/generated/zod-schemas.d.ts +14793 -0
  180. package/dist/generated/zod-schemas.d.ts.map +1 -0
  181. package/dist/generated/zod-schemas.js +547 -0
  182. package/dist/generated/zod-schemas.js.map +1 -0
  183. package/dist/index.d.ts +50 -0
  184. package/dist/index.d.ts.map +1 -0
  185. package/dist/index.js +81 -0
  186. package/dist/index.js.map +1 -0
  187. package/dist/representation/index.d.ts +304 -0
  188. package/dist/representation/index.d.ts.map +1 -0
  189. package/dist/representation/index.js +280 -0
  190. package/dist/representation/index.js.map +1 -0
  191. package/package.json +117 -0
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Dual Representation Layer
3
+ *
4
+ * Every entity in RevealUI has two faces:
5
+ * 1. Human: Visual, intuitive, natural language
6
+ * 2. Agent: Structured, typed, optimized for reasoning
7
+ *
8
+ * This module provides the types and utilities for bridging both.
9
+ *
10
+ * IMPORTANT: Agent representations are metadata that describe how agents
11
+ * should interact with entities. The actual enforcement happens in the
12
+ * @revealui/actions and @revealui/ai packages at runtime.
13
+ */
14
+ import { z } from 'zod/v4';
15
+ // =============================================================================
16
+ // Schema Version
17
+ // =============================================================================
18
+ /**
19
+ * Current schema version for the representation layer.
20
+ * Increment when making breaking changes to schemas.
21
+ */
22
+ export const REPRESENTATION_SCHEMA_VERSION = 1;
23
+ // =============================================================================
24
+ // Embedding Configuration
25
+ // =============================================================================
26
+ /**
27
+ * Supported embedding models and their dimensions.
28
+ * Add new models as needed.
29
+ */
30
+ export const EMBEDDING_DIMENSIONS = {
31
+ 'openai-text-embedding-3-small': 1536,
32
+ 'openai-text-embedding-3-large': 3072,
33
+ 'openai-text-embedding-ada-002': 1536,
34
+ 'cohere-embed-english-v3': 1024,
35
+ 'cohere-embed-multilingual-v3': 1024,
36
+ 'voyage-large-2': 1536,
37
+ custom: 0, // Variable dimension, must be specified
38
+ };
39
+ /**
40
+ * Default embedding model and dimension
41
+ */
42
+ export const DEFAULT_EMBEDDING_MODEL = 'openai-text-embedding-3-small';
43
+ export const DEFAULT_EMBEDDING_DIMENSION = EMBEDDING_DIMENSIONS[DEFAULT_EMBEDDING_MODEL];
44
+ // =============================================================================
45
+ // Embedding Schema
46
+ // =============================================================================
47
+ /**
48
+ * Embedding with model information for proper validation
49
+ */
50
+ export const EmbeddingSchema = z
51
+ .object({
52
+ /** The embedding model used */
53
+ model: z.string(),
54
+ /** The embedding vector */
55
+ vector: z.array(z.number()),
56
+ /** Dimension of the vector (for validation) */
57
+ dimension: z.number().int().positive(),
58
+ /** When this embedding was generated */
59
+ generatedAt: z.string().datetime(),
60
+ })
61
+ .refine((data) => data.vector.length === data.dimension, {
62
+ message: 'Embedding vector length must match specified dimension',
63
+ });
64
+ /**
65
+ * Creates an embedding with validation
66
+ */
67
+ export function createEmbedding(vector, model = DEFAULT_EMBEDDING_MODEL) {
68
+ const dimension = vector.length;
69
+ // Validate against known models if model is known
70
+ if (model in EMBEDDING_DIMENSIONS) {
71
+ const expectedDimension = EMBEDDING_DIMENSIONS[model];
72
+ // 0 means custom/variable dimension, skip validation
73
+ if (expectedDimension !== 0 && expectedDimension !== dimension) {
74
+ throw new Error(`Embedding dimension mismatch: expected ${expectedDimension} for model ${model}, got ${dimension}`);
75
+ }
76
+ }
77
+ return {
78
+ model,
79
+ vector,
80
+ dimension,
81
+ generatedAt: new Date().toISOString(),
82
+ };
83
+ }
84
+ // =============================================================================
85
+ // Human Representation
86
+ // =============================================================================
87
+ /**
88
+ * How an entity appears to humans
89
+ */
90
+ export const HumanRepresentationSchema = z.object({
91
+ /** Display name shown in UI */
92
+ label: z.string(),
93
+ /** Natural language description */
94
+ description: z.string().optional(),
95
+ /** Icon identifier (for UI rendering) */
96
+ icon: z.string().optional(),
97
+ /** Color hint for visual distinction */
98
+ color: z.string().optional(),
99
+ /** Preview text (for search results, tooltips) */
100
+ preview: z.string().optional(),
101
+ /** Suggested actions in natural language */
102
+ suggestions: z.array(z.string()).optional(),
103
+ /** Help text for this entity */
104
+ helpText: z.string().optional(),
105
+ });
106
+ // =============================================================================
107
+ // Agent Constraint
108
+ // =============================================================================
109
+ /**
110
+ * A constraint that agents must respect
111
+ */
112
+ export const AgentConstraintSchema = z.object({
113
+ /** Constraint type */
114
+ type: z.enum([
115
+ 'readonly', // Cannot modify
116
+ 'required', // Must have a value
117
+ 'immutable', // Cannot change after creation
118
+ 'range', // Value must be in range
119
+ 'pattern', // Value must match pattern
120
+ 'dependency', // Depends on another field
121
+ 'capability', // Requires agent capability
122
+ 'permission', // Requires user permission
123
+ 'custom', // Custom constraint logic
124
+ ]),
125
+ /** Field this constraint applies to (if applicable) */
126
+ field: z.string().optional(),
127
+ /** Constraint parameters */
128
+ params: z.record(z.string(), z.unknown()),
129
+ /** Human-readable explanation of the constraint */
130
+ message: z.string().optional(),
131
+ });
132
+ // =============================================================================
133
+ // Agent Action
134
+ // =============================================================================
135
+ /**
136
+ * An action that agents can perform on this entity
137
+ */
138
+ export const AgentActionDefinitionSchema = z.object({
139
+ /** Action name (machine-readable) */
140
+ name: z.string(),
141
+ /** Human-readable description */
142
+ description: z.string(),
143
+ /** Parameter definitions */
144
+ params: z.record(z.string(), z.object({
145
+ type: z.string(),
146
+ required: z.boolean().optional(),
147
+ description: z.string().optional(),
148
+ default: z.unknown().optional(),
149
+ enum: z.array(z.string()).optional(),
150
+ })),
151
+ /** Return type description */
152
+ returns: z
153
+ .object({
154
+ type: z.string(),
155
+ description: z.string().optional(),
156
+ })
157
+ .optional(),
158
+ /** Required capabilities to perform this action */
159
+ requiredCapabilities: z.array(z.string()).optional(),
160
+ /** Side effects of this action */
161
+ sideEffects: z.array(z.string()).optional(),
162
+ /** Whether this action is destructive (defaults to false if not specified) */
163
+ destructive: z.boolean().optional(),
164
+ });
165
+ // =============================================================================
166
+ // Agent Relation
167
+ // =============================================================================
168
+ /**
169
+ * A relationship to another entity
170
+ */
171
+ export const AgentRelationSchema = z.object({
172
+ /** Relationship type */
173
+ type: z.enum([
174
+ 'parent', // This entity is a child of target
175
+ 'child', // This entity is a parent of target
176
+ 'sibling', // Same level as target
177
+ 'reference', // References target
178
+ 'dependency', // Depends on target
179
+ 'related', // Generally related
180
+ ]),
181
+ /** Target entity ID */
182
+ targetId: z.string(),
183
+ /** Target entity type */
184
+ targetType: z.string(),
185
+ /** Relationship weight (0-1, for relevance) */
186
+ weight: z.number().min(0).max(1).default(1),
187
+ /** Additional metadata */
188
+ metadata: z.record(z.string(), z.unknown()).optional(),
189
+ });
190
+ // =============================================================================
191
+ // Agent Representation
192
+ // =============================================================================
193
+ /**
194
+ * How an entity appears to AI agents.
195
+ *
196
+ * NOTE: This is metadata that describes how agents SHOULD interact.
197
+ * Actual enforcement happens at runtime in @revealui/actions.
198
+ */
199
+ export const AgentRepresentationSchema = z.object({
200
+ /** Semantic type for agent reasoning */
201
+ semanticType: z.string(),
202
+ /** Semantic embedding (for similarity search) */
203
+ embedding: EmbeddingSchema.optional(),
204
+ /** Structured constraints the agent must respect */
205
+ constraints: z.array(AgentConstraintSchema).optional(),
206
+ /** Available actions the agent can take */
207
+ actions: z.array(AgentActionDefinitionSchema).optional(),
208
+ /** Relationships to other entities (for graph reasoning) */
209
+ relations: z.array(AgentRelationSchema).optional(),
210
+ /** Metadata for retrieval/search */
211
+ metadata: z.record(z.string(), z.unknown()).optional(),
212
+ /** Keywords for search/matching */
213
+ keywords: z.array(z.string()).optional(),
214
+ /** Priority/importance score (0-1) */
215
+ priority: z.number().min(0).max(1).optional(),
216
+ });
217
+ // =============================================================================
218
+ // Dual Entity
219
+ // =============================================================================
220
+ /**
221
+ * Base schema for all RevealUI entities with dual representation
222
+ */
223
+ export const DualEntitySchema = z.object({
224
+ /** Unique identifier */
225
+ id: z.string(),
226
+ /** Schema version for migrations */
227
+ version: z.number().int().default(REPRESENTATION_SCHEMA_VERSION),
228
+ /** Human-facing representation */
229
+ human: HumanRepresentationSchema.optional(),
230
+ /** Agent-facing representation */
231
+ agent: AgentRepresentationSchema.optional(),
232
+ /** ISO timestamp of creation */
233
+ createdAt: z.string().datetime(),
234
+ /** ISO timestamp of last update */
235
+ updatedAt: z.string().datetime(),
236
+ });
237
+ // =============================================================================
238
+ // Translation Utilities
239
+ // =============================================================================
240
+ /**
241
+ * Generates a human representation from structured data
242
+ */
243
+ export function toHumanRepresentation(data) {
244
+ return {
245
+ label: data.name || data.title || 'Untitled',
246
+ description: data.description,
247
+ preview: data.description?.slice(0, 100),
248
+ icon: data.icon,
249
+ color: data.color,
250
+ };
251
+ }
252
+ /**
253
+ * Generates a basic agent representation
254
+ */
255
+ export function toAgentRepresentation(semanticType, options) {
256
+ return {
257
+ semanticType,
258
+ ...options,
259
+ };
260
+ }
261
+ /**
262
+ * Creates timestamps for new entities
263
+ */
264
+ export function createTimestamps() {
265
+ const now = new Date().toISOString();
266
+ return { createdAt: now, updatedAt: now };
267
+ }
268
+ /**
269
+ * Updates the updatedAt timestamp
270
+ */
271
+ export function updateTimestamp() {
272
+ return { updatedAt: new Date().toISOString() };
273
+ }
274
+ /**
275
+ * Creates a new version of an entity (for versioned updates)
276
+ */
277
+ export function incrementVersion(currentVersion) {
278
+ return currentVersion + 1;
279
+ }
280
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/representation/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,117 @@
1
+ {
2
+ "name": "@revealui/contracts",
3
+ "version": "1.0.0",
4
+ "description": "Unified contracts package for RevealUI - schemas, validation, and type safety across the stack",
5
+ "keywords": [
6
+ "contracts",
7
+ "revealui",
8
+ "schema",
9
+ "typescript",
10
+ "validation",
11
+ "zod"
12
+ ],
13
+ "license": "MIT",
14
+ "dependencies": {
15
+ "drizzle-zod": "^0.8.3",
16
+ "zod": "^4.3.5",
17
+ "@revealui/db": "0.2.0"
18
+ },
19
+ "devDependencies": {
20
+ "@types/node": "^25.3.0",
21
+ "typescript": "^5.9.3",
22
+ "vitest": "^4.0.18",
23
+ "dev": "0.0.1"
24
+ },
25
+ "exports": {
26
+ ".": {
27
+ "types": "./dist/index.d.ts",
28
+ "import": "./dist/index.js"
29
+ },
30
+ "./foundation": {
31
+ "types": "./dist/foundation/index.d.ts",
32
+ "import": "./dist/foundation/index.js"
33
+ },
34
+ "./representation": {
35
+ "types": "./dist/representation/index.d.ts",
36
+ "import": "./dist/representation/index.js"
37
+ },
38
+ "./entities": {
39
+ "types": "./dist/entities/index.d.ts",
40
+ "import": "./dist/entities/index.js"
41
+ },
42
+ "./content": {
43
+ "types": "./dist/content/index.d.ts",
44
+ "import": "./dist/content/index.js"
45
+ },
46
+ "./cms": {
47
+ "types": "./dist/cms/index.d.ts",
48
+ "import": "./dist/cms/index.js"
49
+ },
50
+ "./agents": {
51
+ "types": "./dist/agents/index.d.ts",
52
+ "import": "./dist/agents/index.js"
53
+ },
54
+ "./database": {
55
+ "types": "./dist/database/index.d.ts",
56
+ "import": "./dist/database/index.js"
57
+ },
58
+ "./actions": {
59
+ "types": "./dist/actions/index.d.ts",
60
+ "import": "./dist/actions/index.js"
61
+ },
62
+ "./core": {
63
+ "types": "./dist/cms/index.d.ts",
64
+ "import": "./dist/cms/index.js"
65
+ },
66
+ "./core/contracts": {
67
+ "types": "./dist/cms/index.d.ts",
68
+ "import": "./dist/cms/index.js"
69
+ },
70
+ "./blocks": {
71
+ "types": "./dist/content/index.d.ts",
72
+ "import": "./dist/content/index.js"
73
+ },
74
+ "./generated": {
75
+ "types": "./dist/generated/database.d.ts",
76
+ "import": "./dist/generated/database.js"
77
+ },
78
+ "./generated/database": {
79
+ "types": "./dist/generated/database.d.ts",
80
+ "import": "./dist/generated/database.js"
81
+ },
82
+ "./generated/zod-schemas": {
83
+ "types": "./dist/generated/zod-schemas.d.ts",
84
+ "import": "./dist/generated/zod-schemas.js"
85
+ },
86
+ "./generated/contracts": {
87
+ "types": "./dist/generated/contracts.d.ts",
88
+ "import": "./dist/generated/contracts.js"
89
+ }
90
+ },
91
+ "files": [
92
+ "dist"
93
+ ],
94
+ "main": "./dist/index.js",
95
+ "module": "./dist/index.js",
96
+ "publishConfig": {
97
+ "access": "public",
98
+ "registry": "https://registry.npmjs.org"
99
+ },
100
+ "peerDependencies": {
101
+ "typescript": ">=5.0.0",
102
+ "@revealui/db": "0.2.0"
103
+ },
104
+ "type": "module",
105
+ "types": "./dist/index.d.ts",
106
+ "scripts": {
107
+ "build": "tsc",
108
+ "clean": "rm -rf dist",
109
+ "dev": "tsc --watch",
110
+ "lint": "biome check .",
111
+ "lint:eslint": "eslint .",
112
+ "test": "vitest run",
113
+ "test:coverage": "vitest run --coverage",
114
+ "test:watch": "vitest",
115
+ "typecheck": "tsc --noEmit"
116
+ }
117
+ }