@kizenapps/packager 0.1.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/dist/index.cjs +821 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +266 -0
- package/dist/index.d.ts +266 -0
- package/dist/index.js +749 -0
- package/dist/index.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/minify.ts","../src/lib/apiNames.ts","../src/lib/image.ts","../src/lib/structure.ts","../src/lib/package.ts","../src/lib/transform.ts"],"sourcesContent":["import type { FileContent, MinifiedFileContent } from \"../types/files.js\";\n\nconst minifyFile = async (file: FileContent): Promise<string> => {\n if (file.path.endsWith(\".js\")) {\n if (!file.content) {\n return \"\";\n }\n\n const { minify } = await import(\"@node-minify/core\");\n const { uglifyJs } = await import(\"@node-minify/uglify-js\");\n\n // The @node-minify generic Compressor type causes variance issues in strict TS.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result: string = await (minify as (opts: any) => Promise<string>)({\n compressor: uglifyJs,\n content: file.content,\n options: {\n mangle: true,\n parse: {\n bare_returns: true,\n },\n },\n });\n\n return result;\n }\n\n return file.content;\n};\n\nexport const minifyFiles = async (\n files: FileContent[],\n): Promise<MinifiedFileContent[]> => {\n return Promise.all(\n files.map(async (file) => {\n const minified = await minifyFile(file);\n return { ...file, minified };\n }),\n );\n};\n","import type { AutomationScriptRuntimeInput, AutomationScriptRuntimeOutput } from \"../types/package.js\";\n\nexport const sanitizeToAPIName = (name: string): string => {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9\\-\\s]/g, \"\")\n .replace(/\\s+/g, \"_\");\n};\n\nexport const scriptRuntimeToApiName = (\n runtime: AutomationScriptRuntimeInput,\n): AutomationScriptRuntimeOutput => {\n const result = runtime\n .replace(/\\s+/g, \"-\")\n .replace(/\\./g, \"-\") as AutomationScriptRuntimeOutput;\n\n return result;\n};\n","export const imagetoUint8Array = (base64Image: string): Uint8Array => {\n const byteCharacters = atob(base64Image);\n const byteNumbers = new Array(byteCharacters.length);\n\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n\n return new Uint8Array(byteNumbers);\n};\n\nexport const zipToUint8Array = (zip: Buffer): Uint8Array => {\n return Uint8Array.from(zip);\n};\n","import type { MinifiedFileContent } from \"../types/files.js\";\n\nexport const thumbnailImageExtensions = [\"png\"];\nexport const triggerImageExtensions = [...thumbnailImageExtensions, \"svg\"];\n\nexport const EVENT_SCRIPTS_DIRECTORY_NAME = \"eventScripts\";\nexport const FLOATING_FRAMES_DIRECTORY_NAME = \"floatingFrames\";\nexport const DATA_ADORNMENTS_DIRECTORY_NAME = \"dataAdornments\";\nexport const TOOLBAR_ITEMS_DIRECTORY_NAME = \"toolbarItems\";\nexport const ROUTABLE_PAGES_DIRECTORY_NAME = \"pages\";\nexport const BROWSER_ROUTE_SCRIPTS_DIRECTORY_NAME = \"routeScripts\";\nexport const JS_ACTIONS_DIRECTORY_NAME = \"actions\";\nexport const OBJECT_SETTINGS_ITEMS_DIRECTORY_NAME = \"objectSettingsItems\";\nexport const AUTOMATION_STEPS_DIRECTORY_NAME = \"automationSteps\";\nexport const SETUP_ASSISTANT_DIRECTORY_NAME = \"setupAssistant\";\nexport const USER_SETUP_ASSISTANT_DIRECTORY_NAME = \"userSetupAssistant\";\nexport const CALENDAR_SOURCES_DIRECTORY_NAME = \"calendarSources\";\n\nexport const THUMBNAIL_FILE_NAMES = thumbnailImageExtensions.map(\n (ext) => `thumbnail.${ext}`,\n);\n\nexport const RELEASE_NOTES_EXTENSION = \"md\";\nexport const SCRIPT_EXTENSION = \"js\";\n\nexport const MAIN_SCRIPT_FILE = `script.${SCRIPT_EXTENSION}`;\nexport const MESSAGE_SCRIPT_FILE = `message.${SCRIPT_EXTENSION}`;\nexport const CALLBACK_SCRIPT_FILE = `callback.${SCRIPT_EXTENSION}`;\nexport const AUTOMATION_SCRIPT_FILE = `script.py`;\n\nexport const CONFIG_FILE_NAME = \"config.json\";\nexport const STYLES_FILE_NAME = \"styles.css\";\nexport const MANIFEST_FILE_NAME = \"kizen.json\";\nexport const KZN_FILE_NAME = \"import.kzn\";\n\nexport const maybeParseConfig = (\n content: string | undefined,\n path: string,\n): Record<string, unknown> => {\n if (!content) {\n throw new Error(`No content provided for config file: ${path}`);\n }\n\n try {\n return JSON.parse(content) as Record<string, unknown>;\n } catch {\n throw new Error(`Failed to parse config content: ${path}`);\n }\n};\n\nexport const getMinimizedConfig = (\n config: Record<string, unknown>,\n entry: string,\n splitPath: string[],\n consideredFiles: MinifiedFileContent[],\n): Record<string, unknown> => {\n const result: Record<string, unknown> =\n (config[\"minimized_config\"] as Record<string, unknown>) ?? {};\n\n if (result[\"customIconFile\"]) {\n let basePath = splitPath.slice(0, -1).join(\"/\");\n\n if (entry.endsWith(\"/\")) {\n basePath = `${entry}${basePath}`;\n } else {\n basePath = `${entry}/${basePath}`;\n }\n\n const filePath = `${basePath}/${result[\"customIconFile\"]}`;\n const file = consideredFiles.find((f) => f.path === filePath);\n\n if (file?.base64Image) {\n let extension = filePath.split(\".\").pop()?.toLowerCase();\n\n if (extension === \"svg\") {\n extension = \"svg+xml\";\n }\n\n result[\"customIcon\"] = `data:image/${extension};base64,${file.base64Image}`;\n }\n }\n\n return result;\n};\n\nexport const getAdornmentIcon = (\n config: Record<string, unknown>,\n entry: string,\n splitPath: string[],\n consideredFiles: MinifiedFileContent[],\n): string => {\n if (config[\"customIconFile\"]) {\n let basePath = splitPath.slice(0, -1).join(\"/\");\n\n if (entry.endsWith(\"/\")) {\n basePath = `${entry}${basePath}`;\n } else {\n basePath = `${entry}/${basePath}`;\n }\n\n const filePath = `${basePath}/${config[\"customIconFile\"]}`;\n const file = consideredFiles.find((f) => f.path === filePath);\n\n if (file?.base64Image) {\n let extension = filePath.split(\".\").pop()?.toLowerCase();\n\n if (extension === \"svg\") {\n extension = \"svg+xml\";\n }\n\n return `data:image/${extension};base64,${file.base64Image}`;\n }\n }\n\n return \"\";\n};\n","import type { ManifestFileContent } from \"../types/manifest.js\";\nimport type { MinifiedFileContent } from \"../types/files.js\";\nimport type {\n AutomationStepsMap,\n CalendarSourcesMap,\n DataAdornmentsMap,\n FloatingFramesMap,\n JSActionsMap,\n ObjectSettingsItemsMap,\n ProcessedPluginPackage,\n RoutablePagesMap,\n RouteScriptsMap,\n ToolbarItemsMap,\n} from \"../types/package.js\";\nimport { sanitizeToAPIName, scriptRuntimeToApiName } from \"./apiNames.js\";\nimport { imagetoUint8Array, zipToUint8Array } from \"./image.js\";\nimport {\n AUTOMATION_SCRIPT_FILE,\n AUTOMATION_STEPS_DIRECTORY_NAME,\n BROWSER_ROUTE_SCRIPTS_DIRECTORY_NAME,\n CALLBACK_SCRIPT_FILE,\n CALENDAR_SOURCES_DIRECTORY_NAME,\n CONFIG_FILE_NAME,\n DATA_ADORNMENTS_DIRECTORY_NAME,\n EVENT_SCRIPTS_DIRECTORY_NAME,\n FLOATING_FRAMES_DIRECTORY_NAME,\n getAdornmentIcon,\n getMinimizedConfig,\n JS_ACTIONS_DIRECTORY_NAME,\n KZN_FILE_NAME,\n MAIN_SCRIPT_FILE,\n MANIFEST_FILE_NAME,\n maybeParseConfig,\n MESSAGE_SCRIPT_FILE,\n OBJECT_SETTINGS_ITEMS_DIRECTORY_NAME,\n RELEASE_NOTES_EXTENSION,\n ROUTABLE_PAGES_DIRECTORY_NAME,\n SCRIPT_EXTENSION,\n SETUP_ASSISTANT_DIRECTORY_NAME,\n STYLES_FILE_NAME,\n THUMBNAIL_FILE_NAMES,\n TOOLBAR_ITEMS_DIRECTORY_NAME,\n USER_SETUP_ASSISTANT_DIRECTORY_NAME,\n} from \"./structure.js\";\n\nconst replacementVar = \"__kizen_state\";\nconst prepend = \"const __kizen_utils = {};\\n\";\n\nconst convertToSelfInvokingFunction = (\n fn: string,\n variable: string,\n args: Record<string, unknown> = {},\n prependCode = \"\",\n): string => {\n const functionString = fn.replace(/\\n$/, \"\").replace(/;$/, \"\");\n const inner = `(${functionString})({ state: {{${variable}}}, args: ${JSON.stringify(args)}, utils: __kizen_utils })`;\n const full = `(function() { ${prependCode}\\nreturn ${inner}; })()`;\n return full;\n};\n\nconst mapFields = (\n fields: Array<Record<string, unknown>>,\n scriptsByKey: Record<string, Record<string, string>>,\n): Array<Record<string, unknown>> => {\n return fields.map((field) => {\n if (\n field[\"type\"] === \"container\" &&\n field[\"fields\"] &&\n Array.isArray(field[\"fields\"])\n ) {\n return {\n ...field,\n fields: mapFields(\n field[\"fields\"] as Array<Record<string, unknown>>,\n scriptsByKey,\n ),\n };\n }\n\n const fieldKey = field[\"key\"] as string;\n const scripts = scriptsByKey[fieldKey];\n\n if (scripts) {\n const result = { ...field };\n\n for (const fnName of [\n \"getFetchUrl\",\n \"optionMapper\",\n \"getHeaders\",\n \"getBody\",\n \"getContextUrl\",\n ] as const) {\n const fn = scripts[fnName];\n if (fn) {\n result[fnName] = convertToSelfInvokingFunction(\n fn,\n replacementVar,\n {},\n prepend,\n );\n }\n }\n\n return result;\n }\n\n return field;\n });\n};\n\nconst processSetupAssistantFromFiles = (\n assistantConfig: Record<string, unknown> | null,\n scripts: Array<{ key: string; type: string; content: string }>,\n): Record<string, unknown> | undefined => {\n if (!assistantConfig) {\n return undefined;\n }\n\n const scriptsByKey: Record<string, Record<string, string>> = scripts.reduce(\n (acc, script) => {\n if (!acc[script.key]) {\n acc[script.key] = {};\n }\n acc[script.key]![script.type] = script.content;\n return acc;\n },\n {} as Record<string, Record<string, string>>,\n );\n\n const newConfig = { ...assistantConfig };\n\n if (newConfig[\"fields\"] && Array.isArray(newConfig[\"fields\"])) {\n newConfig[\"fields\"] = mapFields(\n newConfig[\"fields\"] as Array<Record<string, unknown>>,\n scriptsByKey,\n );\n }\n\n return newConfig;\n};\n\nconst processOnePluginFromManifest = (\n manifest: ManifestFileContent,\n files: MinifiedFileContent[],\n): ProcessedPluginPackage => {\n const entry = manifest.entry;\n const releaseNotesDirectory = manifest.release_notes_directory;\n const apiName = manifest.api_name;\n\n const consideredFiles = files.filter(\n (f) => f.path !== MANIFEST_FILE_NAME && f.path.startsWith(entry),\n );\n\n const releaseNotesFiles = releaseNotesDirectory\n ? files.filter((f) => f.path.startsWith(releaseNotesDirectory))\n : [];\n\n const { version } = manifest;\n\n const releaseNotes = releaseNotesFiles.find((file) =>\n file.path.endsWith(`${version}.${RELEASE_NOTES_EXTENSION}`),\n );\n\n const floatingFrames: FloatingFramesMap = {};\n const dataAdornments: DataAdornmentsMap = {};\n const toolbarItems: ToolbarItemsMap = {};\n const routablePages: RoutablePagesMap = {};\n const routeScripts: RouteScriptsMap = {};\n const jsActions: JSActionsMap = {};\n const objectSettingsItems: ObjectSettingsItemsMap = {};\n const automationSteps: AutomationStepsMap = {};\n const calendarSources: CalendarSourcesMap = {};\n\n let thumbnail: Uint8Array | null = null;\n let kznFile: Uint8Array | null = null;\n let hasBlockingCondition = false;\n\n const requiredConfigFiles: Record<string, boolean> = {};\n\n let setupAssistantJSON: Record<string, unknown> | null = null;\n const setupAssistantFunctions: Array<{\n key: string;\n type: string;\n content: string;\n }> = [];\n\n let userSetupAssistantJSON: Record<string, unknown> | null = null;\n const userSetupAssistantFunctions: Array<{\n key: string;\n type: string;\n content: string;\n }> = [];\n\n for (const file of consideredFiles) {\n let strippedPath = file.path.replace(entry, \"\");\n strippedPath = strippedPath.startsWith(\"/\")\n ? strippedPath.substring(1)\n : strippedPath;\n\n const splitPath = strippedPath.split(\"/\");\n\n if (splitPath[0] === SETUP_ASSISTANT_DIRECTORY_NAME) {\n if (splitPath[1] === \"assistant.json\") {\n setupAssistantJSON = maybeParseConfig(file.content, file.path);\n } else {\n const assistantKey = splitPath[1];\n if (assistantKey && splitPath[2]?.endsWith(`.${SCRIPT_EXTENSION}`)) {\n setupAssistantFunctions.push({\n key: assistantKey,\n type: splitPath[2].replace(`.${SCRIPT_EXTENSION}`, \"\"),\n content: file.content,\n });\n }\n }\n } else if (splitPath[0] === USER_SETUP_ASSISTANT_DIRECTORY_NAME) {\n if (splitPath[1] === \"assistant.json\") {\n userSetupAssistantJSON = maybeParseConfig(file.content, file.path);\n } else {\n const assistantKey = splitPath[1];\n if (assistantKey && splitPath[2]?.endsWith(`.${SCRIPT_EXTENSION}`)) {\n userSetupAssistantFunctions.push({\n key: assistantKey,\n type: splitPath[2].replace(`.${SCRIPT_EXTENSION}`, \"\"),\n content: file.content,\n });\n }\n }\n } else if (splitPath[0] === FLOATING_FRAMES_DIRECTORY_NAME) {\n const floatingFrameName = splitPath[1];\n if (!floatingFrameName) continue;\n\n if (!floatingFrames[floatingFrameName]) {\n requiredConfigFiles[`frame:${floatingFrameName}`] = true;\n floatingFrames[floatingFrameName] = {\n name: \"\",\n api_name: \"\",\n title: \"\",\n type: \"script\",\n css: \"\",\n event_scripts: {},\n default_position: \"bottom-right\",\n header_color: \"\",\n header_text_color: \"\",\n height: 0,\n width: 0,\n ignore: [],\n match: [],\n message_handler: \"\",\n minimized_style: \"circle\",\n minimized_config: {},\n script: \"\",\n html: \"\",\n when: \"\",\n };\n }\n\n const frame = floatingFrames[floatingFrameName]!;\n\n if (splitPath[2] === EVENT_SCRIPTS_DIRECTORY_NAME) {\n if (splitPath[3]?.endsWith(`.${SCRIPT_EXTENSION}`)) {\n const functionName = splitPath[3].replace(`.${SCRIPT_EXTENSION}`, \"\");\n frame.event_scripts[functionName] = file.minified;\n }\n } else if (splitPath[2] === CONFIG_FILE_NAME) {\n requiredConfigFiles[`frame:${floatingFrameName}`] = false;\n const config = maybeParseConfig(file.content, file.path);\n frame.name = (config[\"name\"] as string) || \"\";\n frame.api_name =\n (config[\"api_name\"] as string) || sanitizeToAPIName(floatingFrameName);\n frame.title = (config[\"title\"] as string) || \"\";\n frame.default_position =\n (config[\"default_position\"] as string) || \"bottom-right\";\n frame.header_color = (config[\"header_color\"] as string) || \"\";\n frame.header_text_color = (config[\"header_text_color\"] as string) || \"\";\n frame.height = (config[\"height\"] as number) || 0;\n frame.width = (config[\"width\"] as number) || 0;\n frame.ignore = (config[\"ignore\"] as string[]) || [];\n frame.match = (config[\"match\"] as string[]) || [];\n frame.html = (config[\"html\"] as string) || \"\";\n frame.minimized_style =\n (config[\"minimized_style\"] as \"bar\" | \"circle\" | \"none\") || \"circle\";\n frame.minimized_config = getMinimizedConfig(\n config,\n entry,\n splitPath,\n consideredFiles,\n );\n frame.when = (config[\"when\"] as string) || \"\";\n } else if (splitPath[2] === MESSAGE_SCRIPT_FILE) {\n frame.message_handler = file.minified;\n } else if (splitPath[2] === MAIN_SCRIPT_FILE) {\n frame.script = file.minified;\n } else if (splitPath[2] === STYLES_FILE_NAME) {\n frame.css = file.minified;\n }\n } else if (splitPath[0] === DATA_ADORNMENTS_DIRECTORY_NAME) {\n const dataAdornmentName = splitPath[1];\n if (!dataAdornmentName) continue;\n\n if (!dataAdornments[dataAdornmentName]) {\n requiredConfigFiles[`dataAdornment:${dataAdornmentName}`] = true;\n dataAdornments[dataAdornmentName] = {\n config: { icon: \"\", color: \"\", tooltip: \"\" },\n field_type: \"phonenumber\",\n script: \"\",\n when: \"\",\n };\n }\n\n const adornment = dataAdornments[dataAdornmentName]!;\n\n if (splitPath[2] === CONFIG_FILE_NAME) {\n requiredConfigFiles[`dataAdornment:${dataAdornmentName}`] = false;\n const config = maybeParseConfig(file.content, file.path);\n adornment.config.icon = (config[\"icon\"] as string) || \"\";\n adornment.config.color = (config[\"color\"] as string) || \"\";\n adornment.config.tooltip = (config[\"tooltip\"] as string) || \"\";\n adornment.config.customIcon = getAdornmentIcon(\n config,\n entry,\n splitPath,\n consideredFiles,\n );\n adornment.field_type =\n (config[\"field_type\"] as \"phonenumber\" | \"date\" | \"datetime\") ||\n \"phonenumber\";\n adornment.when = (config[\"when\"] as string) || \"\";\n if (config[\"when\"]) hasBlockingCondition = true;\n } else if (splitPath[2] === MAIN_SCRIPT_FILE) {\n adornment.script = file.minified;\n }\n } else if (splitPath[0] === TOOLBAR_ITEMS_DIRECTORY_NAME) {\n const toolbarItemName = splitPath[1];\n if (!toolbarItemName) continue;\n\n if (!toolbarItems[toolbarItemName]) {\n requiredConfigFiles[`toolbarItem:${toolbarItemName}`] = true;\n toolbarItems[toolbarItemName] = {\n api_name: \"\",\n label: \"\",\n icon: \"\",\n color: \"\",\n script: \"\",\n when: \"\",\n };\n }\n\n const item = toolbarItems[toolbarItemName]!;\n\n if (splitPath[2] === CONFIG_FILE_NAME) {\n requiredConfigFiles[`toolbarItem:${toolbarItemName}`] = false;\n const config = maybeParseConfig(file.content, file.path);\n item.api_name =\n (config[\"api_name\"] as string) || sanitizeToAPIName(toolbarItemName);\n item.label = (config[\"label\"] as string) || \"\";\n item.icon = (config[\"icon\"] as string) || \"\";\n item.color = (config[\"color\"] as string) || \"\";\n item.when = (config[\"when\"] as string) || \"\";\n if (config[\"when\"]) hasBlockingCondition = true;\n } else if (splitPath[2] === MAIN_SCRIPT_FILE) {\n item.script = file.minified;\n }\n } else if (splitPath[0] === ROUTABLE_PAGES_DIRECTORY_NAME) {\n const pageName = splitPath[1];\n if (!pageName) continue;\n\n if (!routablePages[pageName]) {\n requiredConfigFiles[`page:${pageName}`] = true;\n routablePages[pageName] = {\n name: pageName,\n api_name: \"\",\n event_scripts: {},\n script: \"\",\n callback: \"\",\n css: \"\",\n is_toolbar_item: false,\n toolbar_color: \"\",\n toolbar_icon: \"\",\n type: \"script\",\n html: \"\",\n iframe_url: \"\",\n };\n }\n\n const page = routablePages[pageName]!;\n\n if (splitPath[2] === EVENT_SCRIPTS_DIRECTORY_NAME) {\n if (splitPath[3]?.endsWith(SCRIPT_EXTENSION)) {\n const functionName = splitPath[3].replace(`.${SCRIPT_EXTENSION}`, \"\");\n page.event_scripts[functionName] = file.minified;\n }\n } else if (splitPath[2] === CONFIG_FILE_NAME) {\n requiredConfigFiles[`page:${pageName}`] = false;\n const config = maybeParseConfig(file.content, file.path);\n page.api_name =\n (config[\"api_name\"] as string) || sanitizeToAPIName(pageName);\n page.name = (config[\"name\"] as string) || pageName;\n page.is_toolbar_item = (config[\"is_toolbar_item\"] as boolean) || false;\n page.toolbar_color = (config[\"toolbar_color\"] as string) || \"\";\n page.toolbar_icon = (config[\"toolbar_icon\"] as string) || \"\";\n } else if (splitPath[2] === MAIN_SCRIPT_FILE) {\n page.script = file.minified;\n } else if (splitPath[2] === CALLBACK_SCRIPT_FILE) {\n page.callback = file.minified;\n } else if (splitPath[2] === STYLES_FILE_NAME) {\n page.css = file.minified;\n }\n } else if (splitPath[0] === AUTOMATION_STEPS_DIRECTORY_NAME) {\n const stepName = splitPath[1];\n if (!stepName) continue;\n\n if (!automationSteps[stepName]) {\n requiredConfigFiles[`automationStep:${stepName}`] = true;\n automationSteps[stepName] = {\n name: \"\",\n action_step_api_name: \"\",\n overall_description: \"\",\n action_description: \"\",\n action_type: \"\",\n script_runtime: scriptRuntimeToApiName(\"python 3.12\"),\n secrets: [],\n inputs: [],\n outputs: [],\n script: \"\",\n when: \"\",\n };\n }\n\n const step = automationSteps[stepName]!;\n\n if (splitPath[2] === CONFIG_FILE_NAME) {\n requiredConfigFiles[`automationStep:${stepName}`] = false;\n const config = maybeParseConfig(file.content, file.path);\n step.name = (config[\"name\"] as string) || stepName;\n step.action_step_api_name =\n (config[\"api_name\"] as string) || sanitizeToAPIName(stepName);\n step.overall_description =\n (config[\"plugin_description\"] as string) || \"\";\n step.action_description =\n (config[\"action_description\"] as string) || \"\";\n step.action_type = (config[\"action_type\"] as string) || \"\";\n step.secrets = (config[\"secrets\"] as string[]) || [];\n step.inputs = (config[\"inputs\"] as typeof step.inputs) || [];\n step.outputs = (config[\"outputs\"] as typeof step.outputs) || [];\n step.script_runtime = scriptRuntimeToApiName(\n ((config[\"runtime\"] as string) || \"python 3.12\") as `${string} ${number}.${number}`,\n );\n step.when = (config[\"when\"] as string) || \"\";\n if (config[\"when\"]) hasBlockingCondition = true;\n } else if (splitPath[2] === AUTOMATION_SCRIPT_FILE) {\n step.script = file.content;\n }\n } else if (splitPath[0] === BROWSER_ROUTE_SCRIPTS_DIRECTORY_NAME) {\n const routeName = splitPath[1];\n if (!routeName) continue;\n\n if (!routeScripts[routeName]) {\n requiredConfigFiles[`route:${routeName}`] = true;\n routeScripts[routeName] = {\n script: \"\",\n api_name: \"\",\n hint_object_name: \"\",\n routes: [],\n name: routeName,\n };\n }\n\n const route = routeScripts[routeName]!;\n\n if (splitPath[2] === CONFIG_FILE_NAME) {\n requiredConfigFiles[`route:${routeName}`] = false;\n const config = maybeParseConfig(file.content, file.path);\n route.api_name =\n (config[\"api_name\"] as string) || sanitizeToAPIName(routeName);\n route.hint_object_name =\n (config[\"hint_object_name\"] as string) || \"\";\n route.routes = (config[\"routes\"] as string[]) || [];\n route.name = (config[\"name\"] as string) || routeName;\n } else if (splitPath[2] === MAIN_SCRIPT_FILE) {\n route.script = file.minified;\n }\n } else if (splitPath[0] === JS_ACTIONS_DIRECTORY_NAME) {\n const actionName = splitPath[1];\n if (!actionName) continue;\n\n if (!jsActions[actionName]) {\n requiredConfigFiles[`action:${actionName}`] = true;\n jsActions[actionName] = {\n script: \"\",\n name: \"\",\n hint_object_name: \"\",\n api_name: \"\",\n };\n }\n\n const action = jsActions[actionName]!;\n\n if (splitPath[2] === CONFIG_FILE_NAME) {\n requiredConfigFiles[`action:${actionName}`] = false;\n const config = maybeParseConfig(file.content, file.path);\n action.name = (config[\"name\"] as string) || actionName;\n action.hint_object_name =\n (config[\"hint_object_name\"] as string) || \"\";\n action.api_name =\n (config[\"api_name\"] as string) || sanitizeToAPIName(actionName);\n } else if (splitPath[2] === MAIN_SCRIPT_FILE) {\n action.script = file.minified;\n }\n } else if (splitPath[0] === OBJECT_SETTINGS_ITEMS_DIRECTORY_NAME) {\n const itemName = splitPath[1];\n if (!itemName) continue;\n\n if (!objectSettingsItems[itemName]) {\n requiredConfigFiles[`objectSettingsItem:${itemName}`] = true;\n objectSettingsItems[itemName] = {\n api_name: \"\",\n label: \"\",\n script: \"\",\n when: \"\",\n };\n }\n\n const settingsItem = objectSettingsItems[itemName]!;\n\n if (splitPath[2] === CONFIG_FILE_NAME) {\n requiredConfigFiles[`objectSettingsItem:${itemName}`] = false;\n const config = maybeParseConfig(file.content, file.path);\n settingsItem.api_name =\n (config[\"api_name\"] as string) || sanitizeToAPIName(itemName);\n settingsItem.label = (config[\"label\"] as string) || \"\";\n settingsItem.when = (config[\"when\"] as string) || \"\";\n } else if (splitPath[2] === MAIN_SCRIPT_FILE) {\n settingsItem.script = file.minified;\n }\n } else if (splitPath[0] === CALENDAR_SOURCES_DIRECTORY_NAME) {\n const itemName = splitPath[1];\n if (!itemName) continue;\n\n if (!calendarSources[itemName]) {\n requiredConfigFiles[`calendarSource:${itemName}`] = true;\n calendarSources[itemName] = {\n api_name: \"\",\n name: \"\",\n calendars_script: \"\",\n events_script: \"\",\n when: \"\",\n };\n }\n\n const cal = calendarSources[itemName]!;\n\n if (splitPath[2] === CONFIG_FILE_NAME) {\n requiredConfigFiles[`calendarSource:${itemName}`] = false;\n const config = maybeParseConfig(file.content, file.path);\n cal.api_name =\n (config[\"api_name\"] as string) || sanitizeToAPIName(itemName);\n cal.name = (config[\"name\"] as string) || \"\";\n cal.when = (config[\"when\"] as string) || \"\";\n if (config[\"when\"]) hasBlockingCondition = true;\n } else if (splitPath[2] === \"calendars.js\") {\n cal.calendars_script = file.minified;\n } else if (splitPath[2] === \"events.js\") {\n cal.events_script = file.minified;\n }\n } else if (splitPath[0] === KZN_FILE_NAME) {\n if (!file.binaryData) {\n throw new Error(\n `KZN file ${file.path} does not contain binary data. Cannot proceed.`,\n );\n }\n\n if (kznFile) {\n throw new Error(\n `Multiple KZN files found for plugin ${apiName}. Only one is allowed.`,\n );\n }\n\n kznFile = zipToUint8Array(file.binaryData);\n } else if (THUMBNAIL_FILE_NAMES.includes(splitPath[0] ?? \"\")) {\n if (file.base64Image) {\n if (thumbnail) {\n throw new Error(\n `Multiple thumbnail files found for plugin ${apiName}. Only one is allowed.`,\n );\n }\n thumbnail = imagetoUint8Array(file.base64Image);\n }\n }\n }\n\n const requiredFileKeys = Object.keys(requiredConfigFiles).filter(\n (key) => requiredConfigFiles[key] === true,\n );\n\n if (requiredFileKeys.length > 0) {\n throw new Error(\n `The following required files are missing for plugin ${apiName}: ${requiredFileKeys.join(\" config.json, \")} config.json. Please ensure these files are present in the repository.`,\n );\n }\n\n const setupAssistantContent = processSetupAssistantFromFiles(\n setupAssistantJSON,\n setupAssistantFunctions,\n );\n\n const userSetupAssistantContent = processSetupAssistantFromFiles(\n userSetupAssistantJSON,\n userSetupAssistantFunctions,\n );\n\n // Build the updated manifest carefully to satisfy exactOptionalPropertyTypes:\n // only set optional fields when they have a value.\n const updatedManifest: ManifestFileContent = {\n ...manifest,\n block_loading_for_setup: hasBlockingCondition,\n };\n\n const resolvedSetupAssistant =\n manifest.setup_assistant ??\n (setupAssistantContent as ManifestFileContent[\"setup_assistant\"]);\n if (resolvedSetupAssistant !== undefined) {\n updatedManifest.setup_assistant = resolvedSetupAssistant;\n }\n\n const resolvedUserSetupAssistant =\n manifest.user_setup_assistant ??\n (userSetupAssistantContent as ManifestFileContent[\"user_setup_assistant\"]);\n if (resolvedUserSetupAssistant !== undefined) {\n updatedManifest.user_setup_assistant = resolvedUserSetupAssistant;\n }\n\n return {\n [apiName]: {\n manifest: updatedManifest,\n thumbnail,\n floatingFrames,\n dataAdornments,\n toolbarItems,\n routablePages,\n actions: jsActions,\n routeScripts,\n releaseNotes: releaseNotes?.content,\n objectSettingsMenuItems: objectSettingsItems,\n calendarSources,\n automationSteps,\n kznFile,\n },\n };\n};\n\n/**\n * Packages one or more plugins from the given set of minified files.\n * The caller is responsible for any branch-based filtering of manifests before calling.\n */\nexport const packagePlugin = (\n files: MinifiedFileContent[],\n manifests: ManifestFileContent | ManifestFileContent[],\n): ProcessedPluginPackage => {\n const manifestArray = Array.isArray(manifests) ? manifests : [manifests];\n\n return manifestArray.reduce<ProcessedPluginPackage>((acc, manifest) => {\n return { ...acc, ...processOnePluginFromManifest(manifest, files) };\n }, {});\n};\n\n/**\n * Reads and parses kizen.json from a set of files.\n * Returns the manifest content (single or array) without any branch defaulting.\n */\nexport const parseManifestFromFiles = (\n files: MinifiedFileContent[],\n): ManifestFileContent | ManifestFileContent[] => {\n const manifestFile = files.find((f) => f.path === MANIFEST_FILE_NAME);\n\n if (!manifestFile) {\n throw new Error(\"Missing kizen.json at the root of the plugin directory.\");\n }\n\n try {\n return JSON.parse(manifestFile.content) as\n | ManifestFileContent\n | ManifestFileContent[];\n } catch {\n throw new Error(\"kizen.json could not be parsed.\");\n }\n};\n","import type { SetupAssistantConfig } from \"../types/manifest.js\";\nimport type { DeployablePlugin, PackagedPlugin } from \"../types/package.js\";\n\nconst formatBaseConfig = (packagedPlugin: PackagedPlugin): Record<string, unknown> => {\n const assistantConfig: SetupAssistantConfig | undefined =\n packagedPlugin.manifest.setup_assistant;\n\n const actionsByApiName = Object.values(packagedPlugin.actions).reduce(\n (acc, action) => {\n acc[action.api_name] = action;\n return acc;\n },\n {} as Record<string, unknown>,\n );\n\n const userAssistantConfig: SetupAssistantConfig | undefined =\n packagedPlugin.manifest.user_setup_assistant;\n\n return {\n ...packagedPlugin.manifest.base_config,\n setup_assistant: assistantConfig\n ? {\n ...assistantConfig,\n actions: (assistantConfig.actions ?? []).map((apiName) => {\n const action = actionsByApiName[apiName];\n\n if (!action) {\n throw new Error(\n `Action with API name ${apiName} not found in packaged plugin for setup assistant. Allowed actions: ${Object.keys(actionsByApiName).join(\", \")}`,\n );\n }\n\n return action;\n }),\n }\n : undefined,\n user_setup_assistant: userAssistantConfig,\n block_loading_for_setup: packagedPlugin.manifest.block_loading_for_setup,\n };\n};\n\nexport const transformDeployablePlugin = (\n packagedPlugin: PackagedPlugin,\n): DeployablePlugin => {\n const {\n manifest,\n floatingFrames,\n dataAdornments,\n routablePages,\n toolbarItems,\n actions,\n routeScripts,\n thumbnail,\n releaseNotes,\n objectSettingsMenuItems,\n automationSteps,\n calendarSources,\n kznFile,\n } = packagedPlugin;\n\n return {\n ...manifest,\n api_name: manifest.api_name,\n artifacts: {\n data_adornments: Object.values(dataAdornments),\n floating_frames: Object.values(floatingFrames),\n routable_pages: Object.values(routablePages),\n toolbar_items: Object.values(toolbarItems),\n js_action_templates: Object.values(actions),\n route_scripts: Object.values(routeScripts),\n object_settings_menu_items: Object.values(objectSettingsMenuItems),\n automation_action_configs: Object.values(automationSteps),\n calendar_sources: Object.values(calendarSources),\n },\n thumbnail,\n kznFile,\n releaseNotes,\n base_config: formatBaseConfig(packagedPlugin),\n setup_assistant: undefined,\n services: manifest.services ?? [],\n };\n};\n"],"mappings":"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","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kizenapps/packager",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Plugin packaging pipeline for Kizen plugin tools",
|
|
5
|
+
"license": "GPL-3.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.cjs",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"import": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"default": "./dist/index.js"
|
|
15
|
+
},
|
|
16
|
+
"require": {
|
|
17
|
+
"types": "./dist/index.d.cts",
|
|
18
|
+
"default": "./dist/index.cjs"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsup",
|
|
27
|
+
"watch": "tsup --watch",
|
|
28
|
+
"typecheck": "tsc --noEmit"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@node-minify/core": "^10.4.0",
|
|
32
|
+
"@node-minify/uglify-js": "^10.4.0"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@node-minify/types": "^9.0.0",
|
|
36
|
+
"@types/node": "^22.0.0",
|
|
37
|
+
"tsup": "^8.0.0",
|
|
38
|
+
"typescript": "^5.0.0"
|
|
39
|
+
}
|
|
40
|
+
}
|