@ai-stack/payloadcms 3.0.0-beta.104.4 → 3.0.0-beta.111
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/dist/ai/models/anthropic/generateRichText.d.ts.map +1 -1
- package/dist/ai/models/anthropic/generateRichText.js +2 -2
- package/dist/ai/models/anthropic/generateRichText.js.map +1 -1
- package/dist/ai/models/anthropic/index.d.ts.map +1 -1
- package/dist/ai/models/anthropic/index.js +0 -25
- package/dist/ai/models/anthropic/index.js.map +1 -1
- package/dist/ai/models/openai/generateRichText.js +2 -2
- package/dist/ai/models/openai/generateRichText.js.map +1 -1
- package/dist/ai/models/openai/index.d.ts.map +1 -1
- package/dist/ai/models/openai/index.js +0 -27
- package/dist/ai/models/openai/index.js.map +1 -1
- package/dist/ai/prompts.js +1 -1
- package/dist/ai/prompts.js.map +1 -1
- package/dist/ai/schemas/lexicalJsonSchema.d.ts +2 -0
- package/dist/ai/schemas/lexicalJsonSchema.d.ts.map +1 -0
- package/dist/ai/schemas/lexicalJsonSchema.js +317 -0
- package/dist/ai/schemas/lexicalJsonSchema.js.map +1 -0
- package/dist/ai/utils/systemGenerate.d.ts +5 -0
- package/dist/ai/utils/systemGenerate.d.ts.map +1 -0
- package/dist/ai/utils/{generateSeedPrompt.js → systemGenerate.js} +2 -2
- package/dist/ai/utils/systemGenerate.js.map +1 -0
- package/dist/collections/Instructions.d.ts +1 -1
- package/dist/collections/Instructions.d.ts.map +1 -1
- package/dist/collections/Instructions.js +177 -85
- package/dist/collections/Instructions.js.map +1 -1
- package/dist/defaults.d.ts +1 -1
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +1 -1
- package/dist/defaults.js.map +1 -1
- package/dist/endpoints/fetchFields.d.ts +3 -0
- package/dist/endpoints/fetchFields.d.ts.map +1 -0
- package/dist/endpoints/fetchFields.js +21 -0
- package/dist/endpoints/fetchFields.js.map +1 -0
- package/dist/endpoints/index.d.ts.map +1 -1
- package/dist/endpoints/index.js +12 -17
- package/dist/endpoints/index.js.map +1 -1
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts.map +1 -1
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.js +1 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +11 -15
- package/dist/init.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +9 -34
- package/dist/plugin.js.map +1 -1
- package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -1
- package/dist/providers/InstructionsProvider/InstructionsProvider.js +8 -6
- package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
- package/dist/providers/InstructionsProvider/useInstructions.js +1 -1
- package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/ui/Compose/Compose.d.ts.map +1 -1
- package/dist/ui/Compose/Compose.js +6 -4
- package/dist/ui/Compose/Compose.js.map +1 -1
- package/dist/ui/Compose/hooks/useGenerate.d.ts.map +1 -1
- package/dist/ui/Compose/hooks/useGenerate.js +15 -16
- package/dist/ui/Compose/hooks/useGenerate.js.map +1 -1
- package/dist/utilities/updateFieldsConfig.d.ts.map +1 -1
- package/dist/utilities/updateFieldsConfig.js +6 -4
- package/dist/utilities/updateFieldsConfig.js.map +1 -1
- package/package.json +6 -9
- package/dist/ai/schemas/lexical.schema.d.ts +0 -31
- package/dist/ai/schemas/lexical.schema.d.ts.map +0 -1
- package/dist/ai/schemas/lexical.schema.js +0 -102
- package/dist/ai/schemas/lexical.schema.js.map +0 -1
- package/dist/ai/utils/generateSeedPrompt.d.ts +0 -5
- package/dist/ai/utils/generateSeedPrompt.d.ts.map +0 -1
- package/dist/ai/utils/generateSeedPrompt.js.map +0 -1
- package/dist/utilities/jsonToZod.d.ts +0 -3
- package/dist/utilities/jsonToZod.d.ts.map +0 -1
- package/dist/utilities/jsonToZod.js +0 -33
- package/dist/utilities/jsonToZod.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/ui/Compose/hooks/useGenerate.ts"],"sourcesContent":["import type { ClientCollectionConfig, UploadField } from 'payload'\n\nimport { useEditorConfigContext } from '@payloadcms/richtext-lexical/client'\nimport {\n useConfig,\n useDocumentInfo,\n useField,\n useFieldProps,\n useForm,\n useLocale,\n} from '@payloadcms/ui'\nimport { useCompletion, experimental_useObject as useObject } from 'ai/react'\nimport { useCallback, useEffect } from 'react'\n\nimport type { ActionMenuItems, GenerateTextarea } from '../../../types.js'\n\nimport {\n PLUGIN_API_ENDPOINT_GENERATE,\n PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n PLUGIN_INSTRUCTIONS_TABLE,\n} from '../../../defaults.js'\nimport { useInstructions } from '../../../providers/InstructionsProvider/useInstructions.js'\nimport { getFieldBySchemaPath } from '../../../utilities/getFieldBySchemaPath.js'\nimport { jsonSchemaToZod } from '../../../utilities/jsonToZod.js'\nimport { setSafeLexicalState } from '../../../utilities/setSafeLexicalState.js'\nimport { useHistory } from './useHistory.js'\n\ntype ActionCallbackParams = { action: ActionMenuItems; params?: unknown }\n\n//TODO: DONATION IDEA - Add a url to donate in cli when user installs the plugin and uses it for couple of times.\nexport const useGenerate = () => {\n const { type, path: pathFromContext, schemaPath } = useFieldProps()\n\n const editorConfigContext = useEditorConfigContext()\n const { editor } = editorConfigContext\n\n const { docConfig } = useDocumentInfo()\n\n const { setValue } = useField<string>({\n path: pathFromContext,\n })\n\n const { set: setHistory } = useHistory()\n const { id: instructionId } = useInstructions({\n path: schemaPath,\n })\n\n const { getData } = useForm()\n const localFromContext = useLocale()\n const {\n config: { collections },\n } = useConfig()\n const collection = collections.find((collection) => collection.slug === PLUGIN_INSTRUCTIONS_TABLE)\n const { custom: { editorConfig } = {} } = collection.admin\n const { schema: DocumentSchema = {} } = editorConfig || {}\n const lexicalZodSchema = jsonSchemaToZod(DocumentSchema)\n\n const {\n isLoading: loadingObject,\n object,\n stop, // TODO: Implement this function\n submit,\n } = useObject({\n api: `/api${PLUGIN_API_ENDPOINT_GENERATE}`,\n onError: (error) => {\n console.error('Error generating object:', error)\n },\n onFinish: (result) => {\n if (result.object) {\n setHistory(result.object)\n setValue(result.object)\n } else {\n console.log('onFinish: result ', result)\n }\n },\n schema: lexicalZodSchema,\n })\n\n useEffect(() => {\n if (!object) return\n\n requestAnimationFrame(() => {\n if (!editor) {\n setValue(object)\n return\n }\n\n // Currently this is being used as setValue for RichText component does not render new changes right away.\n setSafeLexicalState(object, editor)\n })\n }, [object])\n\n const {\n complete,\n completion,\n isLoading: loadingCompletion,\n } = useCompletion({\n api: `/api${PLUGIN_API_ENDPOINT_GENERATE}`,\n onError: (error) => {\n console.error('Error generating text:', error)\n },\n onFinish: (prompt, result) => {\n setHistory(result)\n },\n streamProtocol: 'data',\n })\n\n useEffect(() => {\n if (!completion) return\n\n requestAnimationFrame(() => {\n setValue(completion)\n })\n }, [completion])\n\n const streamObject = useCallback(\n ({ action = 'Compose', params }: ActionCallbackParams) => {\n const doc = getData()\n const options = {\n action,\n actionParams: params,\n instructionId,\n }\n\n submit({\n doc,\n locale: localFromContext?.code,\n options,\n })\n },\n [getData, localFromContext?.code, instructionId],\n )\n\n const streamText = useCallback(\n async ({ action = 'Compose', params }: ActionCallbackParams) => {\n const doc = getData()\n\n const options = {\n action,\n actionParams: params,\n instructionId,\n }\n\n await complete('', {\n body: {\n doc,\n locale: localFromContext?.code,\n options,\n },\n })\n },\n [getData, localFromContext?.code, instructionId],\n )\n\n const generateUpload = useCallback(async () => {\n const doc = getData()\n\n const fieldInfo = getFieldBySchemaPath(\n docConfig as ClientCollectionConfig,\n schemaPath,\n ) as UploadField\n\n return fetch(`/api${PLUGIN_API_ENDPOINT_GENERATE_UPLOAD}`, {\n body: JSON.stringify({\n doc,\n locale: localFromContext?.code,\n options: {\n instructionId,\n uploadCollectionSlug: fieldInfo.relationTo || 'media',\n },\n } satisfies Parameters<GenerateTextarea>[0]),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n .then(async (uploadResponse) => {\n if (uploadResponse.ok) {\n const { result } = await uploadResponse.json()\n if (!result) throw new Error('generateUpload: Something went wrong')\n\n setValue(result?.id)\n setHistory(result?.id)\n } else {\n const { errors = [] } = await uploadResponse.json()\n const errStr = errors.map((error) => error.message).join(', ')\n throw new Error(errStr)\n }\n return uploadResponse\n })\n .catch((error) => {\n console.error('Error generating your upload', error)\n })\n }, [getData, localFromContext?.code, instructionId])\n\n const generate = useCallback(\n async (options?: ActionCallbackParams) => {\n if (type === 'richText') {\n return streamObject(options)\n }\n\n if (['text', 'textarea'].includes(type)) {\n return streamText(options)\n }\n\n if (type === 'upload') {\n return generateUpload()\n }\n },\n [generateUpload, streamObject, streamText, type],\n )\n\n return {\n generate,\n isLoading: loadingCompletion || loadingObject,\n }\n}\n"],"names":["useEditorConfigContext","useConfig","useDocumentInfo","useField","useFieldProps","useForm","useLocale","useCompletion","experimental_useObject","useObject","useCallback","useEffect","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_INSTRUCTIONS_TABLE","useInstructions","getFieldBySchemaPath","jsonSchemaToZod","setSafeLexicalState","useHistory","useGenerate","type","path","pathFromContext","schemaPath","editorConfigContext","editor","docConfig","setValue","set","setHistory","id","instructionId","getData","localFromContext","config","collections","collection","find","slug","custom","editorConfig","admin","schema","DocumentSchema","lexicalZodSchema","isLoading","loadingObject","object","stop","submit","api","onError","error","console","onFinish","result","log","requestAnimationFrame","complete","completion","loadingCompletion","prompt","streamProtocol","streamObject","action","params","doc","options","actionParams","locale","code","streamText","body","generateUpload","fieldInfo","fetch","JSON","stringify","uploadCollectionSlug","relationTo","credentials","headers","method","then","uploadResponse","ok","json","Error","errors","errStr","map","message","join","catch","generate","includes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/ui/Compose/hooks/useGenerate.ts"],"sourcesContent":["import { useEditorConfigContext } from '@payloadcms/richtext-lexical/client'\nimport { useConfig, useField, useFieldProps, useForm, useLocale } from '@payloadcms/ui'\nimport { jsonSchema } from 'ai'\nimport { useCompletion, experimental_useObject as useObject } from 'ai/react'\nimport { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ActionMenuItems, GenerateTextarea } from '../../../types.js'\n\nimport {\n PLUGIN_API_ENDPOINT_GENERATE,\n PLUGIN_API_ENDPOINT_GENERATE_UPLOAD,\n PLUGIN_INSTRUCTIONS_TABLE,\n PLUGIN_NAME,\n} from '../../../defaults.js'\nimport { useInstructions } from '../../../providers/InstructionsProvider/useInstructions.js'\nimport { setSafeLexicalState } from '../../../utilities/setSafeLexicalState.js'\nimport { useHistory } from './useHistory.js'\n\ntype ActionCallbackParams = { action: ActionMenuItems; params?: unknown }\n\nexport const useGenerate = () => {\n const { type, path: pathFromContext, schemaPath } = useFieldProps()\n const editorConfigContext = useEditorConfigContext()\n const { editor } = editorConfigContext\n\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n\n const { setValue } = useField<string>({\n path: pathFromContext,\n })\n\n const { set: setHistory } = useHistory()\n const { id: instructionId } = useInstructions({\n path: schemaPath,\n })\n\n const { getData } = useForm()\n const localFromContext = useLocale()\n const {\n config: { collections },\n } = useConfig()\n\n const collection = collections.find((collection) => collection.slug === PLUGIN_INSTRUCTIONS_TABLE)\n const { custom: { [PLUGIN_NAME]: { editorConfig = {} } = {} } = {} } = collection.admin\n const { schema: editorSchema = {} } = editorConfig\n\n const memoizedSchema = useMemo(() => jsonSchema(editorSchema), [editorSchema])\n\n const {\n isLoading: loadingObject,\n object,\n stop, // TODO: Implement this function\n submit,\n } = useObject({\n api: `/api${PLUGIN_API_ENDPOINT_GENERATE}`,\n onError: (error) => {\n console.error('Error generating object:', error)\n },\n onFinish: (result) => {\n if (result.object) {\n setHistory(result.object)\n setValue(result.object)\n } else {\n console.log('onFinish: result ', result)\n }\n },\n schema: memoizedSchema,\n })\n\n useEffect(() => {\n if (!object) return\n\n requestAnimationFrame(() => {\n if (!editor) {\n setValue(object)\n return\n }\n\n // Currently this is being used as setValue for RichText component does not render new changes right away.\n setSafeLexicalState(object, editor)\n })\n }, [object])\n\n const {\n complete,\n completion,\n isLoading: loadingCompletion,\n } = useCompletion({\n api: `${serverURL}${api}${PLUGIN_API_ENDPOINT_GENERATE}`,\n onError: (error) => {\n console.error('Error generating text:', error)\n },\n onFinish: (prompt, result) => {\n setHistory(result)\n },\n streamProtocol: 'data',\n })\n\n useEffect(() => {\n if (!completion) return\n\n requestAnimationFrame(() => {\n setValue(completion)\n })\n }, [completion])\n\n const streamObject = useCallback(\n ({ action = 'Compose', params }: ActionCallbackParams) => {\n const doc = getData()\n const options = {\n action,\n actionParams: params,\n instructionId,\n }\n\n submit({\n doc,\n locale: localFromContext?.code,\n options,\n })\n },\n [getData, localFromContext?.code, instructionId],\n )\n\n const streamText = useCallback(\n async ({ action = 'Compose', params }: ActionCallbackParams) => {\n const doc = getData()\n\n const options = {\n action,\n actionParams: params,\n instructionId,\n }\n\n await complete('', {\n body: {\n doc,\n locale: localFromContext?.code,\n options,\n },\n })\n },\n [getData, localFromContext?.code, instructionId],\n )\n\n const generateUpload = useCallback(async () => {\n const doc = getData()\n\n return fetch(`${serverURL}${api}${PLUGIN_API_ENDPOINT_GENERATE_UPLOAD}`, {\n body: JSON.stringify({\n doc,\n locale: localFromContext?.code,\n options: {\n instructionId,\n },\n } satisfies Parameters<GenerateTextarea>[0]),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n .then(async (uploadResponse) => {\n if (uploadResponse.ok) {\n const { result } = await uploadResponse.json()\n if (!result) throw new Error('generateUpload: Something went wrong')\n\n setValue(result?.id)\n setHistory(result?.id)\n } else {\n const { errors = [] } = await uploadResponse.json()\n const errStr = errors.map((error) => error.message).join(', ')\n throw new Error(errStr)\n }\n return uploadResponse\n })\n .catch((error) => {\n console.error('Error generating your upload', error)\n })\n }, [getData, localFromContext?.code, instructionId])\n\n const generate = useCallback(\n async (options?: ActionCallbackParams) => {\n if (type === 'richText') {\n return streamObject(options)\n }\n\n if (['text', 'textarea'].includes(type)) {\n return streamText(options)\n }\n\n if (type === 'upload') {\n return generateUpload()\n }\n },\n [generateUpload, streamObject, streamText, type],\n )\n\n return {\n generate,\n isLoading: loadingCompletion || loadingObject,\n }\n}\n"],"names":["useEditorConfigContext","useConfig","useField","useFieldProps","useForm","useLocale","jsonSchema","useCompletion","experimental_useObject","useObject","useCallback","useEffect","useMemo","PLUGIN_API_ENDPOINT_GENERATE","PLUGIN_API_ENDPOINT_GENERATE_UPLOAD","PLUGIN_INSTRUCTIONS_TABLE","PLUGIN_NAME","useInstructions","setSafeLexicalState","useHistory","useGenerate","type","path","pathFromContext","schemaPath","editorConfigContext","editor","config","routes","api","serverURL","setValue","set","setHistory","id","instructionId","getData","localFromContext","collections","collection","find","slug","custom","editorConfig","admin","schema","editorSchema","memoizedSchema","isLoading","loadingObject","object","stop","submit","onError","error","console","onFinish","result","log","requestAnimationFrame","complete","completion","loadingCompletion","prompt","streamProtocol","streamObject","action","params","doc","options","actionParams","locale","code","streamText","body","generateUpload","fetch","JSON","stringify","credentials","headers","method","then","uploadResponse","ok","json","Error","errors","errStr","map","message","join","catch","generate","includes"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateFieldsConfig.d.ts","sourceRoot":"","sources":["../../src/utilities/updateFieldsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,uBAAuB,EAAE,gBAAgB,CAAA;CAC1C;AAED,eAAO,MAAM,kBAAkB,qBAAsB,gBAAgB,KAAG,
|
|
1
|
+
{"version":3,"file":"updateFieldsConfig.d.ts","sourceRoot":"","sources":["../../src/utilities/updateFieldsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,uBAAuB,EAAE,gBAAgB,CAAA;CAC1C;AAED,eAAO,MAAM,kBAAkB,qBAAsB,gBAAgB,KAAG,kBAkGvE,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const updateFieldsConfig = (collectionConfig)=>{
|
|
2
2
|
let schemaPathMap = {};
|
|
3
|
-
let customComponentsFound = false;
|
|
4
3
|
function updateField(field, parentPath = '') {
|
|
5
4
|
const currentPath = parentPath ? `${parentPath}.${field.name}` : field.name;
|
|
6
5
|
const currentSchemaPath = `${collectionConfig.slug}.${currentPath}`;
|
|
7
|
-
|
|
6
|
+
// Disabled fields/ field types
|
|
7
|
+
if (field.admin?.disabled || field.admin?.readOnly || field.admin?.hidden || field.type === 'row') {
|
|
8
8
|
return field;
|
|
9
9
|
}
|
|
10
10
|
// Map field path for global fieldInstructionsMap to load related instructions
|
|
@@ -20,7 +20,8 @@ export const updateFieldsConfig = (collectionConfig)=>{
|
|
|
20
20
|
...schemaPathMap,
|
|
21
21
|
[currentSchemaPath]: {
|
|
22
22
|
type: field.type,
|
|
23
|
-
label: field.label || field.name
|
|
23
|
+
label: field.label || field.name,
|
|
24
|
+
relationTo: field.relationTo
|
|
24
25
|
}
|
|
25
26
|
};
|
|
26
27
|
}
|
|
@@ -34,7 +35,8 @@ export const updateFieldsConfig = (collectionConfig)=>{
|
|
|
34
35
|
// Custom fields don't fully adhere to the Payload schema, making it difficult to
|
|
35
36
|
// determine which components support injecting ComposeField as a Description.
|
|
36
37
|
if (field.admin?.components?.Field || field.admin?.components?.Description) {
|
|
37
|
-
|
|
38
|
+
// TODO: Do something?
|
|
39
|
+
customField = {};
|
|
38
40
|
}
|
|
39
41
|
return {
|
|
40
42
|
...field,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/updateFieldsConfig.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\ninterface UpdateFieldsConfig {\n schemaPathMap: Record<string, string>\n updatedCollectionConfig: CollectionConfig\n}\n\nexport const updateFieldsConfig = (collectionConfig: CollectionConfig): UpdateFieldsConfig => {\n let schemaPathMap = {}\n
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/updateFieldsConfig.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\ninterface UpdateFieldsConfig {\n schemaPathMap: Record<string, string>\n updatedCollectionConfig: CollectionConfig\n}\n\nexport const updateFieldsConfig = (collectionConfig: CollectionConfig): UpdateFieldsConfig => {\n let schemaPathMap = {}\n\n function updateField(field: any, parentPath = ''): any {\n const currentPath = parentPath ? `${parentPath}.${field.name}` : field.name\n const currentSchemaPath = `${collectionConfig.slug}.${currentPath}`\n\n // Disabled fields/ field types\n if (\n field.admin?.disabled ||\n field.admin?.readOnly ||\n field.admin?.hidden ||\n field.type === 'row'\n ) {\n return field\n }\n\n // Map field path for global fieldInstructionsMap to load related instructions\n // This is done due to save extra API call to get instructions when Field components are loaded in admin\n // Doing is will only call instructions data when user clicks on settings\n if (['richText', 'text', 'textarea', 'upload'].includes(field.type)) {\n schemaPathMap = {\n ...schemaPathMap,\n [currentSchemaPath]: {\n type: field.type,\n label: field.label || field.name,\n relationTo: field.relationTo,\n },\n }\n }\n\n // Inject AI actions, richText is not included here as it has to be explicitly defined by user\n if (['text', 'textarea', 'upload'].includes(field.type)) {\n let customField = {}\n\n // Custom fields don't fully adhere to the Payload schema, making it difficult to\n // determine which components support injecting ComposeField as a Description.\n if (field.admin?.components?.Field || field.admin?.components?.Description) {\n // TODO: Do something?\n customField = {}\n }\n\n return {\n ...field,\n admin: {\n ...field.admin,\n components: {\n ...(field.admin?.components || {}),\n Description: '@ai-stack/payloadcms/fields#ComposeField',\n ...customField,\n },\n },\n }\n }\n\n if (field.fields) {\n return {\n ...field,\n fields: field.fields.map((subField: any) => updateField(subField, currentPath)),\n }\n }\n\n if (field.tabs) {\n return {\n ...field,\n tabs: field.tabs.map((tab: any) => {\n return {\n ...tab,\n fields: tab.fields.map((subField: any) => updateField(subField, tab.name)),\n }\n }),\n }\n }\n\n if (field.blocks) {\n return {\n ...field,\n blocks: field.blocks.map((block: any) => ({\n ...block,\n fields: block.fields.map((subField: any) =>\n updateField(subField, `${currentPath}.${block.slug}`),\n ),\n })),\n }\n }\n\n return field\n }\n\n const updatedCollectionConfig = {\n ...collectionConfig,\n fields: collectionConfig.fields.map((field) => updateField(field)),\n }\n\n return {\n schemaPathMap,\n updatedCollectionConfig,\n }\n}\n"],"names":["updateFieldsConfig","collectionConfig","schemaPathMap","updateField","field","parentPath","currentPath","name","currentSchemaPath","slug","admin","disabled","readOnly","hidden","type","includes","label","relationTo","customField","components","Field","Description","fields","map","subField","tabs","tab","blocks","block","updatedCollectionConfig"],"mappings":"AAOA,OAAO,MAAMA,qBAAqB,CAACC;IACjC,IAAIC,gBAAgB,CAAC;IAErB,SAASC,YAAYC,KAAU,EAAEC,aAAa,EAAE;QAC9C,MAAMC,cAAcD,aAAa,CAAC,EAAEA,WAAW,CAAC,EAAED,MAAMG,IAAI,CAAC,CAAC,GAAGH,MAAMG,IAAI;QAC3E,MAAMC,oBAAoB,CAAC,EAAEP,iBAAiBQ,IAAI,CAAC,CAAC,EAAEH,YAAY,CAAC;QAEnE,+BAA+B;QAC/B,IACEF,MAAMM,KAAK,EAAEC,YACbP,MAAMM,KAAK,EAAEE,YACbR,MAAMM,KAAK,EAAEG,UACbT,MAAMU,IAAI,KAAK,OACf;YACA,OAAOV;QACT;QAEA,8EAA8E;QAC9E,wGAAwG;QACxG,yEAAyE;QACzE,IAAI;YAAC;YAAY;YAAQ;YAAY;SAAS,CAACW,QAAQ,CAACX,MAAMU,IAAI,GAAG;YACnEZ,gBAAgB;gBACd,GAAGA,aAAa;gBAChB,CAACM,kBAAkB,EAAE;oBACnBM,MAAMV,MAAMU,IAAI;oBAChBE,OAAOZ,MAAMY,KAAK,IAAIZ,MAAMG,IAAI;oBAChCU,YAAYb,MAAMa,UAAU;gBAC9B;YACF;QACF;QAEA,8FAA8F;QAC9F,IAAI;YAAC;YAAQ;YAAY;SAAS,CAACF,QAAQ,CAACX,MAAMU,IAAI,GAAG;YACvD,IAAII,cAAc,CAAC;YAEnB,iFAAiF;YACjF,8EAA8E;YAC9E,IAAId,MAAMM,KAAK,EAAES,YAAYC,SAAShB,MAAMM,KAAK,EAAES,YAAYE,aAAa;gBAC1E,sBAAsB;gBACtBH,cAAc,CAAC;YACjB;YAEA,OAAO;gBACL,GAAGd,KAAK;gBACRM,OAAO;oBACL,GAAGN,MAAMM,KAAK;oBACdS,YAAY;wBACV,GAAIf,MAAMM,KAAK,EAAES,cAAc,CAAC,CAAC;wBACjCE,aAAa;wBACb,GAAGH,WAAW;oBAChB;gBACF;YACF;QACF;QAEA,IAAId,MAAMkB,MAAM,EAAE;YAChB,OAAO;gBACL,GAAGlB,KAAK;gBACRkB,QAAQlB,MAAMkB,MAAM,CAACC,GAAG,CAAC,CAACC,WAAkBrB,YAAYqB,UAAUlB;YACpE;QACF;QAEA,IAAIF,MAAMqB,IAAI,EAAE;YACd,OAAO;gBACL,GAAGrB,KAAK;gBACRqB,MAAMrB,MAAMqB,IAAI,CAACF,GAAG,CAAC,CAACG;oBACpB,OAAO;wBACL,GAAGA,GAAG;wBACNJ,QAAQI,IAAIJ,MAAM,CAACC,GAAG,CAAC,CAACC,WAAkBrB,YAAYqB,UAAUE,IAAInB,IAAI;oBAC1E;gBACF;YACF;QACF;QAEA,IAAIH,MAAMuB,MAAM,EAAE;YAChB,OAAO;gBACL,GAAGvB,KAAK;gBACRuB,QAAQvB,MAAMuB,MAAM,CAACJ,GAAG,CAAC,CAACK,QAAgB,CAAA;wBACxC,GAAGA,KAAK;wBACRN,QAAQM,MAAMN,MAAM,CAACC,GAAG,CAAC,CAACC,WACxBrB,YAAYqB,UAAU,CAAC,EAAElB,YAAY,CAAC,EAAEsB,MAAMnB,IAAI,CAAC,CAAC;oBAExD,CAAA;YACF;QACF;QAEA,OAAOL;IACT;IAEA,MAAMyB,0BAA0B;QAC9B,GAAG5B,gBAAgB;QACnBqB,QAAQrB,iBAAiBqB,MAAM,CAACC,GAAG,CAAC,CAACnB,QAAUD,YAAYC;IAC7D;IAEA,OAAO;QACLF;QACA2B;IACF;AACF,EAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-stack/payloadcms",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.111",
|
|
4
4
|
"private": false,
|
|
5
5
|
"bugs": "https://github.com/ashbuilds/payload-ai/issues",
|
|
6
6
|
"repository": "https://github.com/ashbuilds/payload-ai",
|
|
@@ -67,9 +67,7 @@
|
|
|
67
67
|
"lodash.isequal": "^4.5.0",
|
|
68
68
|
"openai": "^4.56.1",
|
|
69
69
|
"scroll-into-view-if-needed": "^3.1.0",
|
|
70
|
-
"textarea-caret": "^3.0.2"
|
|
71
|
-
"zod": "^3.23.8",
|
|
72
|
-
"zod-to-json-schema": "^3.23.2"
|
|
70
|
+
"textarea-caret": "^3.0.2"
|
|
73
71
|
},
|
|
74
72
|
"devDependencies": {
|
|
75
73
|
"@eslint/compat": "^1.1.1",
|
|
@@ -93,7 +91,6 @@
|
|
|
93
91
|
"eslint-plugin-react-hooks": "^4.6.2",
|
|
94
92
|
"eslint-plugin-regexp": "^2.6.0",
|
|
95
93
|
"globals": "^15.9.0",
|
|
96
|
-
"payload": "3.0.0-beta.104",
|
|
97
94
|
"prettier": "^3.3.3",
|
|
98
95
|
"react": "19.0.0-rc-f994737d14-20240522",
|
|
99
96
|
"react-dom": "19.0.0-rc-f994737d14-20240522",
|
|
@@ -102,10 +99,10 @@
|
|
|
102
99
|
"typescript-eslint": "^7.18.0"
|
|
103
100
|
},
|
|
104
101
|
"peerDependencies": {
|
|
105
|
-
"@payloadcms/richtext-lexical": "3.0.0-beta.
|
|
106
|
-
"@payloadcms/translations": "3.0.0-beta.
|
|
107
|
-
"@payloadcms/ui": "3.0.0-beta.
|
|
108
|
-
"payload": "3.0.0-beta.
|
|
102
|
+
"@payloadcms/richtext-lexical": "3.0.0-beta.111",
|
|
103
|
+
"@payloadcms/translations": "3.0.0-beta.111",
|
|
104
|
+
"@payloadcms/ui": "3.0.0-beta.111",
|
|
105
|
+
"payload": "3.0.0-beta.111"
|
|
109
106
|
},
|
|
110
107
|
"publishConfig": {
|
|
111
108
|
"@ai-stack:registry": "https://registry.npmjs.org",
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const LexicalBaseNode: z.ZodObject<{
|
|
3
|
-
type: z.ZodString;
|
|
4
|
-
children: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
|
|
5
|
-
direction: z.ZodOptional<z.ZodNullable<z.ZodEnum<["ltr"]>>>;
|
|
6
|
-
format: z.ZodOptional<z.ZodString>;
|
|
7
|
-
indent: z.ZodOptional<z.ZodNumber>;
|
|
8
|
-
version: z.ZodOptional<z.ZodNumber>;
|
|
9
|
-
}, "strip", z.ZodTypeAny, {
|
|
10
|
-
type?: string;
|
|
11
|
-
children?: any[];
|
|
12
|
-
direction?: "ltr";
|
|
13
|
-
format?: string;
|
|
14
|
-
indent?: number;
|
|
15
|
-
version?: number;
|
|
16
|
-
}, {
|
|
17
|
-
type?: string;
|
|
18
|
-
children?: any[];
|
|
19
|
-
direction?: "ltr";
|
|
20
|
-
format?: string;
|
|
21
|
-
indent?: number;
|
|
22
|
-
version?: number;
|
|
23
|
-
}>;
|
|
24
|
-
export declare const lexicalSchema: (customNodes?: (typeof LexicalBaseNode)[]) => z.ZodObject<{
|
|
25
|
-
root: any;
|
|
26
|
-
}, "strip", z.ZodTypeAny, {
|
|
27
|
-
root?: any;
|
|
28
|
-
}, {
|
|
29
|
-
root?: any;
|
|
30
|
-
}>;
|
|
31
|
-
//# sourceMappingURL=lexical.schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lexical.schema.d.ts","sourceRoot":"","sources":["../../../src/ai/schemas/lexical.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAA;AAEF,eAAO,MAAM,aAAa,iBAAkB,CAAC,OAAO,eAAe,CAAC,EAAE;;;;;;EA0ErE,CAAA"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export const LexicalBaseNode = z.object({
|
|
3
|
-
type: z.string(),
|
|
4
|
-
children: z.array(z.any()).optional(),
|
|
5
|
-
direction: z.enum([
|
|
6
|
-
'ltr'
|
|
7
|
-
]).nullable().optional(),
|
|
8
|
-
format: z.string().optional(),
|
|
9
|
-
indent: z.number().optional(),
|
|
10
|
-
version: z.number().optional()
|
|
11
|
-
});
|
|
12
|
-
export const lexicalSchema = (customNodes)=>{
|
|
13
|
-
const BaseNode = z.object({
|
|
14
|
-
type: z.string(),
|
|
15
|
-
children: z.array(z.lazy(()=>Node)).optional(),
|
|
16
|
-
direction: z.enum([
|
|
17
|
-
'ltr'
|
|
18
|
-
]).nullable().optional(),
|
|
19
|
-
format: z.string().optional(),
|
|
20
|
-
indent: z.number().optional(),
|
|
21
|
-
version: z.number().optional()
|
|
22
|
-
});
|
|
23
|
-
const TextNode = BaseNode.extend({
|
|
24
|
-
type: z.literal('text'),
|
|
25
|
-
format: z.number().optional(),
|
|
26
|
-
text: z.string()
|
|
27
|
-
});
|
|
28
|
-
const LinkNode = BaseNode.extend({
|
|
29
|
-
id: z.string(),
|
|
30
|
-
type: z.literal('link'),
|
|
31
|
-
fields: z.object({
|
|
32
|
-
linkType: z.string(),
|
|
33
|
-
newTab: z.boolean(),
|
|
34
|
-
url: z.string()
|
|
35
|
-
})
|
|
36
|
-
});
|
|
37
|
-
const ListItemNode = BaseNode.extend({
|
|
38
|
-
type: z.literal('listitem'),
|
|
39
|
-
checked: z.boolean().optional(),
|
|
40
|
-
value: z.number()
|
|
41
|
-
});
|
|
42
|
-
const ListNode = BaseNode.extend({
|
|
43
|
-
type: z.literal('list'),
|
|
44
|
-
listType: z.enum([
|
|
45
|
-
'check',
|
|
46
|
-
'number',
|
|
47
|
-
'bullet'
|
|
48
|
-
]),
|
|
49
|
-
start: z.number(),
|
|
50
|
-
tag: z.enum([
|
|
51
|
-
'ul',
|
|
52
|
-
'ol'
|
|
53
|
-
])
|
|
54
|
-
});
|
|
55
|
-
const HeadingNode = BaseNode.extend({
|
|
56
|
-
type: z.literal('heading'),
|
|
57
|
-
tag: z.enum([
|
|
58
|
-
'h1',
|
|
59
|
-
'h2',
|
|
60
|
-
'h3',
|
|
61
|
-
'h4'
|
|
62
|
-
])
|
|
63
|
-
});
|
|
64
|
-
// Example of custom node - wip
|
|
65
|
-
const MediaNode = BaseNode.extend({
|
|
66
|
-
type: z.literal('block'),
|
|
67
|
-
version: z.literal(2),
|
|
68
|
-
fields: z.object({
|
|
69
|
-
id: z.string(),
|
|
70
|
-
media: z.string(),
|
|
71
|
-
position: z.enum([
|
|
72
|
-
'fullscreen',
|
|
73
|
-
'default'
|
|
74
|
-
]),
|
|
75
|
-
blockName: z.string(),
|
|
76
|
-
blockType: z.literal('mediaBlock')
|
|
77
|
-
})
|
|
78
|
-
});
|
|
79
|
-
const Node = z.union([
|
|
80
|
-
TextNode,
|
|
81
|
-
LinkNode,
|
|
82
|
-
ListItemNode,
|
|
83
|
-
ListNode,
|
|
84
|
-
HeadingNode,
|
|
85
|
-
BaseNode.extend({
|
|
86
|
-
type: z.enum([
|
|
87
|
-
'paragraph',
|
|
88
|
-
'quote',
|
|
89
|
-
'horizontalrule'
|
|
90
|
-
])
|
|
91
|
-
}),
|
|
92
|
-
...customNodes || []
|
|
93
|
-
]);
|
|
94
|
-
const RootNode = BaseNode.extend({
|
|
95
|
-
type: z.literal('root')
|
|
96
|
-
});
|
|
97
|
-
return z.object({
|
|
98
|
-
root: RootNode
|
|
99
|
-
});
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
//# sourceMappingURL=lexical.schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ai/schemas/lexical.schema.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const LexicalBaseNode = z.object({\n type: z.string(),\n children: z.array(z.any()).optional(),\n direction: z.enum(['ltr']).nullable().optional(),\n format: z.string().optional(),\n indent: z.number().optional(),\n version: z.number().optional(),\n})\n\nexport const lexicalSchema = (customNodes?: (typeof LexicalBaseNode)[]) => {\n const BaseNode = z.object({\n type: z.string(),\n children: z.array(z.lazy(() => Node)).optional(),\n direction: z.enum(['ltr']).nullable().optional(),\n format: z.string().optional(),\n indent: z.number().optional(),\n version: z.number().optional(),\n })\n\n const TextNode = BaseNode.extend({\n type: z.literal('text'),\n format: z.number().optional(),\n text: z.string(),\n })\n\n const LinkNode = BaseNode.extend({\n id: z.string(),\n type: z.literal('link'),\n fields: z.object({\n linkType: z.string(),\n newTab: z.boolean(),\n url: z.string(),\n }),\n })\n\n const ListItemNode = BaseNode.extend({\n type: z.literal('listitem'),\n checked: z.boolean().optional(),\n value: z.number(),\n })\n\n const ListNode = BaseNode.extend({\n type: z.literal('list'),\n listType: z.enum(['check', 'number', 'bullet']),\n start: z.number(),\n tag: z.enum(['ul', 'ol']),\n })\n\n const HeadingNode = BaseNode.extend({\n type: z.literal('heading'),\n tag: z.enum(['h1', 'h2', 'h3', 'h4']),\n })\n\n // Example of custom node - wip\n const MediaNode = BaseNode.extend({\n type: z.literal('block'),\n version: z.literal(2),\n fields: z.object({\n id: z.string(),\n media: z.string(),\n position: z.enum(['fullscreen', 'default']),\n blockName: z.string(),\n blockType: z.literal('mediaBlock'),\n }),\n })\n\n const Node = z.union([\n TextNode,\n LinkNode,\n ListItemNode,\n ListNode,\n HeadingNode,\n BaseNode.extend({ type: z.enum(['paragraph', 'quote', 'horizontalrule']) }),\n ...(customNodes || []),\n ])\n\n const RootNode = BaseNode.extend({\n type: z.literal('root'),\n })\n\n return z.object({\n root: RootNode,\n })\n}\n"],"names":["z","LexicalBaseNode","object","type","string","children","array","any","optional","direction","enum","nullable","format","indent","number","version","lexicalSchema","customNodes","BaseNode","lazy","Node","TextNode","extend","literal","text","LinkNode","id","fields","linkType","newTab","boolean","url","ListItemNode","checked","value","ListNode","listType","start","tag","HeadingNode","MediaNode","media","position","blockName","blockType","union","RootNode","root"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateSeedPrompt.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/generateSeedPrompt.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,SAAgB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,oBAmBhF,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ai/utils/generateSeedPrompt.ts"],"sourcesContent":["import { anthropic } from '@ai-sdk/anthropic'\nimport { openai } from '@ai-sdk/openai'\nimport { generateText } from 'ai'\n\nimport { PLUGIN_DEFAULT_ANTHROPIC_MODEL, PLUGIN_DEFAULT_OPENAI_MODEL } from '../../defaults.js'\n\nexport const generateSeedPrompt = async (data: { prompt: string; system: string }) => {\n const { prompt, system } = data\n let model = null\n\n if (process.env.OPENAI_API_KEY) {\n model = openai(PLUGIN_DEFAULT_OPENAI_MODEL)\n } else if (process.env.ANTHROPIC_API_KEY) {\n model = anthropic(PLUGIN_DEFAULT_ANTHROPIC_MODEL)\n } else {\n throw new Error('- AI Plugin: Please check your environment variables!')\n }\n\n const { text } = await generateText({\n model,\n prompt,\n system,\n })\n\n return text\n}\n"],"names":["anthropic","openai","generateText","PLUGIN_DEFAULT_ANTHROPIC_MODEL","PLUGIN_DEFAULT_OPENAI_MODEL","generateSeedPrompt","data","prompt","system","model","process","env","OPENAI_API_KEY","ANTHROPIC_API_KEY","Error","text"],"mappings":"AAAA,SAASA,SAAS,QAAQ,oBAAmB;AAC7C,SAASC,MAAM,QAAQ,iBAAgB;AACvC,SAASC,YAAY,QAAQ,KAAI;AAEjC,SAASC,8BAA8B,EAAEC,2BAA2B,QAAQ,oBAAmB;AAE/F,OAAO,MAAMC,qBAAqB,OAAOC;IACvC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAC3B,IAAIG,QAAQ;IAEZ,IAAIC,QAAQC,GAAG,CAACC,cAAc,EAAE;QAC9BH,QAAQR,OAAOG;IACjB,OAAO,IAAIM,QAAQC,GAAG,CAACE,iBAAiB,EAAE;QACxCJ,QAAQT,UAAUG;IACpB,OAAO;QACL,MAAM,IAAIW,MAAM;IAClB;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMb,aAAa;QAClCO;QACAF;QACAC;IACF;IAEA,OAAOO;AACT,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsonToZod.d.ts","sourceRoot":"","sources":["../../src/utilities/jsonToZod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CA6B3D"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export function jsonSchemaToZod(schema) {
|
|
3
|
-
switch(schema.type){
|
|
4
|
-
case 'string':
|
|
5
|
-
return z.string();
|
|
6
|
-
case 'number':
|
|
7
|
-
return z.number();
|
|
8
|
-
case 'integer':
|
|
9
|
-
return z.number().int();
|
|
10
|
-
case 'boolean':
|
|
11
|
-
return z.boolean();
|
|
12
|
-
case 'null':
|
|
13
|
-
return z.null();
|
|
14
|
-
case 'array':
|
|
15
|
-
if (schema.items) {
|
|
16
|
-
return z.array(jsonSchemaToZod(schema.items));
|
|
17
|
-
}
|
|
18
|
-
return z.array(z.any());
|
|
19
|
-
case 'object':
|
|
20
|
-
if (schema.properties) {
|
|
21
|
-
const shape = {};
|
|
22
|
-
for (const [key, value] of Object.entries(schema.properties)){
|
|
23
|
-
shape[key] = jsonSchemaToZod(value);
|
|
24
|
-
}
|
|
25
|
-
return z.object(shape);
|
|
26
|
-
}
|
|
27
|
-
return z.object({});
|
|
28
|
-
default:
|
|
29
|
-
return z.any();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=jsonToZod.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/jsonToZod.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport function jsonSchemaToZod(schema: any): z.ZodType<any> {\n switch (schema.type) {\n case 'string':\n return z.string()\n case 'number':\n return z.number()\n case 'integer':\n return z.number().int()\n case 'boolean':\n return z.boolean()\n case 'null':\n return z.null()\n case 'array':\n if (schema.items) {\n return z.array(jsonSchemaToZod(schema.items))\n }\n return z.array(z.any())\n case 'object':\n if (schema.properties) {\n const shape: { [key: string]: z.ZodType<any> } = {}\n for (const [key, value] of Object.entries(schema.properties)) {\n shape[key] = jsonSchemaToZod(value)\n }\n return z.object(shape)\n }\n return z.object({})\n default:\n return z.any()\n }\n}\n"],"names":["z","jsonSchemaToZod","schema","type","string","number","int","boolean","null","items","array","any","properties","shape","key","value","Object","entries","object"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAK;AAEvB,OAAO,SAASC,gBAAgBC,MAAW;IACzC,OAAQA,OAAOC,IAAI;QACjB,KAAK;YACH,OAAOH,EAAEI,MAAM;QACjB,KAAK;YACH,OAAOJ,EAAEK,MAAM;QACjB,KAAK;YACH,OAAOL,EAAEK,MAAM,GAAGC,GAAG;QACvB,KAAK;YACH,OAAON,EAAEO,OAAO;QAClB,KAAK;YACH,OAAOP,EAAEQ,IAAI;QACf,KAAK;YACH,IAAIN,OAAOO,KAAK,EAAE;gBAChB,OAAOT,EAAEU,KAAK,CAACT,gBAAgBC,OAAOO,KAAK;YAC7C;YACA,OAAOT,EAAEU,KAAK,CAACV,EAAEW,GAAG;QACtB,KAAK;YACH,IAAIT,OAAOU,UAAU,EAAE;gBACrB,MAAMC,QAA2C,CAAC;gBAClD,KAAK,MAAM,CAACC,KAAKC,MAAM,IAAIC,OAAOC,OAAO,CAACf,OAAOU,UAAU,EAAG;oBAC5DC,KAAK,CAACC,IAAI,GAAGb,gBAAgBc;gBAC/B;gBACA,OAAOf,EAAEkB,MAAM,CAACL;YAClB;YACA,OAAOb,EAAEkB,MAAM,CAAC,CAAC;QACnB;YACE,OAAOlB,EAAEW,GAAG;IAChB;AACF"}
|