ai-props 2.1.1 → 2.3.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.
- package/.dev.vars +2 -0
- package/CHANGELOG.md +24 -0
- package/README.md +131 -118
- package/package.json +30 -4
- package/src/ai.ts +12 -31
- package/src/cascade.ts +795 -0
- package/src/client.ts +440 -0
- package/src/durable-cascade.ts +743 -0
- package/src/event-bridge.ts +478 -0
- package/src/generate.ts +14 -12
- package/src/hoc.ts +15 -19
- package/src/hono-jsx.ts +675 -0
- package/src/index.ts +30 -0
- package/src/mdx-types.ts +169 -0
- package/src/mdx-utils.ts +437 -0
- package/src/mdx.ts +1008 -0
- package/src/rpc.ts +614 -0
- package/src/streaming.ts +618 -0
- package/src/validate.ts +15 -29
- package/src/worker.ts +547 -0
- package/test/cascade.test.ts +338 -0
- package/test/durable-cascade.test.ts +319 -0
- package/test/event-bridge.test.ts +351 -0
- package/test/generate.test.ts +6 -16
- package/test/mdx.test.ts +817 -0
- package/test/worker/capnweb-rpc.test.ts +1084 -0
- package/test/worker/full-flow.integration.test.ts +1463 -0
- package/test/worker/hono-jsx.test.ts +1258 -0
- package/test/worker/mdx-parsing.test.ts +1148 -0
- package/test/worker/setup.ts +56 -0
- package/test/worker.test.ts +595 -0
- package/tsconfig.json +2 -1
- package/vitest.config.js +6 -0
- package/vitest.config.ts +15 -1
- package/vitest.workers.config.ts +58 -0
- package/wrangler.jsonc +27 -0
- package/.turbo/turbo-build.log +0 -5
- package/dist/ai.d.ts +0 -125
- package/dist/ai.d.ts.map +0 -1
- package/dist/ai.js +0 -199
- package/dist/ai.js.map +0 -1
- package/dist/cache.d.ts +0 -66
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js +0 -183
- package/dist/cache.js.map +0 -1
- package/dist/generate.d.ts +0 -69
- package/dist/generate.d.ts.map +0 -1
- package/dist/generate.js +0 -221
- package/dist/generate.js.map +0 -1
- package/dist/hoc.d.ts +0 -164
- package/dist/hoc.d.ts.map +0 -1
- package/dist/hoc.js +0 -236
- package/dist/hoc.js.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -21
- package/dist/index.js.map +0 -1
- package/dist/types.d.ts +0 -152
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -7
- package/dist/types.js.map +0 -1
- package/dist/validate.d.ts +0 -58
- package/dist/validate.d.ts.map +0 -1
- package/dist/validate.js +0 -253
- package/dist/validate.js.map +0 -1
- package/src/ai.js +0 -198
- package/src/cache.js +0 -182
- package/src/generate.js +0 -220
- package/src/hoc.js +0 -235
- package/src/index.js +0 -20
- package/src/types.js +0 -6
- package/src/validate.js +0 -252
package/dist/hoc.js
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Higher-Order Component (HOC) for React components
|
|
3
|
-
*
|
|
4
|
-
* Provides withAIProps HOC for wrapping React components
|
|
5
|
-
* with AI-powered prop generation.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import { generateProps, mergeWithGenerated } from './generate.js';
|
|
10
|
-
/**
|
|
11
|
-
* Create props wrapper that can be used with any component system
|
|
12
|
-
*
|
|
13
|
-
* This is framework-agnostic and returns the enhanced props.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```ts
|
|
17
|
-
* const enhancer = createPropsEnhancer({
|
|
18
|
-
* schema: {
|
|
19
|
-
* title: 'Page title',
|
|
20
|
-
* description: 'Page description',
|
|
21
|
-
* },
|
|
22
|
-
* defaults: {
|
|
23
|
-
* title: 'Default Title',
|
|
24
|
-
* },
|
|
25
|
-
* })
|
|
26
|
-
*
|
|
27
|
-
* // Use with any component
|
|
28
|
-
* const props = await enhancer({ description: 'My page' })
|
|
29
|
-
* // { title: 'Default Title', description: 'My page' }
|
|
30
|
-
*
|
|
31
|
-
* const generatedProps = await enhancer({})
|
|
32
|
-
* // { title: 'AI-generated title', description: 'AI-generated description' }
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
export function createPropsEnhancer(options) {
|
|
36
|
-
const { schema, defaults = {}, required = [], exclude = [], config = {}, fallback } = options;
|
|
37
|
-
return async (partialProps) => {
|
|
38
|
-
try {
|
|
39
|
-
// Merge with defaults
|
|
40
|
-
const propsWithDefaults = { ...defaults, ...partialProps };
|
|
41
|
-
// Check required props
|
|
42
|
-
const missingRequired = required.filter(key => propsWithDefaults[key] === undefined);
|
|
43
|
-
if (missingRequired.length > 0) {
|
|
44
|
-
throw new Error(`Missing required props: ${missingRequired.join(', ')}`);
|
|
45
|
-
}
|
|
46
|
-
// Filter out excluded props from schema
|
|
47
|
-
const filteredSchema = filterSchemaKeys(schema, exclude);
|
|
48
|
-
// Generate missing props
|
|
49
|
-
return await mergeWithGenerated(filteredSchema, propsWithDefaults, {
|
|
50
|
-
model: config.model,
|
|
51
|
-
system: config.system,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
if (fallback) {
|
|
56
|
-
return { ...defaults, ...fallback, ...partialProps };
|
|
57
|
-
}
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Filter schema to exclude certain keys
|
|
64
|
-
*/
|
|
65
|
-
function filterSchemaKeys(schema, exclude) {
|
|
66
|
-
if (typeof schema === 'string' || exclude.length === 0) {
|
|
67
|
-
return schema;
|
|
68
|
-
}
|
|
69
|
-
const filtered = {};
|
|
70
|
-
for (const [key, value] of Object.entries(schema)) {
|
|
71
|
-
if (!exclude.includes(key)) {
|
|
72
|
-
filtered[key] = value;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return filtered;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Create an async props provider
|
|
79
|
-
*
|
|
80
|
-
* Returns a function that generates props on each call.
|
|
81
|
-
* Useful for SSR and static generation.
|
|
82
|
-
*
|
|
83
|
-
* @example
|
|
84
|
-
* ```ts
|
|
85
|
-
* const getPageProps = createAsyncPropsProvider({
|
|
86
|
-
* schema: {
|
|
87
|
-
* title: 'SEO-optimized page title',
|
|
88
|
-
* meta: { description: 'Meta description' },
|
|
89
|
-
* },
|
|
90
|
-
* })
|
|
91
|
-
*
|
|
92
|
-
* // In getStaticProps or getServerSideProps
|
|
93
|
-
* export async function getStaticProps() {
|
|
94
|
-
* const props = await getPageProps({ slug: 'about' })
|
|
95
|
-
* return { props }
|
|
96
|
-
* }
|
|
97
|
-
* ```
|
|
98
|
-
*/
|
|
99
|
-
export function createAsyncPropsProvider(options) {
|
|
100
|
-
const enhancer = createPropsEnhancer(options);
|
|
101
|
-
return {
|
|
102
|
-
/**
|
|
103
|
-
* Get props with AI generation
|
|
104
|
-
*/
|
|
105
|
-
getProps: enhancer,
|
|
106
|
-
/**
|
|
107
|
-
* Get props for multiple items
|
|
108
|
-
*/
|
|
109
|
-
getManyProps: async (contexts) => {
|
|
110
|
-
return Promise.all(contexts.map(enhancer));
|
|
111
|
-
},
|
|
112
|
-
/**
|
|
113
|
-
* Get props with caching hint
|
|
114
|
-
*/
|
|
115
|
-
getCachedProps: async (context, revalidate) => {
|
|
116
|
-
const props = await enhancer(context);
|
|
117
|
-
return { props, revalidate };
|
|
118
|
-
},
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Create a props transformer
|
|
123
|
-
*
|
|
124
|
-
* Transforms existing props by filling in missing values.
|
|
125
|
-
*
|
|
126
|
-
* @example
|
|
127
|
-
* ```ts
|
|
128
|
-
* const transformUserProps = createPropsTransformer({
|
|
129
|
-
* schema: {
|
|
130
|
-
* displayName: 'Display name for the user',
|
|
131
|
-
* initials: 'User initials (2 letters)',
|
|
132
|
-
* },
|
|
133
|
-
* })
|
|
134
|
-
*
|
|
135
|
-
* const user = await transformUserProps({
|
|
136
|
-
* username: 'johndoe',
|
|
137
|
-
* email: 'john@example.com',
|
|
138
|
-
* })
|
|
139
|
-
* // { username: 'johndoe', email: '...', displayName: 'John Doe', initials: 'JD' }
|
|
140
|
-
* ```
|
|
141
|
-
*/
|
|
142
|
-
export function createPropsTransformer(options) {
|
|
143
|
-
const { schema, transform, config = {} } = options;
|
|
144
|
-
return async (input) => {
|
|
145
|
-
const result = await generateProps({
|
|
146
|
-
schema,
|
|
147
|
-
context: input,
|
|
148
|
-
model: config.model,
|
|
149
|
-
system: config.system,
|
|
150
|
-
});
|
|
151
|
-
const generated = result.props;
|
|
152
|
-
if (transform) {
|
|
153
|
-
return { ...input, ...transform(input, generated) };
|
|
154
|
-
}
|
|
155
|
-
return { ...input, ...generated };
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Create a conditional props generator
|
|
160
|
-
*
|
|
161
|
-
* Only generates props when a condition is met.
|
|
162
|
-
*
|
|
163
|
-
* @example
|
|
164
|
-
* ```ts
|
|
165
|
-
* const maybeGenerateProps = createConditionalGenerator({
|
|
166
|
-
* schema: { summary: 'Article summary' },
|
|
167
|
-
* condition: (props) => !props.summary && props.content?.length > 100,
|
|
168
|
-
* })
|
|
169
|
-
* ```
|
|
170
|
-
*/
|
|
171
|
-
export function createConditionalGenerator(options) {
|
|
172
|
-
const { schema, condition, config = {} } = options;
|
|
173
|
-
return async (props) => {
|
|
174
|
-
if (!condition(props)) {
|
|
175
|
-
return props;
|
|
176
|
-
}
|
|
177
|
-
return mergeWithGenerated(schema, props, {
|
|
178
|
-
model: config.model,
|
|
179
|
-
system: config.system,
|
|
180
|
-
});
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Batch props generator for list rendering
|
|
185
|
-
*
|
|
186
|
-
* Efficiently generates props for multiple items.
|
|
187
|
-
*
|
|
188
|
-
* @example
|
|
189
|
-
* ```ts
|
|
190
|
-
* const batchGenerator = createBatchGenerator({
|
|
191
|
-
* schema: { title: 'Item title', description: 'Item description' },
|
|
192
|
-
* })
|
|
193
|
-
*
|
|
194
|
-
* const items = await batchGenerator.generate([
|
|
195
|
-
* { id: 1, category: 'tech' },
|
|
196
|
-
* { id: 2, category: 'science' },
|
|
197
|
-
* { id: 3, category: 'art' },
|
|
198
|
-
* ])
|
|
199
|
-
* ```
|
|
200
|
-
*/
|
|
201
|
-
export function createBatchGenerator(options) {
|
|
202
|
-
const { schema, concurrency = 3, config = {} } = options;
|
|
203
|
-
return {
|
|
204
|
-
/**
|
|
205
|
-
* Generate props for multiple items
|
|
206
|
-
*/
|
|
207
|
-
generate: async (items) => {
|
|
208
|
-
const results = [];
|
|
209
|
-
// Process in batches based on concurrency
|
|
210
|
-
for (let i = 0; i < items.length; i += concurrency) {
|
|
211
|
-
const batch = items.slice(i, i + concurrency);
|
|
212
|
-
const batchResults = await Promise.all(batch.map(item => mergeWithGenerated(schema, item, {
|
|
213
|
-
model: config.model,
|
|
214
|
-
system: config.system,
|
|
215
|
-
})));
|
|
216
|
-
results.push(...batchResults);
|
|
217
|
-
}
|
|
218
|
-
return results;
|
|
219
|
-
},
|
|
220
|
-
/**
|
|
221
|
-
* Generate props one at a time (for rate limiting)
|
|
222
|
-
*/
|
|
223
|
-
generateSequential: async (items) => {
|
|
224
|
-
const results = [];
|
|
225
|
-
for (const item of items) {
|
|
226
|
-
const result = await mergeWithGenerated(schema, item, {
|
|
227
|
-
model: config.model,
|
|
228
|
-
system: config.system,
|
|
229
|
-
});
|
|
230
|
-
results.push(result);
|
|
231
|
-
}
|
|
232
|
-
return results;
|
|
233
|
-
},
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
//# sourceMappingURL=hoc.js.map
|
package/dist/hoc.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hoc.js","sourceRoot":"","sources":["../src/hoc.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ai-props - AI-powered props for intelligent component properties
|
|
3
|
-
*
|
|
4
|
-
* This package provides utilities for automatically generating
|
|
5
|
-
* component props using AI based on schema definitions.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
export * from './types.js';
|
|
10
|
-
export { AI, createAIComponent, definePropsSchema, createComponentFactory, composeAIComponents, } from './ai.js';
|
|
11
|
-
export { generateProps, getPropsSync, prefetchProps, generatePropsMany, mergeWithGenerated, configureAIProps, getConfig, resetConfig, } from './generate.js';
|
|
12
|
-
export { MemoryPropsCache, LRUPropsCache, createCacheKey, getDefaultCache, configureCache, clearCache, DEFAULT_CACHE_TTL, } from './cache.js';
|
|
13
|
-
export { createPropsEnhancer, createAsyncPropsProvider, createPropsTransformer, createConditionalGenerator, createBatchGenerator, type WithAIPropsOptions, } from './hoc.js';
|
|
14
|
-
export { validateProps, hasRequiredProps, getMissingProps, isComplete, getMissingFromSchema, sanitizeProps, mergeWithDefaults, createValidator, assertValidProps, } from './validate.js';
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,YAAY,CAAA;AAG1B,OAAO,EACL,EAAE,EACF,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,WAAW,GACZ,MAAM,eAAe,CAAA;AAGtB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,eAAe,CAAA"}
|
package/dist/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ai-props - AI-powered props for intelligent component properties
|
|
3
|
-
*
|
|
4
|
-
* This package provides utilities for automatically generating
|
|
5
|
-
* component props using AI based on schema definitions.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
// Export types
|
|
10
|
-
export * from './types.js';
|
|
11
|
-
// Export core functionality
|
|
12
|
-
export { AI, createAIComponent, definePropsSchema, createComponentFactory, composeAIComponents, } from './ai.js';
|
|
13
|
-
// Export generation functions
|
|
14
|
-
export { generateProps, getPropsSync, prefetchProps, generatePropsMany, mergeWithGenerated, configureAIProps, getConfig, resetConfig, } from './generate.js';
|
|
15
|
-
// Export cache utilities
|
|
16
|
-
export { MemoryPropsCache, LRUPropsCache, createCacheKey, getDefaultCache, configureCache, clearCache, DEFAULT_CACHE_TTL, } from './cache.js';
|
|
17
|
-
// Export HOC and enhancers
|
|
18
|
-
export { createPropsEnhancer, createAsyncPropsProvider, createPropsTransformer, createConditionalGenerator, createBatchGenerator, } from './hoc.js';
|
|
19
|
-
// Export validation utilities
|
|
20
|
-
export { validateProps, hasRequiredProps, getMissingProps, isComplete, getMissingFromSchema, sanitizeProps, mergeWithDefaults, createValidator, assertValidProps, } from './validate.js';
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAe;AACf,cAAc,YAAY,CAAA;AAE1B,4BAA4B;AAC5B,OAAO,EACL,EAAE,EACF,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,SAAS,CAAA;AAEhB,8BAA8B;AAC9B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,WAAW,GACZ,MAAM,eAAe,CAAA;AAEtB,yBAAyB;AACzB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAEnB,2BAA2B;AAC3B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,GAErB,MAAM,UAAU,CAAA;AAEjB,8BAA8B;AAC9B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,eAAe,CAAA"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for ai-props
|
|
3
|
-
*
|
|
4
|
-
* @packageDocumentation
|
|
5
|
-
*/
|
|
6
|
-
import type { SimpleSchema } from 'ai-functions';
|
|
7
|
-
/**
|
|
8
|
-
* Configuration for AI prop generation
|
|
9
|
-
*/
|
|
10
|
-
export interface AIPropsConfig {
|
|
11
|
-
/** Model to use for generation (default: 'sonnet') */
|
|
12
|
-
model?: string;
|
|
13
|
-
/** System prompt for generation context */
|
|
14
|
-
system?: string;
|
|
15
|
-
/** Whether to cache generated props */
|
|
16
|
-
cache?: boolean;
|
|
17
|
-
/** Cache TTL in milliseconds (default: 5 minutes) */
|
|
18
|
-
cacheTTL?: number;
|
|
19
|
-
/** Custom generation function */
|
|
20
|
-
generate?: <T>(schema: SimpleSchema, context: Record<string, unknown>) => Promise<T>;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Schema definition for component props
|
|
24
|
-
* Can be a SimpleSchema or a named type string
|
|
25
|
-
*/
|
|
26
|
-
export type PropSchema = SimpleSchema | string;
|
|
27
|
-
/**
|
|
28
|
-
* Options for prop generation
|
|
29
|
-
*/
|
|
30
|
-
export interface GeneratePropsOptions {
|
|
31
|
-
/** Schema defining the props to generate */
|
|
32
|
-
schema: PropSchema;
|
|
33
|
-
/** Partial props to use as context */
|
|
34
|
-
context?: Record<string, unknown>;
|
|
35
|
-
/** Additional prompt context */
|
|
36
|
-
prompt?: string;
|
|
37
|
-
/** Model to use */
|
|
38
|
-
model?: string;
|
|
39
|
-
/** System prompt */
|
|
40
|
-
system?: string;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Result of prop generation
|
|
44
|
-
*/
|
|
45
|
-
export interface GeneratePropsResult<T> {
|
|
46
|
-
/** Generated props */
|
|
47
|
-
props: T;
|
|
48
|
-
/** Whether props were from cache */
|
|
49
|
-
cached: boolean;
|
|
50
|
-
/** Generation metadata */
|
|
51
|
-
metadata?: {
|
|
52
|
-
model: string;
|
|
53
|
-
tokens?: number;
|
|
54
|
-
duration?: number;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Cache entry for generated props
|
|
59
|
-
*/
|
|
60
|
-
export interface PropsCacheEntry<T = unknown> {
|
|
61
|
-
props: T;
|
|
62
|
-
timestamp: number;
|
|
63
|
-
key: string;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Props cache interface
|
|
67
|
-
*/
|
|
68
|
-
export interface PropsCache {
|
|
69
|
-
get<T>(key: string): PropsCacheEntry<T> | undefined;
|
|
70
|
-
set<T>(key: string, props: T): void;
|
|
71
|
-
delete(key: string): boolean;
|
|
72
|
-
clear(): void;
|
|
73
|
-
size: number;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Hook result for useAIProps
|
|
77
|
-
*/
|
|
78
|
-
export interface UseAIPropsResult<T> {
|
|
79
|
-
/** Generated props (null while loading) */
|
|
80
|
-
props: T | null;
|
|
81
|
-
/** Whether generation is in progress */
|
|
82
|
-
loading: boolean;
|
|
83
|
-
/** Error if generation failed */
|
|
84
|
-
error: Error | null;
|
|
85
|
-
/** Regenerate props */
|
|
86
|
-
regenerate: () => Promise<void>;
|
|
87
|
-
/** Whether props were from cache */
|
|
88
|
-
cached: boolean;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Options for useAIProps hook
|
|
92
|
-
*/
|
|
93
|
-
export interface UseAIPropsOptions<T> extends Omit<GeneratePropsOptions, 'context'> {
|
|
94
|
-
/** Partial props to merge and use as context */
|
|
95
|
-
partialProps?: Partial<T>;
|
|
96
|
-
/** Skip generation if all required props are provided */
|
|
97
|
-
skipIfComplete?: boolean;
|
|
98
|
-
/** Dependencies that trigger regeneration */
|
|
99
|
-
deps?: unknown[];
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Component wrapper options for AI()
|
|
103
|
-
*/
|
|
104
|
-
export interface AIComponentOptions<P> {
|
|
105
|
-
/** Schema for the component props */
|
|
106
|
-
schema: PropSchema;
|
|
107
|
-
/** Default props */
|
|
108
|
-
defaults?: Partial<P>;
|
|
109
|
-
/** Props that are always required (never generated) */
|
|
110
|
-
required?: (keyof P)[];
|
|
111
|
-
/** Props to exclude from generation */
|
|
112
|
-
exclude?: (keyof P)[];
|
|
113
|
-
/** AI generation config */
|
|
114
|
-
config?: AIPropsConfig;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Enhanced component type with AI capabilities
|
|
118
|
-
*/
|
|
119
|
-
export interface AIComponent<P> {
|
|
120
|
-
(props: Partial<P>): Promise<P>;
|
|
121
|
-
/** Original schema */
|
|
122
|
-
schema: PropSchema;
|
|
123
|
-
/** Generate props without rendering */
|
|
124
|
-
generateProps: (context?: Partial<P>) => Promise<P>;
|
|
125
|
-
/** Configuration */
|
|
126
|
-
config: AIPropsConfig;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Type helper to extract props type from a schema
|
|
130
|
-
*/
|
|
131
|
-
export type InferProps<S extends PropSchema> = S extends SimpleSchema ? S extends string ? string : S extends {
|
|
132
|
-
[key: string]: SimpleSchema;
|
|
133
|
-
} ? {
|
|
134
|
-
[K in keyof S]: InferProps<S[K]>;
|
|
135
|
-
} : unknown : unknown;
|
|
136
|
-
/**
|
|
137
|
-
* Validation result for props
|
|
138
|
-
*/
|
|
139
|
-
export interface ValidationResult {
|
|
140
|
-
valid: boolean;
|
|
141
|
-
errors: ValidationError[];
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Individual validation error
|
|
145
|
-
*/
|
|
146
|
-
export interface ValidationError {
|
|
147
|
-
path: string;
|
|
148
|
-
message: string;
|
|
149
|
-
expected?: string;
|
|
150
|
-
received?: unknown;
|
|
151
|
-
}
|
|
152
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/dist/validate.d.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validation utilities for ai-props
|
|
3
|
-
*
|
|
4
|
-
* Provides prop validation against schemas.
|
|
5
|
-
*
|
|
6
|
-
* @packageDocumentation
|
|
7
|
-
*/
|
|
8
|
-
import type { PropSchema, ValidationResult } from './types.js';
|
|
9
|
-
/**
|
|
10
|
-
* Validate props against a schema
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* const result = validateProps(
|
|
15
|
-
* { name: 'John', age: '25' }, // props
|
|
16
|
-
* { name: 'Name', age: 'Age (number)' } // schema
|
|
17
|
-
* )
|
|
18
|
-
*
|
|
19
|
-
* if (!result.valid) {
|
|
20
|
-
* console.log(result.errors)
|
|
21
|
-
* // [{ path: 'age', message: 'Expected number, got string' }]
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export declare function validateProps(props: Record<string, unknown>, schema: PropSchema): ValidationResult;
|
|
26
|
-
/**
|
|
27
|
-
* Check if all required props are present
|
|
28
|
-
*/
|
|
29
|
-
export declare function hasRequiredProps<P extends Record<string, unknown>>(props: Partial<P>, required: (keyof P)[]): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Get list of missing required props
|
|
32
|
-
*/
|
|
33
|
-
export declare function getMissingProps<P extends Record<string, unknown>>(props: Partial<P>, required: (keyof P)[]): (keyof P)[];
|
|
34
|
-
/**
|
|
35
|
-
* Check if props are complete according to schema
|
|
36
|
-
*/
|
|
37
|
-
export declare function isComplete(props: Record<string, unknown>, schema: PropSchema): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Get list of missing props according to schema
|
|
40
|
-
*/
|
|
41
|
-
export declare function getMissingFromSchema(props: Record<string, unknown>, schema: PropSchema): string[];
|
|
42
|
-
/**
|
|
43
|
-
* Sanitize props by removing extra keys not in schema
|
|
44
|
-
*/
|
|
45
|
-
export declare function sanitizeProps<P extends Record<string, unknown>>(props: P, schema: PropSchema): Partial<P>;
|
|
46
|
-
/**
|
|
47
|
-
* Merge props with defaults, respecting schema types
|
|
48
|
-
*/
|
|
49
|
-
export declare function mergeWithDefaults<P extends Record<string, unknown>>(props: Partial<P>, defaults: Partial<P>, schema: PropSchema): Partial<P>;
|
|
50
|
-
/**
|
|
51
|
-
* Create a props validator function
|
|
52
|
-
*/
|
|
53
|
-
export declare function createValidator<P extends Record<string, unknown>>(schema: PropSchema): (props: Partial<P>) => ValidationResult;
|
|
54
|
-
/**
|
|
55
|
-
* Assert props are valid, throwing on error
|
|
56
|
-
*/
|
|
57
|
-
export declare function assertValidProps(props: Record<string, unknown>, schema: PropSchema): void;
|
|
58
|
-
//# sourceMappingURL=validate.d.ts.map
|
package/dist/validate.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,YAAY,CAAA;AAE/E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,UAAU,GACjB,gBAAgB,CAwBlB;AAuID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GACpB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GACpB,CAAC,MAAM,CAAC,CAAC,EAAE,CAEb;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,UAAU,GACjB,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,UAAU,GACjB,MAAM,EAAE,CAMV;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,CAAC,CAAC,CAeZ;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAsBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,UAAU,GACjB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAEzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,UAAU,GACjB,IAAI,CAMN"}
|