@goodo/platform-plugin 0.1.7 → 0.1.8

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/manifest.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("zod"),o=e.z.enum(["input","checkbox","color-picker","date","data-time-range","datetime","input-number","monaco-editor","radio","select","tree-select","time","textarea","switch","slider","select-cascader","data-node","data-node-fields","context-menu"]),r=e.z.object({type:o,group:e.z.string().optional(),label:e.z.string().min(1,"Property config label is required")}),c=e.z.object({name:e.z.string().min(1,"Property name is required"),defaultValue:e.z.any().optional().default(null),config:r.optional()}),s=e.z.enum(["SelectedObject","MultipleSelectedObject","CurrentMenu"]),i=e.z.lazy(()=>e.z.object({bindProp:e.z.string().optional(),name:e.z.string().optional(),generic:e.z.array(e.z.lazy(()=>i)).optional()})),d=e.z.object({name:s,type:i}),m=e.z.object({options:e.z.object({bindProp:e.z.string().min(1,"options.bindProp is required")})}),g=e.z.object({name:e.z.string().min(1,"Event name is required"),label:e.z.string().min(1,"Event label is required"),arguments:e.z.array(d).optional().default([]),contextmenu:m.optional()}),u=e.z.object({id:e.z.string().min(1,"'id' is required and cannot be empty"),name:e.z.string().min(1,"'name' is required and cannot be empty"),icon:e.z.string().optional(),entry:e.z.string().optional().default("dist"),props:e.z.array(c).optional().default([]),events:e.z.array(g).optional().default([])});function l(t){return t}function p(t){const n=u.safeParse(t);return n.success?{success:!0,data:n.data}:{success:!1,errors:n.error.issues.map(a=>({path:a.path.join(".")||"root",message:a.message}))}}exports.defineWidget=l;exports.validateWidgetManifest=p;exports.widgetArgumentTypeSchema=i;exports.widgetConfigTypeSchema=o;exports.widgetEventArgumentNameSchema=s;exports.widgetEventArgumentSchema=d;exports.widgetEventContextMenuSchema=m;exports.widgetEventSchema=g;exports.widgetManifestSchema=u;exports.widgetPropConfigSchema=r;exports.widgetPropSchema=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("zod"),o=e.z.enum(["input","checkbox","color-picker","date","data-time-range","datetime","input-number","monaco-editor","radio","select","tree-select","time","textarea","switch","slider","select-cascader","data-node","data-node-fields","context-menu"]),r=e.z.enum(["base","custom","display","filters","value"]),c=e.z.object({type:o,group:r.optional(),label:e.z.string().min(1,"Property config label is required")}),s=e.z.object({name:e.z.string().min(1,"Property name is required"),defaultValue:e.z.any().optional().default(null),config:c.optional()}),d=e.z.enum(["SelectedObject","MultipleSelectedObject","CurrentMenu"]),i=e.z.lazy(()=>e.z.object({bindProp:e.z.string().optional(),name:e.z.string().optional(),generic:e.z.array(e.z.lazy(()=>i)).optional()})),m=e.z.object({name:d,type:i}),g=e.z.object({options:e.z.object({bindProp:e.z.string().min(1,"options.bindProp is required")})}),u=e.z.object({name:e.z.string().min(1,"Event name is required"),label:e.z.string().min(1,"Event label is required"),arguments:e.z.array(m).optional().default([]),contextmenu:g.optional()}),l=e.z.object({id:e.z.string().min(1,"'id' is required and cannot be empty"),name:e.z.string().min(1,"'name' is required and cannot be empty"),icon:e.z.string().optional(),entry:e.z.string().optional().default("dist"),props:e.z.array(s).optional().default([]),events:e.z.array(u).optional().default([])});function p(t){return t}function z(t){const n=l.safeParse(t);return n.success?{success:!0,data:n.data}:{success:!1,errors:n.error.issues.map(a=>({path:a.path.join(".")||"root",message:a.message}))}}exports.defineWidget=p;exports.validateWidgetManifest=z;exports.widgetArgumentTypeSchema=i;exports.widgetConfigGroupSchema=r;exports.widgetConfigTypeSchema=o;exports.widgetEventArgumentNameSchema=d;exports.widgetEventArgumentSchema=m;exports.widgetEventContextMenuSchema=g;exports.widgetEventSchema=u;exports.widgetManifestSchema=l;exports.widgetPropConfigSchema=c;exports.widgetPropSchema=s;
2
2
  //# sourceMappingURL=manifest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.cjs","sources":["../src/manifest.ts"],"sourcesContent":["import { z } from 'zod';\n\n// ==========================================\n// 1. Props Configuration Schemas\n// ==========================================\n\nexport const widgetConfigTypeSchema = z.enum([\n 'input',\n 'checkbox',\n 'color-picker',\n 'date',\n 'data-time-range',\n 'datetime',\n 'input-number',\n 'monaco-editor',\n 'radio',\n 'select',\n 'tree-select',\n 'time',\n 'textarea',\n 'switch',\n 'slider',\n 'select-cascader',\n 'data-node',\n 'data-node-fields',\n 'context-menu',\n]);\n\nexport const widgetPropConfigSchema = z.object({\n type: widgetConfigTypeSchema,\n group: z.string().optional(),\n label: z.string().min(1, 'Property config label is required'),\n});\n\nexport const widgetPropSchema = z.object({\n name: z.string().min(1, 'Property name is required'),\n defaultValue: z.any().optional().default(null),\n config: widgetPropConfigSchema.optional(),\n});\n\n// ==========================================\n// 2. Events & Arguments Configuration Schemas\n// ==========================================\n\n/**\n * Supported standard event argument names (3.3)\n */\nexport const widgetEventArgumentNameSchema = z.enum([\n 'SelectedObject',\n 'MultipleSelectedObject',\n 'CurrentMenu',\n]);\n\n/**\n * Recursive schema for event argument types (3.2):\n * 1. Entity type bound to property: { bindProp: 'dataSourceNode' }\n * 2. Generic collection type: { name: 'List', generic: [{ bindProp: 'dataSourceNode' }] }\n * 3. Fixed internal platform type: { name: 'CurrentMenu' }\n */\nexport type WidgetArgumentType = {\n bindProp?: string;\n name?: string;\n generic?: WidgetArgumentType[];\n};\n\nexport const widgetArgumentTypeSchema: z.ZodType<WidgetArgumentType> = z.lazy(() =>\n z.object({\n bindProp: z.string().optional(),\n name: z.string().optional(),\n generic: z.array(z.lazy(() => widgetArgumentTypeSchema)).optional(),\n })\n);\n\n/**\n * Event Argument configuration item (3.2)\n */\nexport const widgetEventArgumentSchema = z.object({\n name: widgetEventArgumentNameSchema,\n type: widgetArgumentTypeSchema,\n});\n\n/**\n * Context menu binding configuration for event (3.4)\n */\nexport const widgetEventContextMenuSchema = z.object({\n options: z.object({\n bindProp: z.string().min(1, 'options.bindProp is required'),\n }),\n});\n\n/**\n * Event configuration item (3.1)\n */\nexport const widgetEventSchema = z.object({\n name: z.string().min(1, 'Event name is required'),\n label: z.string().min(1, 'Event label is required'),\n arguments: z.array(widgetEventArgumentSchema).optional().default([]),\n contextmenu: widgetEventContextMenuSchema.optional(),\n});\n\n// ==========================================\n// 3. Widget Manifest Root Schema\n// ==========================================\n\nexport const widgetManifestSchema = z.object({\n id: z.string().min(1, \"'id' is required and cannot be empty\"),\n name: z.string().min(1, \"'name' is required and cannot be empty\"),\n icon: z.string().optional(),\n entry: z.string().optional().default('dist'),\n props: z.array(widgetPropSchema).optional().default([]),\n events: z.array(widgetEventSchema).optional().default([]),\n});\n\n// ==========================================\n// 4. Inferred TypeScript Types\n// ==========================================\n\nexport type WidgetConfigType = z.infer<typeof widgetConfigTypeSchema>;\nexport type WidgetPropConfig = z.infer<typeof widgetPropConfigSchema>;\nexport type WidgetProp = z.infer<typeof widgetPropSchema>;\n\nexport type WidgetEventArgumentName = z.infer<typeof widgetEventArgumentNameSchema>;\nexport type WidgetEventArgument = z.infer<typeof widgetEventArgumentSchema>;\nexport type WidgetEventContextMenu = z.infer<typeof widgetEventContextMenuSchema>;\nexport type WidgetEvent = z.infer<typeof widgetEventSchema>;\n\nexport type WidgetManifest = z.input<typeof widgetManifestSchema>;\nexport type ResolvedWidgetManifest = z.output<typeof widgetManifestSchema>;\n\n// ==========================================\n// 5. Helper & Validation Functions\n// ==========================================\n\n/**\n * Type-helper for defining widget manifest in `.goodo/manifest.ts`.\n * Provides full IDE autocomplete and compile-time type validation.\n */\nexport function defineWidget(config: WidgetManifest): WidgetManifest {\n return config;\n}\n\nexport interface ManifestValidationResult {\n success: boolean;\n data?: ResolvedWidgetManifest;\n errors?: Array<{ path: string; message: string }>;\n}\n\n/**\n * Validates raw manifest data using Zod schema for Node.js environments (e.g. CLI, backend).\n */\nexport function validateWidgetManifest(raw: unknown): ManifestValidationResult {\n const result = widgetManifestSchema.safeParse(raw);\n if (result.success) {\n return {\n success: true,\n data: result.data,\n };\n }\n\n return {\n success: false,\n errors: result.error.issues.map((issue) => ({\n path: issue.path.join('.') || 'root',\n message: issue.message,\n })),\n };\n}"],"names":["widgetConfigTypeSchema","z","widgetPropConfigSchema","widgetPropSchema","widgetEventArgumentNameSchema","widgetArgumentTypeSchema","widgetEventArgumentSchema","widgetEventContextMenuSchema","widgetEventSchema","widgetManifestSchema","defineWidget","config","validateWidgetManifest","raw","result","issue"],"mappings":"uGAMaA,EAAyBC,EAAAA,EAAE,KAAK,CAC3C,QACA,WACA,eACA,OACA,kBACA,WACA,eACA,gBACA,QACA,SACA,cACA,OACA,WACA,SACA,SACA,kBACA,YACA,mBACA,cACF,CAAC,EAEYC,EAAyBD,EAAAA,EAAE,OAAO,CAC7C,KAAMD,EACN,MAAOC,EAAAA,EAAE,OAAA,EAAS,SAAA,EAClB,MAAOA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,mCAAmC,CAC9D,CAAC,EAEYE,EAAmBF,EAAAA,EAAE,OAAO,CACvC,KAAMA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,2BAA2B,EACnD,aAAcA,EAAAA,EAAE,IAAA,EAAM,SAAA,EAAW,QAAQ,IAAI,EAC7C,OAAQC,EAAuB,SAAA,CACjC,CAAC,EASYE,EAAgCH,EAAAA,EAAE,KAAK,CAClD,iBACA,yBACA,aACF,CAAC,EAcYI,EAA0DJ,EAAAA,EAAE,KAAK,IAC5EA,EAAAA,EAAE,OAAO,CACP,SAAUA,EAAAA,EAAE,OAAA,EAAS,SAAA,EACrB,KAAMA,EAAAA,EAAE,OAAA,EAAS,SAAA,EACjB,QAASA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,KAAK,IAAMI,CAAwB,CAAC,EAAE,SAAA,CAAS,CACnE,CACH,EAKaC,EAA4BL,EAAAA,EAAE,OAAO,CAChD,KAAMG,EACN,KAAMC,CACR,CAAC,EAKYE,EAA+BN,EAAAA,EAAE,OAAO,CACnD,QAASA,EAAAA,EAAE,OAAO,CAChB,SAAUA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,8BAA8B,CAAA,CAC3D,CACH,CAAC,EAKYO,EAAoBP,EAAAA,EAAE,OAAO,CACxC,KAAMA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,wBAAwB,EAChD,MAAOA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,yBAAyB,EAClD,UAAWA,EAAAA,EAAE,MAAMK,CAAyB,EAAE,SAAA,EAAW,QAAQ,EAAE,EACnE,YAAaC,EAA6B,SAAA,CAC5C,CAAC,EAMYE,EAAuBR,EAAAA,EAAE,OAAO,CAC3C,GAAIA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,sCAAsC,EAC5D,KAAMA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,wCAAwC,EAChE,KAAMA,EAAAA,EAAE,OAAA,EAAS,SAAA,EACjB,MAAOA,EAAAA,EAAE,OAAA,EAAS,SAAA,EAAW,QAAQ,MAAM,EAC3C,MAAOA,EAAAA,EAAE,MAAME,CAAgB,EAAE,SAAA,EAAW,QAAQ,EAAE,EACtD,OAAQF,EAAAA,EAAE,MAAMO,CAAiB,EAAE,SAAA,EAAW,QAAQ,CAAA,CAAE,CAC1D,CAAC,EA0BM,SAASE,EAAaC,EAAwC,CACnE,OAAOA,CACT,CAWO,SAASC,EAAuBC,EAAwC,CAC7E,MAAMC,EAASL,EAAqB,UAAUI,CAAG,EACjD,OAAIC,EAAO,QACF,CACL,QAAS,GACT,KAAMA,EAAO,IAAA,EAIV,CACL,QAAS,GACT,OAAQA,EAAO,MAAM,OAAO,IAAKC,IAAW,CAC1C,KAAMA,EAAM,KAAK,KAAK,GAAG,GAAK,OAC9B,QAASA,EAAM,OAAA,EACf,CAAA,CAEN"}
1
+ {"version":3,"file":"manifest.cjs","sources":["../src/manifest.ts"],"sourcesContent":["import { z } from 'zod';\n\n// ==========================================\n// 1. Props Configuration Schemas\n// ==========================================\n\nexport const widgetConfigTypeSchema = z.enum([\n 'input',\n 'checkbox',\n 'color-picker',\n 'date',\n 'data-time-range',\n 'datetime',\n 'input-number',\n 'monaco-editor',\n 'radio',\n 'select',\n 'tree-select',\n 'time',\n 'textarea',\n 'switch',\n 'slider',\n 'select-cascader',\n 'data-node',\n 'data-node-fields',\n 'context-menu',\n]);\n\nexport const widgetConfigGroupSchema = z.enum([\n 'base',\n 'custom',\n 'display',\n 'filters',\n 'value',\n]);\n\nexport const widgetPropConfigSchema = z.object({\n type: widgetConfigTypeSchema,\n group: widgetConfigGroupSchema.optional(),\n label: z.string().min(1, 'Property config label is required'),\n});\n\nexport const widgetPropSchema = z.object({\n name: z.string().min(1, 'Property name is required'),\n defaultValue: z.any().optional().default(null),\n config: widgetPropConfigSchema.optional(),\n});\n\n// ==========================================\n// 2. Events & Arguments Configuration Schemas\n// ==========================================\n\n/**\n * Supported standard event argument names (3.3)\n */\nexport const widgetEventArgumentNameSchema = z.enum([\n 'SelectedObject',\n 'MultipleSelectedObject',\n 'CurrentMenu',\n]);\n\n/**\n * Recursive schema for event argument types (3.2):\n * 1. Entity type bound to property: { bindProp: 'dataSourceNode' }\n * 2. Generic collection type: { name: 'List', generic: [{ bindProp: 'dataSourceNode' }] }\n * 3. Fixed internal platform type: { name: 'CurrentMenu' }\n */\nexport type WidgetArgumentType = {\n bindProp?: string;\n name?: string;\n generic?: WidgetArgumentType[];\n};\n\nexport const widgetArgumentTypeSchema: z.ZodType<WidgetArgumentType> = z.lazy(() =>\n z.object({\n bindProp: z.string().optional(),\n name: z.string().optional(),\n generic: z.array(z.lazy(() => widgetArgumentTypeSchema)).optional(),\n })\n);\n\n/**\n * Event Argument configuration item (3.2)\n */\nexport const widgetEventArgumentSchema = z.object({\n name: widgetEventArgumentNameSchema,\n type: widgetArgumentTypeSchema,\n});\n\n/**\n * Context menu binding configuration for event (3.4)\n */\nexport const widgetEventContextMenuSchema = z.object({\n options: z.object({\n bindProp: z.string().min(1, 'options.bindProp is required'),\n }),\n});\n\n/**\n * Event configuration item (3.1)\n */\nexport const widgetEventSchema = z.object({\n name: z.string().min(1, 'Event name is required'),\n label: z.string().min(1, 'Event label is required'),\n arguments: z.array(widgetEventArgumentSchema).optional().default([]),\n contextmenu: widgetEventContextMenuSchema.optional(),\n});\n\n// ==========================================\n// 3. Widget Manifest Root Schema\n// ==========================================\n\nexport const widgetManifestSchema = z.object({\n id: z.string().min(1, \"'id' is required and cannot be empty\"),\n name: z.string().min(1, \"'name' is required and cannot be empty\"),\n icon: z.string().optional(),\n entry: z.string().optional().default('dist'),\n props: z.array(widgetPropSchema).optional().default([]),\n events: z.array(widgetEventSchema).optional().default([]),\n});\n\n// ==========================================\n// 4. Inferred TypeScript Types\n// ==========================================\n\nexport type WidgetConfigType = z.infer<typeof widgetConfigTypeSchema>;\nexport type WidgetConfigGroup = z.infer<typeof widgetConfigGroupSchema>;\nexport type WidgetPropConfig = z.infer<typeof widgetPropConfigSchema>;\nexport type WidgetProp = z.infer<typeof widgetPropSchema>;\n\nexport type WidgetEventArgumentName = z.infer<typeof widgetEventArgumentNameSchema>;\nexport type WidgetEventArgument = z.infer<typeof widgetEventArgumentSchema>;\nexport type WidgetEventContextMenu = z.infer<typeof widgetEventContextMenuSchema>;\nexport type WidgetEvent = z.infer<typeof widgetEventSchema>;\n\nexport type WidgetManifest = z.input<typeof widgetManifestSchema>;\nexport type ResolvedWidgetManifest = z.output<typeof widgetManifestSchema>;\n\n// ==========================================\n// 5. Helper & Validation Functions\n// ==========================================\n\n/**\n * Type-helper for defining widget manifest in `.goodo/manifest.ts`.\n * Provides full IDE autocomplete and compile-time type validation.\n */\nexport function defineWidget(config: WidgetManifest): WidgetManifest {\n return config;\n}\n\nexport interface ManifestValidationResult {\n success: boolean;\n data?: ResolvedWidgetManifest;\n errors?: Array<{ path: string; message: string }>;\n}\n\n/**\n * Validates raw manifest data using Zod schema for Node.js environments (e.g. CLI, backend).\n */\nexport function validateWidgetManifest(raw: unknown): ManifestValidationResult {\n const result = widgetManifestSchema.safeParse(raw);\n if (result.success) {\n return {\n success: true,\n data: result.data,\n };\n }\n\n return {\n success: false,\n errors: result.error.issues.map((issue) => ({\n path: issue.path.join('.') || 'root',\n message: issue.message,\n })),\n };\n}"],"names":["widgetConfigTypeSchema","z","widgetConfigGroupSchema","widgetPropConfigSchema","widgetPropSchema","widgetEventArgumentNameSchema","widgetArgumentTypeSchema","widgetEventArgumentSchema","widgetEventContextMenuSchema","widgetEventSchema","widgetManifestSchema","defineWidget","config","validateWidgetManifest","raw","result","issue"],"mappings":"uGAMaA,EAAyBC,EAAAA,EAAE,KAAK,CAC3C,QACA,WACA,eACA,OACA,kBACA,WACA,eACA,gBACA,QACA,SACA,cACA,OACA,WACA,SACA,SACA,kBACA,YACA,mBACA,cACF,CAAC,EAEYC,EAA0BD,EAAAA,EAAE,KAAK,CAC5C,OACA,SACA,UACA,UACA,OACF,CAAC,EAEYE,EAAyBF,EAAAA,EAAE,OAAO,CAC7C,KAAMD,EACN,MAAOE,EAAwB,SAAA,EAC/B,MAAOD,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,mCAAmC,CAC9D,CAAC,EAEYG,EAAmBH,EAAAA,EAAE,OAAO,CACvC,KAAMA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,2BAA2B,EACnD,aAAcA,EAAAA,EAAE,IAAA,EAAM,SAAA,EAAW,QAAQ,IAAI,EAC7C,OAAQE,EAAuB,SAAA,CACjC,CAAC,EASYE,EAAgCJ,EAAAA,EAAE,KAAK,CAClD,iBACA,yBACA,aACF,CAAC,EAcYK,EAA0DL,EAAAA,EAAE,KAAK,IAC5EA,EAAAA,EAAE,OAAO,CACP,SAAUA,EAAAA,EAAE,OAAA,EAAS,SAAA,EACrB,KAAMA,EAAAA,EAAE,OAAA,EAAS,SAAA,EACjB,QAASA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,KAAK,IAAMK,CAAwB,CAAC,EAAE,SAAA,CAAS,CACnE,CACH,EAKaC,EAA4BN,EAAAA,EAAE,OAAO,CAChD,KAAMI,EACN,KAAMC,CACR,CAAC,EAKYE,EAA+BP,EAAAA,EAAE,OAAO,CACnD,QAASA,EAAAA,EAAE,OAAO,CAChB,SAAUA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,8BAA8B,CAAA,CAC3D,CACH,CAAC,EAKYQ,EAAoBR,EAAAA,EAAE,OAAO,CACxC,KAAMA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,wBAAwB,EAChD,MAAOA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,yBAAyB,EAClD,UAAWA,EAAAA,EAAE,MAAMM,CAAyB,EAAE,SAAA,EAAW,QAAQ,EAAE,EACnE,YAAaC,EAA6B,SAAA,CAC5C,CAAC,EAMYE,EAAuBT,EAAAA,EAAE,OAAO,CAC3C,GAAIA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,sCAAsC,EAC5D,KAAMA,EAAAA,EAAE,OAAA,EAAS,IAAI,EAAG,wCAAwC,EAChE,KAAMA,EAAAA,EAAE,OAAA,EAAS,SAAA,EACjB,MAAOA,EAAAA,EAAE,OAAA,EAAS,SAAA,EAAW,QAAQ,MAAM,EAC3C,MAAOA,EAAAA,EAAE,MAAMG,CAAgB,EAAE,SAAA,EAAW,QAAQ,EAAE,EACtD,OAAQH,EAAAA,EAAE,MAAMQ,CAAiB,EAAE,SAAA,EAAW,QAAQ,CAAA,CAAE,CAC1D,CAAC,EA2BM,SAASE,EAAaC,EAAwC,CACnE,OAAOA,CACT,CAWO,SAASC,EAAuBC,EAAwC,CAC7E,MAAMC,EAASL,EAAqB,UAAUI,CAAG,EACjD,OAAIC,EAAO,QACF,CACL,QAAS,GACT,KAAMA,EAAO,IAAA,EAIV,CACL,QAAS,GACT,OAAQA,EAAO,MAAM,OAAO,IAAKC,IAAW,CAC1C,KAAMA,EAAM,KAAK,KAAK,GAAG,GAAK,OAC9B,QAASA,EAAM,OAAA,EACf,CAAA,CAEN"}
@@ -20,6 +20,13 @@ export declare const widgetConfigTypeSchema: z.ZodEnum<{
20
20
  "data-node-fields": "data-node-fields";
21
21
  "context-menu": "context-menu";
22
22
  }>;
23
+ export declare const widgetConfigGroupSchema: z.ZodEnum<{
24
+ base: "base";
25
+ custom: "custom";
26
+ display: "display";
27
+ filters: "filters";
28
+ value: "value";
29
+ }>;
23
30
  export declare const widgetPropConfigSchema: z.ZodObject<{
24
31
  type: z.ZodEnum<{
25
32
  input: "input";
@@ -42,7 +49,13 @@ export declare const widgetPropConfigSchema: z.ZodObject<{
42
49
  "data-node-fields": "data-node-fields";
43
50
  "context-menu": "context-menu";
44
51
  }>;
45
- group: z.ZodOptional<z.ZodString>;
52
+ group: z.ZodOptional<z.ZodEnum<{
53
+ base: "base";
54
+ custom: "custom";
55
+ display: "display";
56
+ filters: "filters";
57
+ value: "value";
58
+ }>>;
46
59
  label: z.ZodString;
47
60
  }, z.core.$strip>;
48
61
  export declare const widgetPropSchema: z.ZodObject<{
@@ -70,7 +83,13 @@ export declare const widgetPropSchema: z.ZodObject<{
70
83
  "data-node-fields": "data-node-fields";
71
84
  "context-menu": "context-menu";
72
85
  }>;
73
- group: z.ZodOptional<z.ZodString>;
86
+ group: z.ZodOptional<z.ZodEnum<{
87
+ base: "base";
88
+ custom: "custom";
89
+ display: "display";
90
+ filters: "filters";
91
+ value: "value";
92
+ }>>;
74
93
  label: z.ZodString;
75
94
  }, z.core.$strip>>;
76
95
  }, z.core.$strip>;
@@ -163,7 +182,13 @@ export declare const widgetManifestSchema: z.ZodObject<{
163
182
  "data-node-fields": "data-node-fields";
164
183
  "context-menu": "context-menu";
165
184
  }>;
166
- group: z.ZodOptional<z.ZodString>;
185
+ group: z.ZodOptional<z.ZodEnum<{
186
+ base: "base";
187
+ custom: "custom";
188
+ display: "display";
189
+ filters: "filters";
190
+ value: "value";
191
+ }>>;
167
192
  label: z.ZodString;
168
193
  }, z.core.$strip>>;
169
194
  }, z.core.$strip>>>>;
@@ -186,6 +211,7 @@ export declare const widgetManifestSchema: z.ZodObject<{
186
211
  }, z.core.$strip>>>>;
187
212
  }, z.core.$strip>;
188
213
  export type WidgetConfigType = z.infer<typeof widgetConfigTypeSchema>;
214
+ export type WidgetConfigGroup = z.infer<typeof widgetConfigGroupSchema>;
189
215
  export type WidgetPropConfig = z.infer<typeof widgetPropConfigSchema>;
190
216
  export type WidgetProp = z.infer<typeof widgetPropSchema>;
191
217
  export type WidgetEventArgumentName = z.infer<typeof widgetEventArgumentNameSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;EAoBjC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;iBAIjC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;EAIxC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAMlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;iBAGpC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAK5B,CAAC;AAMH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO/B,CAAC;AAMH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAM3E;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAEnE;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,wBAAwB,CAgB7E"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;EAoBjC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIjC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI3B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;EAIxC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAMlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;iBAGpC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAK5B,CAAC;AAMH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO/B,CAAC;AAMH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAM3E;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAEnE;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,wBAAwB,CAgB7E"}
package/dist/manifest.js CHANGED
@@ -19,15 +19,21 @@ const o = e.enum([
19
19
  "data-node",
20
20
  "data-node-fields",
21
21
  "context-menu"
22
- ]), r = e.object({
22
+ ]), r = e.enum([
23
+ "base",
24
+ "custom",
25
+ "display",
26
+ "filters",
27
+ "value"
28
+ ]), s = e.object({
23
29
  type: o,
24
- group: e.string().optional(),
30
+ group: r.optional(),
25
31
  label: e.string().min(1, "Property config label is required")
26
- }), s = e.object({
32
+ }), c = e.object({
27
33
  name: e.string().min(1, "Property name is required"),
28
34
  defaultValue: e.any().optional().default(null),
29
- config: r.optional()
30
- }), c = e.enum([
35
+ config: s.optional()
36
+ }), d = e.enum([
31
37
  "SelectedObject",
32
38
  "MultipleSelectedObject",
33
39
  "CurrentMenu"
@@ -37,31 +43,31 @@ const o = e.enum([
37
43
  name: e.string().optional(),
38
44
  generic: e.array(e.lazy(() => a)).optional()
39
45
  })
40
- ), d = e.object({
41
- name: c,
46
+ ), m = e.object({
47
+ name: d,
42
48
  type: a
43
- }), m = e.object({
49
+ }), l = e.object({
44
50
  options: e.object({
45
51
  bindProp: e.string().min(1, "options.bindProp is required")
46
52
  })
47
- }), l = e.object({
53
+ }), u = e.object({
48
54
  name: e.string().min(1, "Event name is required"),
49
55
  label: e.string().min(1, "Event label is required"),
50
- arguments: e.array(d).optional().default([]),
51
- contextmenu: m.optional()
52
- }), u = e.object({
56
+ arguments: e.array(m).optional().default([]),
57
+ contextmenu: l.optional()
58
+ }), p = e.object({
53
59
  id: e.string().min(1, "'id' is required and cannot be empty"),
54
60
  name: e.string().min(1, "'name' is required and cannot be empty"),
55
61
  icon: e.string().optional(),
56
62
  entry: e.string().optional().default("dist"),
57
- props: e.array(s).optional().default([]),
58
- events: e.array(l).optional().default([])
63
+ props: e.array(c).optional().default([]),
64
+ events: e.array(u).optional().default([])
59
65
  });
60
- function g(t) {
66
+ function b(t) {
61
67
  return t;
62
68
  }
63
- function b(t) {
64
- const n = u.safeParse(t);
69
+ function f(t) {
70
+ const n = p.safeParse(t);
65
71
  return n.success ? {
66
72
  success: !0,
67
73
  data: n.data
@@ -74,16 +80,17 @@ function b(t) {
74
80
  };
75
81
  }
76
82
  export {
77
- g as defineWidget,
78
- b as validateWidgetManifest,
83
+ b as defineWidget,
84
+ f as validateWidgetManifest,
79
85
  a as widgetArgumentTypeSchema,
86
+ r as widgetConfigGroupSchema,
80
87
  o as widgetConfigTypeSchema,
81
- c as widgetEventArgumentNameSchema,
82
- d as widgetEventArgumentSchema,
83
- m as widgetEventContextMenuSchema,
84
- l as widgetEventSchema,
85
- u as widgetManifestSchema,
86
- r as widgetPropConfigSchema,
87
- s as widgetPropSchema
88
+ d as widgetEventArgumentNameSchema,
89
+ m as widgetEventArgumentSchema,
90
+ l as widgetEventContextMenuSchema,
91
+ u as widgetEventSchema,
92
+ p as widgetManifestSchema,
93
+ s as widgetPropConfigSchema,
94
+ c as widgetPropSchema
88
95
  };
89
96
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sources":["../src/manifest.ts"],"sourcesContent":["import { z } from 'zod';\n\n// ==========================================\n// 1. Props Configuration Schemas\n// ==========================================\n\nexport const widgetConfigTypeSchema = z.enum([\n 'input',\n 'checkbox',\n 'color-picker',\n 'date',\n 'data-time-range',\n 'datetime',\n 'input-number',\n 'monaco-editor',\n 'radio',\n 'select',\n 'tree-select',\n 'time',\n 'textarea',\n 'switch',\n 'slider',\n 'select-cascader',\n 'data-node',\n 'data-node-fields',\n 'context-menu',\n]);\n\nexport const widgetPropConfigSchema = z.object({\n type: widgetConfigTypeSchema,\n group: z.string().optional(),\n label: z.string().min(1, 'Property config label is required'),\n});\n\nexport const widgetPropSchema = z.object({\n name: z.string().min(1, 'Property name is required'),\n defaultValue: z.any().optional().default(null),\n config: widgetPropConfigSchema.optional(),\n});\n\n// ==========================================\n// 2. Events & Arguments Configuration Schemas\n// ==========================================\n\n/**\n * Supported standard event argument names (3.3)\n */\nexport const widgetEventArgumentNameSchema = z.enum([\n 'SelectedObject',\n 'MultipleSelectedObject',\n 'CurrentMenu',\n]);\n\n/**\n * Recursive schema for event argument types (3.2):\n * 1. Entity type bound to property: { bindProp: 'dataSourceNode' }\n * 2. Generic collection type: { name: 'List', generic: [{ bindProp: 'dataSourceNode' }] }\n * 3. Fixed internal platform type: { name: 'CurrentMenu' }\n */\nexport type WidgetArgumentType = {\n bindProp?: string;\n name?: string;\n generic?: WidgetArgumentType[];\n};\n\nexport const widgetArgumentTypeSchema: z.ZodType<WidgetArgumentType> = z.lazy(() =>\n z.object({\n bindProp: z.string().optional(),\n name: z.string().optional(),\n generic: z.array(z.lazy(() => widgetArgumentTypeSchema)).optional(),\n })\n);\n\n/**\n * Event Argument configuration item (3.2)\n */\nexport const widgetEventArgumentSchema = z.object({\n name: widgetEventArgumentNameSchema,\n type: widgetArgumentTypeSchema,\n});\n\n/**\n * Context menu binding configuration for event (3.4)\n */\nexport const widgetEventContextMenuSchema = z.object({\n options: z.object({\n bindProp: z.string().min(1, 'options.bindProp is required'),\n }),\n});\n\n/**\n * Event configuration item (3.1)\n */\nexport const widgetEventSchema = z.object({\n name: z.string().min(1, 'Event name is required'),\n label: z.string().min(1, 'Event label is required'),\n arguments: z.array(widgetEventArgumentSchema).optional().default([]),\n contextmenu: widgetEventContextMenuSchema.optional(),\n});\n\n// ==========================================\n// 3. Widget Manifest Root Schema\n// ==========================================\n\nexport const widgetManifestSchema = z.object({\n id: z.string().min(1, \"'id' is required and cannot be empty\"),\n name: z.string().min(1, \"'name' is required and cannot be empty\"),\n icon: z.string().optional(),\n entry: z.string().optional().default('dist'),\n props: z.array(widgetPropSchema).optional().default([]),\n events: z.array(widgetEventSchema).optional().default([]),\n});\n\n// ==========================================\n// 4. Inferred TypeScript Types\n// ==========================================\n\nexport type WidgetConfigType = z.infer<typeof widgetConfigTypeSchema>;\nexport type WidgetPropConfig = z.infer<typeof widgetPropConfigSchema>;\nexport type WidgetProp = z.infer<typeof widgetPropSchema>;\n\nexport type WidgetEventArgumentName = z.infer<typeof widgetEventArgumentNameSchema>;\nexport type WidgetEventArgument = z.infer<typeof widgetEventArgumentSchema>;\nexport type WidgetEventContextMenu = z.infer<typeof widgetEventContextMenuSchema>;\nexport type WidgetEvent = z.infer<typeof widgetEventSchema>;\n\nexport type WidgetManifest = z.input<typeof widgetManifestSchema>;\nexport type ResolvedWidgetManifest = z.output<typeof widgetManifestSchema>;\n\n// ==========================================\n// 5. Helper & Validation Functions\n// ==========================================\n\n/**\n * Type-helper for defining widget manifest in `.goodo/manifest.ts`.\n * Provides full IDE autocomplete and compile-time type validation.\n */\nexport function defineWidget(config: WidgetManifest): WidgetManifest {\n return config;\n}\n\nexport interface ManifestValidationResult {\n success: boolean;\n data?: ResolvedWidgetManifest;\n errors?: Array<{ path: string; message: string }>;\n}\n\n/**\n * Validates raw manifest data using Zod schema for Node.js environments (e.g. CLI, backend).\n */\nexport function validateWidgetManifest(raw: unknown): ManifestValidationResult {\n const result = widgetManifestSchema.safeParse(raw);\n if (result.success) {\n return {\n success: true,\n data: result.data,\n };\n }\n\n return {\n success: false,\n errors: result.error.issues.map((issue) => ({\n path: issue.path.join('.') || 'root',\n message: issue.message,\n })),\n };\n}"],"names":["widgetConfigTypeSchema","z","widgetPropConfigSchema","widgetPropSchema","widgetEventArgumentNameSchema","widgetArgumentTypeSchema","widgetEventArgumentSchema","widgetEventContextMenuSchema","widgetEventSchema","widgetManifestSchema","defineWidget","config","validateWidgetManifest","raw","result","issue"],"mappings":";AAMO,MAAMA,IAAyBC,EAAE,KAAK;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;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,CAAC,GAEYC,IAAyBD,EAAE,OAAO;AAAA,EAC7C,MAAMD;AAAA,EACN,OAAOC,EAAE,OAAA,EAAS,SAAA;AAAA,EAClB,OAAOA,EAAE,OAAA,EAAS,IAAI,GAAG,mCAAmC;AAC9D,CAAC,GAEYE,IAAmBF,EAAE,OAAO;AAAA,EACvC,MAAMA,EAAE,OAAA,EAAS,IAAI,GAAG,2BAA2B;AAAA,EACnD,cAAcA,EAAE,IAAA,EAAM,SAAA,EAAW,QAAQ,IAAI;AAAA,EAC7C,QAAQC,EAAuB,SAAA;AACjC,CAAC,GASYE,IAAgCH,EAAE,KAAK;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AACF,CAAC,GAcYI,IAA0DJ,EAAE;AAAA,EAAK,MAC5EA,EAAE,OAAO;AAAA,IACP,UAAUA,EAAE,OAAA,EAAS,SAAA;AAAA,IACrB,MAAMA,EAAE,OAAA,EAAS,SAAA;AAAA,IACjB,SAASA,EAAE,MAAMA,EAAE,KAAK,MAAMI,CAAwB,CAAC,EAAE,SAAA;AAAA,EAAS,CACnE;AACH,GAKaC,IAA4BL,EAAE,OAAO;AAAA,EAChD,MAAMG;AAAA,EACN,MAAMC;AACR,CAAC,GAKYE,IAA+BN,EAAE,OAAO;AAAA,EACnD,SAASA,EAAE,OAAO;AAAA,IAChB,UAAUA,EAAE,OAAA,EAAS,IAAI,GAAG,8BAA8B;AAAA,EAAA,CAC3D;AACH,CAAC,GAKYO,IAAoBP,EAAE,OAAO;AAAA,EACxC,MAAMA,EAAE,OAAA,EAAS,IAAI,GAAG,wBAAwB;AAAA,EAChD,OAAOA,EAAE,OAAA,EAAS,IAAI,GAAG,yBAAyB;AAAA,EAClD,WAAWA,EAAE,MAAMK,CAAyB,EAAE,SAAA,EAAW,QAAQ,EAAE;AAAA,EACnE,aAAaC,EAA6B,SAAA;AAC5C,CAAC,GAMYE,IAAuBR,EAAE,OAAO;AAAA,EAC3C,IAAIA,EAAE,OAAA,EAAS,IAAI,GAAG,sCAAsC;AAAA,EAC5D,MAAMA,EAAE,OAAA,EAAS,IAAI,GAAG,wCAAwC;AAAA,EAChE,MAAMA,EAAE,OAAA,EAAS,SAAA;AAAA,EACjB,OAAOA,EAAE,OAAA,EAAS,SAAA,EAAW,QAAQ,MAAM;AAAA,EAC3C,OAAOA,EAAE,MAAME,CAAgB,EAAE,SAAA,EAAW,QAAQ,EAAE;AAAA,EACtD,QAAQF,EAAE,MAAMO,CAAiB,EAAE,SAAA,EAAW,QAAQ,CAAA,CAAE;AAC1D,CAAC;AA0BM,SAASE,EAAaC,GAAwC;AACnE,SAAOA;AACT;AAWO,SAASC,EAAuBC,GAAwC;AAC7E,QAAMC,IAASL,EAAqB,UAAUI,CAAG;AACjD,SAAIC,EAAO,UACF;AAAA,IACL,SAAS;AAAA,IACT,MAAMA,EAAO;AAAA,EAAA,IAIV;AAAA,IACL,SAAS;AAAA,IACT,QAAQA,EAAO,MAAM,OAAO,IAAI,CAACC,OAAW;AAAA,MAC1C,MAAMA,EAAM,KAAK,KAAK,GAAG,KAAK;AAAA,MAC9B,SAASA,EAAM;AAAA,IAAA,EACf;AAAA,EAAA;AAEN;"}
1
+ {"version":3,"file":"manifest.js","sources":["../src/manifest.ts"],"sourcesContent":["import { z } from 'zod';\n\n// ==========================================\n// 1. Props Configuration Schemas\n// ==========================================\n\nexport const widgetConfigTypeSchema = z.enum([\n 'input',\n 'checkbox',\n 'color-picker',\n 'date',\n 'data-time-range',\n 'datetime',\n 'input-number',\n 'monaco-editor',\n 'radio',\n 'select',\n 'tree-select',\n 'time',\n 'textarea',\n 'switch',\n 'slider',\n 'select-cascader',\n 'data-node',\n 'data-node-fields',\n 'context-menu',\n]);\n\nexport const widgetConfigGroupSchema = z.enum([\n 'base',\n 'custom',\n 'display',\n 'filters',\n 'value',\n]);\n\nexport const widgetPropConfigSchema = z.object({\n type: widgetConfigTypeSchema,\n group: widgetConfigGroupSchema.optional(),\n label: z.string().min(1, 'Property config label is required'),\n});\n\nexport const widgetPropSchema = z.object({\n name: z.string().min(1, 'Property name is required'),\n defaultValue: z.any().optional().default(null),\n config: widgetPropConfigSchema.optional(),\n});\n\n// ==========================================\n// 2. Events & Arguments Configuration Schemas\n// ==========================================\n\n/**\n * Supported standard event argument names (3.3)\n */\nexport const widgetEventArgumentNameSchema = z.enum([\n 'SelectedObject',\n 'MultipleSelectedObject',\n 'CurrentMenu',\n]);\n\n/**\n * Recursive schema for event argument types (3.2):\n * 1. Entity type bound to property: { bindProp: 'dataSourceNode' }\n * 2. Generic collection type: { name: 'List', generic: [{ bindProp: 'dataSourceNode' }] }\n * 3. Fixed internal platform type: { name: 'CurrentMenu' }\n */\nexport type WidgetArgumentType = {\n bindProp?: string;\n name?: string;\n generic?: WidgetArgumentType[];\n};\n\nexport const widgetArgumentTypeSchema: z.ZodType<WidgetArgumentType> = z.lazy(() =>\n z.object({\n bindProp: z.string().optional(),\n name: z.string().optional(),\n generic: z.array(z.lazy(() => widgetArgumentTypeSchema)).optional(),\n })\n);\n\n/**\n * Event Argument configuration item (3.2)\n */\nexport const widgetEventArgumentSchema = z.object({\n name: widgetEventArgumentNameSchema,\n type: widgetArgumentTypeSchema,\n});\n\n/**\n * Context menu binding configuration for event (3.4)\n */\nexport const widgetEventContextMenuSchema = z.object({\n options: z.object({\n bindProp: z.string().min(1, 'options.bindProp is required'),\n }),\n});\n\n/**\n * Event configuration item (3.1)\n */\nexport const widgetEventSchema = z.object({\n name: z.string().min(1, 'Event name is required'),\n label: z.string().min(1, 'Event label is required'),\n arguments: z.array(widgetEventArgumentSchema).optional().default([]),\n contextmenu: widgetEventContextMenuSchema.optional(),\n});\n\n// ==========================================\n// 3. Widget Manifest Root Schema\n// ==========================================\n\nexport const widgetManifestSchema = z.object({\n id: z.string().min(1, \"'id' is required and cannot be empty\"),\n name: z.string().min(1, \"'name' is required and cannot be empty\"),\n icon: z.string().optional(),\n entry: z.string().optional().default('dist'),\n props: z.array(widgetPropSchema).optional().default([]),\n events: z.array(widgetEventSchema).optional().default([]),\n});\n\n// ==========================================\n// 4. Inferred TypeScript Types\n// ==========================================\n\nexport type WidgetConfigType = z.infer<typeof widgetConfigTypeSchema>;\nexport type WidgetConfigGroup = z.infer<typeof widgetConfigGroupSchema>;\nexport type WidgetPropConfig = z.infer<typeof widgetPropConfigSchema>;\nexport type WidgetProp = z.infer<typeof widgetPropSchema>;\n\nexport type WidgetEventArgumentName = z.infer<typeof widgetEventArgumentNameSchema>;\nexport type WidgetEventArgument = z.infer<typeof widgetEventArgumentSchema>;\nexport type WidgetEventContextMenu = z.infer<typeof widgetEventContextMenuSchema>;\nexport type WidgetEvent = z.infer<typeof widgetEventSchema>;\n\nexport type WidgetManifest = z.input<typeof widgetManifestSchema>;\nexport type ResolvedWidgetManifest = z.output<typeof widgetManifestSchema>;\n\n// ==========================================\n// 5. Helper & Validation Functions\n// ==========================================\n\n/**\n * Type-helper for defining widget manifest in `.goodo/manifest.ts`.\n * Provides full IDE autocomplete and compile-time type validation.\n */\nexport function defineWidget(config: WidgetManifest): WidgetManifest {\n return config;\n}\n\nexport interface ManifestValidationResult {\n success: boolean;\n data?: ResolvedWidgetManifest;\n errors?: Array<{ path: string; message: string }>;\n}\n\n/**\n * Validates raw manifest data using Zod schema for Node.js environments (e.g. CLI, backend).\n */\nexport function validateWidgetManifest(raw: unknown): ManifestValidationResult {\n const result = widgetManifestSchema.safeParse(raw);\n if (result.success) {\n return {\n success: true,\n data: result.data,\n };\n }\n\n return {\n success: false,\n errors: result.error.issues.map((issue) => ({\n path: issue.path.join('.') || 'root',\n message: issue.message,\n })),\n };\n}"],"names":["widgetConfigTypeSchema","z","widgetConfigGroupSchema","widgetPropConfigSchema","widgetPropSchema","widgetEventArgumentNameSchema","widgetArgumentTypeSchema","widgetEventArgumentSchema","widgetEventContextMenuSchema","widgetEventSchema","widgetManifestSchema","defineWidget","config","validateWidgetManifest","raw","result","issue"],"mappings":";AAMO,MAAMA,IAAyBC,EAAE,KAAK;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;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,CAAC,GAEYC,IAA0BD,EAAE,KAAK;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GAEYE,IAAyBF,EAAE,OAAO;AAAA,EAC7C,MAAMD;AAAA,EACN,OAAOE,EAAwB,SAAA;AAAA,EAC/B,OAAOD,EAAE,OAAA,EAAS,IAAI,GAAG,mCAAmC;AAC9D,CAAC,GAEYG,IAAmBH,EAAE,OAAO;AAAA,EACvC,MAAMA,EAAE,OAAA,EAAS,IAAI,GAAG,2BAA2B;AAAA,EACnD,cAAcA,EAAE,IAAA,EAAM,SAAA,EAAW,QAAQ,IAAI;AAAA,EAC7C,QAAQE,EAAuB,SAAA;AACjC,CAAC,GASYE,IAAgCJ,EAAE,KAAK;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AACF,CAAC,GAcYK,IAA0DL,EAAE;AAAA,EAAK,MAC5EA,EAAE,OAAO;AAAA,IACP,UAAUA,EAAE,OAAA,EAAS,SAAA;AAAA,IACrB,MAAMA,EAAE,OAAA,EAAS,SAAA;AAAA,IACjB,SAASA,EAAE,MAAMA,EAAE,KAAK,MAAMK,CAAwB,CAAC,EAAE,SAAA;AAAA,EAAS,CACnE;AACH,GAKaC,IAA4BN,EAAE,OAAO;AAAA,EAChD,MAAMI;AAAA,EACN,MAAMC;AACR,CAAC,GAKYE,IAA+BP,EAAE,OAAO;AAAA,EACnD,SAASA,EAAE,OAAO;AAAA,IAChB,UAAUA,EAAE,OAAA,EAAS,IAAI,GAAG,8BAA8B;AAAA,EAAA,CAC3D;AACH,CAAC,GAKYQ,IAAoBR,EAAE,OAAO;AAAA,EACxC,MAAMA,EAAE,OAAA,EAAS,IAAI,GAAG,wBAAwB;AAAA,EAChD,OAAOA,EAAE,OAAA,EAAS,IAAI,GAAG,yBAAyB;AAAA,EAClD,WAAWA,EAAE,MAAMM,CAAyB,EAAE,SAAA,EAAW,QAAQ,EAAE;AAAA,EACnE,aAAaC,EAA6B,SAAA;AAC5C,CAAC,GAMYE,IAAuBT,EAAE,OAAO;AAAA,EAC3C,IAAIA,EAAE,OAAA,EAAS,IAAI,GAAG,sCAAsC;AAAA,EAC5D,MAAMA,EAAE,OAAA,EAAS,IAAI,GAAG,wCAAwC;AAAA,EAChE,MAAMA,EAAE,OAAA,EAAS,SAAA;AAAA,EACjB,OAAOA,EAAE,OAAA,EAAS,SAAA,EAAW,QAAQ,MAAM;AAAA,EAC3C,OAAOA,EAAE,MAAMG,CAAgB,EAAE,SAAA,EAAW,QAAQ,EAAE;AAAA,EACtD,QAAQH,EAAE,MAAMQ,CAAiB,EAAE,SAAA,EAAW,QAAQ,CAAA,CAAE;AAC1D,CAAC;AA2BM,SAASE,EAAaC,GAAwC;AACnE,SAAOA;AACT;AAWO,SAASC,EAAuBC,GAAwC;AAC7E,QAAMC,IAASL,EAAqB,UAAUI,CAAG;AACjD,SAAIC,EAAO,UACF;AAAA,IACL,SAAS;AAAA,IACT,MAAMA,EAAO;AAAA,EAAA,IAIV;AAAA,IACL,SAAS;AAAA,IACT,QAAQA,EAAO,MAAM,OAAO,IAAI,CAACC,OAAW;AAAA,MAC1C,MAAMA,EAAM,KAAK,KAAK,GAAG,KAAK;AAAA,MAC9B,SAASA,EAAM;AAAA,IAAA,EACf;AAAA,EAAA;AAEN;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodo/platform-plugin",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "goodo platform plugin sdk",
5
5
  "type": "module",
6
6
  "publishConfig": {