@fairfox/polly 0.1.5 → 0.2.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/cli/polly.js +75 -220
- package/dist/cli/polly.js.map +5 -4
- package/dist/cli/template-utils.js +81 -0
- package/dist/cli/template-utils.js.map +10 -0
- package/dist/vendor/verify/src/cli.js +1 -16
- package/dist/vendor/verify/src/cli.js.map +2 -2
- package/dist/vendor/visualize/src/cli.js +1 -16
- package/dist/vendor/visualize/src/cli.js.map +2 -2
- package/package.json +2 -2
- package/templates/pwa/.gitignore.template +4 -0
- package/templates/pwa/README.md.template +144 -0
- package/templates/pwa/build.ts.template +56 -0
- package/templates/pwa/index.html.template +127 -0
- package/templates/pwa/package.json.template +19 -0
- package/templates/pwa/public/manifest.json.template +21 -0
- package/templates/pwa/server.ts.template +58 -0
- package/templates/pwa/src/main.ts.template +133 -0
- package/templates/pwa/src/service-worker.ts.template +161 -0
- package/templates/pwa/src/shared-worker.ts.template +135 -0
- package/templates/pwa/tsconfig.json.template +18 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"// Structurizr DSL generator\n\nimport type { ArchitectureAnalysis } from \"../../analysis/src\";\n\nexport interface StructurizrDSLOptions {\n /** Include dynamic diagrams for message flows */\n includeDynamicDiagrams?: boolean;\n\n /** Include component diagrams for contexts */\n includeComponentDiagrams?: boolean;\n\n /** Which contexts to generate component diagrams for */\n componentDiagramContexts?: string[];\n\n /** Custom theme URL */\n theme?: string;\n\n /** Custom styles */\n styles?: Record<string, string>;\n}\n\nexport class StructurizrDSLGenerator {\n private analysis: ArchitectureAnalysis;\n private options: StructurizrDSLOptions;\n\n constructor(analysis: ArchitectureAnalysis, options: StructurizrDSLOptions = {}) {\n this.analysis = analysis;\n this.options = {\n includeDynamicDiagrams: true,\n includeComponentDiagrams: true,\n componentDiagramContexts: [\"background\"],\n theme: \"https://static.structurizr.com/themes/default\",\n ...options,\n };\n }\n\n /**\n * Generate complete Structurizr DSL\n */\n generate(): string {\n const parts: string[] = [];\n\n parts.push(this.generateWorkspaceHeader());\n parts.push(this.generateModel());\n parts.push(this.generateViews());\n parts.push(this.generateWorkspaceFooter());\n\n return parts.join(\"\\n\\n\");\n }\n\n /**\n * Generate workspace header\n */\n private generateWorkspaceHeader(): string {\n const { name, description } = this.analysis.system;\n\n const parts = [`workspace \"${this.escape(name)}\" \"${this.escape(description || \"\")}\" {`];\n parts.push(\"\");\n parts.push(\" !identifiers hierarchical\");\n\n // Add ADRs if present\n if (this.analysis.adrs && this.analysis.adrs.adrs.length > 0) {\n parts.push(\" !adrs \" + this.analysis.adrs.directory);\n }\n\n return parts.join(\"\\n\");\n }\n\n /**\n * Generate workspace footer\n */\n private generateWorkspaceFooter(): string {\n return \"}\";\n }\n\n /**\n * Generate model section\n */\n private generateModel(): string {\n const parts: string[] = [];\n\n parts.push(\" model {\");\n parts.push(this.generatePeople());\n parts.push(this.generateExternalSystems());\n parts.push(this.generateMainSystem());\n parts.push(\" }\");\n\n return parts.join(\"\\n\\n\");\n }\n\n /**\n * Generate people/actors\n */\n private generatePeople(): string {\n return ` user = person \"User\" \"Extension user\"`;\n }\n\n /**\n * Generate external systems\n */\n private generateExternalSystems(): string {\n const parts: string[] = [];\n\n for (const integration of this.analysis.integrations) {\n if (integration.type === \"api\" || integration.type === \"websocket\") {\n const tech =\n integration.technology || (integration.type === \"websocket\" ? \"WebSocket\" : \"REST API\");\n let desc = integration.description || \"\";\n\n // Generate better description from API calls if available\n if (!desc && integration.calls && integration.calls.length > 0) {\n const endpoints = integration.calls\n .slice(0, 3)\n .map((c) => c.endpoint)\n .join(\", \");\n const methods = [...new Set(integration.calls.map((c) => c.method))].join(\", \");\n desc = `External API with endpoints: ${endpoints}. Methods: ${methods}`;\n }\n\n parts.push(\n ` ${this.toId(integration.name)} = softwareSystem \"${this.escape(integration.name)}\" \"${this.escape(desc)}\" {`\n );\n parts.push(\n ` tags \"External System\" \"${integration.type === \"websocket\" ? \"WebSocket\" : \"REST API\"}\"`\n );\n parts.push(` }`);\n }\n }\n\n return parts.join(\"\\n\");\n }\n\n /**\n * Generate main system (the extension)\n */\n private generateMainSystem(): string {\n const parts: string[] = [];\n\n parts.push(` extension = softwareSystem \"${this.escape(this.analysis.system.name)}\" {`);\n\n // Generate containers (contexts)\n for (const [contextType, contextInfo] of Object.entries(this.analysis.contexts)) {\n parts.push(this.generateContainer(contextType, contextInfo));\n }\n\n // Generate relationships between containers\n parts.push(this.generateContainerRelationships());\n\n parts.push(\" }\");\n\n return parts.join(\"\\n\\n\");\n }\n\n /**\n * Generate container (context)\n */\n private generateContainer(contextType: string, contextInfo: any): string {\n const parts: string[] = [];\n\n const technology = this.getContextTechnology(contextType);\n const description = contextInfo.description || `${this.capitalize(contextType)} context`;\n\n parts.push(\n ` ${contextType} = container \"${this.capitalize(contextType)}\" \"${this.escape(description)}\" \"${technology}\" {`\n );\n\n // Generate components if enabled\n if (\n this.options.includeComponentDiagrams &&\n this.options.componentDiagramContexts?.includes(contextType)\n ) {\n parts.push(this.generateComponents(contextType, contextInfo));\n parts.push(\"\");\n parts.push(this.generateComponentRelationships(contextType, contextInfo));\n }\n\n parts.push(\" }\");\n\n return parts.join(\"\\n\");\n }\n\n /**\n * Generate components within a container\n */\n private generateComponents(contextType: string, contextInfo: any): string {\n const parts: string[] = [];\n\n // Generate components from handlers\n const handlersByType = new Map<string, any[]>();\n for (const handler of contextInfo.handlers) {\n if (!handlersByType.has(handler.messageType)) {\n handlersByType.set(handler.messageType, []);\n }\n handlersByType.get(handler.messageType)!.push(handler);\n }\n\n for (const [messageType, handlers] of handlersByType) {\n const componentName = this.toComponentName(messageType);\n const description = this.generateComponentDescription(messageType, handlers[0]);\n const tags = this.getComponentTags(messageType, handlers[0]);\n\n parts.push(\n ` ${this.toId(componentName)} = component \"${componentName}\" \"${description}\" {`\n );\n if (tags.length > 0) {\n parts.push(` tags \"${tags.join('\" \"')}\"`);\n }\n parts.push(` }`);\n }\n\n // Generate components from UI components\n if (contextInfo.components) {\n for (const comp of contextInfo.components) {\n parts.push(\n ` ${this.toId(comp.name)} = component \"${comp.name}\" \"${this.escape(comp.description || \"UI component\")}\" {`\n );\n parts.push(` tags \"UI Component\"`);\n parts.push(` }`);\n }\n }\n\n // Add Chrome API components if used\n if (contextInfo.chromeAPIs && contextInfo.chromeAPIs.length > 0) {\n for (const api of contextInfo.chromeAPIs) {\n const apiId = this.toId(`chrome_${api}`);\n parts.push(\n ` ${apiId} = component \"Chrome ${this.capitalize(api)} API\" \"Browser API for ${api}\" {`\n );\n parts.push(` tags \"Chrome API\" \"External\"`);\n parts.push(` }`);\n }\n }\n\n return parts.join(\"\\n\");\n }\n\n /**\n * Generate better component descriptions based on message type\n */\n private generateComponentDescription(messageType: string, handler: any): string {\n const type = messageType.toLowerCase();\n\n // Authentication related\n if (type.includes(\"login\")) {\n return \"Authenticates users and establishes sessions\";\n }\n if (type.includes(\"logout\")) {\n return \"Terminates user sessions and clears credentials\";\n }\n\n // CRUD operations\n if (type.includes(\"add\") || type.includes(\"create\")) {\n const entity = type.replace(/_(add|create)/, \"\").replace(/_/g, \" \");\n return `Creates new ${entity} items and persists to storage`;\n }\n if (type.includes(\"remove\") || type.includes(\"delete\")) {\n const entity = type.replace(/_(remove|delete)/, \"\").replace(/_/g, \" \");\n return `Removes ${entity} items from storage`;\n }\n if (type.includes(\"update\") || type.includes(\"toggle\")) {\n const entity = type.replace(/_(update|toggle)/, \"\").replace(/_/g, \" \");\n return `Updates ${entity} item state and syncs with storage`;\n }\n if (type.includes(\"clear\")) {\n const entity = type.replace(/_clear.*/, \"\").replace(/_/g, \" \");\n return `Clears all ${entity} items matching criteria`;\n }\n\n // Query operations\n if (type.includes(\"get\") || type.includes(\"fetch\") || type.includes(\"load\")) {\n const entity = type.replace(/_(get|fetch|load)/, \"\").replace(/_/g, \" \");\n return `Retrieves ${entity} data from storage`;\n }\n\n // Default\n return `Processes ${messageType} messages and coordinates business logic`;\n }\n\n /**\n * Determine appropriate tags for a component\n */\n private getComponentTags(messageType: string, handler: any): string[] {\n const tags: string[] = [\"Message Handler\"];\n const type = messageType.toLowerCase();\n\n // Add functional tags\n if (type.includes(\"login\") || type.includes(\"logout\") || type.includes(\"auth\")) {\n tags.push(\"Authentication\");\n } else if (\n type.includes(\"add\") ||\n type.includes(\"create\") ||\n type.includes(\"update\") ||\n type.includes(\"delete\") ||\n type.includes(\"remove\") ||\n type.includes(\"toggle\")\n ) {\n tags.push(\"CRUD\");\n } else if (type.includes(\"get\") || type.includes(\"fetch\") || type.includes(\"load\")) {\n tags.push(\"Query\");\n }\n\n // Add domain tags\n if (type.includes(\"user\")) {\n tags.push(\"User Management\");\n }\n if (type.includes(\"todo\")) {\n tags.push(\"Todo Management\");\n }\n if (type.includes(\"state\")) {\n tags.push(\"State Management\");\n }\n\n return tags;\n }\n\n /**\n * Generate relationships between components within a container\n */\n private generateComponentRelationships(contextType: string, contextInfo: any): string {\n const parts: string[] = [];\n\n // Build a map of handler components\n const handlersByType = new Map<string, any[]>();\n for (const handler of contextInfo.handlers) {\n if (!handlersByType.has(handler.messageType)) {\n handlersByType.set(handler.messageType, []);\n }\n handlersByType.get(handler.messageType)!.push(handler);\n }\n\n // Add relationships to Chrome APIs\n if (contextInfo.chromeAPIs && contextInfo.chromeAPIs.length > 0) {\n for (const api of contextInfo.chromeAPIs) {\n const apiId = this.toId(`chrome_${api}`);\n\n // Find handlers that use this API\n for (const [messageType, handlers] of handlersByType) {\n const componentId = this.toId(this.toComponentName(messageType));\n\n // Infer relationship based on API\n let description = `Uses ${api}`;\n if (api === \"storage\") {\n if (\n messageType.toLowerCase().includes(\"get\") ||\n messageType.toLowerCase().includes(\"load\")\n ) {\n description = \"Reads from storage\";\n } else {\n description = \"Writes to storage\";\n }\n } else if (api === \"tabs\") {\n description = \"Manages browser tabs\";\n } else if (api === \"runtime\") {\n description = \"Sends messages\";\n }\n\n parts.push(` ${componentId} -> ${apiId} \"${description}\"`);\n }\n }\n }\n\n // Add state management relationships (handlers that modify state)\n const stateHandlers: string[] = [];\n const queryHandlers: string[] = [];\n\n for (const [messageType, handlers] of handlersByType) {\n const type = messageType.toLowerCase();\n const componentId = this.toId(this.toComponentName(messageType));\n\n if (\n type.includes(\"add\") ||\n type.includes(\"create\") ||\n type.includes(\"update\") ||\n type.includes(\"delete\") ||\n type.includes(\"remove\") ||\n type.includes(\"toggle\") ||\n type.includes(\"clear\") ||\n type.includes(\"login\") ||\n type.includes(\"logout\")\n ) {\n stateHandlers.push(componentId);\n } else if (type.includes(\"get\") || type.includes(\"fetch\") || type.includes(\"load\")) {\n queryHandlers.push(componentId);\n }\n }\n\n // Create implicit state manager if we have state operations\n if (stateHandlers.length > 0 && queryHandlers.length > 0) {\n // Query handlers depend on state set by mutation handlers\n for (const queryHandler of queryHandlers) {\n for (const stateHandler of stateHandlers) {\n if (queryHandler !== stateHandler) {\n parts.push(` ${stateHandler} -> ${queryHandler} \"Updates state\" {`);\n parts.push(` tags \"Implicit\"`);\n parts.push(` }`);\n }\n }\n }\n }\n\n return parts.join(\"\\n\");\n }\n\n /**\n * Generate relationships between containers\n */\n private generateContainerRelationships(): string {\n const parts: string[] = [];\n\n // Add user relationships\n const uiContexts = [\"popup\", \"options\", \"devtools\"];\n for (const contextType of Object.keys(this.analysis.contexts)) {\n if (uiContexts.includes(contextType)) {\n parts.push(` user -> extension.${contextType} \"Uses\"`);\n }\n }\n\n // Add message flow relationships\n for (const flow of this.analysis.messageFlows) {\n const tech = `Sends ${flow.messageType}`;\n for (const to of flow.to) {\n parts.push(` extension.${flow.from} -> extension.${to} \"${tech}\"`);\n }\n }\n\n // Add external API relationships\n for (const integration of this.analysis.integrations) {\n if (integration.type === \"api\" || integration.type === \"websocket\") {\n // Find which contexts use this integration\n for (const [contextType, contextInfo] of Object.entries(this.analysis.contexts)) {\n const usesIntegration = contextInfo.externalAPIs.some((api: any) =>\n integration.calls?.some((call) => call.endpoint === api.endpoint)\n );\n\n if (usesIntegration) {\n const method = integration.type === \"websocket\" ? \"Connects to\" : \"Calls\";\n parts.push(\n ` extension.${contextType} -> ${this.toId(integration.name)} \"${method}\"`\n );\n }\n }\n }\n }\n\n return parts.join(\"\\n\");\n }\n\n /**\n * Generate views section\n */\n private generateViews(): string {\n const parts: string[] = [];\n\n parts.push(\" views {\");\n parts.push(this.generateSystemContextView());\n parts.push(this.generateContainerView());\n\n if (this.options.includeComponentDiagrams) {\n for (const contextType of this.options.componentDiagramContexts || []) {\n if (this.analysis.contexts[contextType]) {\n parts.push(this.generateComponentView(contextType));\n }\n }\n }\n\n if (this.options.includeDynamicDiagrams) {\n parts.push(this.generateDynamicViews());\n }\n\n parts.push(this.generateStyles());\n parts.push(\" }\");\n\n // Add documentation section if ADRs exist\n if (this.analysis.adrs && this.analysis.adrs.adrs.length > 0) {\n parts.push(\"\");\n parts.push(this.generateDocumentation());\n }\n\n return parts.join(\"\\n\\n\");\n }\n\n /**\n * Generate documentation section for ADRs\n */\n private generateDocumentation(): string {\n if (!this.analysis.adrs || this.analysis.adrs.adrs.length === 0) {\n return \"\";\n }\n\n const parts: string[] = [];\n parts.push(\" documentation {\");\n\n for (const adr of this.analysis.adrs.adrs) {\n parts.push(` decision \"${adr.id}\" {`);\n parts.push(` title \"${this.escape(adr.title)}\"`);\n parts.push(` status \"${adr.status}\"`);\n parts.push(` date \"${adr.date}\"`);\n parts.push(` content \"${this.escape(adr.context)}\"`);\n parts.push(\" }\");\n }\n\n parts.push(\" }\");\n\n return parts.join(\"\\n\");\n }\n\n /**\n * Generate system context view\n */\n private generateSystemContextView(): string {\n return ` systemContext extension \"SystemContext\" {\n include *\n autoLayout lr\n }`;\n }\n\n /**\n * Generate container view\n */\n private generateContainerView(): string {\n return ` container extension \"Containers\" {\n include *\n autoLayout lr\n }`;\n }\n\n /**\n * Generate component view\n */\n private generateComponentView(contextType: string): string {\n return ` component extension.${contextType} \"Components_${this.capitalize(contextType)}\" {\n include *\n autoLayout tb\n }`;\n }\n\n /**\n * Generate dynamic views for message flows\n */\n private generateDynamicViews(): string {\n const parts: string[] = [];\n\n // Group flows by domain/feature\n const flowsByDomain = new Map<string, any[]>();\n\n for (const flow of this.analysis.messageFlows) {\n // Extract domain from message type (e.g., USER_LOGIN -> user, TODO_ADD -> todo)\n const messageType = flow.messageType.toLowerCase();\n let domain = \"general\";\n\n if (\n messageType.includes(\"user\") ||\n messageType.includes(\"login\") ||\n messageType.includes(\"logout\") ||\n messageType.includes(\"auth\")\n ) {\n domain = \"authentication\";\n } else if (messageType.includes(\"todo\")) {\n domain = \"todo\";\n } else if (messageType.includes(\"state\")) {\n domain = \"state\";\n }\n\n if (!flowsByDomain.has(domain)) {\n flowsByDomain.set(domain, []);\n }\n flowsByDomain.get(domain)!.push(flow);\n }\n\n // Generate a dynamic view for each domain\n let count = 0;\n for (const [domain, flows] of flowsByDomain) {\n if (count >= 5) break; // Limit to avoid too many diagrams\n\n const viewName = this.capitalize(domain) + \" Flow\";\n parts.push(this.generateDynamicView(viewName, flows, domain));\n count++;\n }\n\n return parts.join(\"\\n\\n\");\n }\n\n /**\n * Generate single dynamic view\n */\n private generateDynamicView(flowName: string, flows: any[], domain: string): string {\n const parts: string[] = [];\n\n // Create a user-centric description\n const description = this.getDynamicViewDescription(domain);\n parts.push(` dynamic extension \"${flowName}\" \"${description}\" {`);\n\n // Add user interaction if this is a UI flow\n const uiContexts = [\"popup\", \"options\", \"devtools\"];\n const hasUIFlow = flows.some((f) => uiContexts.includes(f.from));\n\n if (hasUIFlow) {\n // Start with user interaction\n const firstFlow = flows.find((f) => uiContexts.includes(f.from));\n if (firstFlow) {\n const action = this.getUserAction(domain);\n parts.push(` user -> extension.${firstFlow.from} \"${action}\"`);\n }\n }\n\n // Generate message flows\n for (const flow of flows) {\n const messageDesc = this.getMessageDescription(flow.messageType);\n\n for (const to of flow.to) {\n parts.push(` extension.${flow.from} -> extension.${to} \"${messageDesc}\"`);\n }\n }\n\n parts.push(\" autoLayout lr\");\n parts.push(\" }\");\n\n return parts.join(\"\\n\");\n }\n\n /**\n * Get description for dynamic view based on domain\n */\n private getDynamicViewDescription(domain: string): string {\n const descriptions: Record<string, string> = {\n authentication: \"User authentication and session management\",\n todo: \"Todo item creation, updates, and retrieval\",\n state: \"Application state synchronization\",\n general: \"Message flow through the system\",\n };\n return descriptions[domain] || descriptions.general;\n }\n\n /**\n * Get user action description for domain\n */\n private getUserAction(domain: string): string {\n const actions: Record<string, string> = {\n authentication: \"Initiates login\",\n todo: \"Manages todo items\",\n state: \"Requests state\",\n general: \"Interacts\",\n };\n return actions[domain] || actions.general;\n }\n\n /**\n * Get message description based on type\n */\n private getMessageDescription(messageType: string): string {\n const type = messageType.toLowerCase();\n\n if (type.includes(\"login\")) return \"Authenticate user\";\n if (type.includes(\"logout\")) return \"End session\";\n if (type.includes(\"add\") || type.includes(\"create\")) return \"Create item\";\n if (type.includes(\"remove\") || type.includes(\"delete\")) return \"Delete item\";\n if (type.includes(\"update\") || type.includes(\"toggle\")) return \"Update item\";\n if (type.includes(\"get\") || type.includes(\"fetch\")) return \"Retrieve data\";\n if (type.includes(\"clear\")) return \"Clear items\";\n\n return messageType;\n }\n\n /**\n * Generate styles\n */\n private generateStyles(): string {\n const parts: string[] = [];\n\n // Skip theme directive - causes issues with Structurizr CLI export\n // The inline styles are sufficient for diagram generation\n parts.push(\" styles {\");\n\n // Default styles for containers (contexts)\n const contextStyles: Record<string, string> = {\n background: \"#2E7D32\",\n content: \"#F57C00\",\n popup: \"#1976D2\",\n devtools: \"#7B1FA2\",\n options: \"#0288D1\",\n ...this.options.styles,\n };\n\n for (const [context, color] of Object.entries(contextStyles)) {\n if (this.analysis.contexts[context]) {\n parts.push(` element \"extension.${context}\" {`);\n parts.push(` background ${color}`);\n parts.push(` color #ffffff`);\n parts.push(\" }\");\n }\n }\n\n parts.push(\" }\");\n\n return parts.join(\"\\n\");\n }\n\n /**\n * Get technology label for context\n */\n private getContextTechnology(contextType: string): string {\n const technologies: Record<string, string> = {\n background: \"Service Worker / Background Script\",\n content: \"Content Script\",\n popup: \"Browser Action Popup\",\n devtools: \"DevTools Panel\",\n options: \"Options Page\",\n offscreen: \"Offscreen Document\",\n };\n\n return technologies[contextType] || \"Extension Context\";\n }\n\n /**\n * Convert message type to component name\n */\n private toComponentName(messageType: string): string {\n return (\n messageType\n .split(\"_\")\n .map((part) => this.capitalize(part.toLowerCase()))\n .join(\" \") + \" Handler\"\n );\n }\n\n /**\n * Convert name to identifier\n */\n private toId(name: string): string {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"_\")\n .replace(/^_|_$/g, \"\");\n }\n\n /**\n * Convert flow name to view name\n */\n private toViewName(flowName: string): string {\n return flowName\n .split(/[_-]/)\n .map((part) => this.capitalize(part))\n .join(\" \");\n }\n\n /**\n * Capitalize first letter\n */\n private capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n /**\n * Escape string for DSL\n */\n private escape(str: string): string {\n return str.replace(/\"/g, '\\\\\"');\n }\n}\n\n/**\n * Generate Structurizr DSL from architecture analysis\n */\nexport function generateStructurizrDSL(\n analysis: ArchitectureAnalysis,\n options?: StructurizrDSLOptions\n): string {\n const generator = new StructurizrDSLGenerator(analysis, options);\n return generator.generate();\n}\n",
|
|
14
14
|
"// Export static site using Structurizr CLI\n// Uses Docker to run Structurizr CLI for generating a static HTML site\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { spawn } from \"node:child_process\";\n\nexport interface ExportOptions {\n /** DSL file path */\n dslPath: string;\n\n /** Output directory for static site */\n outputDir: string;\n\n /** Timeout in milliseconds */\n timeout?: number;\n\n /** Callback for progress updates */\n onProgress?: (message: string) => void;\n}\n\nexport interface ExportResult {\n success: boolean;\n siteDir: string;\n error?: string;\n}\n\nexport class DiagramExporter {\n private static readonly DOCKER_IMAGE = \"structurizr/cli:latest\";\n private static readonly DEFAULT_TIMEOUT = 120000; // 2 minutes\n\n /**\n * Export static site using Structurizr CLI via Docker\n */\n async export(options: ExportOptions): Promise<ExportResult> {\n const { dslPath, outputDir, timeout = DiagramExporter.DEFAULT_TIMEOUT } = options;\n\n // Validate DSL file exists\n if (!fs.existsSync(dslPath)) {\n return {\n success: false,\n siteDir: \"\",\n error: `DSL file not found: ${dslPath}`,\n };\n }\n\n // Ensure output directory exists\n if (!fs.existsSync(outputDir)) {\n fs.mkdirSync(outputDir, { recursive: true });\n }\n\n // Check if Docker is available\n const dockerAvailable = await this.isDockerAvailable();\n if (!dockerAvailable) {\n return {\n success: false,\n siteDir: \"\",\n error: \"Docker is not available. Please install Docker to export the site.\",\n };\n }\n\n // Pull image if needed\n options.onProgress?.(\"Checking Structurizr CLI image...\");\n const hasImage = await this.hasImage();\n if (!hasImage) {\n options.onProgress?.(\"Pulling Structurizr CLI image (this may take a moment)...\");\n await this.pullImage((line) => options.onProgress?.(line));\n }\n\n // Export static site\n options.onProgress?.(\"Generating static site...\");\n\n try {\n await this.exportStaticSite(dslPath, outputDir, timeout);\n options.onProgress?.(\"✓ Static site generated successfully\");\n\n return {\n success: true,\n siteDir: outputDir,\n };\n } catch (error) {\n return {\n success: false,\n siteDir: \"\",\n error: `Failed to export static site: ${error}`,\n };\n }\n }\n\n /**\n * Export static HTML site using Structurizr CLI\n */\n private async exportStaticSite(\n dslPath: string,\n outputDir: string,\n timeout: number\n ): Promise<void> {\n const dslDir = path.dirname(dslPath);\n const dslFileName = path.basename(dslPath);\n\n // Docker volume mounts\n const workspaceMount = `${dslDir}:/usr/local/structurizr`;\n const outputMount = `${outputDir}:/output`;\n\n // Structurizr CLI command for static site export\n const args = [\n \"run\",\n \"--rm\",\n \"-v\",\n workspaceMount,\n \"-v\",\n outputMount,\n DiagramExporter.DOCKER_IMAGE,\n \"export\",\n \"-workspace\",\n `/usr/local/structurizr/${dslFileName}`,\n \"-format\",\n \"static\",\n \"-output\",\n \"/output\",\n ];\n\n await this.runDocker(args, timeout);\n }\n\n /**\n * Check if Docker is available\n */\n async isDockerAvailable(): Promise<boolean> {\n try {\n await this.runCommand(\"docker\", [\"--version\"], 5000);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Check if Structurizr CLI image is available\n */\n async hasImage(): Promise<boolean> {\n try {\n const output = await this.runCommand(\n \"docker\",\n [\"images\", \"-q\", DiagramExporter.DOCKER_IMAGE],\n 5000\n );\n return output.trim().length > 0;\n } catch {\n return false;\n }\n }\n\n /**\n * Pull Structurizr CLI image\n */\n async pullImage(onProgress?: (line: string) => void): Promise<void> {\n return new Promise((resolve, reject) => {\n const proc = spawn(\"docker\", [\"pull\", DiagramExporter.DOCKER_IMAGE]);\n\n proc.stdout.on(\"data\", (data) => {\n onProgress?.(data.toString().trim());\n });\n\n proc.stderr.on(\"data\", (data) => {\n onProgress?.(data.toString().trim());\n });\n\n proc.on(\"close\", (code) => {\n if (code === 0) {\n resolve();\n } else {\n reject(new Error(`Failed to pull image, exit code: ${code}`));\n }\n });\n\n proc.on(\"error\", (error) => {\n reject(error);\n });\n });\n }\n\n /**\n * Run Docker command\n */\n private async runDocker(args: string[], timeout: number): Promise<string> {\n return this.runCommand(\"docker\", args, timeout);\n }\n\n /**\n * Run shell command\n */\n private async runCommand(command: string, args: string[], timeout: number): Promise<string> {\n return new Promise((resolve, reject) => {\n const proc = spawn(command, args);\n let stdout = \"\";\n let stderr = \"\";\n\n const timer = setTimeout(() => {\n proc.kill();\n reject(new Error(`Command timed out after ${timeout}ms`));\n }, timeout);\n\n proc.stdout.on(\"data\", (data) => {\n stdout += data.toString();\n });\n\n proc.stderr.on(\"data\", (data) => {\n stderr += data.toString();\n });\n\n proc.on(\"close\", (code) => {\n clearTimeout(timer);\n if (code === 0) {\n resolve(stdout);\n } else {\n reject(new Error(`Command failed with exit code ${code}: ${stderr}`));\n }\n });\n\n proc.on(\"error\", (error) => {\n clearTimeout(timer);\n reject(error);\n });\n });\n }\n}\n\n/**\n * Export diagrams\n */\nexport async function exportDiagrams(options: ExportOptions): Promise<ExportResult> {\n const exporter = new DiagramExporter();\n return exporter.export(options);\n}\n"
|
|
15
15
|
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "3B56BF342A9A6DCB64756E2164756E21",
|
|
18
18
|
"names": []
|
|
19
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fairfox/polly",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Multi-execution-context framework with reactive state and cross-context messaging for Chrome extensions, PWAs, and worker-based applications",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"types": "./dist/shared/types/messages.d.ts"
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
-
"files": ["dist", "README.md", "LICENSE"],
|
|
47
|
+
"files": ["dist", "templates", "README.md", "LICENSE"],
|
|
48
48
|
"scripts": {
|
|
49
49
|
"dev": "bun run build.ts --watch",
|
|
50
50
|
"build": "bun run build.ts",
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
A Progressive Web App (PWA) built with Polly framework, demonstrating multi-context architecture with:
|
|
4
|
+
|
|
5
|
+
- **Main Context** - UI application
|
|
6
|
+
- **Service Worker** - Background tasks, caching, push notifications
|
|
7
|
+
- **Shared Worker** - Shared state across tabs/windows
|
|
8
|
+
|
|
9
|
+
## Architecture
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
┌─────────────────┐
|
|
13
|
+
│ Main Context │ ← User Interface
|
|
14
|
+
│ (main.ts) │
|
|
15
|
+
└────────┬────────┘
|
|
16
|
+
│
|
|
17
|
+
┌────┴────┐
|
|
18
|
+
│ │
|
|
19
|
+
▼ ▼
|
|
20
|
+
┌─────────┐ ┌──────────────┐
|
|
21
|
+
│ Service │ │ Shared │
|
|
22
|
+
│ Worker │ │ Worker │
|
|
23
|
+
│ │ │ │
|
|
24
|
+
│ Caching │ │ Shared State │
|
|
25
|
+
│ Offline │ │ Multi-tab │
|
|
26
|
+
└─────────┘ └──────────────┘
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Getting Started
|
|
30
|
+
|
|
31
|
+
1. **Install dependencies:**
|
|
32
|
+
```bash
|
|
33
|
+
bun install
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
2. **Start development server:**
|
|
37
|
+
```bash
|
|
38
|
+
bun run serve
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
3. **Open in browser:**
|
|
42
|
+
```
|
|
43
|
+
http://localhost:3000
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
4. **Try the features:**
|
|
47
|
+
- Click "Ping Service Worker" - tests communication with SW
|
|
48
|
+
- Click "Ping Shared Worker" - tests communication with shared worker
|
|
49
|
+
- Click "Broadcast" - sends message to all workers
|
|
50
|
+
- Open multiple tabs to see shared worker coordination
|
|
51
|
+
|
|
52
|
+
## Development
|
|
53
|
+
|
|
54
|
+
- `bun run serve` - Start development server with hot reload
|
|
55
|
+
- `bun run build` - Build for production
|
|
56
|
+
- `bun run typecheck` - Type check TypeScript
|
|
57
|
+
- `bun run visualize` - Generate architecture diagrams
|
|
58
|
+
|
|
59
|
+
## Project Structure
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
{{PROJECT_NAME}}/
|
|
63
|
+
├── src/
|
|
64
|
+
│ ├── main.ts # Main application context
|
|
65
|
+
│ ├── service-worker.ts # Service Worker (caching, offline)
|
|
66
|
+
│ └── shared-worker.ts # Shared Worker (cross-tab state)
|
|
67
|
+
├── public/
|
|
68
|
+
│ └── manifest.json # PWA manifest
|
|
69
|
+
├── index.html # Entry point
|
|
70
|
+
├── server.ts # Dev server
|
|
71
|
+
├── build.ts # Build script
|
|
72
|
+
├── package.json
|
|
73
|
+
└── tsconfig.json
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Features Demonstrated
|
|
77
|
+
|
|
78
|
+
### Service Worker
|
|
79
|
+
- Asset caching for offline support
|
|
80
|
+
- Background fetch and sync
|
|
81
|
+
- Push notifications (requires HTTPS)
|
|
82
|
+
- Message passing with main context
|
|
83
|
+
|
|
84
|
+
### Shared Worker
|
|
85
|
+
- State shared across multiple tabs
|
|
86
|
+
- Broadcast messages to all connected tabs
|
|
87
|
+
- Connection tracking
|
|
88
|
+
- Periodic heartbeat
|
|
89
|
+
|
|
90
|
+
### Main Context
|
|
91
|
+
- Service Worker registration
|
|
92
|
+
- Shared Worker connection
|
|
93
|
+
- Bidirectional communication
|
|
94
|
+
- UI updates from worker messages
|
|
95
|
+
|
|
96
|
+
## Visualization
|
|
97
|
+
|
|
98
|
+
Generate architecture diagrams:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
bun run visualize
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
This will create:
|
|
105
|
+
- System context diagram
|
|
106
|
+
- Container diagram showing all 3 contexts
|
|
107
|
+
- Message flow diagrams
|
|
108
|
+
|
|
109
|
+
View diagrams:
|
|
110
|
+
```bash
|
|
111
|
+
bun run visualize --serve
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Testing
|
|
115
|
+
|
|
116
|
+
Open multiple browser tabs to test:
|
|
117
|
+
1. Shared worker coordination across tabs
|
|
118
|
+
2. Service worker message broadcasting
|
|
119
|
+
3. State synchronization
|
|
120
|
+
|
|
121
|
+
## Production Build
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
bun run build
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Output in `dist/` directory. Serve with any static file server or deploy to:
|
|
128
|
+
- Netlify
|
|
129
|
+
- Vercel
|
|
130
|
+
- GitHub Pages
|
|
131
|
+
- Cloudflare Pages
|
|
132
|
+
|
|
133
|
+
## Notes
|
|
134
|
+
|
|
135
|
+
- Service Worker requires HTTPS in production (or localhost for dev)
|
|
136
|
+
- Shared Worker support varies by browser (Chrome, Firefox, Edge)
|
|
137
|
+
- Check browser DevTools → Application tab to debug workers
|
|
138
|
+
|
|
139
|
+
## Learn More
|
|
140
|
+
|
|
141
|
+
- [Polly Documentation](https://github.com/fairfox/polly)
|
|
142
|
+
- [Service Worker API](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API)
|
|
143
|
+
- [Shared Worker API](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker)
|
|
144
|
+
- [PWA Documentation](https://web.dev/progressive-web-apps/)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build script for PWA
|
|
3
|
+
* Uses Bun's built-in bundler
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { rmSync, cpSync, mkdirSync } from 'node:fs'
|
|
7
|
+
import { join } from 'node:path'
|
|
8
|
+
|
|
9
|
+
const distDir = './dist'
|
|
10
|
+
|
|
11
|
+
// Clean dist directory
|
|
12
|
+
console.log('🧹 Cleaning dist directory...')
|
|
13
|
+
rmSync(distDir, { recursive: true, force: true })
|
|
14
|
+
mkdirSync(distDir, { recursive: true })
|
|
15
|
+
|
|
16
|
+
// Copy static files
|
|
17
|
+
console.log('📋 Copying static files...')
|
|
18
|
+
cpSync('./public', distDir, { recursive: true, force: true })
|
|
19
|
+
cpSync('./index.html', join(distDir, 'index.html'))
|
|
20
|
+
|
|
21
|
+
// Build main application
|
|
22
|
+
console.log('📦 Building main application...')
|
|
23
|
+
await Bun.build({
|
|
24
|
+
entrypoints: ['./src/main.ts'],
|
|
25
|
+
outdir: join(distDir, 'src'),
|
|
26
|
+
format: 'esm',
|
|
27
|
+
minify: true,
|
|
28
|
+
sourcemap: 'external',
|
|
29
|
+
target: 'browser',
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
// Build service worker
|
|
33
|
+
console.log('⚙️ Building service worker...')
|
|
34
|
+
await Bun.build({
|
|
35
|
+
entrypoints: ['./src/service-worker.ts'],
|
|
36
|
+
outdir: join(distDir, 'src'),
|
|
37
|
+
format: 'esm',
|
|
38
|
+
minify: true,
|
|
39
|
+
sourcemap: 'external',
|
|
40
|
+
target: 'browser',
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
// Build shared worker
|
|
44
|
+
console.log('👥 Building shared worker...')
|
|
45
|
+
await Bun.build({
|
|
46
|
+
entrypoints: ['./src/shared-worker.ts'],
|
|
47
|
+
outdir: join(distDir, 'src'),
|
|
48
|
+
format: 'esm',
|
|
49
|
+
minify: true,
|
|
50
|
+
sourcemap: 'external',
|
|
51
|
+
target: 'browser',
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
console.log('✅ Build complete!')
|
|
55
|
+
console.log(`\n📦 Output: ${distDir}/`)
|
|
56
|
+
console.log('\n💡 To serve: bun run serve')
|