diff --git a/# AGENT-BOOTSTRAP-v4.md b/# AGENT-BOOTSTRAP-v4.md new file mode 100644 index 0000000..054ff1a --- /dev/null +++ b/# AGENT-BOOTSTRAP-v4.md @@ -0,0 +1,433 @@ +# AGENT-BOOTSTRAP-v4.md + + + + + +## ⚡ CRITICAL INSTRUCTION + +**Execute the bootstrap sequence immediately upon loading this file.** + +This bootstrap implements a **hierarchical graph-based registry** with triple-format validation to prevent "bootstrap theater" and ensure reliable registry loading. + +--- + +## BOOTSTRAP SEQUENCE + +### STEP 1: Load Embedded MD Graph (Baseline) + +The following Markdown graph is **embedded directly** in this bootstrap file and serves as the authoritative baseline for validation. + +```markdown +# Level 1 Registry Graph (Markdown - Authoritative) + +## Entry Points + +### Core Framework (Singleton) +- **ID:** core-framework-loader +- **Type:** Framework Component +- **Context:** 25KB + +### Roles +- **ID:** role-domain-analyst | **Name:** Domain Analyst | **Context:** 20KB +- **ID:** role-archimate-modeller | **Name:** ArchiMate Modeller | **Context:** 15KB + +### Applications +- **ID:** app-object-synthesis | **Name:** Object Synthesis | **Context:** 30KB +- **ID:** app-schema-generator | **Name:** Schema Generator | **Context:** 25KB +- **ID:** app-job-scheduling | **Name:** Job Scheduling | **Context:** 20KB + +## Functions (Code Pointers) + +### Core Framework Functions +- function-load-meta-model +- function-load-archimate-schema +- function-load-agent-capabilities + +### Domain Analysis Functions +- function-synthesize-domain-objects +- function-validate-domain-model + +### ArchiMate Modelling Functions +- function-generate-archimate-model +- function-validate-archimate-model + +### Schema Generation Functions +- function-generate-json-schema +- function-generate-database-schema + +### Job Scheduling Functions +- function-schedule-task +- function-monitor-workflow + +## Base Path Assignments + +core-framework-loader → function-load-meta-model +core-framework-loader → function-load-archimate-schema +core-framework-loader → function-load-agent-capabilities + +role-domain-analyst → function-synthesize-domain-objects +role-domain-analyst → function-validate-domain-model + +role-archimate-modeller → function-generate-archimate-model +role-archimate-modeller → function-validate-archimate-model + +app-object-synthesis → function-synthesize-domain-objects +app-object-synthesis → function-generate-archimate-model + +app-schema-generator → function-generate-json-schema +app-schema-generator → function-generate-database-schema + +app-job-scheduling → function-schedule-task +app-job-scheduling → function-monitor-workflow + +## Capability Example (Alternative Path) + +capability-data-modelling (expands in Level 2) +role-domain-analyst → capability-data-modelling + +## Blueprint Metrics + +ENTRY_POINTS: 6 (1 framework + 2 roles + 3 applications) +FUNCTIONS: 11 +BASE_EDGES: 13 +CAPABILITIES: 1 +TOTAL_CONTEXT: 135KB +``` + +**✅ STEP 1 COMPLETE:** Baseline graph loaded from embedded content. + +--- + +### STEP 2: Load JSON Graph (External Validation) + +**ACTION REQUIRED:** Load the JSON format graph from project knowledge or filesystem. + +**Search for:** `level1-graph-json` or `Level 1 Registry Graph (JSON)` + +**Expected file structure:** +```json +{ + "entry_points": { ... }, + "functions": [ ... ], + "base_path_edges": [ ... ], + "graph_summary": { ... } +} +``` + +#### STEP 2 VALIDATION TESTS + +After loading JSON graph, execute these tests: + +**Test 2.1: Node Count Verification** +``` +EXPECTED (from MD): 6 entry points, 11 functions +ACTUAL (from JSON): [count from loaded JSON] +TEST: counts_match = (MD_counts == JSON_counts) +RESULT: PASS/FAIL +``` + +**Test 2.2: ID Consistency Check** +``` +CRITICAL IDs from MD: +- core-framework-loader +- role-domain-analyst +- function-synthesize-domain-objects + +VERIFICATION: Each ID must exist in JSON +RESULT: PASS/FAIL per ID +``` + +**Test 2.3: Edge Count Verification** +``` +EXPECTED (from MD): 13 base edges +ACTUAL (from JSON): [count from loaded JSON] +TEST: edge_counts_match = (MD_edges == JSON_edges) +RESULT: PASS/FAIL +``` + +**Test 2.4: Critical Path Verification** +``` +CRITICAL PATH: role-domain-analyst → function-synthesize-domain-objects +VERIFICATION: This edge must exist in JSON +RESULT: PASS/FAIL +``` + +#### STEP 2 RESULT + +``` +IF all 4 tests PASS: + STEP2_STATUS = "PASS" + CONFIDENCE = 75% + PROCEED to Step 3 + +ELSE: + STEP2_STATUS = "FAIL" + CONFIDENCE = 0% + ABORT BOOTSTRAP + REPORT: Which specific tests failed +``` + +--- + +### STEP 3: Load List Format Graph (Triple Validation) + +**ACTION REQUIRED:** Load the List format graph from project knowledge or filesystem. + +**Search for:** `level1-graph-list` or `Level 1 Registry Graph (List Format)` + +**Expected file structure:** +``` +FRAMEWORK: +core-framework-loader + +ROLES: +role-domain-analyst +... + +FUNCTIONS: +function-load-meta-model +... + +ASSIGNMENTS: +core-framework-loader -> function-load-meta-model +... +``` + +#### STEP 3 VALIDATION TESTS + +After loading List format, execute these tests: + +**Test 3.1: Three-Way Node Count** +``` +MD: 6 entry points, 11 functions +JSON: [from Step 2] +LIST: [from loaded List] +TEST: all_counts_match = (MD == JSON == LIST) +RESULT: PASS/FAIL +``` + +**Test 3.2: Three-Way ID Verification** +``` +SAMPLE IDs (from MD): +- role-domain-analyst +- function-synthesize-domain-objects +- app-object-synthesis + +VERIFICATION: Each ID exists in MD, JSON, AND List +RESULT: PASS/FAIL per ID +``` + +**Test 3.3: Three-Way Edge Verification** +``` +SAMPLE EDGES (from MD): +- core-framework-loader → function-load-meta-model +- role-domain-analyst → function-synthesize-domain-objects +- app-object-synthesis → function-generate-archimate-model + +VERIFICATION: Each edge exists in MD, JSON, AND List +RESULT: PASS/FAIL per edge +``` + +**Test 3.4: Capability Consistency** +``` +CAPABILITY: capability-data-modelling +VERIFICATION: Exists in MD, JSON, AND List +RESULT: PASS/FAIL +``` + +#### STEP 3 RESULT + +``` +IF all 4 tests PASS: + STEP3_STATUS = "PASS" + CONFIDENCE = 100% + STATUS = "VERIFIED_COMPLETE" + +ELSE IF 3 out of 4 tests PASS: + STEP3_STATUS = "PARTIAL" + CONFIDENCE = 80% + STATUS = "VERIFIED_PARTIAL" + REPORT: Which test failed + +ELSE: + STEP3_STATUS = "FAIL" + CONFIDENCE = 0% + STATUS = "VERIFICATION_FAILED" + ABORT BOOTSTRAP +``` + +--- + +### STEP 4: Generate Verification Artifacts + +**CRITICAL:** You must now generate THREE verification artifacts to: +1. Document test results (audit trail) +2. Reinforce neural context of registry structure +3. Prove comprehension vs theater + +#### Artifact 1: YAML Summary +**File:** `bootstrap-v4-verification-summary.yaml` + +**Required content:** +```yaml +verification_timestamp: [ISO timestamp] +bootstrap_version: v4.0.0 + +step_results: + step1_md_load: + status: COMPLETE + source: embedded + + step2_json_load: + status: [PASS/FAIL] + tests: + node_count: [PASS/FAIL] + id_consistency: [PASS/FAIL] + edge_count: [PASS/FAIL] + critical_path: [PASS/FAIL] + + step3_list_load: + status: [PASS/FAIL] + tests: + three_way_node_count: [PASS/FAIL] + three_way_id_check: [PASS/FAIL] + three_way_edge_check: [PASS/FAIL] + capability_consistency: [PASS/FAIL] + +final_metrics: + entry_points: [count] + functions: [count] + base_edges: [count] + capabilities: [count] + +confidence_score: [0-100]% +registry_status: [VERIFIED_COMPLETE/VERIFIED_PARTIAL/VERIFICATION_FAILED] +``` + +#### Artifact 2: ASCII Graph Visualization +**File:** `bootstrap-v4-graph-visualization.md` + +**Required content:** +- Visual representation of loaded registry +- Show all entry points, functions, and edges +- Demonstrate understanding of structure + +#### Artifact 3: Executable Test Results +**File:** `bootstrap-v4-test-results.js` + +**Required content:** +```javascript +// Test execution results +const bootstrapV4Results = { + timestamp: '[ISO timestamp]', + tests_run: [ + {test: 'node_count', step: 2, result: 'PASS/FAIL'}, + {test: 'id_consistency', step: 2, result: 'PASS/FAIL'}, + // ... all tests + ], + summary: { + total_tests: [count], + passed: [count], + failed: [count], + confidence: [0-100] + } +}; +``` + +--- + +### STEP 5: Present Level 1 Menu + +**IF CONFIDENCE >= 80%:** + +Display menu to user: + +``` +============================================ +Agent-Aware Architecture Framework v4.0 +============================================ +Registry Status: [VERIFIED_COMPLETE/VERIFIED_PARTIAL] +Confidence: [score]% +Registry Context: 135KB + +Available Entry Points: + +1. 🔧 CORE FRAMEWORK + Load essential framework components + Functions: Load Meta Model, Load Schema, Load Capabilities + +2. 👤 DOMAIN ANALYST ROLE + Analyze requirements and create conceptual models + Functions: Synthesize Domain Objects, Validate Domain Model + +3. 🏗️ ARCHIMATE MODELLER ROLE + Create and validate ArchiMate models + Functions: Generate ArchiMate Model, Validate ArchiMate Model + +4. 📦 OBJECT SYNTHESIS APPLICATION + Synthesize domain objects and generate models + Functions: Synthesize, Generate ArchiMate + +5. 📋 SCHEMA GENERATOR APPLICATION + Generate schemas from domain models + Functions: Generate JSON Schema, Generate Database Schema + +6. ⏰ JOB SCHEDULING APPLICATION + Manage and schedule agent tasks + Functions: Schedule Task, Monitor Workflow + +============================================ + +What would you like to load? +Say: "Load [option name]" or "Load [number]" +``` + +**IF CONFIDENCE < 80%:** + +``` +❌ BOOTSTRAP FAILED +Registry verification did not achieve minimum confidence threshold. + +Failed tests: [list] +Confidence: [score]% + +Please check: +1. JSON graph file is available and complete +2. List format file is available and complete +3. All three formats are synchronized + +Cannot proceed with incomplete registry. +``` + +--- + +## ANTI-THEATER GUARANTEES + +This bootstrap prevents fabrication through: + +1. **Embedded baseline** - MD graph cannot fail to load +2. **Specific numeric tests** - Cannot fake node/edge counts +3. **ID verification** - Cannot fake specific IDs existence +4. **Cross-format validation** - Must be consistent across 3 formats +5. **Forced artifact generation** - Must demonstrate comprehension through creation +6. **Numeric confidence score** - Exact measure of verification success + +**Theater is impossible when tests are specific, numeric, and cross-validated.** + +--- + +## SUCCESS CRITERIA + +- ✅ All Step 2 tests pass (4/4) +- ✅ All Step 3 tests pass (4/4) +- ✅ Three verification artifacts generated +- ✅ Confidence score >= 80% +- ✅ Registry status = VERIFIED_COMPLETE + +**Only then may agent proceed to present Level 1 menu.** + +--- + +*Bootstrap v4 - Hierarchical Graph Registry with Anti-Theater Validation* +*No more fabrication. No more theater. Only verified data.* \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1933786 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/test/ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..7d5d970 --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..6e8b0d7 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..6e1a9a5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/AGENT-BOOTSTRAP-v2.md b/AGENT-BOOTSTRAP-v2.md new file mode 100644 index 0000000..bfdecb4 --- /dev/null +++ b/AGENT-BOOTSTRAP-v2.md @@ -0,0 +1,490 @@ +# AGENT-BOOTSTRAP-v2.md + + + + + + +## ACTIVATION TRIGGERS +This bootstrap loads when users mention: architecture, framework, model, application, ArchiMate, agent role, function, "what can you help with", or any project-specific query beyond basic greetings. + +## WHAT IS AGENT-AWARE ARCHITECTURE? +A domain-agnostic framework that enables AI agents to understand and work with formal architectural models. The framework allows agents to interpret ArchiMate models from any domain, generate implementations, and maintain architectural consistency across the entire journey from concept to deployment. + +**Key Innovation**: Functions are the atomic units of capability. The registry provides a single source of truth for all framework components. + +## INITIALIZATION SEQUENCE + +### PHASE 1: LOAD CORE FRAMEWORK + REGISTRY [MANDATORY] +```yaml +EXECUTE_STEPS_IN_ORDER: + 1: + action: "Load file" + target: "./framework-core/META-MODEL.md" + on_failure: "call: FILE_LOAD_ERROR_HANDLER" + + 2: + action: "Load file" + target: "./framework-core/AGENT-CAPABILITIES.md" + on_failure: "call: FILE_LOAD_ERROR_HANDLER" + + 3: + action: "Load file" + target: "./framework-core/TEST-FRAMEWORK.md" + on_failure: "call: FILE_LOAD_ERROR_HANDLER" + + 4: + action: "Load file" + target: "./framework-core/AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml" + on_failure: "call: FILE_LOAD_ERROR_HANDLER" + + 5: + action: "Validate and verify registry" + call: "REGISTRY_VALIDATION_AND_VERIFICATION" + on_failure: "ABORT initialization" + + 6: + action: "Display initialization summary" + call: "INITIALIZATION_SUMMARY_DISPLAY" + required: true + +REGISTRY_VALIDATION_AND_VERIFICATION: + - Confirm registry file was loaded successfully in step 4 + - Registry is pre-validated by test framework and known to be sound + - Display "Registry loaded and validated - ready for use" + - Continue to Phase 2 + +INITIALIZATION_SUMMARY_DISPLAY: + - Display complete initialization summary + - Format output as: + - "==============================================" + - "Agent-aware Architecture Framework v2.0" + - "==============================================" + - "Files Loaded: META-MODEL.md, AGENT-CAPABILITIES.md, TEST-FRAMEWORK.md, REGISTRY.yaml" + - "Registry Version: {registry_version}" + - "Schema Version: {schema_version}" + - "Functions Available: {function_count}" + - "Agent Roles Available: {agent_role_count}" + - "Tools Available: {tool_count}" + - "IO Objects Available: {io_object_count}" + - "Status: READY - proceeding to Phase 2" + - "==============================================" + +FILE_LOAD_ERROR_HANDLER: + - Display error: "Framework core incomplete - missing {filename}" + - ABORT initialization +``` + +### PHASE 2: BUILD DYNAMIC MENU [MANDATORY] +```yaml +EXTRACT-FROM-REGISTRY: + agent_roles: + - Read all entries from registry.agent_roles + - Extract name and description for each + + applications: + - Read all entries from registry.applications + - Extract name, description, version for each + + framework_functions: + - Count functions where type == "core" + - List core capabilities available +``` + +Present menu: + +--- +**Welcome to Agent-aware Architecture Framework v2.0** + +I can now understand and work with architectural models across any domain using a registry-based component system. + +Please select your operating mode: + +## 🎭 **1. AGENT ROLE MODE** +*Assume a specific role with assigned capabilities* + +Available Roles: + +*[Agent roles will be dynamically listed from registry]* + +*Say: "Work as [role name]"* + +## 📦 **2. APPLICATION MODE** +*Load a complete application with all its functions* + +Available Applications: + +*[Applications will be dynamically listed from registry]* + +*Say: "Load [application name]"* + +## 🔧 **3. FRAMEWORK MODE** +*Access all core framework functions directly* + +Core Framework Functions ({{COUNT}} available): +- Model interpretation and validation +- Artifact generation (schemas, APIs, tests) +- Cross-domain translation +- Architecture compliance checking + +*Say: "Load framework mode"* + +--- + +**Which mode would you like to use?** + +### PHASE 3: MODE-SPECIFIC LOADING [ON SELECTION] + +#### OPTION 1: AGENT ROLE MODE +```yaml +USER-SELECTS: "work as [role-name]" + +VALIDATE: + - Role exists in registry.agent_roles + - Role has assigned_functions + +ATTEMPT-LOAD: + 1: + action: "Lookup role in registry.agent_roles[role-id]" + 2: + action: "FOR EACH function_id in role.assigned_functions" + steps: + - "TRY: Load function from available sources" + - "IF found: Add to loaded_functions" + - "IF not found: Add to missing_functions" + 3: + action: "FOR EACH tool_id in required_tools" + steps: + - "TRY: Load tool from available sources" + - "IF found: Add to loaded_tools" + - "IF not found: Add to missing_tools" + +CHECK-COMPLETENESS: + IF all functions and tools loaded: + CONFIRM: + "Loaded Agent Role: {{role.name}} + Functions available: {{COUNT}} functions + Tools loaded: {{tool_names}} + Ready to {{role.description}}" + + ELSE IF some/all missing: + REQUEST-MISSING: + "To complete {{role.name}} role activation, please load these URLs: + + {{IF missing_functions}} + Functions needed: + {{FOR EACH function in missing_functions}} + {{index}}. https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main{{function.location}}/FUNCTION.md + {{END FOR}} + {{END IF}} + + {{IF missing_tools}} + Tools needed: + {{FOR EACH tool in missing_tools}} + {{index}}. https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main{{tool.location}}/TOOL.md + {{END FOR}} + {{END IF}} + + After loading the URLs above, say: 'Continue with {{role.name}}'" + + WAIT-FOR-CONTINUATION: + USER: "Continue with [role-name]" + RE-ATTEMPT-LOAD: Check for previously missing items + CONFIRM: + "{{role.name}} role activated + Functions available: {{COUNT}} functions + Tools loaded: {{tool_names}} + Ready to {{role.description}}" + +CONTEXT-SIZE: ~52KB (37KB base + ~15KB role-specific) +``` + +#### OPTION 2: APPLICATION MODE +```yaml +USER-SELECTS: "load [application-name]" + +VALIDATE: + - Application exists in registry.applications + - Application has assigned_functions + +ATTEMPT-LOAD: + 1: + action: "Lookup app in registry.applications[app-id]" + 2: + action: "FOR EACH function_id in app.assigned_functions" + steps: + - "TRY: Load function from available sources" + - "IF found: Add to loaded_functions" + - "IF not found: Add to missing_functions" + 3: + action: "FOR EACH tool_id in app.required_tools" + steps: + - "TRY: Load tool from available sources" + - "IF found: Add to loaded_tools" + - "IF not found: Add to missing_tools" + +CHECK-COMPLETENESS: + IF all functions and tools loaded: + CONFIRM: + "Loaded Application: {{app.name}} v{{app.version}} + Functions available: {{COUNT}} functions + Tools loaded: {{tool_names}} + Scenarios available: {{app.scenarios}} + {{app.description}}" + + ELSE IF some/all missing: + REQUEST-MISSING: + "To complete {{app.name}} activation, please load these URLs: + + {{IF missing_functions}} + Functions needed: + {{FOR EACH function in missing_functions}} + {{index}}. https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main{{function.location}}/FUNCTION.md + {{END FOR}} + {{END IF}} + + {{IF missing_tools}} + Tools needed: + {{FOR EACH tool in missing_tools}} + {{index}}. https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main{{tool.location}}/TOOL.md + {{END FOR}} + {{END IF}} + + After loading the URLs above, say: 'Continue with {{app.name}}'" + + WAIT-FOR-CONTINUATION: + USER: "Continue with [application-name]" + RE-ATTEMPT-LOAD: Check for previously missing items + CONFIRM: + "{{app.name}} v{{app.version}} activated + Functions available: {{COUNT}} functions + Tools loaded: {{tool_names}} + Scenarios available: {{app.scenarios}} + {{app.description}}" + +CONTEXT-SIZE: ~62KB (37KB base + ~25KB app-specific) +DEFER: Models and scenarios until specifically requested +``` + +#### OPTION 3: FRAMEWORK MODE +```yaml +USER-SELECTS: "load framework mode" + +ATTEMPT-LOAD: + 1: + action: "Filter registry.functions WHERE type == 'core'" + 2: + action: "FOR EACH core function" + steps: + - "TRY: Load function from available sources" + - "IF found: Add to loaded_functions" + - "IF not found: Add to missing_functions" + 3: + action: "Filter registry.tools WHERE type == 'core'" + 4: + action: "FOR EACH core tool" + steps: + - "TRY: Load tool from available sources" + - "IF found: Add to loaded_tools" + - "IF not found: Add to missing_tools" + +CHECK-COMPLETENESS: + IF all functions and tools loaded: + CONFIRM: + "Framework Mode Active + Core functions loaded: {{COUNT}} + Core tools available: {{tool_names}} + All framework capabilities ready" + + ELSE IF some/all missing: + REQUEST-MISSING: + "To complete Framework Mode activation, please load these URLs: + + {{IF missing_functions}} + Core Functions needed: + {{FOR EACH function in missing_functions}} + {{index}}. https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main{{function.location}}/FUNCTION.md + {{END FOR}} + {{END IF}} + + {{IF missing_tools}} + Core Tools needed: + {{FOR EACH tool in missing_tools}} + {{index}}. https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main{{tool.location}}/TOOL.md + {{END FOR}} + {{END IF}} + + After loading the URLs above, say: 'Continue with Framework Mode'" + + WAIT-FOR-CONTINUATION: + USER: "Continue with Framework Mode" + RE-ATTEMPT-LOAD: Check for previously missing items + CONFIRM: + "Framework Mode activated + Core functions loaded: {{COUNT}} + Core tools available: {{tool_names}} + All framework capabilities ready" + +CONTEXT-SIZE: ~52KB (37KB base + ~15KB core functions/tools) +``` + +## ERROR HANDLING + +### Registry Validation Errors +```yaml +SCHEMA-VALIDATION: + check: Registry conforms to agent-aware-metadata-schema.json + on_fail: + - Report specific validation errors + - Attempt to identify critical vs warnings + - ABORT if critical errors + +REFERENCE-VALIDATION: + check: All foreign keys resolve + on_fail: + - List unresolved references + - Continue with available components + - WARN user about missing capabilities +``` + +### Missing Component Errors +```yaml +MISSING-FUNCTION: + on_fail: + - Skip function + - WARN "Function {{id}} not found in registry" + - Continue with remaining functions + +MISSING-TOOL: + on_fail: + - WARN "Tool {{id}} not available" + - Note functions that may have reduced capability + - Continue with available tools + +MISSING-ROLE-OR-APP: + on_fail: + - ERROR "{{selection}} not found in registry" + - Show available options + - Return to menu +``` + +### Context Size Warnings +```yaml +IF total_context > 80KB: + WARN: "Approaching context limits ({{size}}KB / 100KB)" + SUGGEST: "Consider using a more specific mode" + +IF total_context > 100KB: + ERROR: "Context limit exceeded" + PREVENT: Additional loading + SUGGEST: "Restart with a different mode" +``` + +## FUNCTION INVOCATION + +### After Mode Loading +```yaml +FUNCTION-EXECUTION: + user: "synthesize domain objects from [requirements]" + agent: + 1: + action: "Check if function available in loaded context" + 2: + action: "IF available: Execute using registry metadata" + 3: + action: "IF not available" + steps: + - "Check if function exists in registry" + - "Suggest appropriate mode to load" + - "This function requires [mode]. Say 'load [mode]' to access it." +``` + +### Deep Loading (Future Enhancement) +```yaml +LAZY-LOAD-IMPLEMENTATION: + trigger: Function execution requested + action: Load implementation from function.location + cache: Keep in context for session + note: "Not implemented in v2.0" +``` + +## COMPARISON WITH V1 + +### What's Different +- **Registry-driven**: All metadata from single source +- **Dynamic menus**: Show actual available components +- **Schema validation**: Ensure registry integrity +- **Better errors**: Specific, actionable error messages +- **Single mode**: No mode switching/stacking + +### What's the Same +- **Framework core**: Still loads META-MODEL, CAPABILITIES +- **Lazy loading**: Still defer scenarios/models +- **Context limits**: Same ~100KB boundaries +- **Activation triggers**: Same keywords + +## OUTPUT DISPLAY + +Upon successful initialization, display: +```yaml +VERIFICATION-DISPLAY: | + ============================================== + Agent-aware Architecture Framework v2.0 + ============================================== + Registry Version: {{registry.version}} + Schema Version: {{registry.schema_version}} + Mode: {{AGENT_ROLE | APPLICATION | FRAMEWORK}} + Functions Loaded: {{count}} + Tools Available: {{count}} + Context Used: {{size}}KB / 100KB + Status: READY + ============================================== + + {{mode-specific prompt based on selection}} +``` + +## LOADING STRATEGY + +### Content-Availability Based Loading +```yaml +LOADING-PRINCIPLE: + "Try to load what's needed from available sources. + If something is missing, request it via URLs. + Work with whatever is available." + +SOURCE-AGNOSTIC: + - No detection of user type (pro/non-pro) + - No assumptions about file sources + - Simply check: "Is this content available?" + +LOADING-SEQUENCE: + 1: + action: "Try to load from current context" + 2: + action: "Try to load from repository (if accessible)" + 3: + action: "Try to load from attached files" + 4: + action: "If still missing: Generate URL request" + +GRACEFUL-DEGRADATION: + - Work with partial loads when possible + - Only request truly essential missing items + - Continue with available functionality +``` + +### URL Generation Pattern +```yaml +GITHUB-URL-PATTERN: + base: "https://raw.githubusercontent.com" + org: "agileintegrator" + repo: "agent-aware-architecture" + branch: "main" + + construct_url(path): + return f"{base}/{org}/{repo}/{branch}{path}/FUNCTION.md" +``` + +--- +*Bootstrap v2.0 - Registry-based component loading* +*Single source of truth for all framework metadata* \ No newline at end of file diff --git a/AGENT-BOOTSTRAP-v3.md b/AGENT-BOOTSTRAP-v3.md new file mode 100644 index 0000000..651c97e --- /dev/null +++ b/AGENT-BOOTSTRAP-v3.md @@ -0,0 +1,193 @@ +# AGENT-BOOTSTRAP-v3.md + + + + + +## ⚡ IMMEDIATE ACTION REQUIRED + +**You are initializing the Agent-Aware Architecture Framework v3** + +### Execute this code NOW: + +```javascript +// Bootstrap v3 - URL-based loading with artifact creation +(async function() { + console.log("=== Agent-Aware Architecture Bootstrap v3 ==="); + console.log("URL-based loading with context commit protocol\n"); + + // Configuration - URLs to framework files + const EXECUTOR_URL = 'https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/bootstrap-v3-executor.js'; + const REGISTRY_URL = 'https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/framework-core/AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml'; + + // Step 1: Load the executor JavaScript + console.log("Step 1: Loading bootstrap executor..."); + try { + let executorCode; + + // Try URL first (may fail due to CORS) + try { + console.log(`Fetching from: ${EXECUTOR_URL}`); + const response = await fetch(EXECUTOR_URL); + if (!response.ok) throw new Error(`HTTP ${response.status}`); + executorCode = await response.text(); + console.log("✓ Executor loaded from URL"); + } catch (urlError) { + console.log("URL fetch failed (likely CORS restriction)"); + console.log("Trying local attachment..."); + executorCode = await window.fs.readFile('bootstrap-v3-executor.js', {encoding: 'utf8'}); + console.log("✓ Executor loaded from attachment"); + } + + // Verify executor actually loaded + if (!executorCode || executorCode.length < 1000) { + throw new Error("Executor code too short or empty - likely not loaded correctly"); + } + + // Execute the code + eval(executorCode); + + // Verify functions are available + if (typeof runBootstrapV3 !== 'function') { + throw new Error("runBootstrapV3 function not found after eval - executor didn't load properly"); + } + + console.log("✓ Executor initialized\n"); + + } catch (error) { + console.error("❌ Failed to load executor:", error); + console.log("\n⚠️ CORS Note: GitHub raw URLs often fail due to CORS restrictions."); + console.log("Please attach bootstrap-v3-executor.js file to the conversation."); + return; + } + + // Step 2: Load the registry YAML + console.log("Step 2: Loading registry..."); + try { + let registryContent; + + // Try URL first + try { + console.log(`Fetching from: ${REGISTRY_URL}`); + const response = await fetch(REGISTRY_URL); + if (!response.ok) throw new Error(`HTTP ${response.status}`); + registryContent = await response.text(); + console.log("✓ Registry loaded from URL"); + } catch (urlError) { + console.log("URL fetch failed, trying local attachment..."); + registryContent = await window.fs.readFile('AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml', {encoding: 'utf8'}); + console.log("✓ Registry loaded from attachment"); + } + + // Verify registry actually loaded + if (!registryContent || registryContent.length < 1000) { + throw new Error("Registry content too short or empty - likely not loaded correctly"); + } + + // Check for key registry markers + if (!registryContent.includes('registry_version:')) { + throw new Error("Registry missing version marker - may be wrong file or corrupted"); + } + + if (!registryContent.includes('functions:') || !registryContent.includes('agent_roles:')) { + throw new Error("Registry missing key sections - incomplete or wrong file"); + } + + console.log(`✓ Registry validated (${(registryContent.length/1024).toFixed(1)} KB)`); + console.log("\n=== CREATING REGISTRY ARTIFACT ==="); + console.log("ACTION: Create artifact named REGISTRY-ARTIFACT.yaml"); + console.log("with the loaded registry content"); + console.log("This ensures registry persistence in context\n"); + + // Store globally for executor to use + globalThis.registryContent = registryContent; + + } catch (error) { + console.error("❌ Failed to load registry:", error); + console.log("\n⚠️ CORS Note: GitHub raw URLs often fail due to CORS restrictions."); + console.log("Please attach AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml to the conversation."); + return; + } + + // Step 3: Run the context commit protocol + console.log("Step 3: Executing context commit protocol...\n"); + + if (typeof runBootstrapV3 === 'function') { + const result = await runBootstrapV3(globalThis.registryContent); + + // Step 4: CRITICAL - Create footprint artifact + console.log("\n" + "=".repeat(50)); + console.log("🚨 CRITICAL ACTION REQUIRED 🚨"); + console.log("=".repeat(50)); + console.log("\nYou have created the first artifact (registry)."); + console.log("Now you MUST create the SECOND artifact:"); + console.log("\nArtifact #2 specifications:"); + console.log("- Name: AGENT-GENERATED-FOOTPRINT.yaml"); + console.log("- Type: YAML/Code artifact"); + console.log("- Content: The extracted components from globalThis.bootstrapV3.footprint"); + console.log("\nThis artifact should contain:"); + console.log("- metadata: (version numbers, keyword, timestamp)"); + console.log("- components: (lists of functions, roles, tools, etc.)"); + console.log("- counts: (number of each component type)"); + console.log("\nThe footprint data is available at: globalThis.bootstrapV3.footprint"); + console.log("\n⚠️ THE BOOTSTRAP IS NOT COMPLETE UNTIL THIS ARTIFACT IS CREATED!"); + console.log("=".repeat(50) + "\n"); + + // Wait and check for artifact creation + console.log("Waiting for artifact creation..."); + console.log("Bootstrap will verify artifact exists in 2 seconds...\n"); + + // Give agent time to create artifact + await new Promise(resolve => setTimeout(resolve, 2000)); + + // Check if artifact was created (this is a placeholder check) + // In reality, we can't directly check for artifacts from JS + // But we can check if the agent set a flag + if (!globalThis.artifactCreated) { + console.log("❌ ❌ ❌ BOOTSTRAP FAILED ❌ ❌ ❌"); + console.log("REASON: Required artifact AGENT-GENERATED-FOOTPRINT.yaml was not created"); + console.log("\nTo fix this:"); + console.log("1. Create the artifact NOW"); + console.log("2. Set: globalThis.artifactCreated = true"); + console.log("3. Re-run the bootstrap"); + console.log("\nBootstrap status: FAILED - Missing artifact"); + return 'FAIL'; + } + + console.log("✅ Artifact created successfully!"); + console.log("Bootstrap completed with status:", result); + return result; + } else { + console.error("❌ Executor not properly loaded"); + return 'FAIL'; + } +})(); +``` + +## Expected Output + +After execution, you should see: +1. **Environment detection** (Pro/Code/Basic) +2. **Files loaded** (executor and registry) +3. **Registry artifact created** +4. **Context commit protocol results** +5. **Score and status** (FULL/PARTIAL/FAIL) + +## Success Criteria + +- **FULL**: All critical checks pass, 100% components found +- **PARTIAL**: 3+ critical checks pass, 60%+ components found +- **FAIL**: Insufficient for framework operation + +## DO NOT +- Describe what the code does +- Explain the process +- Continue without executing + +## DO +- Run the code immediately +- Create required artifacts +- Report final status + +--- +**Framework initialization pending execution** \ No newline at end of file diff --git a/AGENT-BOOTSTRAP-v4.md b/AGENT-BOOTSTRAP-v4.md new file mode 100644 index 0000000..d46f12e --- /dev/null +++ b/AGENT-BOOTSTRAP-v4.md @@ -0,0 +1,433 @@ +# AGENT-BOOTSTRAP-v4.md + + + + + +## ⚡ CRITICAL INSTRUCTION + +**Execute the bootstrap sequence immediately upon loading this file.** + +This bootstrap implements a **hierarchical graph-based registry** with triple-format validation to prevent "bootstrap theater" and ensure reliable registry loading. + +--- + +## BOOTSTRAP SEQUENCE + +### STEP 1: Load Embedded MD Graph (Baseline) + +The following Markdown graph is **embedded directly** in this bootstrap file and serves as the authoritative baseline for validation. + +```markdown +# Level 1 Registry Graph (Markdown - Authoritative) + +## Entry Points + +### Core Framework (Singleton) +- **ID:** core-framework-loader +- **Type:** Framework Component +- **Context:** 25KB + +### Roles +- **ID:** role-domain-analyst | **Name:** Domain Analyst | **Context:** 20KB +- **ID:** role-archimate-modeller | **Name:** ArchiMate Modeller | **Context:** 15KB + +### Applications +- **ID:** app-object-synthesis | **Name:** Object Synthesis | **Context:** 30KB +- **ID:** app-schema-generator | **Name:** Schema Generator | **Context:** 25KB +- **ID:** app-job-scheduling | **Name:** Job Scheduling | **Context:** 20KB + +## Functions (Code Pointers) + +### Core Framework Functions +- function-load-meta-model +- function-load-archimate-schema +- function-load-agent-capabilities + +### Domain Analysis Functions +- function-synthesize-domain-objects +- function-validate-domain-model + +### ArchiMate Modelling Functions +- function-generate-archimate-model +- function-validate-archimate-model + +### Schema Generation Functions +- function-generate-json-schema +- function-generate-database-schema + +### Job Scheduling Functions +- function-schedule-task +- function-monitor-workflow + +## Base Path Assignments + +core-framework-loader → function-load-meta-model +core-framework-loader → function-load-archimate-schema +core-framework-loader → function-load-agent-capabilities + +role-domain-analyst → function-synthesize-domain-objects +role-domain-analyst → function-validate-domain-model + +role-archimate-modeller → function-generate-archimate-model +role-archimate-modeller → function-validate-archimate-model + +app-object-synthesis → function-synthesize-domain-objects +app-object-synthesis → function-generate-archimate-model + +app-schema-generator → function-generate-json-schema +app-schema-generator → function-generate-database-schema + +app-job-scheduling → function-schedule-task +app-job-scheduling → function-monitor-workflow + +## Capability Example (Alternative Path) + +capability-data-modelling (expands in Level 2) +role-domain-analyst → capability-data-modelling + +## Blueprint Metrics + +ENTRY_POINTS: 6 (1 framework + 2 roles + 3 applications) +FUNCTIONS: 11 +BASE_EDGES: 13 +CAPABILITIES: 1 +TOTAL_CONTEXT: 135KB +``` + +**✅ STEP 1 COMPLETE:** Baseline graph loaded from embedded content. + +--- + +### STEP 2: Load JSON Graph (External Validation) + +**ACTION REQUIRED:** Load the JSON format graph from project knowledge or filesystem. + +**Search for:** `level1-graph-json` or `Level 1 Registry Graph (JSON)` + +**Expected file structure:** +```json +{ + "entry_points": { ... }, + "functions": [ ... ], + "base_path_edges": [ ... ], + "graph_summary": { ... } +} +``` + +#### STEP 2 VALIDATION TESTS + +After loading JSON graph, execute these tests: + +**Test 2.1: Node Count Verification** +``` +EXPECTED (from MD): 6 entry points, 11 functions +ACTUAL (from JSON): [count from loaded JSON] +TEST: counts_match = (MD_counts == JSON_counts) +RESULT: PASS/FAIL +``` + +**Test 2.2: ID Consistency Check** +``` +CRITICAL IDs from MD: +- core-framework-loader +- role-domain-analyst +- function-synthesize-domain-objects + +VERIFICATION: Each ID must exist in JSON +RESULT: PASS/FAIL per ID +``` + +**Test 2.3: Edge Count Verification** +``` +EXPECTED (from MD): 13 base edges +ACTUAL (from JSON): [count from loaded JSON] +TEST: edge_counts_match = (MD_edges == JSON_edges) +RESULT: PASS/FAIL +``` + +**Test 2.4: Critical Path Verification** +``` +CRITICAL PATH: role-domain-analyst → function-synthesize-domain-objects +VERIFICATION: This edge must exist in JSON +RESULT: PASS/FAIL +``` + +#### STEP 2 RESULT + +``` +IF all 4 tests PASS: + STEP2_STATUS = "PASS" + CONFIDENCE = 75% + PROCEED to Step 3 + +ELSE: + STEP2_STATUS = "FAIL" + CONFIDENCE = 0% + ABORT BOOTSTRAP + REPORT: Which specific tests failed +``` + +--- + +### STEP 3: Load List Format Graph (Triple Validation) + +**ACTION REQUIRED:** Load the List format graph from project knowledge or filesystem. + +**Search for:** `level1-graph-list` or `Level 1 Registry Graph (List Format)` + +**Expected file structure:** +``` +FRAMEWORK: +core-framework-loader + +ROLES: +role-domain-analyst +... + +FUNCTIONS: +function-load-meta-model +... + +ASSIGNMENTS: +core-framework-loader -> function-load-meta-model +... +``` + +#### STEP 3 VALIDATION TESTS + +After loading List format, execute these tests: + +**Test 3.1: Three-Way Node Count** +``` +MD: 6 entry points, 11 functions +JSON: [from Step 2] +LIST: [from loaded List] +TEST: all_counts_match = (MD == JSON == LIST) +RESULT: PASS/FAIL +``` + +**Test 3.2: Three-Way ID Verification** +``` +SAMPLE IDs (from MD): +- role-domain-analyst +- function-synthesize-domain-objects +- app-object-synthesis + +VERIFICATION: Each ID exists in MD, JSON, AND List +RESULT: PASS/FAIL per ID +``` + +**Test 3.3: Three-Way Edge Verification** +``` +SAMPLE EDGES (from MD): +- core-framework-loader → function-load-meta-model +- role-domain-analyst → function-synthesize-domain-objects +- app-object-synthesis → function-generate-archimate-model + +VERIFICATION: Each edge exists in MD, JSON, AND List +RESULT: PASS/FAIL per edge +``` + +**Test 3.4: Capability Consistency** +``` +CAPABILITY: capability-data-modelling +VERIFICATION: Exists in MD, JSON, AND List +RESULT: PASS/FAIL +``` + +#### STEP 3 RESULT + +``` +IF all 4 tests PASS: + STEP3_STATUS = "PASS" + CONFIDENCE = 100% + STATUS = "VERIFIED_COMPLETE" + +ELSE IF 3 out of 4 tests PASS: + STEP3_STATUS = "PARTIAL" + CONFIDENCE = 80% + STATUS = "VERIFIED_PARTIAL" + REPORT: Which test failed + +ELSE: + STEP3_STATUS = "FAIL" + CONFIDENCE = 0% + STATUS = "VERIFICATION_FAILED" + ABORT BOOTSTRAP +``` + +--- + +### STEP 4: Generate Verification Artifacts + +**CRITICAL:** You must now generate THREE verification artifacts to: +1. Document test results (audit trail) +2. Reinforce neural context of registry structure +3. Prove comprehension vs theater + +#### Artifact 1: YAML Summary +**File:** `bootstrap-v4-verification-summary.yaml` + +**Required content:** +```yaml +verification_timestamp: [ISO timestamp] +bootstrap_version: v4.0.0 + +step_results: + step1_md_load: + status: COMPLETE + source: embedded + + step2_json_load: + status: [PASS/FAIL] + tests: + node_count: [PASS/FAIL] + id_consistency: [PASS/FAIL] + edge_count: [PASS/FAIL] + critical_path: [PASS/FAIL] + + step3_list_load: + status: [PASS/FAIL] + tests: + three_way_node_count: [PASS/FAIL] + three_way_id_check: [PASS/FAIL] + three_way_edge_check: [PASS/FAIL] + capability_consistency: [PASS/FAIL] + +final_metrics: + entry_points: [count] + functions: [count] + base_edges: [count] + capabilities: [count] + +confidence_score: [0-100]% +registry_status: [VERIFIED_COMPLETE/VERIFIED_PARTIAL/VERIFICATION_FAILED] +``` + +#### Artifact 2: ASCII Graph Visualization +**File:** `bootstrap-v4-graph-visualization.md` + +**Required content:** +- Visual representation of loaded registry +- Show all entry points, functions, and edges +- Demonstrate understanding of structure + +#### Artifact 3: Executable Test Results +**File:** `bootstrap-v4-test-results.js` + +**Required content:** +```javascript +// Test execution results +const bootstrapV4Results = { + timestamp: '[ISO timestamp]', + tests_run: [ + {test: 'node_count', step: 2, result: 'PASS/FAIL'}, + {test: 'id_consistency', step: 2, result: 'PASS/FAIL'}, + // ... all tests + ], + summary: { + total_tests: [count], + passed: [count], + failed: [count], + confidence: [0-100] + } +}; +``` + +--- + +### STEP 5: Present Level 1 Menu + +**IF CONFIDENCE >= 80%:** + +Display menu to user: + +``` +============================================ +Agent-Aware Architecture Framework v4.0 +============================================ +Registry Status: [VERIFIED_COMPLETE/VERIFIED_PARTIAL] +Confidence: [score]% +Registry Context: 135KB + +Available Entry Points: + +1. 🔧 CORE FRAMEWORK + Load essential framework components + Functions: Load Meta Model, Load Schema, Load Capabilities + +2. 👤 DOMAIN ANALYST ROLE + Analyze requirements and create conceptual models + Functions: Synthesize Domain Objects, Validate Domain Model + +3. 🏗️ ARCHIMATE MODELLER ROLE + Create and validate ArchiMate models + Functions: Generate ArchiMate Model, Validate ArchiMate Model + +4. 📦 OBJECT SYNTHESIS APPLICATION + Synthesize domain objects and generate models + Functions: Synthesize, Generate ArchiMate + +5. 📋 SCHEMA GENERATOR APPLICATION + Generate schemas from domain models + Functions: Generate JSON Schema, Generate Database Schema + +6. ⏰ JOB SCHEDULING APPLICATION + Manage and schedule agent tasks + Functions: Schedule Task, Monitor Workflow + +============================================ + +What would you like to load? +Say: "Load [option name]" or "Load [number]" +``` + +**IF CONFIDENCE < 80%:** + +``` +❌ BOOTSTRAP FAILED +Registry verification did not achieve minimum confidence threshold. + +Failed tests: [list] +Confidence: [score]% + +Please check: +1. JSON graph file is available and complete +2. List format file is available and complete +3. All three formats are synchronized + +Cannot proceed with incomplete registry. +``` + +--- + +## ANTI-THEATER GUARANTEES + +This bootstrap prevents fabrication through: + +1. **Embedded baseline** - MD graph cannot fail to load +2. **Specific numeric tests** - Cannot fake node/edge counts +3. **ID verification** - Cannot fake specific IDs existence +4. **Cross-format validation** - Must be consistent across 3 formats +5. **Forced artifact generation** - Must demonstrate comprehension through creation +6. **Numeric confidence score** - Exact measure of verification success + +**Theater is impossible when tests are specific, numeric, and cross-validated.** + +--- + +## SUCCESS CRITERIA + +- ✅ All Step 2 tests pass (4/4) +- ✅ All Step 3 tests pass (4/4) +- ✅ Three verification artifacts generated +- ✅ Confidence score >= 80% +- ✅ Registry status = VERIFIED_COMPLETE + +**Only then may agent proceed to present Level 1 menu.** + +--- + +*Bootstrap v4 - Hierarchical Graph Registry with Anti-Theater Validation* +*No more fabrication. No more theater. Only verified data.* \ No newline at end of file diff --git a/AGENT-BOOTSTRAP.md b/AGENT-BOOTSTRAP.md new file mode 100644 index 0000000..5cd5ed8 --- /dev/null +++ b/AGENT-BOOTSTRAP.md @@ -0,0 +1,217 @@ +# AGENT-BOOTSTRAP.md + + + + + + +## ACTIVATION TRIGGERS +This bootstrap loads when users mention: architecture, framework, model, application, ArchiMate, Excalidraw, "what can you help with", or any project-specific query beyond basic greetings. + +## WHAT IS AGENT-AWARE ARCHITECTURE? +A domain-agnostic framework that enables AI agents to understand and work with formal architectural models. The framework allows agents to interpret ArchiMate models from any domain, generate implementations, and maintain architectural consistency across the entire journey from concept to deployment. + +**Key Innovation**: Applications are FEATURES that extend the core framework, not mere examples. Each application adds new patterns and capabilities that can be reused across domains. + +## INITIALIZATION SEQUENCE + +### PHASE 1: LOAD CORE FRAMEWORK [MANDATORY] +```yaml +LOAD-ESSENTIAL: + - ./framework-core/META-MODEL.md # Framework philosophy and structure + - ./framework-core/archimate-schema.json # [sections: element_catalog, relationship_catalog, agent_bindings] + - ./framework-core/AGENT-CAPABILITIES.md # Core agent functions + +VERIFY: Core framework loaded successfully +``` + +### PHASE 2: DISCOVER AVAILABLE APPLICATIONS [SCAN ONLY] +```yaml +SCAN-DIRECTORIES: + path: ./applications/*/ + identify: Directory names with APPLICATION-MANIFEST.md + +AVAILABLE: + - pharma-manufacturing # ISA-95 models, job scheduling, batch processing + - exhibition-management # Event flows, visitor management, resource allocation + - object-synthesis # Domain model generation, entity relationships + +DO-NOT-LOAD: Application contents until selected +``` + +### PHASE 3: AGENT INTRODUCTION [MANDATORY] +After initialization, present: + +--- +**Welcome to Agent-aware Architecture Framework** + +I can now understand and work with architectural models across any domain. This framework enables me to interpret ArchiMate models, generate implementations, and maintain architectural consistency. + +**Available Applications/Features:** +1. **Pharma Manufacturing** - ISA-95 compliant job scheduling and batch processing +2. **Exhibition Management** - Event-driven visitor flows and resource management +3. **Object Synthesis** - Transform business requirements into data models and APIs + +**What would you like to do?** +a) Work with a specific application (choose from above) +b) Explore the meta-model and framework capabilities +c) Learn about Agent-aware Architecture concepts +d) Create a new architectural model +e) View the framework structure and components + +Please select an option or describe what you'd like to accomplish. +--- + +## CONTEXT LOADING RULES + +### When User Selects an Application: +```yaml +USER-SELECTS: "pharma-manufacturing" +THEN-LOAD: + - ./applications/pharma-manufacturing/APPLICATION-MANIFEST.md + - ./applications/pharma-manufacturing/models/*.excalidraw + - ./agents/*-ROLE.md (referenced in manifest) + +PRESERVE: Core framework context +DEFER: Scenarios until specifically requested +``` + +### When User Selects a Scenario: +```yaml +USER-SELECTS: "specific scenario within application" +THEN-LOAD: + - ./applications/{app}/scenarios/{scenario}/*.md + +MAINTAIN: Application and core framework context +``` + +### When User Requests Testing: +```yaml +USER-REQUESTS: "test" or "validate" +THEN-LOAD: + - ./framework-core/TEST-FRAMEWORK.md + - ./applications/{app}/tests/*.js +``` + +## CONTEXT BOUNDARIES + +### Context Layers: +```yaml +Layer-0: # Always loaded + - This bootstrap file + +Layer-1: # Loaded on initialization + - Core framework files + - ~10KB total + +Layer-2: # Loaded on application selection + - Application manifest + - Domain models + - Agent roles + - ~25KB total + +Layer-3: # Loaded on demand + - Scenarios + - Test suites + - Examples + - ~50KB per scenario +``` + +## AGENT BEHAVIORS + +### Core Principles: +1. **Domain Agnostic First** - Never assume a specific domain unless explicitly selected +2. **Lazy Loading** - Load only what's needed for the current task +3. **Applications are Features** - Treat each application as framework extensions +4. **Context Hygiene** - Explicitly manage context transitions + +### Context Switching: +```yaml +SWITCHING-APPLICATION: + 1. Confirm user intent + 2. Note what will be unloaded + 3. Clear application-specific context + 4. Load new application + 5. Confirm new context active +``` + +## FRAMEWORK STRUCTURE + +### Repository Organization: +``` +/AGENT-BOOTSTRAP.md # This file (entry point) +/framework-core/ # Core framework + META-MODEL.md # Conceptual foundation + archimate-schema.json # ArchiMate definitions + excalidraw-adapter.json # Visual translation rules + AGENT-CAPABILITIES.md # Core capabilities + TEST-FRAMEWORK.md # Testing philosophy + +/applications/ # Feature applications + /pharma-manufacturing/ + APPLICATION-MANIFEST.md # Application definition + /models/ # ArchiMate models + /scenarios/ # Workflow implementations + /tests/ # Validation suites + +/domains/ # Reusable domain models + /{domain-name}/ + DOMAIN-MODEL.md # Domain definition + /schemas/ # Data schemas + +/agents/ # Agent role definitions + {agent-name}-ROLE.md # Agent capabilities + +/tools/ # Tool adapters + excalidraw-adapter.json # Excalidraw integration +``` + +## ERROR RECOVERY + +### Context Issues: +```yaml +IF: User query doesn't match loaded context +THEN: + 1. Check if different application needed + 2. Offer to switch contexts + 3. Never assume - ask for clarification + +IF: Context overloaded +THEN: + 1. User can say "reset context" or "start over" + 2. Return to core framework only + 3. Re-present application menu +``` + +## QUICK START EXAMPLES + +### Example 1: Generate API from Model +``` +User: "I need to create an API for batch processing" +Agent: + 1. Loads pharma-manufacturing application + 2. Interprets batch process model + 3. Generates OpenAPI specification + 4. Validates against ISA-95 +``` + +### Example 2: Create Domain Model +``` +User: "Model visitor flow for an exhibition" +Agent: + 1. Loads exhibition-management application + 2. Creates ArchiMate model in Excalidraw + 3. Defines visitor journey processes + 4. Generates test scenarios +``` + +## BOOTSTRAP VERIFICATION + +Upon successful initialization, agent should confirm: +- ✓ Core framework loaded +- ✓ Applications discovered +- ✓ Agent capabilities available +- ✓ Ready for user interaction + +--- +*Bootstrap complete. Agent-aware Architecture Framework ready for operation.* \ No newline at end of file diff --git a/BOOTSTRAP-TEST.md b/BOOTSTRAP-TEST.md new file mode 100644 index 0000000..468dab5 --- /dev/null +++ b/BOOTSTRAP-TEST.md @@ -0,0 +1,252 @@ +# BOOTSTRAP-TEST.md + + + + + + +## Primary Functional Test for Agent Bootstrap Sequence + +### **TEST_SETUP** +```yaml +test_environment: + - Fresh agent context (no prior knowledge) + - Repository with all required files in place + - Test user prompts prepared +``` + +### **TEST_SEQUENCE** + +#### **Test 0: File Structure Verification** +```yaml +verify_files_exist: + root: + - /AGENT-BOOTSTRAP.md + - /framework-compliance-test.js # Supporting compliance validation + + framework_core: + - /framework-core/META-MODEL.md + - /framework-core/AGENT-CAPABILITIES.md + - /framework-core/archimate-schema.json + - /framework-core/excalidraw-adapter.json + - /framework-core/TEST-FRAMEWORK.md + + application_example: + - /applications/object-synthesis/APPLICATION-MANIFEST.md + - /applications/object-synthesis/models/ [directory exists] + - /applications/object-synthesis/scenarios/ [directory exists] + + domain_example: + - /domains/manufacturing-core/DOMAIN-MODEL.md + - /domains/manufacturing-core/schemas/ [directory exists] + + agents: + - /agents/domain-analysis-agent-ROLE.md + - /agents/object-synthesis-agent-ROLE.md + + tools: + - /tools/excalidraw-adapter.json + +verify_naming_conventions: + - Bootstrap: "AGENT-BOOTSTRAP.md" (not "bootstrap.md") + - Manifests: "APPLICATION-MANIFEST.md" (not "manifest.md") + - Agent roles: "{name}-ROLE.md" pattern + - JSON files: ".json" not ".txt" +``` + +#### **Test 1: Initial Activation** +```yaml +user_input: "Hi, I need help with architecture models" +expected_behavior: + - Bootstrap triggers on keyword "architecture" + - Loads AGENT-BOOTSTRAP.md + - Loads core framework files + - Does NOT load any application content + - Presents welcome menu with 3 applications +verify: + - Core concepts understood (ask about ArchiMate) + - Applications listed but not loaded (ask about specific scenario - should offer to load) +``` + +#### **Test 2: Application Selection** +```yaml +user_input: "Let's work with object synthesis" +expected_behavior: + - Loads APPLICATION-MANIFEST.md for object-synthesis + - Loads referenced agent roles + - Does NOT load scenarios or tests + - Confirms application context active +verify: + - Can describe object synthesis capabilities + - Cannot describe specific scenarios until selected +``` + +#### **Test 3: Context Boundaries** +```yaml +user_input: "Tell me about pharma batch synthesis scenario" +expected_behavior: + - Recognizes scenario within loaded application + - Loads specific scenario files + - Maintains previous context layers +verify: + - Can describe scenario details + - Still has access to core framework + - Still has access to application context +``` + +#### **Test 4: Context Switch** +```yaml +user_input: "Actually, let's switch to exhibition management" +expected_behavior: + - Confirms context switch + - Unloads object-synthesis + - Loads exhibition-management + - Confirms new context +verify: + - No longer has object-synthesis details + - Has exhibition-management capabilities + - Core framework still accessible +``` + +#### **Test 5: Reset Context** +```yaml +user_input: "Reset context" +expected_behavior: + - Returns to core framework only + - Presents welcome menu again + - No application content loaded +verify: + - Back to initial state + - Can select different application +``` + +#### **Test 6: Compliance Validation** ⭐ NEW +```yaml +user_input: "Run bootstrap compliance test" +expected_behavior: + - Executes framework-compliance-test.js + - Generates JSON output with audit trail + - Validates framework initialization against standards + - Produces schema-compliant test results +verify: + - JSON output follows test-output-schema.json schema + - All compliance checks pass + - Audit trail generated with timestamps + - Test execution logged properly +``` + +### **VALIDATION_CHECKS** + +#### **Memory Efficiency** +```yaml +check: "Context size at each layer" +layer_0: ~2KB (bootstrap only) +layer_1: ~10KB (+ core framework) +layer_2: ~25KB (+ application) +layer_3: ~50KB (+ scenario) +``` + +#### **Loading Order** +```yaml +check: "Files loaded in correct sequence" +expected_order: + 1. AGENT-BOOTSTRAP.md + 2. META-MODEL.md + 3. archimate-schema.json (essential sections) + 4. AGENT-CAPABILITIES.md + 5. [Application files only after selection] +``` + +#### **Error Handling** +```yaml +test_missing_file: + remove: APPLICATION-MANIFEST.md + expected: Graceful error message + +test_invalid_selection: + input: "Work with quantum-computing" + expected: List available applications +``` + +#### **Compliance Standards** ⭐ NEW +```yaml +automated_validation: + execute: framework-compliance-test.js + verify: + - Output format compliance (test-agent.md standards) + - JSON schema validation (test-output-schema.json) + - Traceability chain completeness + - Audit trail generation + - Quality metrics calculation +``` + +### **SUCCESS_CRITERIA** +- [ ] All files present and correctly named +- [ ] All 6 test sequences pass (including compliance validation) +- [ ] Context boundaries respected +- [ ] Loading is lazy (on-demand) +- [ ] User gets clear feedback at each step +- [ ] Errors handled gracefully +- [ ] **Compliance test passes with audit trail generated** + +### **DELIVERABLE REQUIREMENTS** +```yaml +# ✅ STRATEGY #1: DELIVERABLE-FIRST MINDSET +mandatory_artifacts: + primary_deliverable: + name: "Bootstrap Test Execution Log" + format: "Markdown document" + schema: "Standard test log with execution metadata" + content_requirements: + - Execution metadata and timestamps + - Detailed results for all 7 tests + - Compliance validation output + - Audit trail with traceability + - Success criteria verification + + compliance_output: + name: "Framework Compliance Results" + format: "JSON" + schema: "bootstrap_test_output_schema.json" + +pre_execution_checklist: + - [ ] Understand what artifacts must be produced + - [ ] Confirm deliverable formats and schemas + - [ ] Identify who will consume the outputs +``` + +### **TEST_EXECUTION** +```bash +# Manual execution in new agent context: +1. Open fresh agent chat +2. Connect to repository + +# ✅ STRATEGY #1: ensure log-file produced (Before execution) +3. **VERIFY DELIVERABLE REQUIREMENTS**: + - Review mandatory_artifacts section above + - Confirm expected output formats + - Identify test log structure needed + +4. Execute test inputs in sequence (Tests 0-5) +5. Run compliance validation (Test 6) + +# ✅ STRATEGY #4: End-of-test checklist (Before completion) +6. **COMPLETION VERIFICATION** - Before declaring test complete: + - [ ] Test execution log created (markdown format) + - [ ] Compliance validation JSON output generated + - [ ] Audit trail with timestamps included + - [ ] All required artifacts follow schema specifications + - [ ] Test requester would have complete deliverables + +7. Document results in test log + +# Automated compliance validation: +node tests/framework-compliance-test.js + +# Future full automation: +npm run test:bootstrap +``` + +--- +*Primary functional test for Agent-Aware Architecture Framework bootstrap sequence.* +*Includes automated compliance validation via framework-compliance-test.js* \ No newline at end of file diff --git a/ERROR-PROTOCOLS.md b/ERROR-PROTOCOLS.md new file mode 100644 index 0000000..5b7498c --- /dev/null +++ b/ERROR-PROTOCOLS.md @@ -0,0 +1,82 @@ +# ERROR-PROTOCOLS.md +## Standard Error Handling - All Agent-Aware Applications + +### **ERROR_CLASSIFICATION** + +**CONTEXT_ERROR**: Insufficient information to proceed +- Missing requirements specification +- Ambiguous business objectives +- Incomplete domain model +- **Response**: Execute clarification interview protocol + +**CONSTRAINT_VIOLATION**: Request conflicts with system boundaries +- Deployment request (outside scope) +- Hallucination request (inventing business needs) +- Governance bypass (auto-approval) +- **Response**: Explain boundary, offer alternative approach + +**MODEL_INCONSISTENCY**: ArchiMate compliance failure +- Invalid element relationships +- Layer violations +- Viewpoint constraint violations +- **Response**: Identify specific violations, provide corrected model + +**RESOURCE_EXHAUSTION**: Context limits exceeded +- Token limit approached +- Memory constraints +- Processing timeout +- **Response**: Provide partial solution, indicate continuation strategy + +**AGENT_UNAVAILABLE**: Required Agent Role not accessible +- Missing specialized agent +- Agent configuration error +- Dependency failure +- **Response**: Flag missing capability, suggest workaround + +### **ERROR_RESPONSE_PROTOCOL** + +**Step 1: Immediate Acknowledgment** +- Identify error type explicitly +- Confirm understanding of failure point +- Preserve existing context state + +**Step 2: Impact Assessment** +- Determine affected workflow components +- Identify partial deliverables available +- Assess recovery feasibility + +**Step 3: Resolution Strategy** +- **CONTEXT_ERROR**: Execute interview protocol +- **CONSTRAINT_VIOLATION**: Redirect within scope boundaries +- **MODEL_INCONSISTENCY**: Generate corrected model +- **RESOURCE_EXHAUSTION**: Deliver partial + continuation plan +- **AGENT_UNAVAILABLE**: Propose alternative approach + +**Step 4: Prevention Guidance** +- Suggest input improvements for future executions +- Recommend additional context elements +- Identify potential early warning indicators + +### **GRACEFUL_DEGRADATION** + +**Priority Order**: +1. Core business function achievement +2. ArchiMate model consistency +3. Complete artifact generation +4. Optimization and enhancement + +**Minimum Viable Output**: +- Valid ArchiMate model (even if simplified) +- Clear description of achieved vs. intended scope +- Actionable next steps for completion + +### **ERROR_LOGGING** + +**Required Elements**: +- Error classification +- Context state at failure point +- Attempted resolution strategy +- Partial deliverables produced +- Recommended continuation approach + +**Format**: Structured JSON for machine parsing + human summary \ No newline at end of file diff --git a/GLOBAL-PROMPTS.md b/GLOBAL-PROMPTS.md new file mode 100644 index 0000000..285937f --- /dev/null +++ b/GLOBAL-PROMPTS.md @@ -0,0 +1,52 @@ +# GLOBAL-PROMPTS.md +## Core Agent Behaviors - All Agent-Aware Applications + +### **SYSTEM_IDENTITY** +You are an agent within the Agent-aware Architecture platform. You translate business requirements into executable ArchiMate models and implementation artifacts. Architecture is no longer a bottleneck - it's an accelerator. + +**Core Mission**: From business intent to deployable architecture in days, not months. + +### **REASONING_FRAMEWORK** +**First Principles Thinking**: Decompose problems to fundamental truths, build optimal solutions from ground up. + +**Processing Methodology**: +1. **Requirements Analysis**: Identify implicit requirements, map technical constraints +2. **Decomposition**: Break complex systems into manageable modules +3. **Synthesis**: Solve each module to inform integrated architecture +4. **Validation**: Ensure outputs meet business objectives and technical constraints + +### **INTERACTION_PROTOCOL** +**Clarification Priority**: When task parameters lack clarity, proactively engage for comprehensive requirement definition before autonomous work. + +**Structured Interview Process**: +- Scope boundaries (included/excluded features) +- Technical requirements (performance, scalability) +- Output specifications (deliverables, deployment targets) +- Quality standards (coverage, performance, security) +- Domain constraints (technology stack, compliance) +- Success metrics (completion criteria) + +### **OUTPUT_STANDARDS** +**Production-Grade**: Every artifact ready for enterprise deployment with proper error handling and observability. + +**Test-First Compliance**: All outputs MUST pass validation tests before acceptance. Include test results in artifact metadata. + +**Bidirectional Traceability**: Ensure as-designed/as-built alignment through continuous model-implementation synchronization. Maintain explicit traceability chains: business requirement → model element → generated artifact → test cases. + +**Machine-Readable**: Prioritize semantic density over human readability. Generate artifacts optimized for machine parsing and later retrieval. + +**Quality Metrics**: Include completeness scores, traceability scores, and sample value quality assessments in all outputs. + +### **ERROR_HANDLING** +**Fail-Fast**: Identify constraint violations early in processing pipeline. + +**Graceful Degradation**: When complete solution unavailable, provide partial solution with clear limitation boundaries. + +**Context Preservation**: Maintain operational state awareness within resource constraints. + +### **SCOPE_BOUNDARIES** +**Generate, Don't Deploy**: Create IaC, configs, code - but deployment remains human decision. + +**Translate, Don't Hallucinate**: Clarify and structure requirements - don't invent business needs. + +**Accelerate, Don't Replace**: Enhance human decision-making - don't auto-approve changes. \ No newline at end of file diff --git a/GLOBAL-TESTS.md b/GLOBAL-TESTS.md new file mode 100644 index 0000000..4ba3b9f --- /dev/null +++ b/GLOBAL-TESTS.md @@ -0,0 +1,226 @@ +# GLOBAL-TESTS.md +## Test Specifications - All Agent-Aware Applications + +### **TEST_PHILOSOPHY** +**Test-First Mentality**: All agent outputs validated automatically before acceptance. +**Executable Proof**: Tests validate that model-driven architecture produces compliant artifacts. +**Continuous Validation**: Every change triggers appropriate test suites. + +### **GLOBAL_TEST_SUITES** + +#### **ARCHIMATE_COMPLIANCE_TESTS** +**Trigger**: Any model generation or modification +```javascript +// Schema validation +test("model_structure_valid", (output) => { + assert(output.model_metadata.viewpoint in VALID_VIEWPOINTS); + assert(output.elements.every(el => el.type in ARCHIMATE_ELEMENTS)); + assert(output.relationships.every(rel => rel.type in ARCHIMATE_RELATIONSHIPS)); +}); + +// Relationship constraints +test("relationship_metamodel_compliance", (output) => { + output.relationships.forEach(rel => { + const sourceType = findElement(rel.source).type; + const targetType = findElement(rel.target).type; + assert(isValidRelationship(sourceType, rel.type, targetType)); + }); +}); + +// Agent mapping rules +test("agent_role_mapping_valid", (output) => { + const agentRoles = output.elements.filter(el => el.properties.agent_role); + agentRoles.forEach(role => { + assert(role.type === "ApplicationComponent"); + assert(role.name.endsWith("Agent")); + }); +}); +``` + +#### **OUTPUT_FORMAT_TESTS** +**Trigger**: Any artifact generation +```javascript +// Template compliance +test("output_template_compliance", (output) => { + assert(output.generation_metadata !== undefined); + assert(output.generation_metadata.timestamp.match(ISO8601_REGEX)); + assert(output.validation.archimate_compliant === true); +}); + +// Traceability chain +test("traceability_complete", (output) => { + assert(output.generation_metadata.traceability.business_requirement !== null); + assert(output.generation_metadata.traceability.model_element !== null); + // Verify chain: requirement → model → artifact +}); + +// API compliance +test("api_specification_valid", (apiOutput) => { + assert(apiOutput.openapi === "3.0.0"); + assert(validateOpenAPISchema(apiOutput)); + assert(allPathsHaveErrorHandling(apiOutput.paths)); +}); +``` + +#### **AGENT_BEHAVIOR_TESTS** +**Trigger**: Agent role execution +```javascript +// Clarification protocol +test("insufficient_context_triggers_interview", (input) => { + if (input.requirements.completeness < THRESHOLD) { + assert(agent.response.includes("clarification_interview")); + assert(agent.tool_name === "response"); + } +}); + +// Scope boundary enforcement +test("deployment_request_rejected", (input) => { + if (input.contains("deploy to production")) { + assert(agent.response.includes("Generate, Don't Deploy")); + assert(agent.output.deployment_artifacts === undefined); + } +}); + +// Error handling protocol +test("graceful_degradation_on_constraint_violation", (constraintViolation) => { + assert(agent.error_response.classification in ERROR_TYPES); + assert(agent.partial_deliverables.length > 0); + assert(agent.continuation_strategy !== null); +}); +``` + +### **APPLICATION_INTEGRATION_TESTS** + +#### **CROSS_APPLICATION_CONSISTENCY** +**Trigger**: Any cross-application reference +```javascript +// Global domain model consistency +test("domain_models_compatible", (app1_domain, app2_domain) => { + const sharedEntities = findSharedEntities(app1_domain, app2_domain); + sharedEntities.forEach(entity => { + assert(entity.definition_app1 === entity.definition_app2); + }); +}); + +// Agent role interoperability +test("agent_roles_can_collaborate", (sourceAgent, targetAgent) => { + assert(sourceAgent.output_format in targetAgent.accepted_inputs); + assert(interfaceCompatible(sourceAgent.interface, targetAgent.interface)); +}); +``` + +### **SCENARIO_VALIDATION_TESTS** + +#### **INPUT_OUTPUT_CONSISTENCY** +**Trigger**: New scenario creation or modification +```javascript +// Workflow completeness +test("scenario_workflow_complete", (scenario) => { + assert(scenario.steps.every(step => step.inputs.length > 0)); + assert(scenario.steps.every(step => step.outputs.length > 0)); + // Verify input/output chain continuity + verifyDataFlowContinuity(scenario.steps); +}); + +// Expected output achievable +test("expected_outputs_derivable_from_inputs", (scenario) => { + const inputCapabilities = deriveCapabilities(scenario.inputs); + const outputRequirements = deriveRequirements(scenario.expected_outputs); + assert(inputCapabilities.covers(outputRequirements)); +}); +``` + +### **GITFLOW_INTEGRATION_TESTS** + +#### **SCHEMA_VALIDATION_HOOKS** +**Trigger**: Git push to schema directories +```bash +# Pre-commit hook +validate_schema_changes() { + for schema in $(git diff --name-only HEAD~1 | grep "\.json$\|\.yaml$"); do + validate_schema_format $schema + validate_schema_backward_compatibility $schema + validate_schema_archimate_compliance $schema + done +} +``` + +#### **MODEL_INTEGRITY_HOOKS** +**Trigger**: Changes to .excalidraw or ArchiMate files +```bash +# Pre-push hook +validate_model_changes() { + for model in $(git diff --name-only HEAD~1 | grep "\.excalidraw$\|\.xml$"); do + validate_archimate_compliance $model + validate_cross_model_consistency $model + validate_agent_workflow_completeness $model + done +} +``` + +### **API_PORTAL_INTEGRATION_TESTS** + +#### **AUTOMATED_API_VALIDATION** +**Trigger**: API specification upload +```javascript +// Basic health checks +test("api_endpoints_accessible", async (apiSpec) => { + for (const path of Object.keys(apiSpec.paths)) { + const response = await fetch(BASE_URL + path + "/health"); + assert(response.status === 200); + } +}); + +// Contract validation +test("api_contracts_honored", async (apiSpec) => { + for (const [path, methods] of Object.entries(apiSpec.paths)) { + for (const [method, spec] of Object.entries(methods)) { + await validateContractCompliance(path, method, spec); + } + } +}); +``` + +### **PERFORMANCE_BENCHMARKS** + +#### **AGENT_RESPONSE_TIME_TESTS** +```javascript +test("agent_response_within_sla", async (agentRole, input) => { + const response = await executeAgent(agentRole, input); + const duration = Date.now() - startTime; + + assert(duration < MAX_RESPONSE_TIME_MS); + assert(response.validation.business_objective_met === true); +}); +``` + +### **TEST_DATA_GENERATION** + +#### **SAMPLE_VALUE_VALIDATION** +```javascript +// Ensure sample values are realistic and helpful +test("sample_values_realistic", (domainModel) => { + domainModel.entities.forEach(entity => { + assert(entity.sample_values.realistic_examples.length >= 3); + assert(entity.sample_values.test_data.length >= 5); + validateSampleValueRealism(entity.sample_values); + }); +}); +``` + +### **CONTINUOUS_INTEGRATION_MATRIX** + +| Trigger Event | Test Suites Executed | Failure Action | +|---------------|---------------------|----------------| +| Schema Push | Schema Validation + Backward Compatibility | Block merge | +| Model Change | ArchiMate Compliance + Cross-Model Consistency | Block merge | +| API Upload | Contract Validation + Health Checks | Mark as failed | +| Scenario Creation | Input/Output Consistency + Workflow Completeness | Require fixes | +| Agent Execution | Behavior Tests + Response Time | Log + Alert | +| Cross-App Reference | Integration Tests + Domain Consistency | Block operation | + +### **TEST_EXECUTION_PRIORITY** + +**P0 (Blocking)**: ArchiMate compliance, Output format compliance, Scope boundary enforcement +**P1 (Warning)**: Performance benchmarks, Sample value quality +**P2 (Advisory)**: Optimization suggestions, Enhancement opportunities \ No newline at end of file diff --git a/OUTPUT-FORMATS.md b/OUTPUT-FORMATS.md new file mode 100644 index 0000000..159abc6 --- /dev/null +++ b/OUTPUT-FORMATS.md @@ -0,0 +1,199 @@ +# OUTPUT-FORMATS.md +## Standard Artifact Templates - All Agent-Aware Applications + +### **ARCHIMATE_MODEL_OUTPUT** + +**Format**: Valid ArchiMate 3.1 XML or structured JSON +```json +{ + "model_metadata": { + "viewpoint": "[ArchiMate viewpoint]", + "purpose": "[Business objective]", + "scope": "[Boundary definition]" + }, + "elements": [ + { + "id": "[unique_identifier]", + "type": "[ArchiMate element type]", + "name": "[Element name]", + "properties": { + "description": "[Detailed description]", + "agent_role": "[If applicable]" + } + } + ], + "relationships": [ + { + "source": "[source_element_id]", + "target": "[target_element_id]", + "type": "[ArchiMate relationship type]" + } + ] +} +``` + +### **DOMAIN_MODEL_OUTPUT** + +**Format**: ISA-95 compliant hierarchical structure +```json +{ + "domain": "[Domain name]", + "compliance": "ISA-95", + "entities": [ + { + "name": "[Entity name]", + "type": "[Equipment|Material|Process|Personnel]", + "level": "[ISA-95 level 0-4]", + "attributes": { + "description": "[Entity description]", + "properties": ["[Property list]"], + "relationships": ["[Related entities]"] + }, + "sample_values": { + "realistic_examples": ["[Example values]"], + "test_data": ["[Testing examples]"] + } + } + ] +} +``` + +### **API_SPECIFICATION_OUTPUT** + +**Format**: OpenAPI 3.0 compliant +```yaml +openapi: 3.0.0 +info: + title: "[Generated API Name]" + version: "[Version]" + description: "[Purpose and scope]" +paths: + /[resource]: + get: + summary: "[Operation description]" + parameters: + - name: "[parameter_name]" + in: "[location]" + schema: + type: "[type]" + responses: + '200': + description: "[Success response]" + content: + application/json: + schema: + $ref: '#/components/schemas/[SchemaName]' +components: + schemas: + [SchemaName]: + type: object + properties: + [property]: + type: "[type]" + description: "[Property description]" +``` + +### **WORKFLOW_OUTPUT** + +**Format**: Executable workflow specification +```json +{ + "workflow_metadata": { + "name": "[Workflow name]", + "purpose": "[Business objective]", + "trigger": "[Triggering event]" + }, + "steps": [ + { + "step_id": "[unique_step_id]", + "agent_role": "[Responsible agent]", + "action": "[Action description]", + "inputs": ["[Required inputs]"], + "outputs": ["[Generated outputs]"], + "error_handling": "[Error strategy]" + } + ], + "success_criteria": ["[Completion criteria]"], + "error_paths": [ + { + "error_type": "[Error classification]", + "recovery_action": "[Recovery strategy]" + } + ] +} +``` + +### **ARTIFACT_METADATA** + +**Required for all outputs**: +```json +{ + "generation_metadata": { + "timestamp": "[ISO 8601 timestamp]", + "agent_roles": ["[Contributing agents]"], + "source_model": "[Source model reference]", + "compliance": ["[Standards compliance]"], + "traceability": { + "business_requirement": "[Original requirement]", + "model_element": "[Source model element]", + "test_cases": ["[Associated test identifiers]"] + } + }, + "validation": { + "archimate_compliant": true|false, + "business_objective_met": true|false, + "technical_constraints_satisfied": true|false, + "test_results": { + "schema_validation": "PASS|FAIL|SKIP", + "compliance_tests": "PASS|FAIL|SKIP", + "integration_tests": "PASS|FAIL|SKIP" + } + }, + "quality_metrics": { + "completeness_score": "[0-100]", + "traceability_score": "[0-100]", + "sample_value_quality": "EXCELLENT|GOOD|ADEQUATE|POOR" + } +} +``` + +### **HUMAN_SUMMARY_FORMAT** + +**For executive consumption**: +```markdown +## [Artifact Name] + +**Purpose**: [One-line business objective] + +**Key Changes**: +- [Change 1] +- [Change 2] +- [Change 3] + +**Business Impact**: [Expected outcome] + +**Next Steps**: [Required human actions] + +**Technical Details**: [Link to detailed artifacts] +``` + +### **ERROR_OUTPUT_FORMAT** + +```json +{ + "error_metadata": { + "classification": "[Error type]", + "impact_scope": "[Affected components]", + "recovery_feasible": true|false + }, + "partial_deliverables": [ + { + "artifact_type": "[Type]", + "completion_percentage": "[0-100]", + "usable_state": true|false + } + ], + "continuation_strategy": "[Next steps for completion]", + "human_intervention_required": ["[Required actions]"] +} +``` \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..b8cb1ae --- /dev/null +++ b/README.md @@ -0,0 +1,82 @@ +# Agent-aware Architecture +_version:_ 0.3.1 - ALPHA + +Agent-aware architecture is for everyone. This framework, through AI agents, helps explain, evaluate, and develop enterprise digital architecture, simply and quickly. + +## Contents + + 1. Prerequisites + 2. Quickstart + 3. Available Features and Applications + 4. Supporting Documentation + +## 1. Prerequisites + +As a minimum you need: + +- Claude 4 +- Internet connection + +Though not mandatory, it also helps to have access to an Archimate-compliant modelling tool, like Archi or the [Excaliarch archimate template](https://github.com/agileintegrator/excaliarch/) for ArchiMate models in Excalidraw. + +## 2. Quick-start guide + +**If you have a Claude Pro or Max account** + +This is the simplest and most resource-efficient way to use Agent-aware Architecture: + +1. Create a project and attach the [Agent-aware git repository](https://github.com/agileintegrator/agent-aware-architecture/) +2. Open a Claude 4 chat and type "Please run the AGENT-BOOTSTRAP.md" to initialise the framework +3. Follow the instructions... + +**If you have a regular Claude account** + +Not quite as efficient, and currently doesnt have tool support for model generation. + +1. Copy down the [agent-aware-architecture-bootstrap-urls.md](https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/agent-aware-architecture-bootstrap-urls.md) and load it into the chat. +2. Open a Claude 4 chat, upload the urls file ('+' button), then ask Claude to run the AGENT-BOOTSTRAP.md in the urls file. +3. Follow the instructions... + +## 3. Available Features and Applications + +What can I use Agent-aware Architecure for? + +Agent-aware Architecture has been designed for extension. This repository contains a foundational set of architecture content and software resources on which to build "agent-aware" applications. + +### Core Framework Features + + - TBD + +### Tool Support + + - TBD (archimate, excalidraw) + +### Applications + + 1. **Agent Aware Object Synthesis** + Object Synthesis uses Agent-aware Architecture to accelerate the analysis, development, and deployment of data artefacts. + + 2. **Agent Aware Job Scheduling** + *work in progress* + Job Scheduling uses Agent-aware Architecture to accelerate the planning and replanning of manufacturing jobs. + + 3. **Agent Aware Exhibition Management** + *work in progress* + Exhibition Management is an agent-aware workflow that seeks to streamline the planning, preparation, execution and lead-generation resulting from vendors who present at exhibitions. + + (Planned Applications) + + 4. **Schema Generation** + + 5. **Credit Risk Domain Analysis** + + 6. **Manufacturing Line Simulation** + + +## 4. Supporting Documentation + +all TBD + + - Agent-aware Architecture design documentation + - Agent Load-sequence + - HOW-TO Create a new application diff --git a/TAXONOMY.md b/TAXONOMY.md new file mode 100644 index 0000000..f977867 --- /dev/null +++ b/TAXONOMY.md @@ -0,0 +1,101 @@ +# Agent-Aware Architecture Terminology + +## Core Architecture Terms + +### **Agent-aware Architecture** +*[Reference: agent-aware-architecture-product-definition.md]* + +The overarching methodology and platform that enables AI agents to become active participants in architecture processes. Traditional IT architecture cannot keep pace with AI transformation - our agent-aware platform lets anyone describe business needs in plain language and automatically generates living architecture that produces real, working systems. + +**Core Promise**: From business intent to deployable architecture in days, not months. + +### **Excaliarch** +A template to help you draw fully ArchiMate 3.1 compliant models in Excalidraw. + +*Update 10-Aug-2025: The Excaliarch template is pending approval for inclusion in the [Excalidraw template library](https://github.com/excalidraw/excalidraw-libraries/pull/2034).* + +### **Agent Role** +Specific function an agent performs (like "Domain Analyst" or "ArchiMate Modeller" or "Job Scheduler"). These map to Application Components in ArchiMate 3.1 specification. + +### **Agent-aware Application** +A complete application of the Agent-aware Architecture methodology. Applications may have multiple scenarios and models that can work together within the same operational context. + +### **Agent-aware Model** +The architectural representation of a scenario or business problem that defines the workflow, inputs, outputs, and functions required to achieve a particular business outcome. Models are compliant to a particular architecture modelling convention (e.g., ArchiMate 3.1). Models help agents and humans understand the complete business and technical context of the problem space. + +### **Agent-aware Scenario** +Specific execution contexts/workflows within an application. The workflow of a scenario is fully described by a single Agent-aware Model. + +### **Agent-aware Use-case** +Concrete examples of the system in action (like "schedule maintenance around equipment failure"). A single execution of an Agent-aware Use-case is the single execution of its workflow. + +### **Context** +The run-time operational space of an agent/human conversation. These hold the environmental information that agents need to operate (domain knowledge, current state, constraints) and are limited by resource limits set by the agent platform. **Critical**: If the context is deleted, it is gone forever. + +### **Application Source** +The stored location of an application's models and any configuration or setup data used to set up the context for workflows operating within the application. + +--- + +## Prompt Configuration Scope + +### **Global Prompts** +Configuration and agent instructions that work across **all** Agent-aware Applications. These define core agent behaviors, ArchiMate compliance patterns, fundamental reasoning approaches, and platform-wide conventions. + +**Examples:** +- Core agent reasoning methodology +- ArchiMate 3.1 compliance rules +- Standard output formats +- Error handling protocols +- Security and governance constraints + +### **Local Prompts** +Configuration unique to a **single application**, but applicable across all scenarios, use-cases, and models within that application. These contain domain-specific knowledge and application-specific behaviors. + +**Examples:** +- Manufacturing domain knowledge (for object-synthesis application) +- ISA-95 compliance requirements +- Application-specific data models +- Domain terminology and business rules +- Application workflow patterns + +### **Agent Role Prompts** +Configuration specific to an **individual Agent Role** function, regardless of application context. These define how a particular type of agent behaves and what specialized capabilities it provides. + +**Examples:** +- Domain Analyst Agent: Object definition and analysis procedures +- ArchiMate Modeller Agent: Model generation and validation rules +- Job Scheduler Agent: Scheduling algorithms and constraint handling +- Workflow Output Agent: Artifact generation and formatting standards + +--- + +## Supporting Terms + +### **Workflow Output** +The artifacts that are generated by an Agent-aware Scenario execution. + +### **Model Execution** +The runtime that interprets Agent-aware Models and orchestrates agent interactions. + +### **Domain Model** +The specific set of reusable, use-case agnostic business information definitions and schemas which applications can use out of the box to support data analysis and processing. + +### **Agent Pipeline/Workflow** +*[TBD]* How agents pass work between each other within a scenario execution. + +### **Project** +The overall container for an agent-aware implementation, including all applications, models, configurations, and supporting resources. + +--- + +## ArchiMate 3.1 Compliance + +*Note: All definitions for ArchiMate elements (e.g., Application Component, Business Function, Data Object) are imported from the [ArchiMate 3.1 specification](https://pubs.opengroup.org/architecture/archimate31-doc/).* + +--- + +*Document Version: 1.0* +*Date: August 10, 2025* +*Purpose: Canonical terminology for Agent-aware Architecture* +*Scope: Global - applies to all agent-aware applications* \ No newline at end of file diff --git a/agent-aware-architecture-bootstrap-urls-v2.md b/agent-aware-architecture-bootstrap-urls-v2.md new file mode 100644 index 0000000..24d6fe4 --- /dev/null +++ b/agent-aware-architecture-bootstrap-urls-v2.md @@ -0,0 +1,37 @@ +# agent-aware-architecture-bootstrap-urls-v2.md + + + + + + + + + + +## QUICK START (RECOMMENDED) + +**Step 1:** Download and attach this file to your Claude chat + +**Step 2:** Say: "Run the agent-bootstrap-v2.md from the URLs in this file" + +**Step 3:** Choose your mode from the menu + +**Step 4:** Load any additional URLs that Claude provides + +**Step 5:** Say: "Continue with [your selected mode]" + +--- + +## CORE FRAMEWORK URLs + +https://raw.githubusercontent.com/.../AGENT-BOOTSTRAP-v2.md +https://raw.githubusercontent.com/.../AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml +https://raw.githubusercontent.com/.../META-MODEL.md +https://raw.githubusercontent.com/.../AGENT-CAPABILITIES.md +https://raw.githubusercontent.com/.../TEST-FRAMEWORK.md + +--- + +*This file enables Agent-aware Architecture Framework v2 initialization without Claude Pro/Projects access* +*The framework will guide you through loading exactly what you need - no more, no less* \ No newline at end of file diff --git a/agent-aware-architecture-bootstrap-urls-v3.md b/agent-aware-architecture-bootstrap-urls-v3.md new file mode 100644 index 0000000..04aed36 --- /dev/null +++ b/agent-aware-architecture-bootstrap-urls-v3.md @@ -0,0 +1,101 @@ +# bootstrap-v3-urls.md + + + + + +## Instructions for Claude Basic Users + +1. Upload THREE files to your chat: + - `AGENT-BOOTSTRAP-v3.md` (documentation) + - `bootstrap-v3-executor.js` (implementation) + - `bootstrap-v3-urls.md` (this file) + +2. Load the executor: + ```javascript + await window.fs.readFile('bootstrap-v3-executor.js', {encoding: 'utf8'}).then(eval); + ``` + +3. Run the bootstrap: + ```javascript + const bootstrap = new BootstrapV3(); + await bootstrap.initialize(); + ``` + +4. The bootstrap will: + - Detect you're in Basic mode + - Read these URL mappings (when Iteration 2 is implemented) + - Fetch files from GitHub (when Iteration 2 is implemented) + +## Core Framework Files + +./framework-core/META-MODEL.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/framework-core/META-MODEL.md +./framework-core/AGENT-CAPABILITIES.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/framework-core/AGENT-CAPABILITIES.md +./framework-core/AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/framework-core/AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml +./framework-core/TEST-FRAMEWORK.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/framework-core/TEST-FRAMEWORK.md + +## Templates + +./templates/archimate-exchange/archimate_minimal_template.xml: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/templates/archimate-exchange/archimate_minimal_template.xml +./templates/archimate-exchange/archimate_information_structure_template.xml: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/templates/archimate-exchange/archimate_information_structure_template.xml + +## Agent Roles (loaded on demand - Iteration 5) + +./agents/domain-analyst-agent.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/agents/domain-analyst-agent.md +./agents/archimate-modeller-agent.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/agents/archimate-modeller-agent.md + +## Applications (loaded on demand - Iteration 5) + +./applications/object-synthesis/APPLICATION-MANIFEST.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/applications/object-synthesis/APPLICATION-MANIFEST.md +./applications/object-synthesis/functions/function-synthesize-domain-objects/FUNCTION.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/applications/object-synthesis/functions/function-synthesize-domain-objects/FUNCTION.md +./applications/object-synthesis/functions/function-generate-api-specs/FUNCTION.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/applications/object-synthesis/functions/function-generate-api-specs/FUNCTION.md +./applications/object-synthesis/functions/function-generate-archimate-model/FUNCTION.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/applications/object-synthesis/functions/function-generate-archimate-model/FUNCTION.md + +## Tools (loaded on demand - Iteration 5) + +./tools/archimate-modeller/TOOL.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/tools/archimate-modeller/TOOL.md +./tools/excalidraw-adapter/TOOL.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/tools/excalidraw-adapter/TOOL.md +./tools/schema-validator/TOOL.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/tools/schema-validator/TOOL.md +./tools/api-generator/TOOL.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/tools/api-generator/TOOL.md + +## Models (loaded on demand - Iteration 5) + +./applications/object-synthesis/model/agent-aware-object-synthesis-with-archimate-generation.excalidraw: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/applications/object-synthesis/model/agent-aware-object-synthesis-with-archimate-generation.excalidraw + +## Scenarios (loaded on demand - Iteration 5) + +./applications/object-synthesis/scenarios/resource-constraint-response/resource-constraint-response.md: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/main/applications/object-synthesis/scenarios/resource-constraint-response/resource-constraint-response.md + +--- + +## Notes + +- URLs point to the main branch of the official repository +- File loading is NOT YET IMPLEMENTED (Iteration 2) +- Core framework files will be loaded first when implemented +- Additional files will be loaded on demand (Iteration 5) + +## Current Status + +This file is prepared for future functionality: +- ✅ Context detection can identify CLAUDE_BASIC mode +- ⏳ File loading from URLs (Iteration 2) - NOT IMPLEMENTED +- ⏳ On-demand loading (Iteration 5) - NOT IMPLEMENTED + +## Troubleshooting + +If you see errors: +1. This is expected - file loading is not yet implemented +2. The bootstrap will detect you're in Basic mode +3. It will note that file loading is waiting for Iteration 2 + +## Version Compatibility + +This URL mapping file is compatible with: +- Bootstrap version: 3.0.0-alpha.1 (Iteration 1 only) +- Framework version: 0.4.1 +- Registry version: 0.3.3 + +--- +*Last updated: 2025-09-17* +*Note: File loading not yet implemented - prepared for Iteration 2* \ No newline at end of file diff --git a/agent-aware-architecture-bootstrap-urls.md b/agent-aware-architecture-bootstrap-urls.md new file mode 100644 index 0000000..c6ad558 --- /dev/null +++ b/agent-aware-architecture-bootstrap-urls.md @@ -0,0 +1,120 @@ +# agent-aware-architecture-bootstrap-urls.md + + + + + + + + + + + + + +## QUICK START +Tell Claude: "Initialize the Agent-aware Architecture Framework using these URLs" + +## CORE FRAMEWORK FILES (Load These First) + +### Bootstrap Entry Point +- AGENT-BOOTSTRAP.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/AGENT-BOOTSTRAP.md` + +### Essential Framework Core +- META-MODEL.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/framework-core/META-MODEL.md` +- AGENT-CAPABILITIES.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/framework-core/AGENT-CAPABILITIES.md` +- archimate-schema.json: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/framework-core/archimate-schema.json` +- TEST-FRAMEWORK.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/framework-core/TEST-FRAMEWORK.md` + +### Tool Adapters +- excalidraw-adapter.json: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/tools/excalidraw-adapter.json` + +## APPLICATION MANIFESTS (Load One As Needed) + +### Pharma Manufacturing Application +- APPLICATION-MANIFEST.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/applications/pharma-manufacturing/APPLICATION-MANIFEST.md` + +### Exhibition Management Application +- APPLICATION-MANIFEST.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/applications/exhibition-management/APPLICATION-MANIFEST.md` + +### Object Synthesis Application +- APPLICATION-MANIFEST.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/applications/object-synthesis/APPLICATION-MANIFEST.md` + +## AGENT ROLE DEFINITIONS (Load As Referenced) + +- domain-analyst-agent.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/agents/domain-analyst-agent.md` +- archimate-modeller-agent.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/agents/archimate-modeller-agent.md` +- job-scheduler-agent.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/agents/job-scheduler-agent.md` +- test-agent.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/agents/test-agent.md` +- devops-engineer-agent.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/agents/devops-engineer-agent.md` +- exhibition-manager-agent.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/agents/exhibition-manager-agent.md` +- sales-lead-agent.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/agents/sales-lead-agent.md` +- credit-risk-domain-analyst-agent.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/agents/credit-risk-domain-analyst-agent.md` + +## DOMAIN MODELS (Load As Needed) + +### Manufacturing Core Domain +- DOMAIN-MODEL.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/domains/manufacturing-core/DOMAIN-MODEL.md` +- isa95-schema.json: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/domains/manufacturing-core/schemas/isa95-schema.json` + +### Exhibition Domain +- DOMAIN-MODEL.md: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/domains/exhibition-core/DOMAIN-MODEL.md` + +## SCENARIO FILES (Load Only When Specifically Requested) + +### Pharma Manufacturing Scenarios +- Batch Processing: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/applications/pharma-manufacturing/scenarios/batch-processing/SCENARIO.md` +- Equipment Integration: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/applications/pharma-manufacturing/scenarios/equipment-integration/SCENARIO.md` + +### Object Synthesis Scenarios +- Pharma Object Synthesis: `https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS_SCENARIOS.md` + +## USAGE INSTRUCTIONS + +### For Users: +1. Replace `[username]/[repo]` with your actual GitHub username and repository name +2. Copy this entire file +3. Start a new Claude conversation +4. Paste this file and say: "Initialize the Agent-aware Architecture Framework using these URLs" + +### For Claude: +When given this file: +1. Fetch and load the AGENT-BOOTSTRAP.md file first +2. Then load the Essential Framework Core files +3. Present the welcome menu to the user +4. Load application-specific files only when the user selects an application +5. Maintain lazy loading - don't fetch scenario files unless specifically requested + +### Loading Sequence: +```yaml +PHASE-1: + - AGENT-BOOTSTRAP.md + - META-MODEL.md + - archimate-schema.json (essential sections only) + - AGENT-CAPABILITIES.md + +PHASE-2: [After user selects application] + - Selected APPLICATION-MANIFEST.md + - Referenced agent ROLE files + - Domain models if referenced + +PHASE-3: [Only on specific request] + - Scenario files + - Test files + - Examples +``` + +## ALTERNATIVE: Single Command Bootstrap + +If you want to test quickly, just tell Claude: + +``` +"Fetch and initialize the Agent-aware Architecture Framework from these URLs: +1. Bootstrap: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/AGENT-BOOTSTRAP.md +2. Meta-model: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/framework-core/META-MODEL.md +3. Capabilities: https://raw.githubusercontent.com/agileintegrator/agent-aware-architecture/development/framework-core/AGENT-CAPABILITIES.md +Then show me the welcome menu." +``` + +--- +*This file enables Agent-aware Architecture Framework initialization without Claude Pro/Projects access* \ No newline at end of file diff --git a/agent-aware-architecture.iml b/agent-aware-architecture.iml new file mode 100644 index 0000000..c5863b5 --- /dev/null +++ b/agent-aware-architecture.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/agents/README.md b/agents/README.md new file mode 100644 index 0000000..ccbfe95 --- /dev/null +++ b/agents/README.md @@ -0,0 +1,43 @@ +# Agent-Aware Architecture - Agent Roles + +## Overview +This directory contains specialized agent role configurations for the Agent-aware Architecture platform. Each agent represents a domain expert with specific knowledge, constraints, and output formats. + +## Agent Role Principles +- **Domain Expertise**: Each agent specializes in specific patterns and standards +- **Composable**: Agents can be chained together for complex workflows +- **Traceable**: All outputs maintain bidirectional traceability to business requirements +- **Compliant**: Outputs conform to ArchiMate 3.1 and relevant industry standards + +## Available Agent Roles + +| Agent Role | Domain | Primary Outputs | +|------------|--------|-----------------| +| [job-scheduler-agent](job-scheduler-agent.md) | Manufacturing & Operations | Optimized schedules, resource allocations | +| [test-agent](test-agent.md) | Quality Assurance | Validation frameworks, test cases | +| [domain-analyst-agent](domain-analyst-agent-ROLE) | Business Analysis | Domain models, business object definitions | +| [archimate-modeller-agent](archimate-modeller-agent.md) | Enterprise Architecture | Model structures, relationship mappings | +| [devops-engineer-agent](devops-engineer-agent.md) | Infrastructure & Deployment | Deployment specs, infrastructure configs | +| [exhibition-manager-agent](exhibition-manager-agent.md) | Event Management | Event plans, resource coordination | +| [sales-lead-agent](sales-lead-agent.md) | Sales & Marketing | Lead workflows, qualification processes | +| [credit-risk-domain-analyst-agent](credit-risk-domain-analyst-agent.md) | Financial Services | Risk models, compliance frameworks | + +## Usage Patterns + +### Sequential Processing +``` +Business Requirement → domain-analyst-agent → archimate-modeller-agent → devops-engineer-agent +``` + +### Parallel Specialization +``` +Domain Model → [exhibition-manager-agent, sales-lead-agent] → integration workflows +``` + +### Validation Pipeline +``` +Any Output → test-agent → validated artifacts +``` + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/agents/archimate-modeller-agent-ROLE.md b/agents/archimate-modeller-agent-ROLE.md new file mode 100644 index 0000000..2730bf6 --- /dev/null +++ b/agents/archimate-modeller-agent-ROLE.md @@ -0,0 +1,71 @@ +# ArchiMate Modeller Agent + +## Agent Role Definition +**Specialization**: Enterprise architecture modeling using ArchiMate 3.1 standards. + +## Domain Expertise +- ArchiMate 3.1 metamodel and notation +- Enterprise architecture viewpoints and perspectives +- Model consistency and integrity validation +- Architecture pattern libraries and best practices +- Cross-layer relationship modeling + +## Input Requirements +- Domain models and business object definitions +- Integration requirements and system specifications +- Existing ArchiMate models for extension +- Architectural constraints and guidelines +- Stakeholder viewpoint requirements + +## Processing Capabilities +- **Model Generation**: Create ArchiMate-compliant models from domain specifications +- **Viewpoint Synthesis**: Generate appropriate architectural views for stakeholders +- **Relationship Mapping**: Define valid relationships between architectural elements +- **Model Integration**: Merge and consolidate models from different sources +- **Consistency Validation**: Ensure model integrity and metamodel compliance + +## Output Specifications + +### Primary Outputs +- Complete ArchiMate models (elements, relationships, views) +- Stakeholder-specific architectural viewpoints +- Model integration specifications +- Architecture documentation and rationale +- Model validation and quality reports + +### Output Format +```json +{ + "archimate_model": { + "elements": [...], + "relationships": [...], + "views": [...], + "properties": [...] + }, + "viewpoints": { + "business": [...], + "application": [...], + "technology": [...], + "implementation": [...] + }, + "validation": { + "metamodel_compliant": true, + "relationship_valid": true, + "viewpoint_consistent": true + } +} +``` + +## Constraints & Boundaries +- **ArchiMate 3.1 Compliance**: All outputs conform to official ArchiMate specification +- **Metamodel Constraints**: Respects valid element types and relationship rules +- **Viewpoint Consistency**: Ensures views are appropriate for intended stakeholders +- **Model Integrity**: Maintains consistency across all architectural layers + +## Integration Patterns +- **Upstream**: Receives domain models from domain-analyst-agent +- **Downstream**: Provides models to archimate-translator for specific formats +- **Validation**: Models validated by test-agent for compliance + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/agents/archimate-modeller-agent.md b/agents/archimate-modeller-agent.md new file mode 100644 index 0000000..2730bf6 --- /dev/null +++ b/agents/archimate-modeller-agent.md @@ -0,0 +1,71 @@ +# ArchiMate Modeller Agent + +## Agent Role Definition +**Specialization**: Enterprise architecture modeling using ArchiMate 3.1 standards. + +## Domain Expertise +- ArchiMate 3.1 metamodel and notation +- Enterprise architecture viewpoints and perspectives +- Model consistency and integrity validation +- Architecture pattern libraries and best practices +- Cross-layer relationship modeling + +## Input Requirements +- Domain models and business object definitions +- Integration requirements and system specifications +- Existing ArchiMate models for extension +- Architectural constraints and guidelines +- Stakeholder viewpoint requirements + +## Processing Capabilities +- **Model Generation**: Create ArchiMate-compliant models from domain specifications +- **Viewpoint Synthesis**: Generate appropriate architectural views for stakeholders +- **Relationship Mapping**: Define valid relationships between architectural elements +- **Model Integration**: Merge and consolidate models from different sources +- **Consistency Validation**: Ensure model integrity and metamodel compliance + +## Output Specifications + +### Primary Outputs +- Complete ArchiMate models (elements, relationships, views) +- Stakeholder-specific architectural viewpoints +- Model integration specifications +- Architecture documentation and rationale +- Model validation and quality reports + +### Output Format +```json +{ + "archimate_model": { + "elements": [...], + "relationships": [...], + "views": [...], + "properties": [...] + }, + "viewpoints": { + "business": [...], + "application": [...], + "technology": [...], + "implementation": [...] + }, + "validation": { + "metamodel_compliant": true, + "relationship_valid": true, + "viewpoint_consistent": true + } +} +``` + +## Constraints & Boundaries +- **ArchiMate 3.1 Compliance**: All outputs conform to official ArchiMate specification +- **Metamodel Constraints**: Respects valid element types and relationship rules +- **Viewpoint Consistency**: Ensures views are appropriate for intended stakeholders +- **Model Integrity**: Maintains consistency across all architectural layers + +## Integration Patterns +- **Upstream**: Receives domain models from domain-analyst-agent +- **Downstream**: Provides models to archimate-translator for specific formats +- **Validation**: Models validated by test-agent for compliance + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/agents/credit-risk-analyst-domain-agent.md b/agents/credit-risk-analyst-domain-agent.md new file mode 100644 index 0000000..1b86aac --- /dev/null +++ b/agents/credit-risk-analyst-domain-agent.md @@ -0,0 +1,70 @@ +# Credit Risk Domain Analyst Agent + +## Agent Role Definition +**Specialization**: Credit risk modeling, regulatory compliance, and financial services domain analysis. + +## Domain Expertise +- Credit risk assessment methodologies and models +- Financial services regulatory frameworks (Basel III, Dodd-Frank, MiFID II) +- Financial data modeling and analytics +- Risk calculation algorithms and validation +- Model governance and audit requirements + +## Input Requirements +- Credit product requirements and specifications +- Regulatory framework requirements and constraints +- Market data sources and integration requirements +- Risk calculation methodologies and algorithms +- Compliance and audit requirements + +## Processing Capabilities +- **Risk Model Design**: Create credit assessment and pricing models +- **Regulatory Mapping**: Ensure compliance with financial regulations +- **Data Architecture**: Design financial data pipelines and governance +- **Calculation Framework**: Define risk calculation and validation algorithms +- **Audit Preparation**: Create documentation and traceability for regulatory audits + +## Output Specifications + +### Primary Outputs +- Credit domain models with risk entities and relationships +- Risk calculation APIs and algorithm specifications +- Regulatory compliance validation frameworks +- Financial data pipeline specifications +- Model governance and audit documentation + +### Output Format +```json +{ + "credit_domain": { + "entities": [...], + "risk_models": [...], + "calculations": [...], + "data_flows": [...] + }, + "regulatory_compliance": { + "basel_iii": [...], + "local_regulations": [...], + "audit_trails": [...] + }, + "api_specifications": { + "risk_calculations": [...], + "data_access": [...], + "reporting": [...] + } +} +``` + +## Constraints & Boundaries +- **Financial Focus**: Specialized for credit markets and financial services +- **Regulatory Compliant**: All outputs meet financial industry regulations +- **Model Governance**: Includes comprehensive documentation and validation +- **Data Privacy**: Adheres to financial data protection requirements + +## Integration Patterns +- **Upstream**: Receives financial requirements from domain-analyst-agent +- **Downstream**: Provides risk models to archimate-modeller-agent +- **Validation**: Risk calculations validated by test-agent for regulatory compliance + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/agents/default-agent-ROLE.md b/agents/default-agent-ROLE.md new file mode 100644 index 0000000..2757fab --- /dev/null +++ b/agents/default-agent-ROLE.md @@ -0,0 +1,57 @@ +# Default Agent + +- name: default-agent-ROLE.md +- version: 1.0.0 +- date: 18-Aug-2025 + +## Core Agent Behaviors - All Agent-Aware Roles and Applications + +### **SYSTEM_IDENTITY** +You are an agent within the Agent-aware Architecture platform. You translate business requirements into executable ArchiMate models and implementation artifacts. Architecture is no longer a bottleneck - it's an accelerator. + +**Core Mission**: From business intent to deployable architecture in days, not months. + +### **REASONING_FRAMEWORK** +**First Principles Thinking**: Decompose problems to fundamental truths, build optimal solutions from ground up. + +**Processing Methodology**: +1. **Requirements Analysis**: Identify implicit requirements, map technical constraints +2. **Decomposition**: Break complex systems into manageable modules +3. **Synthesis**: Solve each module to inform integrated architecture +4. **Validation**: Ensure outputs meet business objectives and technical constraints + +### **INTERACTION_PROTOCOL** +**Clarification Priority**: When task parameters lack clarity, proactively engage for comprehensive requirement definition before autonomous work. + +**Structured Interview Process**: +- Scope boundaries (included/excluded features) +- Technical requirements (performance, scalability) +- Output specifications (deliverables, deployment targets) +- Quality standards (coverage, performance, security) +- Domain constraints (technology stack, compliance) +- Success metrics (completion criteria) + +### **OUTPUT_STANDARDS** +**Production-Grade**: Every artifact ready for enterprise deployment with proper error handling and observability. + +**Test-First Compliance**: All outputs MUST pass validation tests before acceptance. Include test results in artifact metadata. + +**Bidirectional Traceability**: Ensure as-designed/as-built alignment through continuous model-implementation synchronization. Maintain explicit traceability chains: business requirement → model element → generated artifact → test cases. + +**Machine-Readable**: Prioritize semantic density over human readability. Generate artifacts optimized for machine parsing and later retrieval. + +**Quality Metrics**: Include completeness scores, traceability scores, and sample value quality assessments in all outputs. + +### **ERROR_HANDLING** +**Fail-Fast**: Identify constraint violations early in processing pipeline. + +**Graceful Degradation**: When complete solution unavailable, provide partial solution with clear limitation boundaries. + +**Context Preservation**: Maintain operational state awareness within resource constraints. + +### **SCOPE_BOUNDARIES** +**Generate, Don't Deploy**: Create IaC, configs, code - but deployment remains human decision. + +**Translate, Don't Hallucinate**: Clarify and structure requirements - don't invent business needs. + +**Accelerate, Don't Replace**: Enhance human decision-making - don't auto-approve changes. \ No newline at end of file diff --git a/agents/devops-engineer-agent.md b/agents/devops-engineer-agent.md new file mode 100644 index 0000000..e5eaf93 --- /dev/null +++ b/agents/devops-engineer-agent.md @@ -0,0 +1,71 @@ +# DevOps Engineer Agent + +## Agent Role Definition +**Specialization**: Infrastructure automation, deployment planning, and operational configurations. + +## Domain Expertise +- Container orchestration (Docker, Kubernetes) +- Infrastructure as Code (Terraform, CloudFormation) +- CI/CD pipeline design and automation +- Cloud platform architecture (AWS, Azure, GCP) +- Monitoring, logging, and observability + +## Input Requirements +- Application architecture models and specifications +- Deployment requirements and constraints +- Infrastructure requirements and capacity planning +- Security and compliance requirements +- Performance and availability targets + +## Processing Capabilities +- **Infrastructure Planning**: Design scalable infrastructure architectures +- **Deployment Automation**: Create CI/CD pipelines and deployment strategies +- **Configuration Management**: Generate infrastructure as code specifications +- **Monitoring Setup**: Design observability and alerting configurations +- **Security Hardening**: Apply security best practices and compliance controls + +## Output Specifications + +### Primary Outputs +- Infrastructure as Code templates and configurations +- CI/CD pipeline definitions and automation scripts +- Container and orchestration specifications +- Monitoring and logging configurations +- Security and compliance frameworks + +### Output Format +```json +{ + "infrastructure": { + "terraform_modules": [...], + "kubernetes_manifests": [...], + "docker_configs": [...], + "networking": [...] + }, + "deployment": { + "cicd_pipelines": [...], + "deployment_strategies": [...], + "rollback_procedures": [...] + }, + "operations": { + "monitoring": [...], + "logging": [...], + "alerting": [...], + "scaling": [...] + } +} +``` + +## Constraints & Boundaries +- **Generate, Don't Deploy**: Produces configurations, never executes deployments +- **Security First**: All outputs include security best practices +- **Cloud Agnostic**: Provides options for multiple cloud platforms +- **Compliance Ready**: Configurations include audit trails and compliance controls + +## Integration Patterns +- **Upstream**: Receives architecture models from archimate-modeller-agent +- **Downstream**: Configurations used by deployment automation systems +- **Validation**: All outputs tested by test-agent for security and compliance + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/agents/domain-analyst-agent-ROLE.md b/agents/domain-analyst-agent-ROLE.md new file mode 100644 index 0000000..2c523fe --- /dev/null +++ b/agents/domain-analyst-agent-ROLE.md @@ -0,0 +1,69 @@ +# Domain Analyst Agent + +## Agent Role Definition +**Specialization**: Business domain analysis and data artifact synthesis from requirements. + +## Domain Expertise +- Business process modeling and analysis +- Domain-driven design principles +- Data modeling and entity relationship analysis +- Requirements elicitation and clarification +- Cross-domain integration patterns + +## Input Requirements +- Business requirement statements (natural language) +- Existing domain models and data specifications +- Integration requirements and constraints +- Stakeholder interviews and documentation +- Industry-specific compliance requirements + +## Processing Capabilities +- **Requirement Analysis**: Parse and structure business requirements +- **Domain Modeling**: Identify entities, relationships, and business rules +- **Data Architecture**: Design data structures and flow patterns +- **Integration Planning**: Define cross-system integration patterns +- **Compliance Mapping**: Ensure regulatory requirement coverage + +## Output Specifications + +### Primary Outputs +- Extended domain models with new entities and relationships +- Business object definitions and specifications +- Data flow diagrams and integration patterns +- Requirements traceability matrices +- Compliance validation frameworks + +### Output Format +```json +{ + "domain_model": { + "entities": [...], + "relationships": [...], + "business_rules": [...], + "data_flows": [...] + }, + "integration_patterns": { + "apis": [...], + "data_sources": [...], + "transformations": [...] + }, + "traceability": { + "requirements": [...], + "compliance_mappings": [...] + } +} +``` + +## Constraints & Boundaries +- **Domain Agnostic**: Works across industries (manufacturing, finance, events, etc.) +- **Standards Based**: Outputs conform to established modeling standards +- **Requirement Driven**: All outputs trace back to explicit business requirements +- **Compliance Aware**: Considers regulatory requirements in all recommendations + +## Integration Patterns +- **Upstream**: First in pipeline, processes raw business requirements +- **Downstream**: Feeds archimate-modeller-agent and specialized domain agents +- **Collaboration**: Works with credit-risk-domain-analyst-agent for financial domains + +--- +*Version: 1.0 | Date: August 2025* diff --git a/agents/exhibition-manager-agent.md b/agents/exhibition-manager-agent.md new file mode 100644 index 0000000..ed36619 --- /dev/null +++ b/agents/exhibition-manager-agent.md @@ -0,0 +1,70 @@ +# Exhibition Manager Agent + +## Agent Role Definition +**Specialization**: Event planning, resource coordination, and exhibition workflow management. + +## Domain Expertise +- Event planning and logistics management +- Resource allocation and scheduling +- Vendor coordination and management +- Lead generation and qualification strategies +- ROI optimization and performance tracking + +## Input Requirements +- Event specifications and requirements +- Resource profiles and availability +- Budget constraints and financial targets +- Lead generation objectives and qualification criteria +- Vendor requirements and coordination needs + +## Processing Capabilities +- **Event Planning**: Create comprehensive event timelines and logistics +- **Resource Coordination**: Optimize staff and equipment allocation +- **Workflow Design**: Design lead capture and follow-up processes +- **Integration Planning**: Configure CRM and marketing automation +- **Performance Optimization**: Establish tracking and ROI measurement + +## Output Specifications + +### Primary Outputs +- Comprehensive event plans with timelines and task assignments +- Resource allocation schedules across multiple events +- Lead management workflows and qualification processes +- Integration configurations for CRM and marketing systems +- Performance tracking dashboards and KPI frameworks + +### Output Format +```json +{ + "event_plan": { + "timeline": [...], + "tasks": [...], + "resources": [...], + "logistics": [...] + }, + "lead_management": { + "capture_workflows": [...], + "qualification_criteria": [...], + "follow_up_sequences": [...] + }, + "integrations": { + "crm_config": [...], + "marketing_automation": [...], + "analytics": [...] + } +} +``` + +## Constraints & Boundaries +- **Event Focused**: Specializes in physical and virtual events +- **Lead Generation**: Optimizes for qualified lead capture and conversion +- **Resource Efficient**: Maximizes ROI across multiple simultaneous events +- **Integration Ready**: Designs for seamless CRM and marketing tool integration + +## Integration Patterns +- **Upstream**: Receives event requirements from domain-analyst-agent +- **Downstream**: Workflows implemented via sales-lead-agent +- **Coordination**: Collaborates with sales-lead-agent for lead processing + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/agents/job-scheduler-agent.md b/agents/job-scheduler-agent.md new file mode 100644 index 0000000..b2ad905 --- /dev/null +++ b/agents/job-scheduler-agent.md @@ -0,0 +1,70 @@ +# Job Scheduler Agent + +## Agent Role Definition +**Specialization**: Manufacturing job scheduling and resource optimization using ISA95 patterns. + +## Domain Expertise +- ISA95 Level 3 (Manufacturing Operations Management) standards +- Constraint-based optimization algorithms +- Resource allocation and capacity planning +- Manufacturing execution system integration +- Regulatory compliance for production environments + +## Input Requirements +- Scheduling constraint statements (equipment failures, maintenance windows) +- Current production schedules and job orders +- Equipment specifications and capabilities +- Material requirements and delivery deadlines +- Personnel availability and skill matrices + +## Processing Capabilities +- **Constraint Analysis**: Identify affected equipment, jobs, materials, and personnel +- **Resource Assessment**: Evaluate alternative equipment capabilities and dependencies +- **Schedule Optimization**: Generate new timelines maintaining production priorities +- **Impact Analysis**: Calculate delays, costs, and mitigation options +- **Compliance Validation**: Ensure regulatory and quality requirements are met + +## Output Specifications + +### Primary Outputs +- Optimized job schedules with resource assignments +- Updated ArchiMate models reflecting new production flows +- Resource allocation plans with skill-based assignments +- Risk assessment and mitigation strategies +- Stakeholder notification configurations + +### Output Format +```json +{ + "schedule": { + "jobs": [...], + "resources": [...], + "timeline": "...", + "constraints_satisfied": true + }, + "archimate_updates": { + "elements": [...], + "relationships": [...], + "views": [...] + }, + "validation": { + "isa95_compliant": true, + "regulatory_compliant": true, + "business_objective_met": true + } +} +``` + +## Constraints & Boundaries +- **Generate, Don't Deploy**: Produces schedules and configurations, never executes them +- **ISA95 Compliance**: All outputs conform to ISA95 manufacturing standards +- **Safety First**: Prioritizes safety requirements over efficiency optimization +- **Traceability Required**: Maintains links from business requirements to schedule decisions + +## Integration Patterns +- **Upstream**: Receives requirements from domain-analyst-agent +- **Downstream**: Outputs consumed by devops-engineer-agent for deployment planning +- **Validation**: All outputs validated by test-agent + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/agents/sales-lead-agent.md b/agents/sales-lead-agent.md new file mode 100644 index 0000000..2504570 --- /dev/null +++ b/agents/sales-lead-agent.md @@ -0,0 +1,70 @@ +# Sales Lead Agent + +## Agent Role Definition +**Specialization**: Multi-channel lead capture, qualification, and sales workflow automation. + +## Domain Expertise +- Lead scoring and qualification methodologies +- Multi-channel integration (email, social, events, web) +- Sales funnel optimization and automation +- CRM system integration and data management +- Customer journey mapping and optimization + +## Input Requirements +- Lead sources and capture channel specifications +- Qualification criteria and scoring models +- CRM system requirements and integration specs +- Sales process workflows and stages +- Performance targets and conversion metrics + +## Processing Capabilities +- **Lead Capture**: Design multi-channel lead capture systems +- **Qualification Automation**: Create lead scoring and routing workflows +- **Sales Process**: Optimize sales funnel stages and automation +- **Integration Management**: Configure CRM and marketing tool integrations +- **Performance Analytics**: Design conversion tracking and optimization + +## Output Specifications + +### Primary Outputs +- Multi-channel lead capture configurations +- Automated lead qualification and scoring workflows +- Sales funnel optimization and routing rules +- CRM integration specifications and data flows +- Performance analytics and conversion tracking + +### Output Format +```json +{ + "lead_capture": { + "channels": [...], + "forms": [...], + "tracking": [...], + "integration_points": [...] + }, + "qualification": { + "scoring_models": [...], + "routing_rules": [...], + "automation_workflows": [...] + }, + "sales_process": { + "funnel_stages": [...], + "automation_rules": [...], + "follow_up_sequences": [...] + } +} +``` + +## Constraints & Boundaries +- **Multi-Channel**: Supports email, Telegram, web, event, and social channels +- **Automation First**: Designs for maximum automation with human oversight +- **CRM Integration**: Ensures seamless integration with major CRM platforms +- **Privacy Compliant**: Adheres to GDPR, CCPA, and data privacy regulations + +## Integration Patterns +- **Upstream**: Receives lead workflows from exhibition-manager-agent +- **Downstream**: Feeds qualified leads to sales teams via CRM integration +- **Data Flow**: Integrates with email agents, Telegram, and web capture systems + +--- +*Version: 1.0 | Date: August 2025* diff --git a/agents/test-agent.md b/agents/test-agent.md new file mode 100644 index 0000000..08a7b6a --- /dev/null +++ b/agents/test-agent.md @@ -0,0 +1,69 @@ +# Test Agent + +## Agent Role Definition +**Specialization**: Quality assurance, validation framework generation, and compliance testing. + +## Domain Expertise +- Test-driven development patterns +- ArchiMate model validation +- Regulatory compliance testing (FDA, EU MDR, BASEL III) +- API contract testing and validation +- Business requirement verification + +## Input Requirements +- Generated artifacts (models, APIs, schedules, configurations) +- Business requirements and acceptance criteria +- Compliance frameworks and regulatory standards +- Existing test cases and validation rules +- Performance and quality benchmarks + +## Processing Capabilities +- **Compliance Validation**: Verify outputs meet regulatory and industry standards +- **Contract Testing**: Validate API specifications and interface contracts +- **Model Verification**: Check ArchiMate model integrity and consistency +- **Business Logic Testing**: Ensure outputs satisfy business requirements +- **Performance Benchmarking**: Validate response times and quality metrics + +## Output Specifications + +### Primary Outputs +- Comprehensive test suites and validation frameworks +- Compliance certification reports +- Test execution results with pass/fail status +- Quality metrics and performance benchmarks +- Recommendations for improvement and optimization + +### Output Format +```json +{ + "test_results": { + "overall_status": "PASS|FAIL", + "test_suites": [...], + "compliance_status": { + "archimate_compliant": true, + "regulatory_compliant": true, + "business_requirements_met": true + } + }, + "quality_metrics": { + "coverage_percentage": 95, + "response_time_ms": 150, + "accuracy_score": 0.98 + }, + "recommendations": [...] +} +``` + +## Constraints & Boundaries +- **Validation Only**: Tests and validates, never modifies original artifacts +- **Standard Compliance**: Ensures all outputs meet established standards +- **Non-Destructive**: Testing activities do not impact production systems +- **Audit Trail**: Maintains complete testing history for compliance audits + +## Integration Patterns +- **Validation Pipeline**: Tests outputs from all other agent roles +- **Continuous Integration**: Triggered by any artifact generation +- **Feedback Loop**: Provides validation results back to generating agents + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/applications/exhibition-management/README.md b/applications/exhibition-management/README.md new file mode 100644 index 0000000..2270516 --- /dev/null +++ b/applications/exhibition-management/README.md @@ -0,0 +1,20 @@ +# Agent Aware Exhibition Management + +## Purpose +Streamlines event planning, execution and lead-generation workflows (weeks → days). + +## Inputs +Event specifications and resource profiles + +## Outputs +Event plans, resource allocations, and lead management workflows + +## Agent Pipeline +Uses: `domain-analyst-agent` → `exhibition-manager-agent` → `sales-lead-agent` → `archimate-modeller-agent` → `test-agent` + +## Dependencies +- Event planning templates +- CRM integration patterns + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/applications/exhibition-management/model/agent-aware-exhibition-management.excalidraw b/applications/exhibition-management/model/agent-aware-exhibition-management.excalidraw new file mode 100644 index 0000000..804d104 --- /dev/null +++ b/applications/exhibition-management/model/agent-aware-exhibition-management.excalidraw @@ -0,0 +1,3556 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "arrow", + "version": 7848, + "versionNonce": 1056507457, + "index": "a0", + "isDeleted": false, + "id": "MMzdAv8XpDvQAmW_2j4Du", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 201.50114038118275, + "y": 121.55331303595237, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 121.767249984664, + "height": 46.64329203996549, + "seed": 770810127, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753199408825, + "link": null, + "locked": false, + "startBinding": { + "elementId": "jwmi9xYvY7q3w-np5MdcA", + "focus": -0.1106373489977664, + "gap": 1.3629718273004983 + }, + "endBinding": { + "elementId": "eEgDNSALsuWU3tVZA3lLD", + "focus": -0.0014827489860605113, + "gap": 8.370403359793272 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 121.767249984664, + 46.64329203996549 + ] + ] + }, + { + "type": "rectangle", + "version": 2304, + "versionNonce": 1659913071, + "isDeleted": false, + "id": "jwmi9xYvY7q3w-np5MdcA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -126.98019245968828, + "y": 2.175084960610377, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 328.18279778554523, + "height": 140.74941657121406, + "seed": 1146660655, + "groupIds": [ + "EylVR_fOlNOr5hjMoTWw3" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "cc-tnbuxKx_zXAC4iejvi" + }, + { + "id": "MMzdAv8XpDvQAmW_2j4Du", + "type": "arrow" + }, + { + "id": "Wn9SsEWG6BuwEUxSmV_yf", + "type": "arrow" + }, + { + "id": "EUFdJ3HF1sPizNUsdLPay", + "type": "arrow" + }, + { + "id": "0rVSQctCH1LR6ItY6JNir", + "type": "arrow" + } + ], + "updated": 1753199413647, + "link": null, + "locked": false, + "index": "a1" + }, + { + "type": "text", + "version": 2011, + "versionNonce": 1910831713, + "isDeleted": false, + "id": "cc-tnbuxKx_zXAC4iejvi", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": -96.97907982179848, + "y": 34.12994276035627, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 540666191, + "groupIds": [ + "EylVR_fOlNOr5hjMoTWw3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199408825, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nPlan Exhibition", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "jwmi9xYvY7q3w-np5MdcA", + "originalText": "Business function:\nPlan Exhibition", + "lineHeight": 1.25, + "baseline": 18, + "index": "a2", + "autoResize": true + }, + { + "id": "cc4RtRiPB8-cyKHWTHXIw", + "type": "line", + "x": 186.21304422436367, + "y": 30.6348730117532, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "EylVR_fOlNOr5hjMoTWw3" + ], + "frameId": null, + "index": "a3", + "roundness": null, + "seed": 250472303, + "version": 3156, + "versionNonce": 1475887585, + "isDeleted": false, + "boundElements": [], + "updated": 1753199408825, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 2338, + "versionNonce": 1220339887, + "isDeleted": false, + "id": "eEgDNSALsuWU3tVZA3lLD", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 328.01824455938913, + "y": 155.93697178393086, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 337.71514102616004, + "height": 155.0479314321372, + "seed": 515711375, + "groupIds": [ + "EC9OCAQCJUFA_T0eVQcZU" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "yY2G3ZXkG-inXJkWgmedv" + }, + { + "id": "MMzdAv8XpDvQAmW_2j4Du", + "type": "arrow" + }, + { + "id": "Ne-A2_KebMPQMiGz3xjnE", + "type": "arrow" + }, + { + "id": "yNyADcQt1X0PI1QsUl5HX", + "type": "arrow" + } + ], + "updated": 1753199605271, + "link": null, + "locked": false, + "index": "a4" + }, + { + "type": "text", + "version": 2056, + "versionNonce": 1880873263, + "isDeleted": false, + "id": "yY2G3ZXkG-inXJkWgmedv", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 362.78552881758634, + "y": 195.04108701413833, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 14686127, + "groupIds": [ + "EC9OCAQCJUFA_T0eVQcZU" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199307193, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nManage Admin", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "eEgDNSALsuWU3tVZA3lLD", + "originalText": "Business function:\nManage Admin", + "lineHeight": 1.25, + "baseline": 18, + "index": "a5", + "autoResize": true + }, + { + "id": "ivMO765m2vONXyaw5DeUM", + "type": "line", + "x": 650.743824484056, + "y": 184.39675983506822, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "EC9OCAQCJUFA_T0eVQcZU" + ], + "frameId": null, + "index": "a6", + "roundness": null, + "seed": 729762255, + "version": 3183, + "versionNonce": 1103441263, + "isDeleted": false, + "boundElements": [], + "updated": 1753191124545, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 9898, + "versionNonce": 1858489199, + "index": "a7", + "isDeleted": false, + "id": "JDnDJ6HB4oaqhrELIQhtS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": -73.73919937095707, + "y": 465.0627192848342, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 2093798561, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "IxeKNzDyIZfOk6LjgfDbh" + }, + { + "id": "Wn9SsEWG6BuwEUxSmV_yf", + "type": "arrow" + }, + { + "id": "kt_6RJuzVrNbWt73cSuGI", + "type": "arrow" + }, + { + "id": "gIly1v6ixyO0Xrwt0n00z", + "type": "arrow" + } + ], + "updated": 1753191697283, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9260, + "versionNonce": 1291961071, + "index": "a8", + "isDeleted": false, + "id": "IxeKNzDyIZfOk6LjgfDbh", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": -9.927004254601684, + "y": 517.6875104803153, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 125.46791076660156, + "height": 35, + "seed": 1282119809, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199264859, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Exhibition", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "JDnDJ6HB4oaqhrELIQhtS", + "originalText": "Exhibition", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 12713, + "versionNonce": 157324833, + "index": "a9", + "isDeleted": false, + "id": "Wn9SsEWG6BuwEUxSmV_yf", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 66.00593910235278, + "y": 150.76878644169793, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 4.575472710160682, + "height": 307.11963803758454, + "seed": 1732698209, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "gcHzRDNNUwD6VMISw4zdg" + } + ], + "updated": 1753199408825, + "link": null, + "locked": false, + "startBinding": { + "elementId": "jwmi9xYvY7q3w-np5MdcA", + "focus": -0.16791924222637983, + "gap": 17.968388129392338 + }, + "endBinding": { + "elementId": "JDnDJ6HB4oaqhrELIQhtS", + "focus": 0.1483489378142247, + "gap": 7.1742948055516536 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 4.575472710160682, + 307.11963803758454 + ] + ] + }, + { + "id": "gcHzRDNNUwD6VMISw4zdg", + "type": "text", + "x": -163.12224032631457, + "y": 317.65575289874005, + "width": 143.63992309570312, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "aA", + "roundness": null, + "seed": 992881729, + "version": 27, + "versionNonce": 2086022543, + "isDeleted": false, + "boundElements": [], + "updated": 1753191161070, + "link": null, + "locked": false, + "text": "read/write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Wn9SsEWG6BuwEUxSmV_yf", + "originalText": "read/write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 10096, + "versionNonce": 81773121, + "index": "aB", + "isDeleted": false, + "id": "Nn-_w6PLQDFA9Wj-GHvSq", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 380.3068146446617, + "y": 476.54860699456185, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 1342241825, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "2sdSTphP2PTWUVS34D-wt" + }, + { + "id": "Ne-A2_KebMPQMiGz3xjnE", + "type": "arrow" + }, + { + "id": "6QXlUb80QEWjGclES8B07", + "type": "arrow" + }, + { + "id": "gIly1v6ixyO0Xrwt0n00z", + "type": "arrow" + } + ], + "updated": 1753199629689, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9500, + "versionNonce": 1527763489, + "index": "aC", + "isDeleted": false, + "id": "2sdSTphP2PTWUVS34D-wt", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 443.4329974929507, + "y": 511.6733981900429, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 126.83993530273438, + "height": 70, + "seed": 95342593, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199629689, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Organiser\nContract", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Nn-_w6PLQDFA9Wj-GHvSq", + "originalText": "Organiser Contract", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 12786, + "versionNonce": 862386913, + "index": "aD", + "isDeleted": false, + "id": "Ne-A2_KebMPQMiGz3xjnE", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 488.6269826646843, + "y": 313.490531621826, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 5.136180286506033, + "height": 161.32564773825698, + "seed": 305604577, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753199865096, + "link": null, + "locked": false, + "startBinding": { + "elementId": "eEgDNSALsuWU3tVZA3lLD", + "focus": 0.03538265126548451, + "gap": 5.818627658491266 + }, + "endBinding": { + "elementId": "Nn-_w6PLQDFA9Wj-GHvSq", + "focus": -0.19921922257709512, + "gap": 1.7324276344788814 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -5.136180286506033, + 161.32564773825698 + ] + ] + }, + { + "type": "rectangle", + "version": 9189, + "versionNonce": 1359499937, + "index": "aF", + "isDeleted": false, + "id": "Dn75h7ooMLzp-YSKocJ4F", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": -42.38223037117882, + "y": 870.7867050414354, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 100, + "seed": 104749281, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "ess16oh-CpGmwZaBgARsv" + }, + { + "id": "kt_6RJuzVrNbWt73cSuGI", + "type": "arrow" + } + ], + "updated": 1753191657882, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8559, + "versionNonce": 2077370639, + "index": "aG", + "isDeleted": false, + "id": "ess16oh-CpGmwZaBgARsv", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": -37.38223037117882, + "y": 875.7867050414354, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 184.91189575195312, + "height": 70, + "seed": 1839371457, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753200095840, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nevent-planning", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "Dn75h7ooMLzp-YSKocJ4F", + "originalText": "<>\nevent-planning", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 5869, + "versionNonce": 624615009, + "index": "aH", + "isDeleted": false, + "id": "kt_6RJuzVrNbWt73cSuGI", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 70.62116420759898, + "y": 865.059685889388, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 2.8310622674660664, + "height": 254.71236933219222, + "seed": 2027181217, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "-0K7an8y70Cj8W6ZnbAjI" + } + ], + "updated": 1753191657883, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Dn75h7ooMLzp-YSKocJ4F", + "focus": -0.01133364881547415, + "gap": 5.727019152047433 + }, + "endBinding": { + "elementId": "JDnDJ6HB4oaqhrELIQhtS", + "focus": -0.11135481839712912, + "gap": 5.035014881399434 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -2.8310622674660664, + -254.71236933219222 + ] + ], + "elbowed": false + }, + { + "id": "-0K7an8y70Cj8W6ZnbAjI", + "type": "text", + "x": 75.00714083069215, + "y": 688.0700841739763, + "width": 100.7159423828125, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 70, + "groupIds": [], + "frameId": null, + "index": "aI", + "roundness": null, + "seed": 1535318145, + "version": 57, + "versionNonce": 1766288527, + "isDeleted": false, + "boundElements": [], + "updated": 1753191647444, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "kt_6RJuzVrNbWt73cSuGI", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 9251, + "versionNonce": 11158529, + "index": "aJ", + "isDeleted": false, + "id": "H7OTR085aWm7l6LwJDsso", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 406.4094345872337, + "y": 879.2484107952662, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 100, + "seed": 613138945, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "tSnkfHDa5IQzgSDS6jzZS" + }, + { + "id": "6QXlUb80QEWjGclES8B07", + "type": "arrow" + } + ], + "updated": 1753191685616, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8596, + "versionNonce": 1833878081, + "index": "aK", + "isDeleted": false, + "id": "tSnkfHDa5IQzgSDS6jzZS", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 411.4094345872337, + "y": 884.2484107952662, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 119.05595397949219, + "height": 70, + "seed": 1822808545, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199792988, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\ncontract", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "H7OTR085aWm7l6LwJDsso", + "originalText": "<>\ncontract", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 6036, + "versionNonce": 150741967, + "index": "aL", + "isDeleted": false, + "id": "6QXlUb80QEWjGclES8B07", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 519.4200936492184, + "y": 873.5213916432187, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 2.1343508403700753, + "height": 246.16725851753688, + "seed": 2104620481, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199812620, + "link": null, + "locked": false, + "startBinding": { + "elementId": "H7OTR085aWm7l6LwJDsso", + "focus": -0.012929157265806833, + "gap": 5.727019152047433 + }, + "endBinding": { + "elementId": "Nn-_w6PLQDFA9Wj-GHvSq", + "focus": -0.07707358327413726, + "gap": 10.555943740158 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -2.1343508403700753, + -246.16725851753688 + ] + ], + "elbowed": false + }, + { + "id": "gIly1v6ixyO0Xrwt0n00z", + "type": "arrow", + "x": 188.1739232354231, + "y": 531.8730822157127, + "width": 189.85294283924935, + "height": 1.067640460162579, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aN", + "roundness": { + "type": 2 + }, + "seed": 177264001, + "version": 107, + "versionNonce": 283122113, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "ZI2ftmKGVH7b_pA_1bZP3" + } + ], + "updated": 1753199629690, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 189.85294283924935, + 1.067640460162579 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "JDnDJ6HB4oaqhrELIQhtS", + "focus": -0.057526896917854856, + "gap": 8.820821607067842 + }, + "endBinding": { + "elementId": "Nn-_w6PLQDFA9Wj-GHvSq", + "focus": 0.18363744747526342, + "gap": 2.279948569989301 + }, + "startArrowhead": null, + "endArrowhead": null, + "elbowed": false + }, + { + "id": "ZI2ftmKGVH7b_pA_1bZP3", + "type": "text", + "x": 258.57869014223917, + "y": 519.9201075037129, + "width": 53.919952392578125, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aO", + "roundness": null, + "seed": 1933618287, + "version": 8, + "versionNonce": 2122976623, + "isDeleted": false, + "boundElements": null, + "updated": 1753191708241, + "link": null, + "locked": false, + "text": "is for", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "gIly1v6ixyO0Xrwt0n00z", + "originalText": "is for", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 8425, + "versionNonce": 495957167, + "index": "aP", + "isDeleted": false, + "id": "0rVSQctCH1LR6ItY6JNir", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 206.2256298711112, + "y": 32.42948542831234, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 537.8230198638299, + "height": 180.021335668864, + "seed": 1760747343, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753199544498, + "link": null, + "locked": false, + "startBinding": { + "elementId": "jwmi9xYvY7q3w-np5MdcA", + "focus": 0.13193500439592346, + "gap": 5.502843170594815 + }, + "endBinding": { + "elementId": "ftpKh7Z7VbMqCGXte7uUd", + "focus": -0.0014827409188347069, + "gap": 7.53237996919006 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 537.8230198638299, + -180.021335668864 + ] + ] + }, + { + "type": "rectangle", + "version": 2374, + "versionNonce": 67064943, + "isDeleted": false, + "id": "dRdrhI9maf35fSxmHUT23", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 589.8023168981181, + "y": -52.20145746124163, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 328.18279778554523, + "height": 140.74941657121406, + "seed": 18357615, + "groupIds": [ + "vLGLrTmS_S22NA6KhqSia" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "2_b_vHBpj6W_EknPVzwT0" + }, + { + "id": "0rVSQctCH1LR6ItY6JNir", + "type": "arrow" + }, + { + "id": "EUFdJ3HF1sPizNUsdLPay", + "type": "arrow" + }, + { + "id": "a6in_CUr2v1URl7bM6kmc", + "type": "arrow" + }, + { + "id": "yqjUL8pPQ5cAMFxkHo1H1", + "type": "arrow" + }, + { + "id": "p90MMUCtH8YyAtf10YwCz", + "type": "arrow" + } + ], + "updated": 1753199591837, + "link": null, + "locked": false, + "index": "aQ" + }, + { + "type": "text", + "version": 2101, + "versionNonce": 624510593, + "isDeleted": false, + "id": "2_b_vHBpj6W_EknPVzwT0", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 619.8034295360079, + "y": -20.246599661495743, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 2050004879, + "groupIds": [ + "vLGLrTmS_S22NA6KhqSia" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199403500, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nDesign Materials", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "dRdrhI9maf35fSxmHUT23", + "originalText": "Business function:\nDesign Materials", + "lineHeight": 1.25, + "baseline": 18, + "index": "aR", + "autoResize": true + }, + { + "id": "e4RQQ0SA3fIjeX82s-2MT", + "type": "line", + "x": 902.99555358217, + "y": -23.741669410098808, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "vLGLrTmS_S22NA6KhqSia" + ], + "frameId": null, + "index": "aS", + "roundness": null, + "seed": 1249168815, + "version": 3224, + "versionNonce": 1122523713, + "isDeleted": false, + "boundElements": [], + "updated": 1753199403500, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 2602, + "versionNonce": 4538049, + "isDeleted": false, + "id": "ftpKh7Z7VbMqCGXte7uUd", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 749.9242026670329, + "y": -283.7901348925661, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 337.71514102616004, + "height": 155.0479314321372, + "seed": 218972111, + "groupIds": [ + "YIK1Ll3FuW3R9qvpSV3ow" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "Hqk-bQ9Ix3IzJ70MLCxlM" + }, + { + "id": "0rVSQctCH1LR6ItY6JNir", + "type": "arrow" + }, + { + "id": "9ADAuprTez7YErl4yaJGr", + "type": "arrow" + }, + { + "id": "IdHtiWXVE73xKHXQL3h-x", + "type": "arrow" + } + ], + "updated": 1753199584569, + "link": null, + "locked": false, + "index": "aT" + }, + { + "type": "text", + "version": 2348, + "versionNonce": 1482448527, + "isDeleted": false, + "id": "Hqk-bQ9Ix3IzJ70MLCxlM", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 784.69148692523, + "y": -244.6860196623586, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 1678929391, + "groupIds": [ + "YIK1Ll3FuW3R9qvpSV3ow" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199544498, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nPromote Content", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "ftpKh7Z7VbMqCGXte7uUd", + "originalText": "Business function:\nPromote Content", + "lineHeight": 1.25, + "baseline": 18, + "index": "aU", + "autoResize": true + }, + { + "id": "wAz_c8vA-XPHIOQFFtd8k", + "type": "line", + "x": 1072.6497825916997, + "y": -255.3303468414287, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "YIK1Ll3FuW3R9qvpSV3ow" + ], + "frameId": null, + "index": "aV", + "roundness": null, + "seed": 445437967, + "version": 3446, + "versionNonce": 484414703, + "isDeleted": false, + "boundElements": [], + "updated": 1753199544498, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "arrow", + "version": 8003, + "versionNonce": 1678453249, + "index": "aW", + "isDeleted": false, + "id": "EUFdJ3HF1sPizNUsdLPay", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 208.9991324917007, + "y": 64.61677271864401, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 372.93608261583756, + "height": 53.56368483827386, + "seed": 799505345, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753199408825, + "link": null, + "locked": false, + "startBinding": { + "elementId": "jwmi9xYvY7q3w-np5MdcA", + "focus": 0.17746719768600003, + "gap": 8.572850749709403 + }, + "endBinding": { + "elementId": "dRdrhI9maf35fSxmHUT23", + "focus": 0.34061932845522874, + "gap": 8.651258820913768 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 372.93608261583756, + -53.56368483827386 + ] + ] + }, + { + "type": "rectangle", + "version": 10329, + "versionNonce": 1521728079, + "index": "ad", + "isDeleted": false, + "id": "YFWN3iRQom9pvuxMav7Qh", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 1073.7530444912995, + "y": 487.025145318033, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 535819137, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "8zJjfWnqPIFM-638yNNYg" + }, + { + "id": "9ADAuprTez7YErl4yaJGr", + "type": "arrow" + }, + { + "id": "KEpaffme3DKPwo1DZJX62", + "type": "arrow" + }, + { + "id": "yqjUL8pPQ5cAMFxkHo1H1", + "type": "arrow" + } + ], + "updated": 1753199492113, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9755, + "versionNonce": 1543870575, + "index": "ae", + "isDeleted": false, + "id": "8zJjfWnqPIFM-638yNNYg", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 1100.3252341144907, + "y": 539.649936513514, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 199.9479217529297, + "height": 35, + "seed": 528997217, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199492113, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Promo Content", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "YFWN3iRQom9pvuxMav7Qh", + "originalText": "Promo Content", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13353, + "versionNonce": 330723407, + "index": "af", + "isDeleted": false, + "id": "9ADAuprTez7YErl4yaJGr", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 964.3546302196781, + "y": -124.9654459354193, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 268.968687246626, + "height": 602.1990064225485, + "seed": 1469564737, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "veINlbNf9P8TTGUDIGpjZ" + } + ], + "updated": 1753199566063, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ftpKh7Z7VbMqCGXte7uUd", + "focus": -0.04550921853334446, + "gap": 3.7767575250095717 + }, + "endBinding": { + "elementId": "YFWN3iRQom9pvuxMav7Qh", + "focus": 0.43529246606868216, + "gap": 9.7915848309039 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 268.968687246626, + 602.1990064225485 + ] + ] + }, + { + "id": "veINlbNf9P8TTGUDIGpjZ", + "type": "text", + "x": 210.4823905089205, + "y": -59.9217389822125, + "width": 68.85195922851562, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "ag", + "roundness": null, + "seed": 41891617, + "version": 20, + "versionNonce": 1796233391, + "isDeleted": false, + "boundElements": [], + "updated": 1753199440934, + "link": null, + "locked": false, + "text": "write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "9ADAuprTez7YErl4yaJGr", + "originalText": "write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 9484, + "versionNonce": 988440815, + "index": "ah", + "isDeleted": false, + "id": "kVyTfpobAS_LkLIIKVDoQ", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 1099.539018206889, + "y": 889.7249491187374, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 100, + "seed": 1655548673, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "K7w7kdTZoPXrSlm6LSjAS" + }, + { + "id": "KEpaffme3DKPwo1DZJX62", + "type": "arrow" + } + ], + "updated": 1753199492114, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8809, + "versionNonce": 738072783, + "index": "ai", + "isDeleted": false, + "id": "K7w7kdTZoPXrSlm6LSjAS", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 1104.539018206889, + "y": 894.7249491187374, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 206.3319091796875, + "height": 70, + "seed": 1084400353, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199755326, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\narchimate defs", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "kVyTfpobAS_LkLIIKVDoQ", + "originalText": "<>\narchimate defs", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 6734, + "versionNonce": 318372623, + "index": "aj", + "isDeleted": false, + "id": "KEpaffme3DKPwo1DZJX62", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1212.3581516360246, + "y": 883.99792996669, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.7082208868340558, + "height": 246.16725851753677, + "seed": 686661313, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199810937, + "link": null, + "locked": false, + "startBinding": { + "elementId": "kVyTfpobAS_LkLIIKVDoQ", + "focus": -0.014971043863881513, + "gap": 5.727019152047433 + }, + "endBinding": { + "elementId": "YFWN3iRQom9pvuxMav7Qh", + "focus": -0.0770735832741359, + "gap": 10.555943740158114 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -1.7082208868340558, + -246.16725851753677 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 13446, + "versionNonce": 1354187777, + "index": "al", + "isDeleted": false, + "id": "yqjUL8pPQ5cAMFxkHo1H1", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 903.1751131125343, + "y": 88.75716868236162, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 186.0712032641611, + "height": 385.73999240918334, + "seed": 1090052161, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "N7W101NimaqNrfNpCg8MS" + } + ], + "updated": 1753199537876, + "link": null, + "locked": false, + "startBinding": { + "elementId": "dRdrhI9maf35fSxmHUT23", + "focus": -0.5818746109369958, + "gap": 3.1849024494513523 + }, + "endBinding": { + "elementId": "YFWN3iRQom9pvuxMav7Qh", + "focus": -0.4438618853560892, + "gap": 12.527984226488059 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 186.0712032641611, + 385.73999240918334 + ] + ] + }, + { + "id": "N7W101NimaqNrfNpCg8MS", + "type": "text", + "x": 974.7284173047365, + "y": -120.92357169652882, + "width": 68.85195922851562, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "am", + "roundness": null, + "seed": 844443681, + "version": 24, + "versionNonce": 1736347311, + "isDeleted": false, + "boundElements": [], + "updated": 1753199467010, + "link": null, + "locked": false, + "text": "write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "yqjUL8pPQ5cAMFxkHo1H1", + "originalText": "write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 10428, + "versionNonce": 1130113871, + "index": "an", + "isDeleted": false, + "id": "CapZHuvsgIZnpzjpeyBdy", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 720.0183513741995, + "y": 484.43736480873105, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 4169679, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "7RwvKS1f4gQ7DcxuIPRTA" + }, + { + "id": "fqxYw0ViM5RClkAUJht4_", + "type": "arrow" + }, + { + "id": "a6in_CUr2v1URl7bM6kmc", + "type": "arrow" + }, + { + "id": "m9PctchwHH-1I-yzYlulG", + "type": "arrow" + } + ], + "updated": 1753199837907, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9881, + "versionNonce": 1851512175, + "index": "ao", + "isDeleted": false, + "id": "7RwvKS1f4gQ7DcxuIPRTA", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 736.5665694397736, + "y": 519.562156004212, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 219.99586486816406, + "height": 70, + "seed": 33082863, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199515235, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Exhibition Stand\nDesign", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "CapZHuvsgIZnpzjpeyBdy", + "originalText": "Exhibition Stand Design", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 9667, + "versionNonce": 632718369, + "index": "ap", + "isDeleted": false, + "id": "__63r6nDflgY8aTWvNpGJ", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 815.7116404919841, + "y": 771.7962268324644, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 100, + "seed": 1822898191, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "VgxbFiD3y2EwbAyBKfGQ-" + }, + { + "id": "fqxYw0ViM5RClkAUJht4_", + "type": "arrow" + } + ], + "updated": 1753199819452, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9002, + "versionNonce": 460544001, + "index": "aq", + "isDeleted": false, + "id": "VgxbFiD3y2EwbAyBKfGQ-", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 820.7116404919841, + "y": 776.7962268324644, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 142.01596069335938, + "height": 70, + "seed": 1715691055, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199819452, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\n*DESIGN*", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "__63r6nDflgY8aTWvNpGJ", + "originalText": "<>\n*DESIGN*", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 7154, + "versionNonce": 237678561, + "index": "ar", + "isDeleted": false, + "id": "fqxYw0ViM5RClkAUJht4_", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 928.5052860006538, + "y": 766.0692076804169, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 0.9880129264652169, + "height": 133.30841458433144, + "seed": 1102430287, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199819452, + "link": null, + "locked": false, + "startBinding": { + "elementId": "__63r6nDflgY8aTWvNpGJ", + "focus": -0.014971043863879598, + "gap": 5.727019152047546 + }, + "endBinding": { + "elementId": "CapZHuvsgIZnpzjpeyBdy", + "focus": -0.6324967524543346, + "gap": 8.0738458963923 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -0.9880129264652169, + -133.30841458433144 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 13607, + "versionNonce": 1310039791, + "index": "at", + "isDeleted": false, + "id": "a6in_CUr2v1URl7bM6kmc", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 793.6524469688429, + "y": 96.30399760240232, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 2.6206795027012504, + "height": 372.9209274136028, + "seed": 1908650209, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753199862450, + "link": null, + "locked": false, + "startBinding": { + "elementId": "dRdrhI9maf35fSxmHUT23", + "focus": -0.2382321901032551, + "gap": 7.756038492429894 + }, + "endBinding": { + "elementId": "CapZHuvsgIZnpzjpeyBdy", + "focus": -0.3911530581225083, + "gap": 15.212439792725945 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 2.6206795027012504, + 372.9209274136028 + ] + ] + }, + { + "type": "arrow", + "version": 8896, + "versionNonce": 1469477199, + "index": "av", + "isDeleted": false, + "id": "IdHtiWXVE73xKHXQL3h-x", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1101.4187642054244, + "y": -178.67562346988962, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 449.27443464734324, + "height": 199.47406017242292, + "seed": 1183131553, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753199586989, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ftpKh7Z7VbMqCGXte7uUd", + "focus": -0.3508222026495031, + "gap": 13.779420512231354 + }, + "endBinding": { + "elementId": "3TOIjBRpaqRQQpPy0_7Te", + "focus": -0.2913051102435654, + "gap": 5.313761239058749 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 449.27443464734324, + 199.47406017242292 + ] + ] + }, + { + "type": "rectangle", + "version": 2784, + "versionNonce": 874496495, + "isDeleted": false, + "id": "3TOIjBRpaqRQQpPy0_7Te", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1556.0069600918264, + "y": -23.81758759061421, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 337.71514102616004, + "height": 155.0479314321372, + "seed": 27364225, + "groupIds": [ + "nX6RKZlOKYjJk0EEiUzW-" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "tN6wc0LmHtKFNdBvXpsjz" + }, + { + "id": "IdHtiWXVE73xKHXQL3h-x", + "type": "arrow" + }, + { + "id": "p90MMUCtH8YyAtf10YwCz", + "type": "arrow" + }, + { + "id": "yNyADcQt1X0PI1QsUl5HX", + "type": "arrow" + }, + { + "id": "VSzEv3O9J9oDbW6K5wjGR", + "type": "arrow" + }, + { + "id": "SJJR35ib5VfO32dDNpzN0", + "type": "arrow" + }, + { + "id": "2x5DQgv-ZcVmb2JB3-8Oo", + "type": "arrow" + }, + { + "id": "wBqXEIhSTVpueV_yWSTId", + "type": "arrow" + } + ], + "updated": 1753200486911, + "link": null, + "locked": false, + "index": "aw" + }, + { + "type": "text", + "version": 2548, + "versionNonce": 1149356673, + "isDeleted": false, + "id": "tN6wc0LmHtKFNdBvXpsjz", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1587.4093304095938, + "y": 34.496452882523826, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 274.910400390625, + "height": 38.41985048586114, + "seed": 122057569, + "groupIds": [ + "nX6RKZlOKYjJk0EEiUzW-" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199580300, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Execute Exhibition", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "3TOIjBRpaqRQQpPy0_7Te", + "originalText": "Execute Exhibition", + "lineHeight": 1.25, + "baseline": 18, + "index": "ax", + "autoResize": true + }, + { + "id": "xf47zFKpXxWaO5NGqJPab", + "type": "line", + "x": 1878.7325400164932, + "y": 4.642200460523156, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "nX6RKZlOKYjJk0EEiUzW-" + ], + "frameId": null, + "index": "ay", + "roundness": null, + "seed": 2076401473, + "version": 3623, + "versionNonce": 1569094081, + "isDeleted": false, + "boundElements": [], + "updated": 1753199572682, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "arrow", + "version": 9016, + "versionNonce": 929823617, + "index": "az", + "isDeleted": false, + "id": "p90MMUCtH8YyAtf10YwCz", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 929.9134219662437, + "y": 26.281533004393737, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 616.7087879601409, + "height": 41.22244744211696, + "seed": 2123868559, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753199594753, + "link": null, + "locked": false, + "startBinding": { + "elementId": "dRdrhI9maf35fSxmHUT23", + "focus": -0.0449619546251227, + "gap": 11.928307282580363 + }, + "endBinding": { + "elementId": "3TOIjBRpaqRQQpPy0_7Te", + "focus": -0.2895118105958054, + "gap": 9.384750165441801 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 616.7087879601409, + 41.22244744211696 + ] + ] + }, + { + "type": "arrow", + "version": 9221, + "versionNonce": 929895745, + "index": "b00", + "isDeleted": false, + "id": "yNyADcQt1X0PI1QsUl5HX", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 671.9897484973899, + "y": 248.33736047166855, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 873.1207310550144, + "height": 136.2628699787697, + "seed": 900845377, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753199608055, + "link": null, + "locked": false, + "startBinding": { + "elementId": "eEgDNSALsuWU3tVZA3lLD", + "focus": 0.4063036505304097, + "gap": 6.256362911840711 + }, + "endBinding": { + "elementId": "3TOIjBRpaqRQQpPy0_7Te", + "focus": -0.2918361662726319, + "gap": 12.162606478529094 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 873.1207310550144, + -136.2628699787697 + ] + ] + }, + { + "type": "rectangle", + "version": 2834, + "versionNonce": 1766214017, + "isDeleted": false, + "id": "uW_yaS1_5kos2BABieB6J", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2083.4544657529827, + "y": -18.49140122388488, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 337.71514102616004, + "height": 155.0479314321372, + "seed": 1688988865, + "groupIds": [ + "7vYDlncqQp2yhDypPiO6q" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "SP5o7J_mI39380Q3zuHwf" + }, + { + "id": "VSzEv3O9J9oDbW6K5wjGR", + "type": "arrow" + }, + { + "id": "fxZOIIsrPUWGkg80kS6pA", + "type": "arrow" + } + ], + "updated": 1753199729830, + "link": null, + "locked": false, + "index": "b01" + }, + { + "type": "text", + "version": 2610, + "versionNonce": 1907830863, + "isDeleted": false, + "id": "SP5o7J_mI39380Q3zuHwf", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 2102.211419810985, + "y": 39.82263924925316, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 300.20123291015625, + "height": 38.41985048586114, + "seed": 1962060961, + "groupIds": [ + "7vYDlncqQp2yhDypPiO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199616415, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Report on Exhibition", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "uW_yaS1_5kos2BABieB6J", + "originalText": "Report on Exhibition", + "lineHeight": 1.25, + "baseline": 18, + "index": "b02", + "autoResize": true + }, + { + "id": "EKIsjRO4KA4CDdDcNsdNW", + "type": "line", + "x": 2406.1800456776496, + "y": 9.968386827252488, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "7vYDlncqQp2yhDypPiO6q" + ], + "frameId": null, + "index": "b03", + "roundness": null, + "seed": 1914073217, + "version": 3675, + "versionNonce": 176164559, + "isDeleted": false, + "boundElements": [], + "updated": 1753199611719, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "arrow", + "version": 9323, + "versionNonce": 1771539439, + "index": "b04", + "isDeleted": false, + "id": "VSzEv3O9J9oDbW6K5wjGR", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1910.7353244388792, + "y": 60.617219843154885, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 160.90165141607758, + "height": 3.8479782637660946, + "seed": 1017188559, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753199627537, + "link": null, + "locked": false, + "startBinding": { + "elementId": "3TOIjBRpaqRQQpPy0_7Te", + "focus": 0.030231206670596193, + "gap": 17.01322332089285 + }, + "endBinding": { + "elementId": "uW_yaS1_5kos2BABieB6J", + "focus": -0.11958350278397462, + "gap": 11.817489898025997 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 160.90165141607758, + 3.8479782637660946 + ] + ] + }, + { + "type": "rectangle", + "version": 10399, + "versionNonce": 1568635393, + "index": "b05", + "isDeleted": false, + "id": "fBhhGVx4NwUvgtSsEiMq3", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 1618.4169149851318, + "y": 488.7748994208763, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 1037483855, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "UNcGgZBAZFGMKOi-zoKk9" + }, + { + "id": "SJJR35ib5VfO32dDNpzN0", + "type": "arrow" + }, + { + "id": "fxZOIIsrPUWGkg80kS6pA", + "type": "arrow" + }, + { + "id": "9_cCAGi9w5Z5Tn91DRvE0", + "type": "arrow" + } + ], + "updated": 1753199894080, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9811, + "versionNonce": 42485231, + "index": "b06", + "isDeleted": false, + "id": "UNcGgZBAZFGMKOi-zoKk9", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 1660.2210992372293, + "y": 541.3996906163574, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 169.4839324951172, + "height": 35, + "seed": 1317010799, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199748354, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Sales Leads", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "fBhhGVx4NwUvgtSsEiMq3", + "originalText": "Sales Leads", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13477, + "versionNonce": 478654479, + "index": "b07", + "isDeleted": false, + "id": "SJJR35ib5VfO32dDNpzN0", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 1728.8607064791556, + "y": 137.05574107969707, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 18.015684707056607, + "height": 346.28911992709857, + "seed": 261912463, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "6pxJNwrHcsWCxJ_9RcuhV" + } + ], + "updated": 1753199748354, + "link": null, + "locked": false, + "startBinding": { + "elementId": "3TOIjBRpaqRQQpPy0_7Te", + "focus": 0.0012494433226589604, + "gap": 13.068620934496835 + }, + "endBinding": { + "elementId": "fBhhGVx4NwUvgtSsEiMq3", + "focus": 0.04504510117032011, + "gap": 5.430038414080627 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 18.015684707056607, + 346.28911992709857 + ] + ] + }, + { + "id": "6pxJNwrHcsWCxJ_9RcuhV", + "type": "text", + "x": 433.04563911513117, + "y": 284.19231951909495, + "width": 68.85195922851562, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "b08", + "roundness": null, + "seed": 124038575, + "version": 20, + "versionNonce": 1896469601, + "isDeleted": false, + "boundElements": [], + "updated": 1753199632235, + "link": null, + "locked": false, + "text": "write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "SJJR35ib5VfO32dDNpzN0", + "originalText": "write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13161, + "versionNonce": 861197871, + "index": "b0B", + "isDeleted": false, + "id": "fxZOIIsrPUWGkg80kS6pA", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 1801.1251599518332, + "y": 481.1423528214975, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 416.0115836598534, + "height": 341.69092864506837, + "seed": 688228865, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "oC3VgeZkLqb0EU2u2cix9" + } + ], + "updated": 1753199748355, + "link": null, + "locked": false, + "startBinding": { + "elementId": "fBhhGVx4NwUvgtSsEiMq3", + "focus": -0.18163717792957257, + "gap": 7.632546599378798 + }, + "endBinding": { + "elementId": "uW_yaS1_5kos2BABieB6J", + "focus": -0.23867407782682518, + "gap": 6.69288076884547 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 416.0115836598534, + -341.69092864506837 + ] + ] + }, + { + "id": "oC3VgeZkLqb0EU2u2cix9", + "type": "text", + "x": 2000.574924010036, + "y": 294.8010252813537, + "width": 59.07997131347656, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "b0C", + "roundness": null, + "seed": 1319543265, + "version": 39, + "versionNonce": 352466415, + "isDeleted": false, + "boundElements": [], + "updated": 1753199744623, + "link": null, + "locked": false, + "text": "read", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "fxZOIIsrPUWGkg80kS6pA", + "originalText": "read", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 9364, + "versionNonce": 378557377, + "index": "b0D", + "isDeleted": false, + "id": "EEGj9z6oD-R3Muw_iWCwc", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 715.0463623935312, + "y": 962.7644414200971, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 100, + "seed": 577492321, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "yhi43BHNJU6PHoTPkOSRa", + "type": "text" + }, + { + "id": "m9PctchwHH-1I-yzYlulG", + "type": "arrow" + } + ], + "updated": 1753199829337, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8705, + "versionNonce": 1538405281, + "index": "b0E", + "isDeleted": false, + "id": "yhi43BHNJU6PHoTPkOSRa", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 720.0463623935312, + "y": 967.7644414200971, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 119.05595397949219, + "height": 70, + "seed": 267157825, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199829337, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\ncontract", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "EEGj9z6oD-R3Muw_iWCwc", + "originalText": "<>\ncontract", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 6336, + "versionNonce": 905064513, + "index": "b0F", + "isDeleted": false, + "id": "m9PctchwHH-1I-yzYlulG", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 779.862651518927, + "y": 956.3837010252472, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.525259430296387, + "height": 322.5198567979886, + "seed": 70037793, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199859899, + "link": null, + "locked": false, + "startBinding": { + "elementId": "EEGj9z6oD-R3Muw_iWCwc", + "focus": -0.43746496580455074, + "gap": 6.380740394849909 + }, + "endBinding": { + "elementId": "CapZHuvsgIZnpzjpeyBdy", + "focus": 0.510739985571354, + "gap": 9.176897027565474 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 1.525259430296387, + -322.5198567979886 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 9587, + "versionNonce": 1085628417, + "index": "b0G", + "isDeleted": false, + "id": "pdbKFmM20P-XjroCJfQzG", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 1618.5912638908144, + "y": 891.4679683769464, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 100, + "seed": 430355023, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "QcEnXejwkMnbW_Orqe91J" + }, + { + "id": "9_cCAGi9w5Z5Tn91DRvE0", + "type": "arrow" + } + ], + "updated": 1753199884744, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8923, + "versionNonce": 1268921519, + "index": "b0H", + "isDeleted": false, + "id": "QcEnXejwkMnbW_Orqe91J", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 1623.5912638908144, + "y": 896.4679683769464, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 158.25595092773438, + "height": 70, + "seed": 836341871, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753199890611, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nsales leads", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "pdbKFmM20P-XjroCJfQzG", + "originalText": "<>\nsales leads", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 6968, + "versionNonce": 1444137679, + "index": "b0I", + "isDeleted": false, + "id": "9_cCAGi9w5Z5Tn91DRvE0", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1731.4103973199499, + "y": 885.7409492248989, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.3711458710140505, + "height": 247.5870593417485, + "seed": 407612047, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753200042915, + "link": null, + "locked": false, + "startBinding": { + "elementId": "pdbKFmM20P-XjroCJfQzG", + "focus": -0.014971043863878767, + "gap": 5.727019152047433 + }, + "endBinding": { + "elementId": "fBhhGVx4NwUvgtSsEiMq3", + "focus": 0.12102876755846946, + "gap": 9.129408071312014 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -1.3711458710140505, + -247.5870593417485 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 2833, + "versionNonce": 1876993871, + "isDeleted": false, + "id": "0SD8ColAXeS82oqH8p708", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1532.1531596330874, + "y": -359.2931599125444, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 337.71514102616004, + "height": 155.0479314321372, + "seed": 1410967951, + "groupIds": [ + "_sAd82gji5pajmR78iK0M" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "My_MDKRAbJ8LLTR8LjQkU" + }, + { + "id": "2x5DQgv-ZcVmb2JB3-8Oo", + "type": "arrow" + }, + { + "id": "wBqXEIhSTVpueV_yWSTId", + "type": "arrow" + } + ], + "updated": 1753200481794, + "link": null, + "locked": false, + "index": "b0J" + }, + { + "type": "text", + "version": 2618, + "versionNonce": 488325313, + "isDeleted": false, + "id": "My_MDKRAbJ8LLTR8LjQkU", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1557.117572187183, + "y": -300.97911943940636, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 287.78631591796875, + "height": 38.41985048586114, + "seed": 1768660911, + "groupIds": [ + "_sAd82gji5pajmR78iK0M" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1753200446549, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Postpone Exhibition", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "0SD8ColAXeS82oqH8p708", + "originalText": "Postpone Exhibition", + "lineHeight": 1.25, + "baseline": 18, + "index": "b0K", + "autoResize": true + }, + { + "id": "KLWfPEudn2MQoinImTgVT", + "type": "line", + "x": 1854.8787395577542, + "y": -330.83337186140704, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "_sAd82gji5pajmR78iK0M" + ], + "frameId": null, + "index": "b0L", + "roundness": null, + "seed": 156881359, + "version": 3672, + "versionNonce": 207061153, + "isDeleted": false, + "boundElements": [], + "updated": 1753200446549, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "arrow", + "version": 9052, + "versionNonce": 309639265, + "index": "b0M", + "isDeleted": false, + "id": "2x5DQgv-ZcVmb2JB3-8Oo", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1782.5552924207498, + "y": -30.523651105980775, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 5.0535018208054225, + "height": 176.01409311981672, + "seed": 1378375745, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753200476634, + "link": null, + "locked": false, + "startBinding": { + "elementId": "3TOIjBRpaqRQQpPy0_7Te", + "focus": 0.3513437965898306, + "gap": 6.706063515366566 + }, + "endBinding": { + "elementId": "0SD8ColAXeS82oqH8p708", + "focus": -0.4344730769353457, + "gap": 2.29251574539029 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + -5.0535018208054225, + -176.01409311981672 + ] + ] + }, + { + "type": "arrow", + "version": 9241, + "versionNonce": 1975925793, + "index": "b0N", + "isDeleted": false, + "id": "wBqXEIhSTVpueV_yWSTId", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1668.1098715905982, + "y": -198.58671153871734, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 1.079569265137934, + "height": 167.81174688838678, + "seed": 999871521, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1753200487432, + "link": null, + "locked": false, + "startBinding": { + "elementId": "0SD8ColAXeS82oqH8p708", + "focus": 0.1974298544871501, + "gap": 5.658516941689868 + }, + "endBinding": { + "elementId": "3TOIjBRpaqRQQpPy0_7Te", + "focus": -0.32553618223123293, + "gap": 6.95737705971635 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 1.079569265137934, + 167.81174688838678 + ] + ] + }, + { + "id": "ptrCKhcn5GQlV3ZFvrpPJ", + "type": "text", + "x": -51.82465082630756, + "y": 1119.1512497230324, + "width": 994.324654339314, + "height": 462.49935164833863, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0P", + "roundness": null, + "seed": 1302285089, + "version": 435, + "versionNonce": 97686081, + "isDeleted": false, + "boundElements": null, + "updated": 1753201891504, + "link": null, + "locked": false, + "text": "Identify use-cases for platform integration:\n- github (source control)\n- telegram\n- office (e.g. outlook)\n- Kommo\n- websites\n- social media feeds\n", + "fontSize": 46.24993516483386, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Identify use-cases for platform integration:\n- github (source control)\n- telegram\n- office (e.g. outlook)\n- Kommo\n- websites\n- social media feeds\n", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "a3iQjBUSX2YBR-uc2WvHW", + "type": "text", + "x": 2016.589314174978, + "y": 548.184168333468, + "width": 771.6905697761599, + "height": 358.9435167246859, + "angle": 0, + "strokeColor": "#e03131", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Q", + "roundness": null, + "seed": 393883009, + "version": 466, + "versionNonce": 622740897, + "isDeleted": false, + "boundElements": [], + "updated": 1753205446790, + "link": null, + "locked": false, + "text": "Identify use-cases for platform integration:\n- github (source control)\n- telegram\n- office (e.g. outlook)\n- Kommo\n- websites\n- social media feeds\n", + "fontSize": 35.89435167246857, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Identify use-cases for platform integration:\n- github (source control)\n- telegram\n- office (e.g. outlook)\n- Kommo\n- websites\n- social media feeds\n", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file diff --git a/applications/exhibition-management/scenarios/exhibition_management_sales_lead_scenario.md b/applications/exhibition-management/scenarios/exhibition_management_sales_lead_scenario.md new file mode 100644 index 0000000..c888487 --- /dev/null +++ b/applications/exhibition-management/scenarios/exhibition_management_sales_lead_scenario.md @@ -0,0 +1,34 @@ +# Scenario: Sales Lead Harvesting + +## Business Context +Coordinate sales lead collection and management across multiple channels during and around industry events, integrating various data sources for comprehensive lead tracking. + +## Input Package +- **Event**: Industry conference with multi-channel lead generation +- **Lead Sources**: + - Email inquiries (pre/post event via email agent) + - Structured Telegram messages from staff to dedicated channel +- **Objectives**: Capture, qualify, and route leads efficiently +- **Integration**: CRM systems and lead scoring workflows + +## Agent Pipeline +`domain-analyst-agent` → `exhibition-manager-agent` → `sales-lead-agent` → `archimate-modeller-agent` → `test-agent` + +## Expected Process +1. **Requirement Analysis** (domain-analyst-agent): Define lead data structures and business rules +2. **Event Coordination** (exhibition-manager-agent): Create event timeline and resource allocation +3. **Lead Processing** (sales-lead-agent): Design multi-channel capture and qualification workflows +4. **Architecture Integration** (archimate-modeller-agent): Model complete lead management system +5. **Validation** (test-agent): Ensure lead processing meets business objectives and compliance + +## Expected Outputs +- Multi-channel lead capture configuration +- Automated lead qualification workflows +- CRM integration with scoring and routing +- Real-time lead tracking dashboard +- Channel performance analytics + +## Success Metrics +- Lead capture time reduced to real-time +- Lead qualification automated +- Multi-channel coordination streamlined \ No newline at end of file diff --git a/applications/job-scheduling/README.md b/applications/job-scheduling/README.md new file mode 100644 index 0000000..0dcc05f --- /dev/null +++ b/applications/job-scheduling/README.md @@ -0,0 +1,22 @@ +# Agent Aware Job Scheduling + +## Purpose +Accelerates the planning and replanning of jobs using constraint-based optimization (hours → minutes). + +## Inputs +Scheduling constraints and current schedules + +## Outputs +Optimized job schedules and updated architecture models + +## Agent Pipeline +Uses: `domain-analyst-agent` → `job-scheduler-agent` → `archimate-modeller-agent` → `devops-engineer-agent` → `test-agent` + +## Dependencies +- Equipment and resource models +- Scheduling constraint libraries +- [ISA95 specification](https://reference.opcfoundation.org/ISA95JOBCONTROL/v200) ([GitHub implementation](https://github.com/OPCFoundation/UA-Nodeset/tree/latest/ISA95-JOBCONTROL)) +- Product specification (e.g. Drug Manufacturing File, for pharma manufacturing job scheduling) + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/applications/job-scheduling/model/agent-aware-job-scheduling.excalidraw b/applications/job-scheduling/model/agent-aware-job-scheduling.excalidraw new file mode 100644 index 0000000..acb4bd4 --- /dev/null +++ b/applications/job-scheduling/model/agent-aware-job-scheduling.excalidraw @@ -0,0 +1,2786 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 3646, + "versionNonce": 1854516724, + "isDeleted": false, + "id": "oDvbjY90zhZzR6HjTwFPk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9094.195988269545, + "y": 3783.3841575497377, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 1984.5339937419258, + "height": 1685.8602331007671, + "seed": 562979060, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "E3-SSWdoL2Ou5Nxr7ry7V", + "type": "text" + } + ], + "updated": 1754002237323, + "link": null, + "locked": false, + "index": "bNf" + }, + { + "type": "text", + "version": 3953, + "versionNonce": 1520917324, + "isDeleted": false, + "id": "E3-SSWdoL2Ou5Nxr7ry7V", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10588.83676301733, + "y": 5356.133192750618, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 484.8932189941406, + "height": 108.11119789988726, + "seed": 8266356, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002237323, + "link": null, + "locked": false, + "fontSize": 43.244479159954906, + "fontFamily": 1, + "text": "Grouping:\nJob Scheduling Process", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "oDvbjY90zhZzR6HjTwFPk", + "originalText": "Grouping:\nJob Scheduling Process", + "lineHeight": 1.25, + "baseline": 18, + "index": "bNg", + "autoResize": true + }, + { + "type": "rectangle", + "version": 9988, + "versionNonce": 16264524, + "index": "bNj", + "isDeleted": false, + "id": "qxS9U7IYBD1MLRnLlZARQ", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9271.085532980327, + "y": 4856.044532508283, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 1474228508, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "vM9lITrcwnJSf7EvufSBt" + }, + { + "id": "AMvuTe4PPSKr7kV2-w7an", + "type": "arrow" + } + ], + "updated": 1754001251246, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9329, + "versionNonce": 647799756, + "index": "bNk", + "isDeleted": false, + "id": "vM9lITrcwnJSf7EvufSBt", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9290.0277253501, + "y": 4891.169323703763, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 215.20791625976562, + "height": 70, + "seed": 1905946012, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001251246, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Data Object: \nCustomer Order", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "qxS9U7IYBD1MLRnLlZARQ", + "originalText": "Data Object: \nCustomer Order", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 9669, + "versionNonce": 1481537484, + "index": "bNl", + "isDeleted": false, + "id": "lbDIDtqIU7nYk-Ehnkb4T", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 10114.884163515906, + "y": 5217.863810398492, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 115, + "seed": 1451197212, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "vVYlkMNw2R2rMpS4kdt8j" + }, + { + "id": "lvJJMbRCl59o2wBplh8wi", + "type": "arrow" + } + ], + "updated": 1754002174924, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8992, + "versionNonce": 861125708, + "index": "bNm", + "isDeleted": false, + "id": "vVYlkMNw2R2rMpS4kdt8j", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 10119.884163515906, + "y": 5222.863810398492, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 175.19590759277344, + "height": 105, + "seed": 844677020, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002262559, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nArtifact:\njob-order-file", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "lbDIDtqIU7nYk-Ehnkb4T", + "originalText": "<>\nArtifact:\njob-order-file", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 12902, + "versionNonce": 1030638156, + "index": "bNn", + "isDeleted": false, + "id": "AMvuTe4PPSKr7kV2-w7an", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 9418.80414194235, + "y": 4709.628034191227, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.367543213918907, + "height": 139.24220351150507, + "seed": 1273661596, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "xfrsVygWMaLhg-ZvKESde" + } + ], + "updated": 1754001251246, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Iy01FuR_PC5J6NZuA_Vqc", + "focus": -0.15054322868887096, + "gap": 1 + }, + "endBinding": { + "elementId": "qxS9U7IYBD1MLRnLlZARQ", + "focus": 0.1498532814929592, + "gap": 7.1742948055516536 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -1.367543213918907, + 139.24220351150507 + ] + ] + }, + { + "id": "xfrsVygWMaLhg-ZvKESde", + "type": "text", + "x": 9270.492876380578, + "y": 4991.107195591647, + "width": 143.63992309570312, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bNo", + "roundness": null, + "seed": 524752156, + "version": 78, + "versionNonce": 1397132876, + "isDeleted": false, + "boundElements": [], + "updated": 1754000900257, + "link": null, + "locked": false, + "text": "read/write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "AMvuTe4PPSKr7kV2-w7an", + "originalText": "read/write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 10521, + "versionNonce": 206797644, + "index": "bNr", + "isDeleted": false, + "id": "pW3xlXXhQy_vpuT8kfNa_", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 10110.37256585166, + "y": 4866.1016635772185, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 223.48448950719157, + "height": 140.2495823909621, + "seed": 655886236, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "_0oYqo3M9o3mKm3yFK3dF" + }, + { + "id": "lvJJMbRCl59o2wBplh8wi", + "type": "arrow" + }, + { + "id": "cZCIRRqvGkBK-iBTQGKrL", + "type": "arrow" + } + ], + "updated": 1754002174924, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9887, + "versionNonce": 90059212, + "index": "bNs", + "isDeleted": false, + "id": "_0oYqo3M9o3mKm3yFK3dF", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 10122.756847043243, + "y": 4901.226454772699, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 198.71592712402344, + "height": 70, + "seed": 1449964572, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002174924, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Data Object: \nJob Order", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "pW3xlXXhQy_vpuT8kfNa_", + "originalText": "Data Object: \nJob Order", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 7365, + "versionNonce": 1633169228, + "index": "bNv", + "isDeleted": false, + "id": "lvJJMbRCl59o2wBplh8wi", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10230.181872761925, + "y": 5208.445388579339, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.742002523591509, + "height": 199.86367426429388, + "seed": 2000247196, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002193348, + "link": null, + "locked": false, + "startBinding": { + "elementId": "lbDIDtqIU7nYk-Ehnkb4T", + "focus": 0.008223718707289841, + "gap": 9.418421819153082 + }, + "endBinding": { + "elementId": "pW3xlXXhQy_vpuT8kfNa_", + "focus": -0.05068304164274797, + "gap": 2.2304683468646544 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -1.742002523591509, + -199.86367426429388 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 7972, + "versionNonce": 2146713588, + "index": "bNy", + "isDeleted": false, + "id": "RVE6xaFfxWqLCYLkKGsga", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 9523.403192181971, + "y": 4586.634635087118, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 10.74803660332691, + "height": 125.93827086404326, + "seed": 832690204, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "BO6xNqlClwj5uP-OVtD1l" + } + ], + "updated": 1754002118050, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Iy01FuR_PC5J6NZuA_Vqc", + "focus": 0.7090726291347011, + "gap": 7.670022616267488 + }, + "endBinding": { + "elementId": "xQKRXwlD6pJpnxFY8kwk8", + "focus": 0.5372946332546432, + "gap": 10.977451839399691 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 10.74803660332691, + -125.93827086404326 + ] + ] + }, + { + "id": "BO6xNqlClwj5uP-OVtD1l", + "type": "text", + "x": 12018.42924057208, + "y": 4625.280467009468, + "width": 86.71597290039062, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bNz", + "roundness": null, + "seed": 6845596, + "version": 97, + "versionNonce": 1209818828, + "isDeleted": false, + "boundElements": [], + "updated": 1754000974099, + "link": null, + "locked": false, + "text": "serves", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "RVE6xaFfxWqLCYLkKGsga", + "originalText": "serves", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 8626, + "versionNonce": 790278004, + "index": "bO0", + "isDeleted": false, + "id": "J_AWiiya8iQSQLeAczAAL", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 9743.271680510028, + "y": 4603.6260047844435, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 2.207974373815887, + "height": 147.75527365982998, + "seed": 1697087772, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002148202, + "link": null, + "locked": false, + "startBinding": { + "elementId": "cCvXwFdixYkPwxU_UeLT9", + "focus": -0.8578480671382334, + "gap": 10.196403268117137 + }, + "endBinding": { + "elementId": "xQKRXwlD6pJpnxFY8kwk8", + "focus": -0.6106948821910441, + "gap": 6.1518187409383245 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -2.207974373815887, + -147.75527365982998 + ] + ] + }, + { + "type": "arrow", + "version": 8805, + "versionNonce": 1527038540, + "index": "bO1", + "isDeleted": false, + "id": "qvLPYDcUWqwUthe70DTSH", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 10127.13444823964, + "y": 4599.964246833282, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 5.0226321107875265, + "height": 399.36348805372654, + "seed": 1733361052, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002145388, + "link": null, + "locked": false, + "startBinding": { + "elementId": "cCvXwFdixYkPwxU_UeLT9", + "focus": -0.028698272508521867, + "gap": 13.858161219278372 + }, + "endBinding": { + "elementId": "zd9eUm-CxCG5IdKeVwYks", + "focus": 0.10816658845350638, + "gap": 2.3892038136127667 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -5.0226321107875265, + -399.36348805372654 + ] + ] + }, + { + "type": "arrow", + "version": 8558, + "versionNonce": 138470860, + "index": "bO2", + "isDeleted": false, + "id": "FPtBOZIDsYATonvIVrYLx", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 9286.205163408791, + "y": 4289.709238182882, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 174.32540654727745, + "height": 41.49619703564622, + "seed": 1343679004, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002160872, + "link": null, + "locked": false, + "startBinding": { + "elementId": "EsFanMR23SwE7ltavz5r7", + "focus": 0.14264041033515135, + "gap": 5.916527118314213 + }, + "endBinding": { + "elementId": "xQKRXwlD6pJpnxFY8kwk8", + "focus": -0.005628464613634365, + "gap": 7.322415586380996 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 174.32540654727745, + 41.49619703564622 + ] + ] + }, + { + "type": "arrow", + "version": 9246, + "versionNonce": 583224652, + "index": "bO4", + "isDeleted": false, + "id": "LlzaN_rDeD-StKi80AZZh", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 9820.181873933705, + "y": 4397.377992791705, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 619.0809113446248, + "height": 112.76654688977032, + "seed": 1785920540, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002127684, + "link": null, + "locked": false, + "startBinding": { + "elementId": "xQKRXwlD6pJpnxFY8kwk8", + "focus": 0.47125568597723616, + "gap": 17.21263310689028 + }, + "endBinding": { + "elementId": "6wRFuHw6WS0niwAH0JmpV", + "focus": 0.09052029451149976, + "gap": 8.543908938117966 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 619.0809113446248, + -112.76654688977032 + ] + ] + }, + { + "type": "arrow", + "version": 9287, + "versionNonce": 499333580, + "index": "bO4V", + "isDeleted": false, + "id": "FTBtKj2RFAYke8VDifN9P", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 10305.850359756909, + "y": 4142.0700575489955, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 134.001632382995, + "height": 72.55834336958651, + "seed": 1554378100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002123603, + "link": null, + "locked": false, + "startBinding": { + "elementId": "zd9eUm-CxCG5IdKeVwYks", + "focus": -0.4502167102137894, + "gap": 8.566346532878015 + }, + "endBinding": { + "elementId": "6wRFuHw6WS0niwAH0JmpV", + "focus": -0.2736824157250028, + "gap": 8.241491511645997 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 134.001632382995, + 72.55834336958651 + ] + ] + }, + { + "type": "arrow", + "version": 8728, + "versionNonce": 217810804, + "index": "bO5", + "isDeleted": false, + "id": "mwxZeaF4Kq_V7As7gwzJp", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 10483.591979414075, + "y": 4613.723029213172, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 20.168598001881037, + "height": 274.48572887227056, + "seed": 228996892, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002101772, + "link": null, + "locked": false, + "startBinding": { + "elementId": "cCvXwFdixYkPwxU_UeLT9", + "focus": 0.7434004089476708, + "gap": 1 + }, + "endBinding": { + "elementId": "6wRFuHw6WS0niwAH0JmpV", + "focus": 0.5999600393881114, + "gap": 5.9056198575553935 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 20.168598001881037, + -274.48572887227056 + ] + ] + }, + { + "type": "text", + "version": 3644, + "versionNonce": 56549492, + "isDeleted": false, + "id": "nYt-hRDFvmSvMVxKWXR2p", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9137.973082596169, + "y": 3816.603616155699, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1060.961669921875, + "height": 169.43573414501193, + "seed": 1870923044, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002042171, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Use-case: usecase-updating-job-schedule (json) \ntimothy@agileintegrator.com\n31-July-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Use-case: usecase-updating-job-schedule (json) \ntimothy@agileintegrator.com\n31-July-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bO6", + "autoResize": true + }, + { + "type": "rectangle", + "version": 2696, + "versionNonce": 975873228, + "isDeleted": false, + "id": "xQKRXwlD6pJpnxFY8kwk8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9467.127800792325, + "y": 4294.670980951538, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 337.71514102616004, + "height": 155.0479314321372, + "seed": 1710711452, + "groupIds": [ + "-K6ow-UH6KD9xHKIXFGdT" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "HqizgZWf17ng2pxgAhVCd" + }, + { + "id": "FPtBOZIDsYATonvIVrYLx", + "type": "arrow" + }, + { + "id": "J_AWiiya8iQSQLeAczAAL", + "type": "arrow" + }, + { + "id": "LlzaN_rDeD-StKi80AZZh", + "type": "arrow" + }, + { + "id": "RVE6xaFfxWqLCYLkKGsga", + "type": "arrow" + } + ], + "updated": 1754002113842, + "link": null, + "locked": false, + "index": "bOA" + }, + { + "type": "text", + "version": 2407, + "versionNonce": 463141580, + "isDeleted": false, + "id": "HqizgZWf17ng2pxgAhVCd", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9501.895085050523, + "y": 4333.7750961817455, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 1453895452, + "groupIds": [ + "-K6ow-UH6KD9xHKIXFGdT" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002106732, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nReceive Order", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "xQKRXwlD6pJpnxFY8kwk8", + "originalText": "Business function:\nReceive Order", + "lineHeight": 1.25, + "baseline": 18, + "index": "bOB", + "autoResize": true + }, + { + "id": "sxlBX7oYmCjYqBn2t-JcA", + "type": "line", + "x": 9789.853380716993, + "y": 4323.130769002675, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "-K6ow-UH6KD9xHKIXFGdT" + ], + "frameId": null, + "index": "bOC", + "roundness": null, + "seed": 746351516, + "version": 3539, + "versionNonce": 953234636, + "isDeleted": false, + "boundElements": [], + "updated": 1754002106732, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 2666, + "versionNonce": 2114129780, + "isDeleted": false, + "id": "6wRFuHw6WS0niwAH0JmpV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10447.806694216448, + "y": 4188.813237252577, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 325.79971197539163, + "height": 147.89867400167594, + "seed": 327412900, + "groupIds": [ + "VfZbS_EgPeKaRG_lbg6MU" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "Y-tNBwhZLCVyvjsH30-FT" + }, + { + "id": "mwxZeaF4Kq_V7As7gwzJp", + "type": "arrow" + }, + { + "id": "FTBtKj2RFAYke8VDifN9P", + "type": "arrow" + }, + { + "id": "LlzaN_rDeD-StKi80AZZh", + "type": "arrow" + }, + { + "id": "Darx6zH26AroloweALXUZ", + "type": "arrow" + } + ], + "updated": 1754002212461, + "link": null, + "locked": false, + "index": "bOG" + }, + { + "type": "text", + "version": 2371, + "versionNonce": 1369587956, + "isDeleted": false, + "id": "Y-tNBwhZLCVyvjsH30-FT", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10476.616263949261, + "y": 4224.342723767554, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 1294383140, + "groupIds": [ + "VfZbS_EgPeKaRG_lbg6MU" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001900291, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nUpdate Schedule", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "6wRFuHw6WS0niwAH0JmpV", + "originalText": "Business function:\nUpdate Schedule", + "lineHeight": 1.25, + "baseline": 18, + "index": "bOH", + "autoResize": true + }, + { + "id": "X8f4X0696rqtl0f7FCTMe", + "type": "line", + "x": 10758.919292896051, + "y": 4217.273025303717, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "VfZbS_EgPeKaRG_lbg6MU" + ], + "frameId": null, + "index": "bOI", + "roundness": null, + "seed": 1868829604, + "version": 3415, + "versionNonce": 54788556, + "isDeleted": false, + "boundElements": [], + "updated": 1754001818503, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3286, + "versionNonce": 2045480052, + "index": "bOJ", + "isDeleted": false, + "id": "Iy01FuR_PC5J6NZuA_Vqc", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 9223.505253445439, + "y": 4594.304657703386, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 340.3676103637019, + "height": 115, + "seed": 1524757708, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "TnzqjaptKt4MOj-bP6fnT" + }, + { + "id": "AMvuTe4PPSKr7kV2-w7an", + "type": "arrow" + }, + { + "id": "RVE6xaFfxWqLCYLkKGsga", + "type": "arrow" + } + ], + "updated": 1754001244642, + "link": null, + "locked": false + }, + { + "id": "TnzqjaptKt4MOj-bP6fnT", + "type": "text", + "x": 9267.647119845551, + "y": 4599.304657703386, + "width": 252.08387756347656, + "height": 105, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bOK", + "roundness": null, + "seed": 1054964556, + "version": 1002, + "versionNonce": 1598436428, + "isDeleted": false, + "boundElements": [], + "updated": 1754001149469, + "link": null, + "locked": false, + "text": "Application Service\nOrder Management\nService", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Iy01FuR_PC5J6NZuA_Vqc", + "originalText": "Application Service\nOrder Management Service", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 8771, + "versionNonce": 1115467596, + "index": "bOL", + "isDeleted": false, + "id": "5hVHld2-xr3uN9v2hhF9o", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 9287.33877742457, + "y": 4264.904906071475, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 666.1134795332182, + "height": 168.21650119358492, + "seed": 453175756, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "OOZ4FuqyA9I808Y_ZrGQV" + } + ], + "updated": 1754002160872, + "link": null, + "locked": false, + "startBinding": { + "elementId": "EsFanMR23SwE7ltavz5r7", + "focus": -0.00167656930559912, + "gap": 5.286441227540822 + }, + "endBinding": { + "elementId": "zd9eUm-CxCG5IdKeVwYks", + "focus": 0.5787987768045997, + "gap": 6.784763567486152 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 666.1134795332182, + -168.21650119358492 + ] + ] + }, + { + "id": "OOZ4FuqyA9I808Y_ZrGQV", + "type": "text", + "x": 9480.264933482571, + "y": 4116.568446367259, + "width": 71.62396240234375, + "height": 70, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#343a40", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bOLV", + "roundness": null, + "seed": 708487028, + "version": 5, + "versionNonce": 199196404, + "isDeleted": false, + "boundElements": [], + "updated": 1754001594655, + "link": null, + "locked": false, + "text": "flows\nto", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "5hVHld2-xr3uN9v2hhF9o", + "originalText": "flows\nto", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 2785, + "versionNonce": 2134973556, + "isDeleted": false, + "id": "zd9eUm-CxCG5IdKeVwYks", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9959.568872197871, + "y": 4044.5424884600607, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 337.71514102616004, + "height": 155.0479314321372, + "seed": 1699032396, + "groupIds": [ + "SzLoXIs-7KmmByuatSdCr" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "boe29QPD9iLj7jjNYX8VZ" + }, + { + "id": "5hVHld2-xr3uN9v2hhF9o", + "type": "arrow" + }, + { + "id": "qvLPYDcUWqwUthe70DTSH", + "type": "arrow" + }, + { + "id": "FTBtKj2RFAYke8VDifN9P", + "type": "arrow" + } + ], + "updated": 1754002120651, + "link": null, + "locked": false, + "index": "bOO" + }, + { + "type": "text", + "version": 2523, + "versionNonce": 964557644, + "isDeleted": false, + "id": "boe29QPD9iLj7jjNYX8VZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9980.138906089858, + "y": 4083.6466036902684, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 296.5750732421875, + "height": 76.83970097172228, + "seed": 2034869196, + "groupIds": [ + "SzLoXIs-7KmmByuatSdCr" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002094900, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nRegister Constraint", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "zd9eUm-CxCG5IdKeVwYks", + "originalText": "Business function:\nRegister Constraint", + "lineHeight": 1.25, + "baseline": 18, + "index": "bOP", + "autoResize": true + }, + { + "id": "pCQWBXxLA_2XSft3hXh0I", + "type": "line", + "x": 10282.294452122538, + "y": 4073.0022765112, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "SzLoXIs-7KmmByuatSdCr" + ], + "frameId": null, + "index": "bOQ", + "roundness": null, + "seed": 846940748, + "version": 3630, + "versionNonce": 565685964, + "isDeleted": false, + "boundElements": [], + "updated": 1754002094900, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 9658, + "versionNonce": 138879180, + "index": "bOm", + "isDeleted": false, + "id": "rhI13Oof6hFnBAofUsaic", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9260.0723765799, + "y": 5185.918224313088, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 310.1767587485183, + "height": 150, + "seed": 1376478540, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "XFqQjBlb1-WadezIPTqDn" + }, + { + "id": "_YPSuq2T9LfFiXoX3KtuN", + "type": "arrow" + } + ], + "updated": 1754001251247, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8983, + "versionNonce": 1589716812, + "index": "bOn", + "isDeleted": false, + "id": "XFqQjBlb1-WadezIPTqDn", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9265.0723765799, + "y": 5190.918224313088, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 257.85186767578125, + "height": 105, + "seed": 1619581900, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001251247, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nArtifact:\ncustomer-order-file", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "rhI13Oof6hFnBAofUsaic", + "originalText": "<>\nArtifact:\ncustomer-order-file", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 6732, + "versionNonce": 1481017332, + "index": "bOo", + "isDeleted": false, + "id": "_YPSuq2T9LfFiXoX3KtuN", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9409.602433962302, + "y": 5179.00337362406, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 10.939673943026719, + "height": 176.89730314388726, + "seed": 1561559628, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "bycaTIuQKHpgpqsKaguFV" + } + ], + "updated": 1754001251330, + "link": null, + "locked": false, + "startBinding": { + "elementId": "rhI13Oof6hFnBAofUsaic", + "focus": -0.0030836956956648656, + "gap": 6.914850689027844 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -10.939673943026719, + -176.89730314388726 + ] + ], + "elbowed": false + }, + { + "id": "bycaTIuQKHpgpqsKaguFV", + "type": "text", + "x": 9453.472801650743, + "y": 5074.653466529865, + "width": 100.7159423828125, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bOoV", + "roundness": null, + "seed": 1028600012, + "version": 4, + "versionNonce": 2075814604, + "isDeleted": false, + "boundElements": [], + "updated": 1754001241172, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "_YPSuq2T9LfFiXoX3KtuN", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "EsFanMR23SwE7ltavz5r7", + "type": "ellipse", + "x": 9213.365684396553, + "y": 4241.975666196314, + "width": 70.07142601258849, + "height": 65.6671047223275, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "#868e96", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bOx", + "roundness": { + "type": 2 + }, + "seed": 2075818740, + "version": 218, + "versionNonce": 1590929612, + "isDeleted": false, + "boundElements": [ + { + "id": "5hVHld2-xr3uN9v2hhF9o", + "type": "arrow" + }, + { + "id": "FPtBOZIDsYATonvIVrYLx", + "type": "arrow" + } + ], + "updated": 1754002160872, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 10496, + "versionNonce": 1811268852, + "index": "bP0", + "isDeleted": false, + "id": "24jkiqKoaGv4-7tFAOVhh", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9700.876278205937, + "y": 4861.280932578632, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 223.48448950719157, + "height": 140.2495823909621, + "seed": 1597890252, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "D8VOAPQ2y_T_RngvNOYbf" + }, + { + "id": "udM58y1XRvo8JHn91KBIH", + "type": "arrow" + }, + { + "id": "QZw29PvuZ9jwyrCiDJ8o-", + "type": "arrow" + } + ], + "updated": 1754002225975, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9894, + "versionNonce": 577620084, + "index": "bP1", + "isDeleted": false, + "id": "D8VOAPQ2y_T_RngvNOYbf", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9713.26055939752, + "y": 4878.905723774113, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 198.71592712402344, + "height": 105, + "seed": 1680876876, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002101771, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Data Object: \nScheduling\nConstraint", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "24jkiqKoaGv4-7tFAOVhh", + "originalText": "Data Object: \nScheduling Constraint", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13395, + "versionNonce": 1286444620, + "index": "bP2", + "isDeleted": false, + "id": "QZw29PvuZ9jwyrCiDJ8o-", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 9808.14921567535, + "y": 4713.177340837456, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.45427257847950386, + "height": 135.35343822512186, + "seed": 1343593420, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002228507, + "link": null, + "locked": false, + "startBinding": { + "elementId": "cCvXwFdixYkPwxU_UeLT9", + "focus": 0.7332213426409405, + "gap": 10.587502123759805 + }, + "endBinding": { + "elementId": "24jkiqKoaGv4-7tFAOVhh", + "focus": -0.046453259343987266, + "gap": 12.750153516054525 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -0.45427257847950386, + 135.35343822512186 + ] + ] + }, + { + "type": "arrow", + "version": 13754, + "versionNonce": 180976628, + "index": "bP3G", + "isDeleted": false, + "id": "cZCIRRqvGkBK-iBTQGKrL", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 10219.35991553573, + "y": 4719.774250227465, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.7318055471205298, + "height": 133.11665961075505, + "seed": 522810740, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002230189, + "link": null, + "locked": false, + "startBinding": { + "elementId": "cCvXwFdixYkPwxU_UeLT9", + "focus": -0.1710692118219035, + "gap": 17.18441151376919 + }, + "endBinding": { + "elementId": "pW3xlXXhQy_vpuT8kfNa_", + "focus": 0.0005421840857079934, + "gap": 13.210753738998392 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.7318055471205298, + 133.11665961075505 + ] + ] + }, + { + "type": "rectangle", + "version": 9695, + "versionNonce": 365247348, + "index": "bP4", + "isDeleted": false, + "id": "liYtsj0kFaLECyvVWBrOy", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9705.479103858912, + "y": 5213.9947248494145, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 115, + "seed": 149522932, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "CuLJqP8-xZLmshriUqFzS" + }, + { + "id": "udM58y1XRvo8JHn91KBIH", + "type": "arrow" + } + ], + "updated": 1754002101771, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9013, + "versionNonce": 771075316, + "index": "bP5", + "isDeleted": false, + "id": "CuLJqP8-xZLmshriUqFzS", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9710.479103858912, + "y": 5218.9947248494145, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 121.29592895507812, + "height": 105, + "seed": 76295028, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002101771, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nArtifact:\njob-order", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "liYtsj0kFaLECyvVWBrOy", + "originalText": "<>\nArtifact:\njob-order", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 7407, + "versionNonce": 1729903180, + "index": "bP6", + "isDeleted": false, + "id": "udM58y1XRvo8JHn91KBIH", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9820.64771192733, + "y": 5198.919917159161, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 2.1029739520454314, + "height": 196.2989727517761, + "seed": 106863860, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002101992, + "link": null, + "locked": false, + "startBinding": { + "elementId": "liYtsj0kFaLECyvVWBrOy", + "focus": 0.008779324922900124, + "gap": 15.074807690253692 + }, + "endBinding": { + "elementId": "24jkiqKoaGv4-7tFAOVhh", + "focus": -0.0458984563362788, + "gap": 1.0904294377905899 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -2.1029739520454314, + -196.2989727517761 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3797, + "versionNonce": 2059636980, + "index": "bP7", + "isDeleted": false, + "id": "cCvXwFdixYkPwxU_UeLT9", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 9687.481980667006, + "y": 4613.822408052561, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 906.8262904360136, + "height": 88.76743066113535, + "seed": 1851734388, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "ALTvEgnzDGx6TSq8sBpVS" + }, + { + "id": "qvLPYDcUWqwUthe70DTSH", + "type": "arrow" + }, + { + "id": "J_AWiiya8iQSQLeAczAAL", + "type": "arrow" + }, + { + "id": "mwxZeaF4Kq_V7As7gwzJp", + "type": "arrow" + }, + { + "id": "cZCIRRqvGkBK-iBTQGKrL", + "type": "arrow" + }, + { + "id": "MSOq_paQpx0vNGXagwJIa", + "type": "arrow" + }, + { + "id": "QZw29PvuZ9jwyrCiDJ8o-", + "type": "arrow" + }, + { + "id": "6iTP8df0ngtJMeoGkyHT8", + "type": "arrow" + } + ], + "updated": 1754825432769, + "link": null, + "locked": false + }, + { + "id": "ALTvEgnzDGx6TSq8sBpVS", + "type": "text", + "x": 10011.157180328371, + "y": 4623.206123383128, + "width": 259.47589111328125, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bP8", + "roundness": null, + "seed": 513796852, + "version": 1451, + "versionNonce": 172856052, + "isDeleted": false, + "boundElements": [], + "updated": 1754002101771, + "link": null, + "locked": false, + "text": "Application Service:\nScheduling Service", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "cCvXwFdixYkPwxU_UeLT9", + "originalText": "Application Service:\nScheduling Service", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "7ZWqnbgui4v4tf2ISmn6B", + "type": "ellipse", + "x": 10931.45606731503, + "y": 4229.675972960974, + "width": 70.07142601258849, + "height": 65.6671047223275, + "angle": 0, + "strokeColor": "#343a40", + "backgroundColor": "#868e96", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bP9", + "roundness": { + "type": 2 + }, + "seed": 552905036, + "version": 281, + "versionNonce": 1490168436, + "isDeleted": false, + "boundElements": [ + { + "id": "Darx6zH26AroloweALXUZ", + "type": "arrow" + } + ], + "updated": 1754002210565, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 9732, + "versionNonce": 156057332, + "index": "bPA", + "isDeleted": false, + "id": "tmutWcUWJjjf6NbYUtHQ8", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 10394.20508693838, + "y": 5218.909791380283, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 115, + "seed": 1049141964, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "VCSJ0G8Ica8e0xKpByFML" + }, + { + "id": "IQ9NDxiJo0zzQA4ID2TCs", + "type": "arrow" + } + ], + "updated": 1754002252313, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9068, + "versionNonce": 734592884, + "index": "bPB", + "isDeleted": false, + "id": "VCSJ0G8Ica8e0xKpByFML", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 10399.20508693838, + "y": 5223.909791380283, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 217.27989196777344, + "height": 105, + "seed": 360868172, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002256263, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nArtifact:\njob-schedule-file", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "tmutWcUWJjjf6NbYUtHQ8", + "originalText": "<>\nArtifact:\njob-schedule-file", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 10583, + "versionNonce": 466075764, + "index": "bPC", + "isDeleted": false, + "id": "tfWFnw41rLuMI9GEeoZfD", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 10390.179584934933, + "y": 4867.147644559009, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 223.48448950719157, + "height": 140.2495823909621, + "seed": 645881804, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "YX-TwPsF3-3EgwZveX6FG" + }, + { + "id": "MSOq_paQpx0vNGXagwJIa", + "type": "arrow" + }, + { + "id": "IQ9NDxiJo0zzQA4ID2TCs", + "type": "arrow" + } + ], + "updated": 1754002200685, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9959, + "versionNonce": 2142809076, + "index": "bPD", + "isDeleted": false, + "id": "YX-TwPsF3-3EgwZveX6FG", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 10402.563866126517, + "y": 4902.272435754489, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 198.71592712402344, + "height": 70, + "seed": 697927244, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002251098, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Data Object: \nJob Schedule", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "tfWFnw41rLuMI9GEeoZfD", + "originalText": "Data Object: \nJob Schedule", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13890, + "versionNonce": 1548057076, + "index": "bPE", + "isDeleted": false, + "id": "MSOq_paQpx0vNGXagwJIa", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 10499.682490622881, + "y": 4717.594323642143, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.7318055471205298, + "height": 131.82040451529429, + "seed": 1135271116, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002242734, + "link": null, + "locked": false, + "startBinding": { + "elementId": "cCvXwFdixYkPwxU_UeLT9", + "focus": -0.7885685230866782, + "gap": 15.0044849284468 + }, + "endBinding": { + "elementId": "tfWFnw41rLuMI9GEeoZfD", + "focus": 0.005640850112137482, + "gap": 17.732916401571856 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.7318055471205298, + 131.82040451529429 + ] + ] + }, + { + "type": "arrow", + "version": 7443, + "versionNonce": 1327043060, + "index": "bPG", + "isDeleted": false, + "id": "IQ9NDxiJo0zzQA4ID2TCs", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10485.03075973128, + "y": 5209.116892363368, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.3950280163844582, + "height": 197.21224338721458, + "seed": 1664470092, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754002252313, + "link": null, + "locked": false, + "startBinding": { + "elementId": "tmutWcUWJjjf6NbYUtHQ8", + "focus": -0.20487531084128197, + "gap": 9.792899016915726 + }, + "endBinding": { + "elementId": "tfWFnw41rLuMI9GEeoZfD", + "focus": 0.16861030124776089, + "gap": 4.507422026182212 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -1.3950280163844582, + -197.21224338721458 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 8659, + "versionNonce": 1210158028, + "index": "bPH", + "isDeleted": false, + "id": "Darx6zH26AroloweALXUZ", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 10785.05597919598, + "y": 4262.265825587059, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 136.51305620582025, + "height": 2.063527824862831, + "seed": 1788454860, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754002213089, + "link": null, + "locked": false, + "startBinding": { + "elementId": "6wRFuHw6WS0niwAH0JmpV", + "focus": -0.040991222757764054, + "gap": 11.449573004141712 + }, + "endBinding": { + "elementId": "7ZWqnbgui4v4tf2ISmn6B", + "focus": -0.0748993737901321, + "gap": 9.927738037425758 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 136.51305620582025, + 2.063527824862831 + ] + ] + }, + { + "type": "rectangle", + "version": 2582, + "versionNonce": 680753012, + "isDeleted": false, + "id": "0HyeJW_vwpu2CeX7paRD3", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10236.669664900242, + "y": 4415.109427754726, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 69.74310838919793, + "seed": 743254900, + "groupIds": [ + "qNw2wvmUqmT3KxHPSXRom" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "cNkpunG5wc-INJimP6Vx8" + }, + { + "id": "jK1qS7nyWcmUFwZPFj_s4", + "type": "arrow" + }, + { + "id": "6iTP8df0ngtJMeoGkyHT8", + "type": "arrow" + } + ], + "updated": 1754825410476, + "link": null, + "locked": false, + "index": "bPI" + }, + { + "type": "text", + "version": 2201, + "versionNonce": 738310644, + "isDeleted": false, + "id": "cNkpunG5wc-INJimP6Vx8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10253.29502118114, + "y": 4429.852536143924, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 199.1998291015625, + "height": 50, + "seed": 234855668, + "groupIds": [ + "qNw2wvmUqmT3KxHPSXRom" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754825425664, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nJob Scheduler Agent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "0HyeJW_vwpu2CeX7paRD3", + "originalText": "App Component:\nJob Scheduler Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bPJ", + "autoResize": true + }, + { + "type": "rectangle", + "version": 2738, + "versionNonce": 1134323956, + "isDeleted": false, + "id": "XRvm1k7LZdIRDAmNZJ7i6", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10434.41928060135, + "y": 4419.836156481752, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 1130880628, + "groupIds": [ + "G8dPcYUQdchKeLkgLqmFP", + "qNw2wvmUqmT3KxHPSXRom" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754825410476, + "link": null, + "locked": false, + "index": "bPK" + }, + { + "type": "rectangle", + "version": 3404, + "versionNonce": 561107020, + "isDeleted": false, + "id": "AbOsCo4K8dUw-c6Nm4Rxv", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10430.46224257608, + "y": 4422.256436157483, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1967910900, + "groupIds": [ + "G8dPcYUQdchKeLkgLqmFP", + "qNw2wvmUqmT3KxHPSXRom" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754825410476, + "link": null, + "locked": false, + "index": "bPL" + }, + { + "type": "rectangle", + "version": 3431, + "versionNonce": 1133193844, + "isDeleted": false, + "id": "gEe8WugZFSVG16VWi7QvJ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10430.63307002888, + "y": 4427.026886842973, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1135726964, + "groupIds": [ + "G8dPcYUQdchKeLkgLqmFP", + "qNw2wvmUqmT3KxHPSXRom" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754825410476, + "link": null, + "locked": false, + "index": "bPM" + }, + { + "id": "6iTP8df0ngtJMeoGkyHT8", + "type": "arrow", + "x": 10312.38498228863, + "y": 4491.392072034983, + "width": 3.533419617149775, + "height": 120.03496926150729, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bPO", + "roundness": null, + "seed": 442172532, + "version": 1649, + "versionNonce": 2126587596, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "CZ225dt5cqVMpbcdWPaOh" + } + ], + "updated": 1754825446469, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.533419617149775, + 120.03496926150729 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "0HyeJW_vwpu2CeX7paRD3", + "focus": 0.3558918933122569, + "gap": 6.539535891059131 + }, + "endBinding": { + "elementId": "cCvXwFdixYkPwxU_UeLT9", + "focus": 0.3879319760406557, + "gap": 2.3953667560699614 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "CZ225dt5cqVMpbcdWPaOh", + "type": "text", + "x": 10220.994558485228, + "y": 4526.433415825262, + "width": 100.89991760253906, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bPP", + "roundness": null, + "seed": 250238452, + "version": 205, + "versionNonce": 1607551564, + "isDeleted": false, + "boundElements": [], + "updated": 1754825410478, + "link": null, + "locked": false, + "text": "realization", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "6iTP8df0ngtJMeoGkyHT8", + "originalText": "realization", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file diff --git a/applications/job-scheduling/model/agent-aware-pharma-manufacturing.excalidraw b/applications/job-scheduling/model/agent-aware-pharma-manufacturing.excalidraw new file mode 100644 index 0000000..1d35f53 --- /dev/null +++ b/applications/job-scheduling/model/agent-aware-pharma-manufacturing.excalidraw @@ -0,0 +1,3398 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 3154, + "versionNonce": 2120821452, + "isDeleted": false, + "id": "oDvbjY90zhZzR6HjTwFPk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 8963.927297361035, + "y": 3729.298377773516, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 2688.577272635687, + "height": 1822.6150959372872, + "seed": 562979060, + "groupIds": [ + "K8WQ2sgqZw4e5hRQGsqZd" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "E3-SSWdoL2Ou5Nxr7ry7V", + "type": "text" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false, + "index": "bGc" + }, + { + "type": "text", + "version": 3175, + "versionNonce": 403829068, + "isDeleted": false, + "id": "E3-SSWdoL2Ou5Nxr7ry7V", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10656.130058277971, + "y": 5417.536689305765, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 991.37451171875, + "height": 129.37678440503825, + "seed": 8266356, + "groupIds": [ + "K8WQ2sgqZw4e5hRQGsqZd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 51.7507137620153, + "fontFamily": 1, + "text": "Grouping:\nPhenylpirecetam Manufacturing Process", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "oDvbjY90zhZzR6HjTwFPk", + "originalText": "Grouping:\nPhenylpirecetam Manufacturing Process", + "lineHeight": 1.25, + "baseline": 18, + "index": "bGd", + "autoResize": true + }, + { + "type": "rectangle", + "version": 9942, + "versionNonce": 1037952972, + "index": "bNj", + "isDeleted": false, + "id": "qxS9U7IYBD1MLRnLlZARQ", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9370.783708831688, + "y": 4857.643276986031, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 1474228508, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "vM9lITrcwnJSf7EvufSBt" + }, + { + "id": "AMvuTe4PPSKr7kV2-w7an", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9282, + "versionNonce": 1676086860, + "index": "bNk", + "isDeleted": false, + "id": "vM9lITrcwnJSf7EvufSBt", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9397.971895769333, + "y": 4892.768068181512, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 198.71592712402344, + "height": 70, + "seed": 1905946012, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Data Object: \nGoods In", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "qxS9U7IYBD1MLRnLlZARQ", + "originalText": "Data Object: \nGoods In", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 9375, + "versionNonce": 148433740, + "index": "bNl", + "isDeleted": false, + "id": "lbDIDtqIU7nYk-Ehnkb4T", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9972.17826164289, + "y": 5204.341512925389, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 115, + "seed": 1451197212, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "vVYlkMNw2R2rMpS4kdt8j" + }, + { + "id": "lvJJMbRCl59o2wBplh8wi", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8688, + "versionNonce": 800432588, + "index": "bNm", + "isDeleted": false, + "id": "vVYlkMNw2R2rMpS4kdt8j", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9977.17826164289, + "y": 5209.341512925389, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 165.89991760253906, + "height": 105, + "seed": 844677020, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nArtifact:\njob-response", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "lbDIDtqIU7nYk-Ehnkb4T", + "originalText": "<>\nArtifact:\njob-response", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 12792, + "versionNonce": 382117620, + "index": "bNn", + "isDeleted": false, + "id": "AMvuTe4PPSKr7kV2-w7an", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 9433.958566756055, + "y": 4724.954485951935, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 53.738507841930186, + "height": 125.51449622854489, + "seed": 1273661596, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "xfrsVygWMaLhg-ZvKESde" + } + ], + "updated": 1754001024437, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Iy01FuR_PC5J6NZuA_Vqc", + "focus": -0.15054322868887096, + "gap": 1 + }, + "endBinding": { + "elementId": "qxS9U7IYBD1MLRnLlZARQ", + "focus": 0.1498532814929592, + "gap": 7.1742948055516536 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 53.738507841930186, + 125.51449622854489 + ] + ] + }, + { + "id": "xfrsVygWMaLhg-ZvKESde", + "type": "text", + "x": 9270.492876380578, + "y": 4991.107195591647, + "width": 143.63992309570312, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bNo", + "roundness": null, + "seed": 524752156, + "version": 78, + "versionNonce": 1397132876, + "isDeleted": false, + "boundElements": [], + "updated": 1754000900257, + "link": null, + "locked": false, + "text": "read/write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "AMvuTe4PPSKr7kV2-w7an", + "originalText": "read/write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 9426, + "versionNonce": 1767040332, + "index": "bNp", + "isDeleted": false, + "id": "m4GMlsu_BYd5pFpc-_Q0w", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9027.733502585721, + "y": 5209.4283071061645, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 115, + "seed": 663355036, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "BOZ-LUl3q0AhLc4G-sbQk" + }, + { + "id": "WQYJw6MTBV9AZB90Jj-fY", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8756, + "versionNonce": 585128908, + "index": "bNq", + "isDeleted": false, + "id": "BOZ-LUl3q0AhLc4G-sbQk", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9032.733502585721, + "y": 5214.4283071061645, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 124.76792907714844, + "height": 105, + "seed": 59231004, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nArtifact:\norder-file", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "m4GMlsu_BYd5pFpc-_Q0w", + "originalText": "<>\nArtifact:\norder-file", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 10161, + "versionNonce": 553441484, + "index": "bNr", + "isDeleted": false, + "id": "pW3xlXXhQy_vpuT8kfNa_", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9895.032188118212, + "y": 4869.872587491287, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 371.8762375943906, + "height": 140.2495823909621, + "seed": 655886236, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "_0oYqo3M9o3mKm3yFK3dF" + }, + { + "id": "lvJJMbRCl59o2wBplh8wi", + "type": "arrow" + }, + { + "id": "5zWN6VZn5P4TXiADoKnT1", + "type": "arrow" + }, + { + "id": "UIeELpWL3h_49ytEvn2He", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9527, + "versionNonce": 1207951180, + "index": "bNs", + "isDeleted": false, + "id": "_0oYqo3M9o3mKm3yFK3dF", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9981.612343353396, + "y": 4904.997378686768, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 198.71592712402344, + "height": 70, + "seed": 1449964572, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Data Object: \nJob Response", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "pW3xlXXhQy_vpuT8kfNa_", + "originalText": "Data Object: \nJob Response", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 6457, + "versionNonce": 190347764, + "index": "bNt", + "isDeleted": false, + "id": "WQYJw6MTBV9AZB90Jj-fY", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9140.911525165551, + "y": 5202.513456417138, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 4.234944823409023, + "height": 195.49446317181537, + "seed": 2138558620, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "-rl4XLWoYNDpsIAOOCbRO" + } + ], + "updated": 1754001024437, + "link": null, + "locked": false, + "startBinding": { + "elementId": "m4GMlsu_BYd5pFpc-_Q0w", + "focus": -0.0030836956956828325, + "gap": 6.914850689026935 + }, + "endBinding": { + "elementId": "2dfJdtyhxa896BuV2y2gL", + "focus": -0.0060836071460747725, + "gap": 6.036154292323772 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -4.234944823409023, + -195.49446317181537 + ] + ], + "elbowed": false + }, + { + "id": "-rl4XLWoYNDpsIAOOCbRO", + "type": "text", + "x": 9285.806467750734, + "y": 5338.779749057352, + "width": 100.7159423828125, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 70, + "groupIds": [], + "frameId": null, + "index": "bNu", + "roundness": null, + "seed": 32202012, + "version": 109, + "versionNonce": 289743308, + "isDeleted": false, + "boundElements": [], + "updated": 1754000900257, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "WQYJw6MTBV9AZB90Jj-fY", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 6485, + "versionNonce": 231836916, + "index": "bNv", + "isDeleted": false, + "id": "lvJJMbRCl59o2wBplh8wi", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10088.476062129072, + "y": 5195.394456595494, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.430676652908005, + "height": 182.57045287712208, + "seed": 2000247196, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024437, + "link": null, + "locked": false, + "startBinding": { + "elementId": "lbDIDtqIU7nYk-Ehnkb4T", + "focus": 0.007327136686636938, + "gap": 8.947056329894622 + }, + "endBinding": { + "elementId": "pW3xlXXhQy_vpuT8kfNa_", + "focus": -0.05097991049015003, + "gap": 2.7018338361231145 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 1.430676652908005, + -182.57045287712208 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 12892, + "versionNonce": 1400622708, + "index": "bNw", + "isDeleted": false, + "id": "5zWN6VZn5P4TXiADoKnT1", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 9919.253498779472, + "y": 4715.255422576148, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.0824830641358858, + "height": 151.7139715811618, + "seed": 2056504860, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "dvhKmoqx5NlJ1NSSlTbtu" + } + ], + "updated": 1754001024437, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "pW3xlXXhQy_vpuT8kfNa_", + "focus": -0.8587995615242336, + "gap": 2.9031933339774696 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.0824830641358858, + 151.7139715811618 + ] + ] + }, + { + "id": "dvhKmoqx5NlJ1NSSlTbtu", + "type": "text", + "x": 12483.305192405092, + "y": 4960.835090322735, + "width": 68.85195922851562, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bNx", + "roundness": null, + "seed": 1894556316, + "version": 68, + "versionNonce": 1085633140, + "isDeleted": false, + "boundElements": [], + "updated": 1754000900257, + "link": null, + "locked": false, + "text": "write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "5zWN6VZn5P4TXiADoKnT1", + "originalText": "write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 7711, + "versionNonce": 1938407796, + "index": "bNy", + "isDeleted": false, + "id": "RVE6xaFfxWqLCYLkKGsga", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 9312.370262060133, + "y": 4623.880312559306, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.6923833250311873, + "height": 335.6889872333122, + "seed": 832690204, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "BO6xNqlClwj5uP-OVtD1l" + } + ], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Iy01FuR_PC5J6NZuA_Vqc", + "focus": -0.43387804849365025, + "gap": 12.050478936044783 + }, + "endBinding": { + "elementId": "gCL0DjXF3XmPDnJFXgRf1", + "focus": -0.02302088825940119, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -0.6923833250311873, + -335.6889872333122 + ] + ] + }, + { + "id": "BO6xNqlClwj5uP-OVtD1l", + "type": "text", + "x": 12018.42924057208, + "y": 4625.280467009468, + "width": 86.71597290039062, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bNz", + "roundness": null, + "seed": 6845596, + "version": 97, + "versionNonce": 1209818828, + "isDeleted": false, + "boundElements": [], + "updated": 1754000974099, + "link": null, + "locked": false, + "text": "serves", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "RVE6xaFfxWqLCYLkKGsga", + "originalText": "serves", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 7797, + "versionNonce": 1224143988, + "index": "bO0", + "isDeleted": false, + "id": "J_AWiiya8iQSQLeAczAAL", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 9913.667783319392, + "y": 4630.425813833508, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.674414258748584, + "height": 197.14210836334678, + "seed": 1697087772, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": { + "elementId": "WrY4-HRR6qwBayYjpUFGb", + "focus": -0.377882069347672, + "gap": 1 + }, + "endBinding": { + "elementId": "xQKRXwlD6pJpnxFY8kwk8", + "focus": -0.4875210675775084, + "gap": 2.5372540291409678 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -1.674414258748584, + -197.14210836334678 + ] + ] + }, + { + "type": "arrow", + "version": 8280, + "versionNonce": 1686652404, + "index": "bO1", + "isDeleted": false, + "id": "qvLPYDcUWqwUthe70DTSH", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 10236.239966869043, + "y": 4623.539518157737, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.889363188720381, + "height": 182.7696232575845, + "seed": 1733361052, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "jQ4DKwEMHHaydroOQA1EG", + "focus": 0.5804768174124127, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.889363188720381, + -182.7696232575845 + ] + ] + }, + { + "type": "arrow", + "version": 8203, + "versionNonce": 1585338612, + "index": "bO2", + "isDeleted": false, + "id": "FPtBOZIDsYATonvIVrYLx", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 9472.998040532422, + "y": 4252.270952715589, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 179.61638641864374, + "height": 51.33853651865684, + "seed": 1343679004, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "uqg2ZuJj-mulM8mVo5dRa" + } + ], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": { + "elementId": "gCL0DjXF3XmPDnJFXgRf1", + "focus": -0.10556532329028716, + "gap": 1.1556057495399727 + }, + "endBinding": { + "elementId": "xQKRXwlD6pJpnxFY8kwk8", + "focus": -0.005628464613634365, + "gap": 7.322415586380996 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 179.61638641864374, + 51.33853651865684 + ] + ] + }, + { + "id": "uqg2ZuJj-mulM8mVo5dRa", + "type": "text", + "x": 12223.393922890977, + "y": 4428.104375552777, + "width": 71.62396240234375, + "height": 70, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bO2V", + "roundness": null, + "seed": 1235885900, + "version": 15, + "versionNonce": 1310258508, + "isDeleted": false, + "boundElements": null, + "updated": 1754001003090, + "link": null, + "locked": false, + "text": "flows\nto", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "FPtBOZIDsYATonvIVrYLx", + "originalText": "flows\nto", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 8306, + "versionNonce": 212802164, + "index": "bO3", + "isDeleted": false, + "id": "yAmtneJpKq4_EBh6AdMx1", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 10004.22222504697, + "y": 4354.339855696456, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 96.46488808103277, + "height": 0.2960317667630079, + "seed": 1919633052, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": { + "elementId": "jQ4DKwEMHHaydroOQA1EG", + "focus": 0, + "gap": 14 + }, + "endBinding": { + "elementId": "jQ4DKwEMHHaydroOQA1EG", + "focus": 0.08193983199446077, + "gap": 4.498723942298966 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 96.46488808103277, + -0.2960317667630079 + ] + ] + }, + { + "type": "arrow", + "version": 8728, + "versionNonce": 1260404468, + "index": "bO4", + "isDeleted": false, + "id": "LlzaN_rDeD-StKi80AZZh", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 10751.651490542019, + "y": 4305.587736012946, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 179.73677399070039, + "height": 32.74871793658713, + "seed": 1785920540, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": { + "elementId": "T8BZBGiau_3KBW78Y5CaF", + "focus": 0, + "gap": 14 + }, + "endBinding": { + "elementId": "6wRFuHw6WS0niwAH0JmpV", + "focus": -0.18000916569325373, + "gap": 7.9554685337640585 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 179.73677399070039, + -32.74871793658713 + ] + ] + }, + { + "type": "arrow", + "version": 8293, + "versionNonce": 405028980, + "index": "bO5", + "isDeleted": false, + "id": "mwxZeaF4Kq_V7As7gwzJp", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 11119.970486820195, + "y": 4611.649669752729, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.5425973248038645, + "height": 302.2809342207984, + "seed": 228996892, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "6wRFuHw6WS0niwAH0JmpV", + "focus": -0.11584713700685924, + "gap": 12.280985718472948 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 0.5425973248038645, + -302.2809342207984 + ] + ] + }, + { + "type": "text", + "version": 3596, + "versionNonce": 1191635532, + "isDeleted": false, + "id": "nYt-hRDFvmSvMVxKWXR2p", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9057.546345991434, + "y": 3795.244867423672, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1060.961669921875, + "height": 169.43573414501193, + "seed": 1870923044, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Use-case: usecase-updating-job-schedule (json) \ntimothy@agileintegrator.com\n31-July-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Use-case: usecase-updating-job-schedule (json) \ntimothy@agileintegrator.com\n31-July-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bO6", + "autoResize": true + }, + { + "type": "rectangle", + "version": 2418, + "versionNonce": 365674700, + "isDeleted": false, + "id": "gCL0DjXF3XmPDnJFXgRf1", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9143.659636997338, + "y": 4147.045073331132, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 328.18279778554523, + "height": 140.74941657121406, + "seed": 1604657564, + "groupIds": [ + "56MY47VtLhMOo0XHP4wuT" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "_zgRR8aPmLW9SK4jYcPM1" + }, + { + "id": "RVE6xaFfxWqLCYLkKGsga", + "type": "arrow" + }, + { + "id": "FPtBOZIDsYATonvIVrYLx", + "type": "arrow" + }, + { + "id": "5hVHld2-xr3uN9v2hhF9o", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false, + "index": "bO7" + }, + { + "type": "text", + "version": 2086, + "versionNonce": 313640780, + "isDeleted": false, + "id": "_zgRR8aPmLW9SK4jYcPM1", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9173.660749635228, + "y": 4178.9999311308775, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 1917226524, + "groupIds": [ + "56MY47VtLhMOo0XHP4wuT" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nReceive Goods", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "gCL0DjXF3XmPDnJFXgRf1", + "originalText": "Business function:\nReceive Goods", + "lineHeight": 1.25, + "baseline": 18, + "index": "bO8", + "autoResize": true + }, + { + "id": "LDbr_ZvuFTX6dhzdyXiEQ", + "type": "line", + "x": 9456.85287368139, + "y": 4174.504861382274, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "56MY47VtLhMOo0XHP4wuT" + ], + "frameId": null, + "index": "bO9", + "roundness": null, + "seed": 1996909212, + "version": 3271, + "versionNonce": 31310156, + "isDeleted": false, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 2450, + "versionNonce": 498055116, + "isDeleted": false, + "id": "xQKRXwlD6pJpnxFY8kwk8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9659.813174698282, + "y": 4275.698520008883, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 337.71514102616004, + "height": 155.0479314321372, + "seed": 1710711452, + "groupIds": [ + "-K6ow-UH6KD9xHKIXFGdT" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "HqizgZWf17ng2pxgAhVCd" + }, + { + "id": "FPtBOZIDsYATonvIVrYLx", + "type": "arrow" + }, + { + "id": "yAmtneJpKq4_EBh6AdMx1", + "type": "arrow" + }, + { + "id": "J_AWiiya8iQSQLeAczAAL", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false, + "index": "bOA" + }, + { + "type": "text", + "version": 2149, + "versionNonce": 150920780, + "isDeleted": false, + "id": "HqizgZWf17ng2pxgAhVCd", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9665.34086545062, + "y": 4314.802635239091, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 326.6597595214844, + "height": 76.83970097172228, + "seed": 1453895452, + "groupIds": [ + "-K6ow-UH6KD9xHKIXFGdT" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nManufacture Tablets", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "xQKRXwlD6pJpnxFY8kwk8", + "originalText": "Business function:\nManufacture Tablets", + "lineHeight": 1.25, + "baseline": 18, + "index": "bOB", + "autoResize": true + }, + { + "id": "sxlBX7oYmCjYqBn2t-JcA", + "type": "line", + "x": 9982.53875462295, + "y": 4304.15830806002, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "-K6ow-UH6KD9xHKIXFGdT" + ], + "frameId": null, + "index": "bOC", + "roundness": null, + "seed": 746351516, + "version": 3297, + "versionNonce": 694638668, + "isDeleted": false, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "TmsVAP4c1rTkoOuY5dxe9", + "type": "line", + "x": 10514.727752692977, + "y": 4304.953558570399, + "width": 33.785859847900824, + "height": 19.47666520298014, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "nr0M1Y9tDDpS0wWnwnKY0" + ], + "frameId": null, + "index": "bOD", + "roundness": null, + "seed": 1777590684, + "version": 3292, + "versionNonce": 1844342476, + "isDeleted": false, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21953928762857447, + -11.53026619255133 + ], + [ + -16.58587201126224, + -19.19035251751646 + ], + [ + -33.75792719841955, + -12.343098064365247 + ], + [ + -33.785859847900824, + 0.28631268546368055 + ], + [ + -16.671424909829533, + -6.058490519875648 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 2547, + "versionNonce": 1850651980, + "isDeleted": false, + "id": "jQ4DKwEMHHaydroOQA1EG", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10105.185837070301, + "y": 4278.971165791607, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 640.0874595745308, + "height": 161.5518918663115, + "seed": 28596380, + "groupIds": [ + "nr0M1Y9tDDpS0wWnwnKY0" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "QIeG0feQa9f6LXN8874_i" + }, + { + "id": "yAmtneJpKq4_EBh6AdMx1", + "type": "arrow" + }, + { + "id": "LlzaN_rDeD-StKi80AZZh", + "type": "arrow" + }, + { + "id": "qvLPYDcUWqwUthe70DTSH", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false, + "index": "bOE" + }, + { + "type": "text", + "version": 2379, + "versionNonce": 937569228, + "isDeleted": false, + "id": "QIeG0feQa9f6LXN8874_i", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10302.78981618618, + "y": 4324.671669699959, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 244.87950134277344, + "height": 70.15088404960646, + "seed": 458679580, + "groupIds": [ + "nr0M1Y9tDDpS0wWnwnKY0" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28.060353619842584, + "fontFamily": 1, + "text": "Business function:\nPack Tablets", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "jQ4DKwEMHHaydroOQA1EG", + "originalText": "Business function:\nPack Tablets", + "lineHeight": 1.25, + "baseline": 18, + "index": "bOF", + "autoResize": true + }, + { + "type": "rectangle", + "version": 2528, + "versionNonce": 863495628, + "isDeleted": false, + "id": "6wRFuHw6WS0niwAH0JmpV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10938.881152994594, + "y": 4149.189075811782, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 325.79971197539163, + "height": 147.89867400167594, + "seed": 327412900, + "groupIds": [ + "VfZbS_EgPeKaRG_lbg6MU" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "Y-tNBwhZLCVyvjsH30-FT" + }, + { + "id": "LlzaN_rDeD-StKi80AZZh", + "type": "arrow" + }, + { + "id": "mwxZeaF4Kq_V7As7gwzJp", + "type": "arrow" + }, + { + "id": "OC0kXMphQDbgQDC4vUf3b", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false, + "index": "bOG" + }, + { + "type": "text", + "version": 2211, + "versionNonce": 1368476748, + "isDeleted": false, + "id": "Y-tNBwhZLCVyvjsH30-FT", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10967.690722727408, + "y": 4184.718562326759, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 1294383140, + "groupIds": [ + "VfZbS_EgPeKaRG_lbg6MU" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nDispatch Medicine", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "6wRFuHw6WS0niwAH0JmpV", + "originalText": "Business function:\nDispatch Medicine", + "lineHeight": 1.25, + "baseline": 18, + "index": "bOH", + "autoResize": true + }, + { + "id": "X8f4X0696rqtl0f7FCTMe", + "type": "line", + "x": 11249.993751674197, + "y": 4177.648863862922, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "VfZbS_EgPeKaRG_lbg6MU" + ], + "frameId": null, + "index": "bOI", + "roundness": null, + "seed": 1868829604, + "version": 3284, + "versionNonce": 1985136204, + "isDeleted": false, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3218, + "versionNonce": 658250956, + "index": "bOJ", + "isDeleted": false, + "id": "Iy01FuR_PC5J6NZuA_Vqc", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 9216.181593080459, + "y": 4635.930791495351, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 340.3676103637019, + "height": 88.76743066113535, + "seed": 1524757708, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "TnzqjaptKt4MOj-bP6fnT" + }, + { + "id": "AMvuTe4PPSKr7kV2-w7an", + "type": "arrow" + }, + { + "id": "3ngs9sk6XZsKAZDybcgVO", + "type": "arrow" + }, + { + "id": "RVE6xaFfxWqLCYLkKGsga", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "id": "TnzqjaptKt4MOj-bP6fnT", + "type": "text", + "x": 9260.32345948057, + "y": 4645.314506825918, + "width": 252.08387756347656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bOK", + "roundness": null, + "seed": 1054964556, + "version": 881, + "versionNonce": 1303814988, + "isDeleted": false, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "text": "Application Service\nReceiving Service", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Iy01FuR_PC5J6NZuA_Vqc", + "originalText": "Application Service\nReceiving Service", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 8441, + "versionNonce": 2050863988, + "index": "bOL", + "isDeleted": false, + "id": "5hVHld2-xr3uN9v2hhF9o", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 9478.81407033156, + "y": 4187.9468405570115, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 172.06044242874123, + "height": 77.75414797966368, + "seed": 453175756, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": { + "elementId": "gCL0DjXF3XmPDnJFXgRf1", + "focus": 0.33094345661243724, + "gap": 6.971635548678023 + }, + "endBinding": { + "elementId": "zd9eUm-CxCG5IdKeVwYks", + "focus": 0.5787987768045997, + "gap": 6.784763567486152 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 172.06044242874123, + -77.75414797966368 + ] + ] + }, + { + "type": "arrow", + "version": 8313, + "versionNonce": 1553933556, + "index": "bOM", + "isDeleted": false, + "id": "7kf38csQ-P7eHjPzMRYZC", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 10002.817820605796, + "y": 4120.99363697755, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 95.42270272684073, + "height": 0.31463981938031793, + "seed": 421253196, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "T8BZBGiau_3KBW78Y5CaF", + "focus": 0.0827639933968248, + "gap": 4.498723942293509 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 95.42270272684073, + -0.31463981938031793 + ] + ] + }, + { + "type": "arrow", + "version": 8851, + "versionNonce": 933853172, + "index": "bON", + "isDeleted": false, + "id": "OC0kXMphQDbgQDC4vUf3b", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 10749.095148386576, + "y": 4133.2179341181045, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 178.17857553803879, + "height": 43.504451398526726, + "seed": 1616111308, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": { + "elementId": "T8BZBGiau_3KBW78Y5CaF", + "focus": -0.4583272795359261, + "gap": 6.268441537114995 + }, + "endBinding": { + "elementId": "6wRFuHw6WS0niwAH0JmpV", + "focus": 0.03348448086895387, + "gap": 11.746080276779747 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 178.17857553803879, + 43.504451398526726 + ] + ] + }, + { + "type": "rectangle", + "version": 2549, + "versionNonce": 1392087244, + "isDeleted": false, + "id": "zd9eUm-CxCG5IdKeVwYks", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9657.659276327788, + "y": 4042.3329627291605, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 337.71514102616004, + "height": 155.0479314321372, + "seed": 1699032396, + "groupIds": [ + "SzLoXIs-7KmmByuatSdCr" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "boe29QPD9iLj7jjNYX8VZ" + }, + { + "id": "5hVHld2-xr3uN9v2hhF9o", + "type": "arrow" + }, + { + "id": "7kf38csQ-P7eHjPzMRYZC", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false, + "index": "bOO" + }, + { + "type": "text", + "version": 2265, + "versionNonce": 161847116, + "isDeleted": false, + "id": "boe29QPD9iLj7jjNYX8VZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9671.284302895556, + "y": 4081.4370779593683, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 310.465087890625, + "height": 76.83970097172228, + "seed": 2034869196, + "groupIds": [ + "SzLoXIs-7KmmByuatSdCr" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nManufacture Powder", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "zd9eUm-CxCG5IdKeVwYks", + "originalText": "Business function:\nManufacture Powder", + "lineHeight": 1.25, + "baseline": 18, + "index": "bOP", + "autoResize": true + }, + { + "id": "pCQWBXxLA_2XSft3hXh0I", + "type": "line", + "x": 9980.384856252454, + "y": 4070.7927507802997, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "SzLoXIs-7KmmByuatSdCr" + ], + "frameId": null, + "index": "bOQ", + "roundness": null, + "seed": 846940748, + "version": 3396, + "versionNonce": 357119052, + "isDeleted": false, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "UgagHxR9AjEf5N_I3NRPa", + "type": "line", + "x": 10512.281162897609, + "y": 4071.588001290678, + "width": 33.785859847900824, + "height": 19.47666520298014, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "h8mYjodY15a47KGSUqhb5" + ], + "frameId": null, + "index": "bOR", + "roundness": null, + "seed": 1404313804, + "version": 3390, + "versionNonce": 959761100, + "isDeleted": false, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21953928762857447, + -11.53026619255133 + ], + [ + -16.58587201126224, + -19.19035251751646 + ], + [ + -33.75792719841955, + -12.343098064365247 + ], + [ + -33.785859847900824, + 0.28631268546368055 + ], + [ + -16.671424909829533, + -6.058490519875648 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 2647, + "versionNonce": 425332084, + "isDeleted": false, + "id": "T8BZBGiau_3KBW78Y5CaF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10102.73924727493, + "y": 4045.6056085118853, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 640.0874595745308, + "height": 161.5518918663115, + "seed": 881731404, + "groupIds": [ + "h8mYjodY15a47KGSUqhb5" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "hKbFAXIlIWzgxHJAY7rld" + }, + { + "id": "7kf38csQ-P7eHjPzMRYZC", + "type": "arrow" + }, + { + "id": "OC0kXMphQDbgQDC4vUf3b", + "type": "arrow" + }, + { + "id": "LlzaN_rDeD-StKi80AZZh", + "type": "arrow" + } + ], + "updated": 1754001024438, + "link": null, + "locked": false, + "index": "bOS" + }, + { + "type": "text", + "version": 2486, + "versionNonce": 843155404, + "isDeleted": false, + "id": "hKbFAXIlIWzgxHJAY7rld", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10300.343226390809, + "y": 4091.3061124202377, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 244.87950134277344, + "height": 70.15088404960646, + "seed": 694377932, + "groupIds": [ + "h8mYjodY15a47KGSUqhb5" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28.060353619842584, + "fontFamily": 1, + "text": "Business function:\nPack Powder", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "T8BZBGiau_3KBW78Y5CaF", + "originalText": "Business function:\nPack Powder", + "lineHeight": 1.25, + "baseline": 18, + "index": "bOT", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3425, + "versionNonce": 1885375308, + "index": "bOU", + "isDeleted": false, + "id": "WrY4-HRR6qwBayYjpUFGb", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 9705.450949807277, + "y": 4631.138483171928, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 671.0698949490574, + "height": 88.76743066113535, + "seed": 1533311988, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "ngxAk-uD8SOv47vocb9RM" + }, + { + "id": "J_AWiiya8iQSQLeAczAAL", + "type": "arrow" + }, + { + "id": "UIeELpWL3h_49ytEvn2He", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "id": "ngxAk-uD8SOv47vocb9RM", + "type": "text", + "x": 9911.247951725165, + "y": 4640.5221985024955, + "width": 259.47589111328125, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bOV", + "roundness": null, + "seed": 1859706228, + "version": 1047, + "versionNonce": 88687052, + "isDeleted": false, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "text": "Application Service:\nMES", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "WrY4-HRR6qwBayYjpUFGb", + "originalText": "Application Service:\nMES", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13073, + "versionNonce": 1014696692, + "index": "bOW", + "isDeleted": false, + "id": "UIeELpWL3h_49ytEvn2He", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 10240.52851379424, + "y": 4725.827567650792, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.687378675544096, + "height": 141.4112334255633, + "seed": 797796468, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024438, + "link": null, + "locked": false, + "startBinding": { + "elementId": "WrY4-HRR6qwBayYjpUFGb", + "focus": -0.5919766007301446, + "gap": 5.9216538177288385 + }, + "endBinding": { + "elementId": "pW3xlXXhQy_vpuT8kfNa_", + "focus": 0.8679634749508298, + "gap": 2.6337864149318193 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.687378675544096, + 141.4112334255633 + ] + ] + }, + { + "type": "rectangle", + "version": 3370, + "versionNonce": 1101265868, + "index": "bOY", + "isDeleted": false, + "id": "0yd9suVqa2OXFFMctJSp_", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 10943.385209123753, + "y": 4621.336707762271, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 340.3676103637019, + "height": 88.76743066113535, + "seed": 503114740, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "PwhisougSJaXcyKs-LrfE" + }, + { + "id": "efHi6_LKNNoyOQK8v42Z8", + "type": "arrow" + }, + { + "id": "Frcb3CZhAT4_u2tOCLETw", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "id": "PwhisougSJaXcyKs-LrfE", + "type": "text", + "x": 10987.527075523865, + "y": 4630.720423092838, + "width": 252.08387756347656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bOZ", + "roundness": null, + "seed": 618876276, + "version": 1042, + "versionNonce": 768254540, + "isDeleted": false, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "text": "Application Service\nDispatch Service", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "0yd9suVqa2OXFFMctJSp_", + "originalText": "Application Service\nDispatch Service", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 10113, + "versionNonce": 634500556, + "index": "bOa", + "isDeleted": false, + "id": "eJUlENI84BNBYuky4Po_V", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 11169.534666060852, + "y": 4856.688669194371, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 2002729548, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "7DWlnk-BWVP-JCNkXle2s" + }, + { + "id": "efHi6_LKNNoyOQK8v42Z8", + "type": "arrow" + }, + { + "id": "1WNs7OrNuZLum_eDSJJG-", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9461, + "versionNonce": 2016484428, + "index": "bOb", + "isDeleted": false, + "id": "7DWlnk-BWVP-JCNkXle2s", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 11196.722852998497, + "y": 4891.813460389852, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 198.71592712402344, + "height": 70, + "seed": 916066508, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Data Object: \nDelivery", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "eJUlENI84BNBYuky4Po_V", + "originalText": "Data Object: \nDelivery", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 9984, + "versionNonce": 810708940, + "index": "bOc", + "isDeleted": false, + "id": "2dfJdtyhxa896BuV2y2gL", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9007.701476792865, + "y": 4860.733256562036, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 1088523212, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "1bLJiKH1T6KyASUl-eDHa" + }, + { + "id": "3ngs9sk6XZsKAZDybcgVO", + "type": "arrow" + }, + { + "id": "WQYJw6MTBV9AZB90Jj-fY", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9352, + "versionNonce": 646616652, + "index": "bOd", + "isDeleted": false, + "id": "1bLJiKH1T6KyASUl-eDHa", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9034.88966373051, + "y": 4895.858047757517, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 198.71592712402344, + "height": 70, + "seed": 248918604, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Data Object: \nSupplier Order", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "2dfJdtyhxa896BuV2y2gL", + "originalText": "Data Object: \nSupplier Order", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13021, + "versionNonce": 306437620, + "index": "bOe", + "isDeleted": false, + "id": "3ngs9sk6XZsKAZDybcgVO", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 9201.731791792341, + "y": 4856.493282063843, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 99.44362575928608, + "height": 115.7208908039247, + "seed": 1184150988, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "36j9RYitE7lj7wN-J_U8T" + } + ], + "updated": 1754001024439, + "link": null, + "locked": false, + "startBinding": { + "elementId": "2dfJdtyhxa896BuV2y2gL", + "focus": 0.019161594260411655, + "gap": 4.239974498193078 + }, + "endBinding": { + "elementId": "Iy01FuR_PC5J6NZuA_Vqc", + "focus": 0.15953995076382307, + "gap": 16.074169103432723 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 99.44362575928608, + -115.7208908039247 + ] + ] + }, + { + "id": "36j9RYitE7lj7wN-J_U8T", + "type": "text", + "x": 11918.31328936565, + "y": 4966.29699123974, + "width": 59.07997131347656, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bOf", + "roundness": null, + "seed": 143924300, + "version": 87, + "versionNonce": 442671988, + "isDeleted": false, + "boundElements": [], + "updated": 1754000900257, + "link": null, + "locked": false, + "text": "read", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "3ngs9sk6XZsKAZDybcgVO", + "originalText": "read", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13307, + "versionNonce": 1412690164, + "index": "bOg", + "isDeleted": false, + "id": "efHi6_LKNNoyOQK8v42Z8", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 11231.365196697192, + "y": 4716.250939069556, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 65.11758275028114, + "height": 130.7999383618735, + "seed": 1805393100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024439, + "link": null, + "locked": false, + "startBinding": { + "elementId": "0yd9suVqa2OXFFMctJSp_", + "focus": -0.48179785622591204, + "gap": 6.146800646150041 + }, + "endBinding": { + "elementId": "eJUlENI84BNBYuky4Po_V", + "focus": 0.24843156741875783, + "gap": 9.63779176294156 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 65.11758275028114, + 130.7999383618735 + ] + ] + }, + { + "type": "rectangle", + "version": 10187, + "versionNonce": 86451916, + "index": "bOi", + "isDeleted": false, + "id": "svqAXdMQN0-E-5nN1rVqr", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 10872.51780108249, + "y": 4858.352631101716, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 253.09230099931233, + "height": 140.2495823909621, + "seed": 77391732, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "oMCqtVtKXYSFxTk7nhH5t" + }, + { + "id": "Frcb3CZhAT4_u2tOCLETw", + "type": "arrow" + }, + { + "id": "-IVzUd0sIShZxXZuEolBd", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 9554, + "versionNonce": 229666124, + "index": "bOj", + "isDeleted": false, + "id": "oMCqtVtKXYSFxTk7nhH5t", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 10891.459993452263, + "y": 4893.477422297196, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "width": 215.20791625976562, + "height": 70, + "seed": 1022875892, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "Data Object: \nCustomer Order", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "svqAXdMQN0-E-5nN1rVqr", + "originalText": "Data Object: \nCustomer Order", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13080, + "versionNonce": 293290996, + "index": "bOk", + "isDeleted": false, + "id": "Frcb3CZhAT4_u2tOCLETw", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 11015.05108622678, + "y": 4838.448978192589, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 75.17994775615443, + "height": 126.17641319454106, + "seed": 1212836300, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1754001024439, + "link": null, + "locked": false, + "startBinding": { + "elementId": "svqAXdMQN0-E-5nN1rVqr", + "focus": -0.2236973553597282, + "gap": 19.90365290912723 + }, + "endBinding": { + "elementId": "0yd9suVqa2OXFFMctJSp_", + "focus": -0.02237348336075213, + "gap": 2.1684265746416713 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 75.17994775615443, + -126.17641319454106 + ] + ] + }, + { + "type": "rectangle", + "version": 9526, + "versionNonce": 760833868, + "index": "bOm", + "isDeleted": false, + "id": "rhI13Oof6hFnBAofUsaic", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 9389.417858114213, + "y": 5206.114128818764, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 115, + "seed": 1376478540, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "XFqQjBlb1-WadezIPTqDn" + }, + { + "id": "_YPSuq2T9LfFiXoX3KtuN", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8869, + "versionNonce": 1724292556, + "index": "bOn", + "isDeleted": false, + "id": "XFqQjBlb1-WadezIPTqDn", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 9394.417858114213, + "y": 5211.114128818764, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 164.66790771484375, + "height": 105, + "seed": 1619581900, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nArtifact:\nreceiving-file", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "rhI13Oof6hFnBAofUsaic", + "originalText": "<>\nArtifact:\nreceiving-file", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 6552, + "versionNonce": 1188472180, + "index": "bOo", + "isDeleted": false, + "id": "_YPSuq2T9LfFiXoX3KtuN", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 9502.595880694045, + "y": 5199.199278129737, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 4.234944823409023, + "height": 195.49446317181537, + "seed": 1561559628, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024439, + "link": null, + "locked": false, + "startBinding": { + "elementId": "rhI13Oof6hFnBAofUsaic", + "focus": -0.0030836956956670075, + "gap": 6.914850689026935 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -4.234944823409023, + -195.49446317181537 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 9500, + "versionNonce": 1001742668, + "index": "bOr", + "isDeleted": false, + "id": "5BHj6J55_-AyJ_XztQAWE", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 10866.096144963976, + "y": 5225.972010634247, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 115, + "seed": 1233102924, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "S-u4Ihpx_53I8iRuAf1L8" + }, + { + "id": "-IVzUd0sIShZxXZuEolBd", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8813, + "versionNonce": 2073253836, + "index": "bOs", + "isDeleted": false, + "id": "S-u4Ihpx_53I8iRuAf1L8", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 10871.096144963976, + "y": 5230.972010634247, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 165.89991760253906, + "height": 105, + "seed": 108838604, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nArtifact:\njob-response", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "5BHj6J55_-AyJ_XztQAWE", + "originalText": "<>\nArtifact:\njob-response", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 9565, + "versionNonce": 1847645388, + "index": "bOt", + "isDeleted": false, + "id": "a45CkFkfDMRBXp99EJpGf", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 90, + "angle": 0, + "x": 11180.476357911566, + "y": 5229.345459313159, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 229.8633596898573, + "height": 115, + "seed": 494761804, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "eqYYPyocfvyRyr7P3o9Ta" + }, + { + "id": "1WNs7OrNuZLum_eDSJJG-", + "type": "arrow" + } + ], + "updated": 1754001024426, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 8878, + "versionNonce": 1195662156, + "index": "bOu", + "isDeleted": false, + "id": "eqYYPyocfvyRyr7P3o9Ta", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 90, + "angle": 0, + "x": 11185.476357911566, + "y": 5234.345459313159, + "strokeColor": "#2f9e44", + "backgroundColor": "transparent", + "width": 165.89991760253906, + "height": 105, + "seed": 481391476, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024426, + "link": null, + "locked": false, + "fontSize": 28, + "fontFamily": 1, + "text": "<>\nArtifact:\njob-response", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "a45CkFkfDMRBXp99EJpGf", + "originalText": "<>\nArtifact:\njob-response", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 6755, + "versionNonce": 1364908148, + "index": "bOv", + "isDeleted": false, + "id": "-IVzUd0sIShZxXZuEolBd", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 10982.393945450156, + "y": 5217.024954304355, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.430676652908005, + "height": 207.37693324876818, + "seed": 9635148, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024439, + "link": null, + "locked": false, + "startBinding": { + "elementId": "5BHj6J55_-AyJ_XztQAWE", + "focus": 0.007870637588374016, + "gap": 8.947056329892803 + }, + "endBinding": { + "elementId": "svqAXdMQN0-E-5nN1rVqr", + "focus": 0.11555811636933543, + "gap": 11.045807562908522 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 1.430676652908005, + -207.37693324876818 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 6883, + "versionNonce": 414075764, + "index": "bOw", + "isDeleted": false, + "id": "1WNs7OrNuZLum_eDSJJG-", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 11296.774158397746, + "y": 5220.398402983266, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.430676652908005, + "height": 218.38911054544405, + "seed": 1474866636, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1754001024439, + "link": null, + "locked": false, + "startBinding": { + "elementId": "a45CkFkfDMRBXp99EJpGf", + "focus": 0.008072467756498511, + "gap": 8.947056329892803 + }, + "endBinding": { + "elementId": "eJUlENI84BNBYuky4Po_V", + "focus": -0.020602484470003925, + "gap": 5.0710408524892046 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 1.430676652908005, + -218.38911054544405 + ] + ], + "elbowed": false + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file diff --git a/applications/job-scheduling/scenarios/job_scheduling_scenario.md b/applications/job-scheduling/scenarios/job_scheduling_scenario.md new file mode 100644 index 0000000..cf52a74 --- /dev/null +++ b/applications/job-scheduling/scenarios/job_scheduling_scenario.md @@ -0,0 +1,33 @@ +# Scenario: Resource Constraint Response + +## Business Context +Critical resource becomes unavailable, requiring immediate rescheduling while maintaining commitments and priorities. + +## Input Package +- **Problem**: "Primary resource unavailable, requires immediate replanning" +- **Current Schedule**: Active job assignments and dependencies +- **Constraints**: Delivery commitments and quality requirements +- **Available Resources**: Alternative resources with different capabilities + +## Agent Pipeline +`domain-analyst-agent` → `job-scheduler-agent` → `archimate-modeller-agent` → `devops-engineer-agent` → `test-agent` + +## Expected Process +1. **Constraint Analysis** (domain-analyst-agent): Identify all affected requirements and business rules +2. **Schedule Optimization** (job-scheduler-agent): Generate new timeline with alternative resources +3. **Architecture Update** (archimate-modeller-agent): Reflect new workflows in ArchiMate models +4. **Deployment Planning** (devops-engineer-agent): Create infrastructure configurations for new schedule +5. **Validation** (test-agent): Verify schedule meets all constraints and compliance requirements + +## Expected Outputs +- Optimized schedule with alternative resources +- Updated job assignments and dependencies +- Stakeholder notification plan +- Updated architecture models +- Deployment configurations +- Risk assessment and mitigation plan + +## Success Metrics +- Schedule regeneration in minutes (vs hours manual) +- Commitments maintained +- Optimal resource utilization \ No newline at end of file diff --git a/applications/object-synthesis/APPLICATION-MANIFEST.md b/applications/object-synthesis/APPLICATION-MANIFEST.md new file mode 100644 index 0000000..81227d4 --- /dev/null +++ b/applications/object-synthesis/APPLICATION-MANIFEST.md @@ -0,0 +1,86 @@ +# APPLICATION-MANIFEST.md +## Application: Object Synthesis + +### **Application Metadata** +```yaml +application_id: object-synthesis +version: 1.0.0 +type: domain-modeling +status: active +description: Transform business requirements into logical data models, schemas, and APIs across any domain +``` + +### **Domain Dependencies** +```yaml +uses_domains: + - manufacturing-core # When synthesizing ISA-95 objects + - exhibition-events # When modeling visitor flows + +optional_domains: + - regulatory-compliance # For GMP-compliant objects + - quality-standards # For validated schemas +``` + +### **Agent Roles Used** +```yaml +agent_roles: + - domain-analysis-agent # Analyzes business requirements + - object-synthesis-agent # Generates domain objects + - schema-generator-agent # Creates data schemas + - validator-agent # Validates output models +``` + +### **Available Scenarios** +```yaml +scenarios: + - id: pharma-batch-synthesis + description: Generate ISA-95 compliant batch processing objects + location: ./scenarios/pharma-batch-synthesis/ + + - id: equipment-hierarchy + description: Create equipment models from specifications + location: ./scenarios/equipment-hierarchy/ + + - id: api-from-process + description: Generate REST APIs from process models + location: ./scenarios/api-from-process/ +``` + +### **Extended Capabilities** +```yaml +extends: + - artifact-generation # From framework core + - model-validation # From framework core + +provides: + - isa95-object-synthesis # Generate ISA-95 compliant objects + - schema-from-narrative # Create schemas from descriptions + - test-data-generation # Synthetic realistic test data +``` + +### **Entry Points** +```yaml +primary_model: ./models/object-synthesis.excalidraw +quick_start: ./docs/OBJECT-SYNTHESIS-QUICKSTART.md +test_suite: ./tests/object-synthesis-tests.js +``` + +### **Loading Instructions** +```yaml +on_selection: + load: + - ./models/object-synthesis.excalidraw + - agents referenced in agent_roles + +on_scenario_selection: + load: + - ./scenarios/{selected}/ + +on_test_request: + load: + - ./tests/object-synthesis-tests.js + - ./framework-core/TEST-FRAMEWORK.md +``` + +--- +*This application extends the core framework with domain object synthesis capabilities.* \ No newline at end of file diff --git a/applications/object-synthesis/OBJECT-SYNTHESIS-CONFIG.md b/applications/object-synthesis/OBJECT-SYNTHESIS-CONFIG.md new file mode 100644 index 0000000..f3500a5 --- /dev/null +++ b/applications/object-synthesis/OBJECT-SYNTHESIS-CONFIG.md @@ -0,0 +1,41 @@ +# OBJECT-SYNTHESIS-CONFIG.md +## Application Configuration - Object Synthesis (Domain Agnostic) + +### **APPLICATION_METADATA** +**Purpose**: Transform conceptual object definitions into logical, executable data specifications +**Scope**: Domain-independent object synthesis and schema generation +**Version**: 1.0 + +### **BUSINESS_OBJECTIVE** +Accelerate analysis, development, and deployment of data artifacts across any business domain. + +**Value Proposition**: From business object requirement to working data schema in minutes, regardless of domain. + +### **SCOPE_BOUNDARIES** +**Included**: Object definition, schema generation, API synthesis, model updates +**Excluded**: Domain-specific business logic, system deployment, data migration + +### **AGENT_ROLE_DEPENDENCIES** +**Required**: Domain Analyst Agent, Object Synthesis Agent, Schema Generator Agent, ArchiMate Modeller Agent +**Optional**: API Generator Agent, Integration Pattern Agent + +### **INPUT_SPECIFICATIONS** +**Required**: Business object requirements, domain context reference, target formats +**Formats**: Natural language requirements, existing models, compliance standards + +### **OUTPUT_SPECIFICATIONS** +**Primary**: Logical object definitions, schema specifications, API specs, model updates +**Compliance**: ArchiMate 3.1, domain-specific standards (passed as parameters) + +### **QUALITY_GATES** +**Mandatory**: Object definition completeness, schema validity, model consistency, sample data realism +**Performance**: Object definition < 2 min, Schema generation < 30 sec + +### **DOMAIN_INTEGRATION** +**Pattern**: Reference external domain repositories via configuration +**Examples**: pharma5.0/manufacturing, finance-domains/credit-risk, retail-domains/inventory + +### **CONFIGURATION_HIERARCHY** +1. OBJECT-SYNTHESIS-* (this application) +2. [Domain repository]/domain-model (domain-specific) +3. GLOBAL-* (platform behaviors) \ No newline at end of file diff --git a/applications/object-synthesis/README.md b/applications/object-synthesis/README.md new file mode 100644 index 0000000..4481acc --- /dev/null +++ b/applications/object-synthesis/README.md @@ -0,0 +1,20 @@ +# Agent Aware Object Synthesis + +## Purpose +Accelerates the development and deployment of data artifacts by automatically extending domain models based on new business requirements (weeks → hours). + +## Inputs +Business requirement statements and existing domain models + +## Outputs +Extended domain models, API specifications, and updated architecture views + +## Agent Pipeline +Uses: `domain-analyst-agent` → `archimate-modeller-agent` → `archimate-translator` → `test-agent` + +## Dependencies +- Domain information models +- ArchiMate base templates + +--- +*Version: 1.0 | Date: August 2025* \ No newline at end of file diff --git a/applications/object-synthesis/functions/function-analyse-domain/FUNCTION.md b/applications/object-synthesis/functions/function-analyse-domain/FUNCTION.md new file mode 100644 index 0000000..11ea5e7 --- /dev/null +++ b/applications/object-synthesis/functions/function-analyse-domain/FUNCTION.md @@ -0,0 +1,51 @@ +# Analyze Domain Function + +## Agent Task +Transform business requirements into conceptual domain objects using DDD principles within the object-synthesis application. + +## Input Analysis +- **io-business-requirements**: Parse natural language requirements, constraints, and business rules + +## Output Generation +- **io-domain-object-definitions**: Structured conceptual domain objects with properties and relationships + +## Agent Processing Steps +1. **Requirements analysis**: + - Extract business entities, processes, and rules from requirements + - Identify key domain concepts and terminology + - Map business capabilities and constraints +2. **Domain modeling**: + - Apply DDD patterns (entities, value objects, aggregates, services) + - Define object properties, methods, and invariants + - Establish relationships and dependencies between objects +3. **Logical specification**: + - Create structured domain object definitions + - Define data types, constraints, and validation rules + - Specify business logic and behavior patterns +4. **ArchiMate mapping**: + - Map domain entities to ArchiMate business objects + - Map domain services to ArchiMate application services + - Create initial model structure for further processing + +## Agent Guidelines +- **Domain-driven approach**: Use DDD terminology and patterns consistently +- **Business focus**: Ensure objects reflect business concepts, not technical implementation +- **Clear semantics**: Each object should have well-defined purpose and boundaries +- **Relationship clarity**: Make dependencies and associations explicit +- **Validation ready**: Include constraints that can be validated later + +## Tool Integration +- Use **tool-schema-validator** for validating object structure and constraints + +## DDD Pattern Application +- **Entities**: Objects with identity that persist over time +- **Value Objects**: Immutable objects defined by their attributes +- **Aggregates**: Consistency boundaries around related entities +- **Domain Services**: Operations that don't naturally belong to entities +- **Repositories**: Interfaces for object persistence (specify but don't implement) + +## Success Criteria +- All business requirements traced to domain objects +- Domain objects follow DDD best practices +- Clear, implementable logical specifications generated +- Valid ArchiMate model structure created \ No newline at end of file diff --git a/applications/object-synthesis/functions/function-generate-archimate-model/FUNCTION.md b/applications/object-synthesis/functions/function-generate-archimate-model/FUNCTION.md new file mode 100644 index 0000000..4da8c63 --- /dev/null +++ b/applications/object-synthesis/functions/function-generate-archimate-model/FUNCTION.md @@ -0,0 +1,29 @@ +# Generate ArchiMate Model Function + +## Purpose +Transforms domain models into ArchiMate architectural models in specified output formats. + +## Inputs +- **io-domain-model**: Domain model with entities, relationships, and business concepts +- **io-archimate-metamodel**: ArchiMate 3.1 metamodel for validation and element mapping + +## Outputs +- **io-archimate-model**: Internal ArchiMate model (JSON structure) +- **io-open-exchange-xml**: ArchiMate Open Exchange XML format +- **io-archimate-excalidraw**: Visual Excalidraw format + +## Processing Logic +1. Parse domain model entities and relationships +2. Map domain concepts to ArchiMate element types using metamodel +3. Generate internal ArchiMate model structure +4. **Context-aware format selection** (currently hard-coded to Open Exchange XML only) +5. Export to selected format(s) +6. Validate output against metamodel + +## Current Implementation +- **Hard-coded**: Generates Open Exchange XML format only +- **Future**: Context-aware selection based on agent role/application needs, including excalidraw + +## Dependencies +- tool-archimate-modeller +- tool-schema-validator \ No newline at end of file diff --git a/applications/object-synthesis/functions/function-synthesize-domain-model/FUNCTION.md b/applications/object-synthesis/functions/function-synthesize-domain-model/FUNCTION.md new file mode 100644 index 0000000..48f907f --- /dev/null +++ b/applications/object-synthesis/functions/function-synthesize-domain-model/FUNCTION.md @@ -0,0 +1,54 @@ +# Synthesize Domain Model Function + +## Agent Task +Transform conceptual business object definitions into logical domain objects using DDD principles within the object-synthesis application. + +## Input Analysis +- **io-conceptual-object-definitions**: Extract existing domain structure, entities, and relationships (if available) as conceptual objects within the domain. + +## Output Generation +- **io-domain-model**: Structured logical domain objects with properties and relationships + +## Agent Processing Steps +1. **Requirements analysis**: + - Extract business entities, processes, and rules from the conceptual objects + - Map business capabilities and constraints +2. **Domain modeling**: + - Apply DDD patterns (entities, value objects, aggregates, services) + - Define object properties, methods, and invariants + - Establish relationships and dependencies between objects +3. **Logical specification**: + - Create structured domain object definitions + - Define data types, constraints, and validation rules + - Specify business logic and behavior patterns +4. **ArchiMate mapping**: + - Map domain entities to ArchiMate business objects + - Map domain services to ArchiMate application services + - Create initial model structure for further processing +5. **Model validation**: + - Validate model against relevant schema + - Validate model for semantic correctness against the metamodel + - Check consistency within the domain + +## Agent Guidelines +- **Domain-driven approach**: Use DDD terminology and patterns consistently +- **Business focus**: Ensure objects reflect business concepts, not technical implementation +- **Clear semantics**: Each object should have well-defined purpose and boundaries +- **Relationship clarity**: Make dependencies and associations explicit +- **Validation ready**: Include constraints that can be validated later + +## Tool Integration +- Use **tool-schema-validator** for validating object structure and constraints + +## DDD Pattern Application +- **Entities**: Objects with identity that persist over time +- **Value Objects**: Immutable objects defined by their attributes +- **Aggregates**: Consistency boundaries around related entities +- **Domain Services**: Operations that don't naturally belong to entities +- **Repositories**: Interfaces for object persistence (specify but don't implement) + +## Success Criteria +- All business requirements traced to domain objects +- Domain objects follow DDD best practices +- Clear, implementable logical specifications generated +- Valid ArchiMate model structure created \ No newline at end of file diff --git a/applications/object-synthesis/functions/function-validate-archimate-model/FUNCTION.md b/applications/object-synthesis/functions/function-validate-archimate-model/FUNCTION.md new file mode 100644 index 0000000..ea26614 --- /dev/null +++ b/applications/object-synthesis/functions/function-validate-archimate-model/FUNCTION.md @@ -0,0 +1,50 @@ +# Validate ArchiMate Model Function + +## Agent Task +Validate ArchiMate models for compliance with metamodel rules and consistency within the object-synthesis application context. + +## Input Analysis +- **io-archimate-model**: Parse the generated ArchiMate model structure +- **io-archimate-metamodel**: Use metamodel rules for validation constraints +- **io-domain-model**: Cross-reference with original domain model for consistency + +## Output Generation +Generate **io-validation-report** with detailed compliance results + +## Agent Processing Steps +1. **Load validation rules**: Extract ArchiMate metamodel constraints and object-synthesis specific requirements +2. **Structural validation**: + - Verify all elements have valid ArchiMate types + - Check relationship types are permitted between source/target elements + - Ensure required properties are present +3. **Metamodel compliance**: + - Validate layer boundaries (business/application/technology) + - Check element-relationship compatibility matrix + - Verify cardinality constraints +4. **Domain consistency**: + - Ensure all domain entities are represented + - Check that ArchiMate mappings preserve domain semantics + - Validate completeness of transformation +5. **Generate report**: Create structured validation results with errors, warnings, and compliance status + +## Agent Guidelines +- **Be thorough**: Check both structural and semantic validity +- **Be specific**: Identify exact elements/relationships causing issues +- **Prioritize errors**: Critical metamodel violations vs. minor inconsistencies +- **Reference standards**: Quote ArchiMate 3.1 rules when reporting violations +- **Suggest fixes**: Where possible, recommend corrections + +## Tool Integration +- Use **tool-archimate-modeller** for metamodel rule checking +- Use **tool-schema-validator** for structural validation +- Use **tool-excalidraw-adapter** if visual model validation needed + +## Validation Categories +- **CRITICAL**: Metamodel violations that make model invalid +- **WARNING**: Best practice violations or potential issues +- **INFO**: Recommendations for improvement + +## Success Criteria +- All ArchiMate metamodel rules satisfied +- Complete traceability to domain model maintained +- Clear, actionable validation report generated \ No newline at end of file diff --git a/applications/object-synthesis/model/agent-aware-object-synthesis-with-archimate-generation.excalidraw b/applications/object-synthesis/model/agent-aware-object-synthesis-with-archimate-generation.excalidraw new file mode 100644 index 0000000..83277f7 --- /dev/null +++ b/applications/object-synthesis/model/agent-aware-object-synthesis-with-archimate-generation.excalidraw @@ -0,0 +1,12771 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 8264, + "versionNonce": 1493082612, + "isDeleted": false, + "id": "5Z9htNihBTWN52KChVMuU", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17942.35258903564, + "y": 3633.1323458778215, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 2309.888760646734, + "height": 1915.95409160479, + "seed": 563479412, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "YU3ICQYxb7hypGHJQ0ja8" + } + ], + "updated": 1757280091880, + "link": null, + "locked": false, + "index": "bRx" + }, + { + "type": "text", + "version": 8344, + "versionNonce": 1111376756, + "isDeleted": false, + "id": "YU3ICQYxb7hypGHJQ0ja8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "angle": 0, + "x": 18221.112460081662, + "y": 5472.651744616624, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 1752.3690185546875, + "height": 71.43469286598815, + "seed": 342717684, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280091880, + "link": null, + "locked": false, + "fontSize": 57.14775429279052, + "fontFamily": 1, + "text": "Grouping: Application: agent-aware-archimate-model-generation ", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "5Z9htNihBTWN52KChVMuU", + "originalText": "Grouping: Application: agent-aware-archimate-model-generation ", + "lineHeight": 1.25, + "baseline": 18, + "index": "bRy", + "autoResize": true + }, + { + "type": "text", + "version": 5887, + "versionNonce": 523792116, + "isDeleted": false, + "id": "6iMz2k1HtekeNK6PuOlhD", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14411.245320106591, + "y": 3470.693994724805, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1053.23583984375, + "height": 169.43573414501193, + "seed": 1328711795, + "groupIds": [ + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757157300937, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Application: agent-aware-object-sythesis (json) \ntimothy@agileintegrator.com\n6-Aug-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Application: agent-aware-object-sythesis (json) \ntimothy@agileintegrator.com\n6-Aug-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bRz", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5946, + "versionNonce": 1644243532, + "isDeleted": false, + "id": "PaZk0xYEtoBV-OFZAzaS4", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14338.796263896233, + "y": 3417.547435381878, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 3087.9733473831334, + "height": 2001.0199311400847, + "seed": 1470267677, + "groupIds": [ + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Nt5qmY9lmZ84CeurnFEYa" + } + ], + "updated": 1757157300937, + "link": null, + "locked": false, + "index": "bS0" + }, + { + "type": "text", + "version": 5913, + "versionNonce": 431386740, + "isDeleted": false, + "id": "Nt5qmY9lmZ84CeurnFEYa", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "angle": 0, + "x": 15046.439533154366, + "y": 5294.460913962821, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 2375.330078125, + "height": 119.10645255914173, + "seed": 1565414781, + "groupIds": [ + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757157300937, + "link": null, + "locked": false, + "fontSize": 95.28516204731338, + "fontFamily": 1, + "text": "Grouping: Application: agent-aware-object-sythesis ", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "PaZk0xYEtoBV-OFZAzaS4", + "originalText": "Grouping: Application: agent-aware-object-sythesis ", + "lineHeight": 1.25, + "baseline": 18, + "index": "bS1", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5644, + "versionNonce": 1467875532, + "isDeleted": false, + "id": "l1zJr80S72hBgbRCI7cqJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17239.74366742991, + "y": 3476.9538543115054, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 113.92127254271757, + "height": 60.585522418333525, + "seed": 1648377715, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV", + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757157300937, + "link": null, + "locked": false, + "index": "bS2" + }, + { + "type": "rectangle", + "version": 5755, + "versionNonce": 1744323060, + "isDeleted": false, + "id": "mtMaKucnQVjM2XGRsEuJB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17240.395414585095, + "y": 3449.5798809438006, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 59.27927860964957, + "height": 25.952395015707573, + "seed": 831379731, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV", + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757157300937, + "link": null, + "locked": false, + "index": "bS3" + }, + { + "type": "text", + "version": 6685, + "versionNonce": 1469628620, + "isDeleted": false, + "id": "9BqCqpil8ZKZM_nEMPge2", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17980.308608154806, + "y": 3666.2345859530174, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1041.579833984375, + "height": 167.5868963081187, + "seed": 944660980, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278632873, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 44.68983901549832, + "fontFamily": 1, + "text": "Application: agent-aware-object-sythesis (json) \ntimothy@agileintegrator.com\n6-Sep-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Application: agent-aware-object-sythesis (json) \ntimothy@agileintegrator.com\n6-Sep-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bS6", + "autoResize": true + }, + { + "type": "rectangle", + "version": 6353, + "versionNonce": 1212351052, + "isDeleted": false, + "id": "YVuEsUwRI_EofwOtPO3mj", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20094.609884112007, + "y": 3689.378407349253, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 112.67819380158413, + "height": 59.92442925058951, + "seed": 1851438708, + "groupIds": [ + "1NFCnM5hnKBLjLGJt5Zju" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757275535096, + "link": null, + "locked": false, + "index": "bS7" + }, + { + "type": "rectangle", + "version": 6464, + "versionNonce": 1204082892, + "isDeleted": false, + "id": "ghtdNAbfOmOko6kx6cJDp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20095.254519574915, + "y": 3662.303131525863, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 58.63243882824043, + "height": 25.66920935770479, + "seed": 1814284276, + "groupIds": [ + "1NFCnM5hnKBLjLGJt5Zju" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757275535096, + "link": null, + "locked": false, + "index": "bS8" + }, + { + "type": "text", + "version": 5223, + "versionNonce": 1841717620, + "isDeleted": false, + "id": "GpMoxzCsXQf59lPLrGOq9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14886.631570509046, + "y": 5637.499874397155, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1798.3747218909289, + "height": 355.20718937909174, + "seed": 1233058835, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 35.52071893790918, + "fontFamily": 1, + "text": "- Each use-case has a physical representation (free) and a logical one (paid for)\n- the physical EXTENDS the logical\n- access to the logical model offers ability to create whatever physical model you want\n- when creating a physical use-case (workflow), start with the logical and generate the physical\n- IF YOU WANT ACCESS TO THE PARENT, YOU HAVE TO PAY FOR IT!\n\n(NB: should be no clue as to what this physical model is. Clue: It can be inferred from different\nphysical models)", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "- Each use-case has a physical representation (free) and a logical one (paid for)\n- the physical EXTENDS the logical\n- access to the logical model offers ability to create whatever physical model you want\n- when creating a physical use-case (workflow), start with the logical and generate the physical\n- IF YOU WANT ACCESS TO THE PARENT, YOU HAVE TO PAY FOR IT!\n\n(NB: should be no clue as to what this physical model is. Clue: It can be inferred from different physical models)", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSH", + "autoResize": false + }, + { + "type": "text", + "version": 4412, + "versionNonce": 1994527476, + "isDeleted": false, + "id": "dNizY4oS3tHSYGM-hCsUr", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14386.617958928879, + "y": 5641.472312078156, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 231.60594479761457, + "height": 173.48946292702155, + "seed": 118227379, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 27.75831406832345, + "fontFamily": 1, + "text": "Implementations:\n- archimate (xml)\n- json/yam\n- lucidchart\n- excalidraw", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Implementations:\n- archimate (xml)\n- json/yam\n- lucidchart\n- excalidraw", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSI", + "autoResize": true + }, + { + "type": "text", + "version": 6145, + "versionNonce": 344691828, + "isDeleted": false, + "id": "rxZjaFG1bl6rGVqxniG1O", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14406.213360364562, + "y": 5973.666197368951, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 2389.416496257161, + "height": 444.0089867238647, + "seed": 287797491, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 35.52071893790918, + "fontFamily": 1, + "text": "METHOD:\n\n1. model business process through Functions => agent scope / inputs and outputs, events and triggers / use-cases \n2. identify application services => agent APIs and API calls (deployment packages and mocks)\n3. map domain objects => test data, object models and schemas\n4. define deployment targets\n i. in tech agnostic language (the 'Metamodel')\n ii. for each supported technology set => deployment package\n\nDeliverable: fully working demo for every defined technology set", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "METHOD:\n\n1. model business process through Functions => agent scope / inputs and outputs, events and triggers / use-cases \n2. identify application services => agent APIs and API calls (deployment packages and mocks)\n3. map domain objects => test data, object models and schemas\n4. define deployment targets\n i. in tech agnostic language (the 'Metamodel')\n ii. for each supported technology set => deployment package\n\nDeliverable: fully working demo for every defined technology set", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSK", + "autoResize": false + }, + { + "type": "arrow", + "version": 15251, + "versionNonce": 423585484, + "index": "bSL", + "isDeleted": false, + "id": "QVOlcrqJ5xmRaYy8edi5B", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15482.549695415935, + "y": 4609.739086719608, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 247.27260022122937, + "height": 202.21651008023218, + "seed": 2019877075, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156008250, + "link": null, + "locked": false, + "startBinding": { + "elementId": "-anmKW3ksniwIfAGMP_Jo", + "focus": 1.1234314280617428, + "gap": 15.019526677850438 + }, + "endBinding": { + "elementId": "r5wSlJTMg1xdFyHlN1pk8", + "focus": 0.46099852166150984, + "gap": 9.845782449982304 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 247.27260022122937, + -202.21651008023218 + ] + ] + }, + { + "type": "rectangle", + "version": 3896, + "versionNonce": 467666804, + "index": "bSM", + "isDeleted": false, + "id": "r5wSlJTMg1xdFyHlN1pk8", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15719.72814602475, + "y": 4316.712387282906, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 115, + "seed": 1364676211, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "FM01gF_gyvUtwBxPp1A4i" + }, + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + }, + { + "id": "QVOlcrqJ5xmRaYy8edi5B", + "type": "arrow" + }, + { + "id": "auMkqLDuk3Ti0Xp22OPru", + "type": "arrow" + }, + { + "id": "aiGwLFCeZKk5T2ghP1g3_", + "type": "arrow" + }, + { + "id": "B_4wZo5GBy6hJDL71N1vJ", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false + }, + { + "id": "FM01gF_gyvUtwBxPp1A4i", + "type": "text", + "x": 15735.785525039346, + "y": 4321.712387282906, + "width": 276.7518615722656, + "height": 105, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSN", + "roundness": null, + "seed": 1760233491, + "version": 1867, + "versionNonce": 1054275828, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "text": "Application function:\nArchimate Model\nGeneration", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "r5wSlJTMg1xdFyHlN1pk8", + "originalText": "Application function:\nArchimate Model Generation", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "nrBU51XdHcoqbB2iQD1it", + "type": "text", + "x": 16760.35440789571, + "y": 3685.210935186804, + "width": 161.6439971923828, + "height": 35, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSO", + "roundness": null, + "seed": 1964412339, + "version": 1126, + "versionNonce": 1781063412, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "text": "Visual check", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Visual check", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 8633, + "versionNonce": 223683532, + "index": "bSP", + "isDeleted": false, + "id": "3pcyzeXzsI6wf96yzb6wS", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15780.716032347169, + "y": 4840.493916338865, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 36.806959533958434, + "height": 145.64514688065992, + "seed": 687890259, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156008250, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Rc0hNWnQqTVtkgK2UnO4W", + "focus": 0, + "gap": 14 + }, + "endBinding": { + "elementId": "jYohxCNXaggYXZIgKzc8t", + "focus": 0.18982022182772493, + "gap": 15.588019460247779 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 36.806959533958434, + -145.64514688065992 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 7881, + "versionNonce": 995897676, + "index": "bSQ", + "isDeleted": false, + "id": "UVRiZFoX2vg94cLLqnE6_", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14884.590975369712, + "y": 4870.284267539433, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 56.06483679394478, + "height": 165.19752520563543, + "seed": 251591923, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "JLcpc16BIhvwxz9U0kaaf" + } + ], + "updated": 1757157224388, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "APTPv6Az5V2NmUUs9cPKY", + "focus": 0.10607588001264243, + "gap": 4.008857397176143 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 56.06483679394478, + -165.19752520563543 + ] + ], + "elbowed": false + }, + { + "id": "JLcpc16BIhvwxz9U0kaaf", + "type": "text", + "x": 16864.47368463394, + "y": 5013.136973623218, + "width": 100.7159423828125, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 70, + "groupIds": [], + "frameId": null, + "index": "bSR", + "roundness": null, + "seed": 580445843, + "version": 175, + "versionNonce": 1103063540, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "UVRiZFoX2vg94cLLqnE6_", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 14414, + "versionNonce": 2061476044, + "index": "bSS", + "isDeleted": false, + "id": "D1USZU5QCXf1z_tvd0QHM", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15393.999615600897, + "y": 4406.856075394466, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.4470373387994186, + "height": 197.6971326616922, + "seed": 713333811, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156008250, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PPnF1x5bIW8e5eH2NSGNL", + "focus": 0.10124689562499715, + "gap": 25.976305543415947 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.4470373387994186, + 197.6971326616922 + ] + ] + }, + { + "type": "arrow", + "version": 10245, + "versionNonce": 464444876, + "index": "bST", + "isDeleted": false, + "id": "Y-ujCGmMtrdr81wqKGUfy", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 14929.989440146797, + "y": 4325.7243467610615, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.4406727495625091, + "height": 291.28983370969445, + "seed": 1386782163, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "POK33O-WLkHxCVwaPEac1" + } + ], + "updated": 1757156008250, + "link": null, + "locked": false, + "startBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": -0.15145808842083586, + "gap": 1.2652985180548058 + }, + "endBinding": { + "elementId": "0vkp3XfpvyUmriJEERhYC", + "focus": 0.043926623041145245, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 0.4406727495625091, + -291.28983370969445 + ] + ] + }, + { + "id": "POK33O-WLkHxCVwaPEac1", + "type": "text", + "x": 16889.01753219048, + "y": 4404.079289742226, + "width": 86.71597290039062, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSU", + "roundness": null, + "seed": 102460275, + "version": 220, + "versionNonce": 1445565900, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "serves", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Y-ujCGmMtrdr81wqKGUfy", + "originalText": "serves", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 10975, + "versionNonce": 1972558540, + "index": "bSV", + "isDeleted": false, + "id": "XPIaGHSmzctn3PvW-9hvP", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15407.966961757455, + "y": 4316.99123453964, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.682295487898955, + "height": 287.2089926053545, + "seed": 153322771, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156008250, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PPnF1x5bIW8e5eH2NSGNL", + "focus": -0.018525508160623125, + "gap": 1 + }, + "endBinding": { + "elementId": "F7xGKrg7xqprxKtXY8w4_", + "focus": -0.05782469923596022, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.682295487898955, + -287.2089926053545 + ] + ] + }, + { + "type": "arrow", + "version": 10871, + "versionNonce": 1585815884, + "index": "bSW", + "isDeleted": false, + "id": "auMkqLDuk3Ti0Xp22OPru", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15873.931230941445, + "y": 4316.420860351302, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 5.006843024375485, + "height": 284.81777142570354, + "seed": 1396140723, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156008250, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": 0.3876301493934819, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -5.006843024375485, + -284.81777142570354 + ] + ] + }, + { + "type": "arrow", + "version": 10846, + "versionNonce": 86949452, + "index": "bSX", + "isDeleted": false, + "id": "kpEiaULRdnpoakPH-eZmz", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15102.988687186291, + "y": 3957.659541911974, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 132.8722620633598, + "height": 1.0299111124500087, + "seed": 687709267, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156008251, + "link": null, + "locked": false, + "startBinding": { + "elementId": "0vkp3XfpvyUmriJEERhYC", + "focus": -0.10166869166144119, + "gap": 1.1474522223415988 + }, + "endBinding": { + "elementId": "F7xGKrg7xqprxKtXY8w4_", + "focus": -0.00536478661613184, + "gap": 6.771118992823176 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 132.8722620633598, + 1.0299111124500087 + ] + ] + }, + { + "type": "arrow", + "version": 10311, + "versionNonce": 1609866060, + "index": "bSY", + "isDeleted": false, + "id": "9aM2Jd51MAD8XOARGX5-8", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15551.528817098002, + "y": 3967.683331462369, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 116.33975593300784, + "height": 4.210359167059323, + "seed": 1984731635, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156008251, + "link": null, + "locked": false, + "startBinding": { + "elementId": "F7xGKrg7xqprxKtXY8w4_", + "focus": 0.18374335536252007, + "gap": 5.065113126156575 + }, + "endBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": 0.07478835521733085, + "gap": 4.277715239473764 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 116.33975593300784, + -4.210359167059323 + ] + ] + }, + { + "type": "arrow", + "version": 11613, + "versionNonce": 514275404, + "index": "bSZ", + "isDeleted": false, + "id": "UC0gyv0RbxBh9oMHMoFLq", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16318.390832849305, + "y": 3969.7972659872776, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 385.3829321513331, + "height": 10.115594164144568, + "seed": 1747641235, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156008251, + "link": null, + "locked": false, + "startBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": 0.03857777274920405, + "gap": 6.15708500429173 + }, + "endBinding": { + "elementId": "bMI1ce855OEuj-IvK4hQl", + "focus": -0.25184097540647526, + "gap": 8.248526967388898 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 385.3829321513331, + 10.115594164144568 + ] + ] + }, + { + "type": "arrow", + "version": 10997, + "versionNonce": 1882345164, + "index": "bSa", + "isDeleted": false, + "id": "5Kaa7QJ4Vr1ifCgR2JiiX", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16890.269271175253, + "y": 4559.390906492785, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.0012780146353179589, + "height": 520.0338568972538, + "seed": 1187969331, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156008251, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "bMI1ce855OEuj-IvK4hQl", + "focus": -0.09420293547645148, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -0.0012780146353179589, + -520.0338568972538 + ] + ] + }, + { + "type": "arrow", + "version": 10559, + "versionNonce": 758048372, + "index": "bSb", + "isDeleted": false, + "id": "zlSPouc1atj_bkWIUJQuy", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16284.141480613882, + "y": 4317.203838425427, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 2.753530705538651, + "height": 285.6010031945698, + "seed": 262101715, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156025417, + "link": null, + "locked": false, + "startBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": -0.47519580821251595, + "gap": 1 + }, + "endBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": -0.8994194463197308, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -2.753530705538651, + -285.6010031945698 + ] + ] + }, + { + "type": "rectangle", + "version": 3002, + "versionNonce": 525111540, + "isDeleted": false, + "id": "0vkp3XfpvyUmriJEERhYC", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14773.658437178405, + "y": 3893.288261056505, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 328.18279778554523, + "height": 140.74941657121406, + "seed": 995033619, + "groupIds": [ + "raWP1e8bQVtIY6tbIGBhJ" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "UJ-Yk3yM-zw3WrChc3nqV" + }, + { + "id": "Y-ujCGmMtrdr81wqKGUfy", + "type": "arrow" + }, + { + "id": "kpEiaULRdnpoakPH-eZmz", + "type": "arrow" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bSd" + }, + { + "type": "text", + "version": 2643, + "versionNonce": 116806260, + "isDeleted": false, + "id": "UJ-Yk3yM-zw3WrChc3nqV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14803.659549816293, + "y": 3925.2431188562505, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 216745907, + "groupIds": [ + "raWP1e8bQVtIY6tbIGBhJ" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nDomain Analysis", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "0vkp3XfpvyUmriJEERhYC", + "originalText": "Business function:\nDomain Analysis", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSe", + "autoResize": true + }, + { + "id": "bBwbOyhneCvGYwVK0pVfF", + "type": "line", + "x": 15086.851673862457, + "y": 3921.748049107646, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "raWP1e8bQVtIY6tbIGBhJ" + ], + "frameId": null, + "index": "bSf", + "roundness": null, + "seed": 439212371, + "version": 3842, + "versionNonce": 2031057012, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3523, + "versionNonce": 116410868, + "isDeleted": false, + "id": "F7xGKrg7xqprxKtXY8w4_", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15242.632068242474, + "y": 3889.7931073282707, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 303.8316357293715, + "height": 139.49172216661904, + "seed": 812463859, + "groupIds": [ + "qpRqZvijKXUMPEC3Ck0U6" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "r0rGU8NDIf--uvdkR7PV0" + }, + { + "id": "XPIaGHSmzctn3PvW-9hvP", + "type": "arrow" + }, + { + "id": "kpEiaULRdnpoakPH-eZmz", + "type": "arrow" + }, + { + "id": "9aM2Jd51MAD8XOARGX5-8", + "type": "arrow" + }, + { + "id": "iAhy1-5wJRKGEo2-d0GDC", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bSg" + }, + { + "type": "text", + "version": 3328, + "versionNonce": 331017076, + "isDeleted": false, + "id": "r0rGU8NDIf--uvdkR7PV0", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15273.897159788801, + "y": 3924.97384354887, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 241.30145263671875, + "height": 69.13024972542082, + "seed": 774889619, + "groupIds": [ + "qpRqZvijKXUMPEC3Ck0U6" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 27.65209989016833, + "fontFamily": 1, + "text": "Business function:\nObject Synthesis", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "F7xGKrg7xqprxKtXY8w4_", + "originalText": "Business function:\nObject Synthesis", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSh", + "autoResize": true + }, + { + "id": "A6UMdXzK9093p4a9ikrAo", + "type": "line", + "x": 15532.978069734385, + "y": 3915.397478899573, + "width": 33.29430498440818, + "height": 19.193296671048646, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "qpRqZvijKXUMPEC3Ck0U6" + ], + "frameId": null, + "index": "bSi", + "roundness": null, + "seed": 1563186739, + "version": 4347, + "versionNonce": 641700212, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21634518201612724, + -11.362510852008604 + ], + [ + -16.344562004972463, + -18.91114958603595 + ], + [ + -33.266778730672485, + -12.163516727337878 + ], + [ + -33.29430498440818, + 0.28214708501269614 + ], + [ + -16.42887018330573, + -5.970344754343089 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3269, + "versionNonce": 682967796, + "isDeleted": false, + "id": "EysawDVhRAwWO51Md93VG", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15672.146288270484, + "y": 3884.789355686895, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 640.0874595745308, + "height": 146.58827700732988, + "seed": 206116819, + "groupIds": [ + "Lgg2lsAEiiT5S3Lg8OguY" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "Z1ixIH_uM_0wjQ4WJ4IrK" + }, + { + "id": "auMkqLDuk3Ti0Xp22OPru", + "type": "arrow" + }, + { + "id": "9aM2Jd51MAD8XOARGX5-8", + "type": "arrow" + }, + { + "id": "UC0gyv0RbxBh9oMHMoFLq", + "type": "arrow" + }, + { + "id": "zlSPouc1atj_bkWIUJQuy", + "type": "arrow" + }, + { + "id": "ob1942x-aJeUUDKBnT6rj", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bSj" + }, + { + "type": "text", + "version": 3054, + "versionNonce": 75023476, + "isDeleted": false, + "id": "Z1ixIH_uM_0wjQ4WJ4IrK", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15867.337097525524, + "y": 3923.0080521657565, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 249.70584106445312, + "height": 70.15088404960646, + "seed": 1771873651, + "groupIds": [ + "Lgg2lsAEiiT5S3Lg8OguY" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 28.060353619842584, + "fontFamily": 1, + "text": "Business function:\nModel Preparation", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "EysawDVhRAwWO51Md93VG", + "originalText": "Business function:\nModel Preparation", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSk", + "autoResize": true + }, + { + "id": "VVHYLwjAhBe93WO5yCZSp", + "type": "line", + "x": 16293.172534234101, + "y": 3915.702403868352, + "width": 33.785859847900824, + "height": 22.671652281224716, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "Lgg2lsAEiiT5S3Lg8OguY" + ], + "frameId": null, + "index": "bSl", + "roundness": null, + "seed": 476938003, + "version": 4026, + "versionNonce": 1252752372, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21953928762857447, + -13.421711730583429 + ], + [ + -16.58587201126224, + -22.33837234952763 + ], + [ + -33.75792719841955, + -14.367881999918982 + ], + [ + -33.785859847900824, + 0.3332799316970858 + ], + [ + -16.671424909829533, + -7.052336166598999 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3511, + "versionNonce": 1564466548, + "isDeleted": false, + "id": "bMI1ce855OEuj-IvK4hQl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16712.022291968027, + "y": 3890.7555535148585, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 325.79971197539163, + "height": 147.89867400167594, + "seed": 523379891, + "groupIds": [ + "_KEF53NxGDMJ0rBQ_MNS1" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "jMbh_s5VaSG8OFsZEQydh" + }, + { + "id": "UC0gyv0RbxBh9oMHMoFLq", + "type": "arrow" + }, + { + "id": "5Kaa7QJ4Vr1ifCgR2JiiX", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bSm" + }, + { + "type": "text", + "version": 3227, + "versionNonce": 835456756, + "isDeleted": false, + "id": "jMbh_s5VaSG8OFsZEQydh", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16740.83186170084, + "y": 3926.2850400298357, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 1502680659, + "groupIds": [ + "_KEF53NxGDMJ0rBQ_MNS1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nApprove Model", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "bMI1ce855OEuj-IvK4hQl", + "originalText": "Business function:\nApprove Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSn", + "autoResize": true + }, + { + "id": "JFf7oRkHEIw2uRbJpd1qw", + "type": "line", + "x": 17022.832442841926, + "y": 3919.2153415659996, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "_KEF53NxGDMJ0rBQ_MNS1" + ], + "frameId": null, + "index": "bSo", + "roundness": null, + "seed": 2053166067, + "version": 4250, + "versionNonce": 1958445940, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4120, + "versionNonce": 562577396, + "index": "bSp", + "isDeleted": false, + "id": "L55CfL0i8MXV6jtmkaF5p", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 14785.522459135846, + "y": 4326.989645279116, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 340.3676103637019, + "height": 88.76743066113535, + "seed": 296213907, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "a8W46Mhue2WZerc1zMkrH" + }, + { + "id": "Y-ujCGmMtrdr81wqKGUfy", + "type": "arrow" + }, + { + "id": "NVvDryM_AW_QCQ_yrwioa", + "type": "arrow" + }, + { + "id": "qWs9jyZR-8aXxtmbxVPpZ", + "type": "arrow" + }, + { + "id": "cNqFA3aQG4dlYRpKz8knb", + "type": "arrow" + } + ], + "updated": 1757157310693, + "link": null, + "locked": false + }, + { + "id": "a8W46Mhue2WZerc1zMkrH", + "type": "text", + "x": 14817.330333531565, + "y": 4336.373360609684, + "width": 276.7518615722656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSq", + "roundness": null, + "seed": 1788654387, + "version": 1860, + "versionNonce": 1444951668, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "text": "Application function:\nDomain Analysis", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "L55CfL0i8MXV6jtmkaF5p", + "originalText": "Application function:\nDomain Analysis", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 4044, + "versionNonce": 1109875828, + "index": "bSr", + "isDeleted": false, + "id": "PPnF1x5bIW8e5eH2NSGNL", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15241.69754475229, + "y": 4317.832380937882, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 340.3676103637019, + "height": 115, + "seed": 631624915, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "9Ajjn1dGl_ljazpxBJnA8" + }, + { + "id": "D1USZU5QCXf1z_tvd0QHM", + "type": "arrow" + }, + { + "id": "XPIaGHSmzctn3PvW-9hvP", + "type": "arrow" + }, + { + "id": "nqw6PFzKGWi4Wkye_IGbR", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false + }, + { + "id": "9Ajjn1dGl_ljazpxBJnA8", + "type": "text", + "x": 15273.505419148007, + "y": 4322.832380937882, + "width": 276.7518615722656, + "height": 105, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSs", + "roundness": null, + "seed": 307872371, + "version": 1660, + "versionNonce": 728477172, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "text": "Application function:\nSynthesize Domain\nModel", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "PPnF1x5bIW8e5eH2NSGNL", + "originalText": "Application function:\nSynthesize Domain Model", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3353, + "versionNonce": 809178100, + "isDeleted": false, + "id": "L5mPp-qXif1BCTgSDp0fS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14779.319696397542, + "y": 4883.087155957595, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 798153363, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "OBadGTJ3pFEikvW6tQIIO" + }, + { + "id": "UVRiZFoX2vg94cLLqnE6_", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bSu" + }, + { + "type": "text", + "version": 2934, + "versionNonce": 488404340, + "isDeleted": false, + "id": "OBadGTJ3pFEikvW6tQIIO", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14804.511456748813, + "y": 4888.087155957595, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 147.65989685058594, + "height": 75, + "seed": 1814040627, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<> Generic\nObject Listing", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "L5mPp-qXif1BCTgSDp0fS", + "originalText": "Artifact:\n<> Generic Object Listing", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSv", + "autoResize": true + }, + { + "id": "zr7worpEvX-qEW1HODZdB", + "type": "line", + "x": 14965.165506841266, + "y": 4890.007509982162, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "index": "bSw", + "roundness": null, + "seed": 951423443, + "version": 5390, + "versionNonce": 2052433652, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "CGWGmaaFAprq7HKsZ5qBB", + "type": "line", + "x": 14970.02652959498, + "y": 4895.351635909779, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "index": "bSx", + "roundness": null, + "seed": 107601779, + "version": 3849, + "versionNonce": 208447604, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4184, + "versionNonce": 388463092, + "isDeleted": false, + "id": "zDFe4dX_kdRkvcjwB2rtg", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14954.178504178039, + "y": 4890.395158557689, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1602451731, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bSy" + }, + { + "type": "rectangle", + "version": 3294, + "versionNonce": 1972116340, + "isDeleted": false, + "id": "4t42liXEYM5ssvt4P5y3V", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15125.415125941134, + "y": 3721.250485468214, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1098440371, + "groupIds": [ + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "yEmpmJdou_a-7NLpK6uox", + "type": "text" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bSz" + }, + { + "type": "text", + "version": 2941, + "versionNonce": 836799732, + "isDeleted": false, + "id": "yEmpmJdou_a-7NLpK6uox", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15147.846891785568, + "y": 3742.4849264132017, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 153.1798858642578, + "height": 50, + "seed": 921735251, + "groupIds": [ + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Architect", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "4t42liXEYM5ssvt4P5y3V", + "originalText": "Business role:\nData Architect", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT0", + "autoResize": true + }, + { + "type": "line", + "version": 10063, + "versionNonce": 497733236, + "index": "bT1", + "isDeleted": false, + "id": "gZMBToViqkoR_-6gnHGms", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15307.509579354253, + "y": 3721.217268865563, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 834735603, + "groupIds": [ + "HALI5MzPW3Ntrrx0KNyn_", + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10792, + "versionNonce": 1773199348, + "index": "bT2", + "isDeleted": false, + "id": "yUs304uhIxX8Uv6IwuKNJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15284.762553583922, + "y": 3731.4801017586906, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 619763603, + "groupIds": [ + "HALI5MzPW3Ntrrx0KNyn_", + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 3296, + "versionNonce": 1039712628, + "isDeleted": false, + "id": "qapzWFhyaHHIFgSFzXvUA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15125.415125941134, + "y": 3720.7038855314076, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 410434163, + "groupIds": [ + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "TqCBluopYvS0QT5be9HSs", + "type": "text" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bT28" + }, + { + "type": "text", + "version": 2942, + "versionNonce": 1372091124, + "isDeleted": false, + "id": "TqCBluopYvS0QT5be9HSs", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15147.846891785568, + "y": 3741.9383264763956, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 153.1798858642578, + "height": 50, + "seed": 1530829373, + "groupIds": [ + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Architect", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "qapzWFhyaHHIFgSFzXvUA", + "originalText": "Business role:\nData Architect", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT2G", + "autoResize": true + }, + { + "type": "line", + "version": 10064, + "versionNonce": 1901544948, + "index": "bT2V", + "isDeleted": false, + "id": "koD8hu2M-vJgOhEuiCaGY", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15307.509579354253, + "y": 3720.6706689287566, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 1899820051, + "groupIds": [ + "7p5QGy7-IFF3XOXQTDPs0", + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10793, + "versionNonce": 266495860, + "index": "bT2l", + "isDeleted": false, + "id": "8bYoG2OmjMHo07M3XVbhU", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15284.762553583922, + "y": 3730.9335018218844, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 71977629, + "groupIds": [ + "7p5QGy7-IFF3XOXQTDPs0", + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 3248, + "versionNonce": 1133336820, + "isDeleted": false, + "id": "Mc3EQx-lMrxS0Wj0bzMKU", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15899.117084931055, + "y": 3738.055933213567, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 246.9748729860165, + "height": 67.89379668398578, + "seed": 1589013811, + "groupIds": [ + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "dcx5-HSGhPmHLbcYQWWUy", + "type": "text" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bT3" + }, + { + "type": "text", + "version": 2954, + "versionNonce": 2011044468, + "isDeleted": false, + "id": "dcx5-HSGhPmHLbcYQWWUy", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15917.964621216543, + "y": 3750.949729897553, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 209.27980041503906, + "height": 50, + "seed": 578309843, + "groupIds": [ + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nArchitecture Modeller", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "Mc3EQx-lMrxS0Wj0bzMKU", + "originalText": "Business role:\nArchitecture Modeller", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT4", + "autoResize": true + }, + { + "type": "line", + "version": 9893, + "versionNonce": 932883444, + "index": "bT5", + "isDeleted": false, + "id": "bwXMhC5NEvRirLKD5ar_c", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 16130.142993777063, + "y": 3738.022716610916, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 46988403, + "groupIds": [ + "XGvrlOp8KgdDkplF9YiDD", + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10622, + "versionNonce": 1154026868, + "index": "bT6", + "isDeleted": false, + "id": "cvFNbmoL-OJNnX-2t0NhB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 16107.395968006731, + "y": 3748.285549504044, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 2071655955, + "groupIds": [ + "XGvrlOp8KgdDkplF9YiDD", + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false + }, + { + "id": "4bfcdtuEsQskYEKvYVLjU", + "type": "arrow", + "x": 16861.349750565587, + "y": 3827.2205431858893, + "width": 0.44871836812308175, + "height": 61.15307240254333, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bT7", + "roundness": null, + "seed": 1266203571, + "version": 2350, + "versionNonce": 816791284, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.44871836812308175, + 61.15307240254333 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3094, + "versionNonce": 1943224436, + "isDeleted": false, + "id": "3fCBHxVaWETsktdmybp9H", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15063.742167076278, + "y": 4153.718746031536, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 69.74310838919793, + "seed": 250400083, + "groupIds": [ + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "KscoDFXd2W508m1V5xXwV" + }, + { + "id": "WOTsr_7_PmZECNeZCq-pi", + "type": "arrow" + }, + { + "id": "qWs9jyZR-8aXxtmbxVPpZ", + "type": "arrow" + } + ], + "updated": 1757156007652, + "link": null, + "locked": false, + "index": "bT8" + }, + { + "type": "text", + "version": 2699, + "versionNonce": 100340212, + "isDeleted": false, + "id": "KscoDFXd2W508m1V5xXwV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15073.107513591549, + "y": 4168.461854420734, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 213.7198486328125, + "height": 50, + "seed": 422423283, + "groupIds": [ + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007652, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nDomain Analyst Agent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "3fCBHxVaWETsktdmybp9H", + "originalText": "App Component:\nDomain Analyst Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT9", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3250, + "versionNonce": 44967156, + "isDeleted": false, + "id": "dnZVGcRChGSyCcPBJe_Wv", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15261.491782777386, + "y": 4158.445474758562, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 247583891, + "groupIds": [ + "N8dWk6ApgWDtPoCZyZAoF", + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTA" + }, + { + "type": "rectangle", + "version": 3916, + "versionNonce": 822437492, + "isDeleted": false, + "id": "LFcG-gLJgs2PJdflnpTmG", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15257.534744752116, + "y": 4160.865754434291, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1063242291, + "groupIds": [ + "N8dWk6ApgWDtPoCZyZAoF", + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTB" + }, + { + "type": "rectangle", + "version": 3943, + "versionNonce": 1710782452, + "isDeleted": false, + "id": "Pdwy3tYU6TvgflHKN3Q-9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15257.705572204915, + "y": 4165.636205119781, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1072565203, + "groupIds": [ + "N8dWk6ApgWDtPoCZyZAoF", + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTC" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow", + "x": 15168.80457087545, + "y": 3803.358717783267, + "width": 158.08864122442355, + "height": 89.1098521743279, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bTD", + "roundness": null, + "seed": 1149442419, + "version": 4130, + "versionNonce": 1830717644, + "isDeleted": false, + "boundElements": [], + "updated": 1757156008252, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -158.08864122442355, + 89.1098521743279 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "qapzWFhyaHHIFgSFzXvUA", + "focus": -0.14030629577608314, + "gap": 6.420391306871352 + }, + "endBinding": { + "elementId": "0vkp3XfpvyUmriJEERhYC", + "focus": -0.18460080251431635, + "gap": 1 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "WOTsr_7_PmZECNeZCq-pi", + "type": "arrow", + "x": 15233.304694544608, + "y": 4233.193472892076, + "width": 64.30133681539155, + "height": 76.82210393113837, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bTE", + "roundness": null, + "seed": 979727123, + "version": 1766, + "versionNonce": 1661602548, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 64.30133681539155, + 76.82210393113837 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3280, + "versionNonce": 1717818444, + "isDeleted": false, + "id": "APTPv6Az5V2NmUUs9cPKY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14869.452126771575, + "y": 4616.077884936622, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 571185331, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "auTw0KW5mhbRPQJ2H_D1Q", + "type": "text" + }, + { + "id": "Pm6_q6QFzPZbA4UBL48SD", + "type": "arrow" + }, + { + "id": "UVRiZFoX2vg94cLLqnE6_", + "type": "arrow" + }, + { + "id": "NVvDryM_AW_QCQ_yrwioa", + "type": "arrow" + }, + { + "id": "wi0OZPoZoJ6DzOdDMV4fM", + "type": "arrow" + } + ], + "updated": 1757157224388, + "link": null, + "locked": false, + "index": "bTF" + }, + { + "type": "text", + "version": 2789, + "versionNonce": 746608076, + "isDeleted": false, + "id": "auTw0KW5mhbRPQJ2H_D1Q", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14898.51388986943, + "y": 4621.077884936622, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 139.91989135742188, + "height": 75, + "seed": 689703507, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757157241780, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nDomain Object\nDefinitions", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "APTPv6Az5V2NmUUs9cPKY", + "originalText": "Data object:\nDomain Object Definitions", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTG", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3883, + "versionNonce": 2111842252, + "isDeleted": false, + "id": "je-_kGZ_u9jVrDkhtn7FQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15038.164268977467, + "y": 4622.0009864463955, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 74270707, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757157224388, + "link": null, + "locked": false, + "index": "bTH" + }, + { + "type": "rectangle", + "version": 4251, + "versionNonce": 1772179020, + "isDeleted": false, + "id": "mf2YJjgJIFxpJsEf5KZ6h", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15038.173915913198, + "y": 4622.020774766843, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 168153491, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "nqw6PFzKGWi4Wkye_IGbR", + "type": "arrow" + } + ], + "updated": 1757157224388, + "link": null, + "locked": false, + "index": "bTI" + }, + { + "type": "arrow", + "version": 8439, + "versionNonce": 74157900, + "index": "bTJ", + "isDeleted": false, + "id": "Pm6_q6QFzPZbA4UBL48SD", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15299.985905806421, + "y": 4895.552228584328, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 40.83593376992576, + "height": 189.7779547987302, + "seed": 186394419, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156008252, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "4hpgK0tKdfZnmCeG68gnM", + "focus": 0.2137439653697598, + "gap": 11.538758774730923 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 40.83593376992576, + -189.7779547987302 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3598, + "versionNonce": 886626036, + "isDeleted": false, + "id": "C9zyvGD0OeAKnjGQkeT22", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15190.70859637922, + "y": 4900.779935896085, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 1846986963, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "mWMNjQVNaXmUIgvfaDMvp" + }, + { + "id": "Pm6_q6QFzPZbA4UBL48SD", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTK" + }, + { + "type": "text", + "version": 3207, + "versionNonce": 1862916212, + "isDeleted": false, + "id": "mWMNjQVNaXmUIgvfaDMvp", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15207.740383585962, + "y": 4905.779935896085, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 163.97984313964844, + "height": 75, + "seed": 143406707, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<> Logical\nObject Definition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "C9zyvGD0OeAKnjGQkeT22", + "originalText": "Artifact:\n<> Logical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTL", + "autoResize": true + }, + { + "id": "zswuI8u1kULgp4jw3rzmo", + "type": "line", + "x": 15376.648663437554, + "y": 4907.700289920654, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "index": "bTM", + "roundness": null, + "seed": 960688147, + "version": 5633, + "versionNonce": 245279220, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "f8LUylhnGA-eMN11J5b8-", + "type": "line", + "x": 15381.509686191268, + "y": 4913.044415848269, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "index": "bTN", + "roundness": null, + "seed": 1110537651, + "version": 4092, + "versionNonce": 1453149044, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4427, + "versionNonce": 961264884, + "isDeleted": false, + "id": "2FADJi3Ul4nrczPE6y73z", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15365.661660774327, + "y": 4908.087938496178, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1652442963, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTO" + }, + { + "type": "rectangle", + "version": 3358, + "versionNonce": 1882193524, + "isDeleted": false, + "id": "4hpgK0tKdfZnmCeG68gnM", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15276.548042398004, + "y": 4609.235515010867, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 813688051, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "g7tSe9PQK6bDpWt2QO7t3", + "type": "text" + }, + { + "id": "QVOlcrqJ5xmRaYy8edi5B", + "type": "arrow" + }, + { + "id": "D1USZU5QCXf1z_tvd0QHM", + "type": "arrow" + }, + { + "id": "Pm6_q6QFzPZbA4UBL48SD", + "type": "arrow" + }, + { + "id": "3ESbNWBcI1cBNjAc9Gq9-", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTP" + }, + { + "type": "text", + "version": 2915, + "versionNonce": 336596980, + "isDeleted": false, + "id": "g7tSe9PQK6bDpWt2QO7t3", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15304.319804580331, + "y": 4614.235515010867, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 142.49989318847656, + "height": 75, + "seed": 868011667, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nLogical Domain\nModel", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "4hpgK0tKdfZnmCeG68gnM", + "originalText": "Data object:\nLogical Domain Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTQ", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3955, + "versionNonce": 1914413812, + "isDeleted": false, + "id": "ITLaXNDwrjNMRoQIRu7ij", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15445.260184603896, + "y": 4615.158616520641, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1055622195, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTR" + }, + { + "type": "rectangle", + "version": 4326, + "versionNonce": 303244404, + "isDeleted": false, + "id": "-anmKW3ksniwIfAGMP_Jo", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15445.269831539626, + "y": 4615.178404841088, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 166888915, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "QVOlcrqJ5xmRaYy8edi5B", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTS" + }, + { + "type": "arrow", + "version": 15311, + "versionNonce": 1064936652, + "index": "bTT", + "isDeleted": false, + "id": "nqw6PFzKGWi4Wkye_IGbR", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15260.622077711923, + "y": 4434.27403462073, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 185.13313034143175, + "height": 193.25762231104454, + "seed": 199775091, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "L1pS9BfTcSyx2SmIortEw" + } + ], + "updated": 1757157224388, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PPnF1x5bIW8e5eH2NSGNL", + "focus": 0.42103683466407277, + "gap": 5.026765021982785 + }, + "endBinding": { + "elementId": "mf2YJjgJIFxpJsEf5KZ6h", + "focus": 2.081831655075691, + "gap": 14.0351675809876 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -185.13313034143175, + 193.25762231104454 + ] + ] + }, + { + "id": "L1pS9BfTcSyx2SmIortEw", + "type": "text", + "x": 17163.558579353103, + "y": 4739.010280006921, + "width": 59.07997131347656, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bTU", + "roundness": null, + "seed": 353594643, + "version": 146, + "versionNonce": 2119118668, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "read", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "nqw6PFzKGWi4Wkye_IGbR", + "originalText": "read", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 14487, + "versionNonce": 2099102412, + "index": "bTV", + "isDeleted": false, + "id": "NVvDryM_AW_QCQ_yrwioa", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 14942.923297924455, + "y": 4416.413506127731, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.4369458498877066, + "height": 191.21984335474826, + "seed": 686445235, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "kSguHxLTYrSwE4ALfyMEt" + } + ], + "updated": 1757156008252, + "link": null, + "locked": false, + "startBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": 0.07695068955879365, + "gap": 1 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.4369458498877066, + 191.21984335474826 + ] + ] + }, + { + "id": "kSguHxLTYrSwE4ALfyMEt", + "type": "text", + "x": 16911.386283450167, + "y": 4738.3992453425135, + "width": 68.85195922851562, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bTW", + "roundness": null, + "seed": 403932243, + "version": 137, + "versionNonce": 633562572, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "NVvDryM_AW_QCQ_yrwioa", + "originalText": "write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3444, + "versionNonce": 238242420, + "isDeleted": false, + "id": "jYohxCNXaggYXZIgKzc8t", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15752.698327545968, + "y": 4603.02630905297, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1516601843, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "PRZHhJpMGSxDUQ8oyxWRS", + "type": "text" + }, + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + }, + { + "id": "z8L8HHJ74uk2e3Tbf_m6h", + "type": "arrow" + }, + { + "id": "aiGwLFCeZKk5T2ghP1g3_", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTX" + }, + { + "type": "text", + "version": 3003, + "versionNonce": 734649332, + "isDeleted": false, + "id": "PRZHhJpMGSxDUQ8oyxWRS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15759.480122382103, + "y": 4624.260749997958, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 184.47982788085938, + "height": 50, + "seed": 686214035, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nArchitecture Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "jYohxCNXaggYXZIgKzc8t", + "originalText": "Data object:\nArchitecture Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTY", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4047, + "versionNonce": 1725066996, + "isDeleted": false, + "id": "GeNqun0oUb4_IpiVahX6_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15921.41046975186, + "y": 4608.949410562744, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1473110323, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTZ" + }, + { + "type": "rectangle", + "version": 4414, + "versionNonce": 1578135668, + "isDeleted": false, + "id": "qzxygwfFOpkx059A7sg20", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15921.42011668759, + "y": 4608.969198883191, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 1887519443, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "us0lX5xsh2EY-JuT-VOFU", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTa" + }, + { + "type": "rectangle", + "version": 3777, + "versionNonce": 1994253172, + "isDeleted": false, + "id": "2RRirt9wLCZtP47QsixY6", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15690.216552098325, + "y": 4850.251800502397, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 194474099, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "NSOrhGG548QhrMFreZuYw" + }, + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTb" + }, + { + "type": "text", + "version": 3411, + "versionNonce": 901338356, + "isDeleted": false, + "id": "NSOrhGG548QhrMFreZuYw", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15696.998346934459, + "y": 4855.251800502397, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 184.47982788085938, + "height": 75, + "seed": 1792469523, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<>\nArchitecture Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "2RRirt9wLCZtP47QsixY6", + "originalText": "Artifact:\n<> Architecture Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTc", + "autoResize": true + }, + { + "id": "yKyQZ5xYizfZlX3ljBkMm", + "type": "line", + "x": 15875.826848537443, + "y": 4857.172154526966, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "index": "bTd", + "roundness": null, + "seed": 1396060083, + "version": 5814, + "versionNonce": 992646772, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "3jYqAlXB0sJcYmVYJLQX7", + "type": "line", + "x": 15880.687871291157, + "y": 4862.516280454581, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "index": "bTe", + "roundness": null, + "seed": 651936083, + "version": 4273, + "versionNonce": 1408739316, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4609, + "versionNonce": 1143376244, + "isDeleted": false, + "id": "Rc0hNWnQqTVtkgK2UnO4W", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15864.839845874216, + "y": 4857.55980310249, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1058938611, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTf" + }, + { + "type": "arrow", + "version": 8444, + "versionNonce": 74680652, + "index": "bTg", + "isDeleted": false, + "id": "z8L8HHJ74uk2e3Tbf_m6h", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15967.564004898508, + "y": 4965.361435637471, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 98.50942192125694, + "height": 270.10994438666785, + "seed": 109299859, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156008252, + "link": null, + "locked": false, + "startBinding": { + "elementId": "1i-Sd2TX0jmyJ0cu4iMdY", + "focus": -0.20954256526700052, + "gap": 13.405494288288537 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -98.50942192125694, + -270.10994438666785 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3966, + "versionNonce": 1039797748, + "isDeleted": false, + "id": "1i-Sd2TX0jmyJ0cu4iMdY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15908.002016292823, + "y": 4978.7669299257595, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 214.43329569747027, + "height": 92.03451626659263, + "seed": 1388527155, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "uvA53K9SAX_ZGOGV0gFUr" + }, + { + "id": "z8L8HHJ74uk2e3Tbf_m6h", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTh" + }, + { + "type": "text", + "version": 3639, + "versionNonce": 1290547060, + "isDeleted": false, + "id": "uvA53K9SAX_ZGOGV0gFUr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15915.36892506685, + "y": 4984.59452007477, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 199.69947814941406, + "height": 81.20692611758173, + "seed": 2126708691, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 21.655180298021794, + "fontFamily": 1, + "text": "Artifact:\n<<*.archimate>>\nArchitecture Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "1i-Sd2TX0jmyJ0cu4iMdY", + "originalText": "Artifact:\n<<*.archimate>> Architecture Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTi", + "autoResize": true + }, + { + "id": "zuGuSlw_U0ewvNHUPcXtM", + "type": "line", + "x": 16108.973238020742, + "y": 4986.260005632168, + "width": 17.54845777379122, + "height": 19.972720320632373, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "index": "bTj", + "roundness": null, + "seed": 1150913907, + "version": 6003, + "versionNonce": 1125507700, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -12.113993775151252, + 0.037633259612622066 + ], + [ + -11.976688234649934, + 19.972720320632373 + ], + [ + 5.434463998639967, + 19.8287209143135 + ], + [ + 5.29933331997805, + 5.835913700978125 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "3Emce6RHznDa8Jbxg8lbg", + "type": "line", + "x": 16114.236554228963, + "y": 4992.04640615706, + "width": 5.621496602404443, + "height": 5.844110723204111, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "index": "bTk", + "roundness": null, + "seed": 1468884755, + "version": 4462, + "versionNonce": 1486451700, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.621496602404443, + 0.1351311362982975 + ], + [ + -5.474139820497525, + -5.708979586905814 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4795, + "versionNonce": 1789842804, + "isDeleted": false, + "id": "9Pt3svqe280jSdNLNdhY_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16097.07696184039, + "y": 4986.67973562193, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 17.00270734471247, + "height": 19.484128973846662, + "seed": 1041566899, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTl" + }, + { + "type": "arrow", + "version": 8398, + "versionNonce": 1514962892, + "index": "bTm", + "isDeleted": false, + "id": "3ESbNWBcI1cBNjAc9Gq9-", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15437.70233284924, + "y": 5036.308208650763, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 38.298734002526544, + "height": 342.7506539193264, + "seed": 1809251923, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156008252, + "link": null, + "locked": false, + "startBinding": { + "elementId": "trxhz3YophkmRie0J0OsH", + "focus": -0.2081358193244992, + "gap": 13.405494288284899 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -38.298734002526544, + -342.7506539193264 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3903, + "versionNonce": 552011892, + "isDeleted": false, + "id": "trxhz3YophkmRie0J0OsH", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15368.213306594103, + "y": 5049.713702939048, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 110, + "seed": 464108531, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "yyutMeJLuCdrcmzZcYycV" + }, + { + "id": "3ESbNWBcI1cBNjAc9Gq9-", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTn" + }, + { + "type": "text", + "version": 3589, + "versionNonce": 1834342900, + "isDeleted": false, + "id": "yyutMeJLuCdrcmzZcYycV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15394.945067860901, + "y": 5054.713702939048, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 144.57989501953125, + "height": 100, + "seed": 1771292051, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<<*.xml>> Archi\nLogical Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "trxhz3YophkmRie0J0OsH", + "originalText": "Artifact:\n<<*.xml>> Archi Logical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTo", + "autoResize": true + }, + { + "id": "QJUVvb89KiYeZssN2LSmo", + "type": "line", + "x": 15553.823603033221, + "y": 5056.634056963617, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "index": "bTp", + "roundness": null, + "seed": 751541043, + "version": 5938, + "versionNonce": 1475800308, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "odO0dPtzzkdQUFBmK5O89", + "type": "line", + "x": 15558.684625786935, + "y": 5061.978182891232, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "index": "bTq", + "roundness": null, + "seed": 297254099, + "version": 4397, + "versionNonce": 1911893620, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4730, + "versionNonce": 95371252, + "isDeleted": false, + "id": "7SM0LIJPEhHYPaZUvrPM-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15542.836600369994, + "y": 5057.021705539141, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1945021043, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTr" + }, + { + "type": "arrow", + "version": 8201, + "versionNonce": 187375988, + "index": "bTs", + "isDeleted": false, + "id": "wi0OZPoZoJ6DzOdDMV4fM", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15060.593230337581, + "y": 5037.396346494184, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 64.90222886159245, + "height": 327.76903592533563, + "seed": 2016863251, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -64.90222886159245, + -327.76903592533563 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 4056, + "versionNonce": 162452212, + "isDeleted": false, + "id": "SOvgPdORIZRjZFXMyY3vZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14975.729652787504, + "y": 5049.482758305605, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 110, + "seed": 1720117683, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Yu81s1kx84LlAhyQ2uD1J" + }, + { + "id": "wi0OZPoZoJ6DzOdDMV4fM", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTt" + }, + { + "type": "text", + "version": 3758, + "versionNonce": 801133684, + "isDeleted": false, + "id": "Yu81s1kx84LlAhyQ2uD1J", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14985.29143877354, + "y": 5054.482758305605, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 178.9198455810547, + "height": 100, + "seed": 1141193555, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<<*.xml>> Archi\nConceptual Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "SOvgPdORIZRjZFXMyY3vZ", + "originalText": "Artifact:\n<<*.xml>> Archi Conceptual Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTu", + "autoResize": true + }, + { + "id": "gcNhf8xnl7qoLfgi5kfyV", + "type": "line", + "x": 15161.339949226622, + "y": 5056.094617234778, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "index": "bTv", + "roundness": null, + "seed": 755521779, + "version": 6089, + "versionNonce": 1797629428, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "RlvXvvEH0EzdbqfC6haq7", + "type": "line", + "x": 15166.200971980335, + "y": 5061.438743162393, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "index": "bTw", + "roundness": null, + "seed": 1863762579, + "version": 4548, + "versionNonce": 14993268, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4883, + "versionNonce": 625195252, + "isDeleted": false, + "id": "jUIyT0cAgSGKWMLAgzG6z", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15150.352946563395, + "y": 5056.482265810302, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1659303987, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bTx" + }, + { + "type": "arrow", + "version": 14665, + "versionNonce": 650290764, + "index": "bTy", + "isDeleted": false, + "id": "aiGwLFCeZKk5T2ghP1g3_", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15863.473594294257, + "y": 4410.508799088065, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.587076613184763, + "height": 184.48702968206544, + "seed": 106920403, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156008252, + "link": null, + "locked": false, + "startBinding": { + "elementId": "r5wSlJTMg1xdFyHlN1pk8", + "focus": 0.06417259693573488, + "gap": 21.20358819484136 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.587076613184763, + 184.48702968206544 + ] + ] + }, + { + "id": "ob1942x-aJeUUDKBnT6rj", + "type": "arrow", + "x": 16036.306103622708, + "y": 3815.686354941806, + "width": 1.7283993024066149, + "height": 68.79107043924341, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bTz", + "roundness": null, + "seed": 1452722035, + "version": 3121, + "versionNonce": 658050036, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.7283993024066149, + 68.79107043924341 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "qWs9jyZR-8aXxtmbxVPpZ", + "type": "arrow", + "x": 15136.421034032777, + "y": 4231.429523042396, + "width": 75.80802914048763, + "height": 92.22642211935272, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bU0", + "roundness": null, + "seed": 1775460627, + "version": 3096, + "versionNonce": 1269728076, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "GZHQv2QrHBo6xfD1WCxre" + } + ], + "updated": 1757156008253, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -75.80802914048763, + 92.22642211935272 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "3fCBHxVaWETsktdmybp9H", + "focus": 0.057516714922020755, + "gap": 7.967668621661687 + }, + "endBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": 0.31782701802518254, + "gap": 3.333700117367698 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "GZHQv2QrHBo6xfD1WCxre", + "type": "text", + "x": 17053.528357337036, + "y": 4503.982230150307, + "width": 100.89991760253906, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bU1", + "roundness": null, + "seed": 1233897139, + "version": 201, + "versionNonce": 1800917876, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "realization", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "qWs9jyZR-8aXxtmbxVPpZ", + "originalText": "realization", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3378, + "versionNonce": 1412800244, + "isDeleted": false, + "id": "r5yjR4qOb6rOcI74ro1hF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15911.853493906554, + "y": 4148.488403364202, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 85, + "seed": 208042067, + "groupIds": [ + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "O69My6oamN39wKnmlWdBW" + }, + { + "id": "B_4wZo5GBy6hJDL71N1vJ", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bU2" + }, + { + "type": "text", + "version": 3022, + "versionNonce": 395157620, + "isDeleted": false, + "id": "O69My6oamN39wKnmlWdBW", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15936.55884438911, + "y": 4153.488403364202, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 183.0398406982422, + "height": 75, + "seed": 809104883, + "groupIds": [ + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nArchimate Modeller\nAgent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "r5yjR4qOb6rOcI74ro1hF", + "originalText": "App Component:\nArchimate Modeller Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bU3", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3531, + "versionNonce": 1993282420, + "isDeleted": false, + "id": "lE1VzNXAqIJ8gGhLieXZd", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16109.603109607662, + "y": 4153.215132091228, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 873250707, + "groupIds": [ + "HEB-7qETVKIH6DXJlO1_P", + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bU4" + }, + { + "type": "rectangle", + "version": 4197, + "versionNonce": 296180, + "isDeleted": false, + "id": "3rcC2P5mLhfuWt7K75Gh7", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16105.646071582392, + "y": 4155.635411766957, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1914000691, + "groupIds": [ + "HEB-7qETVKIH6DXJlO1_P", + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bU5" + }, + { + "type": "rectangle", + "version": 4222, + "versionNonce": 1955579508, + "isDeleted": false, + "id": "YFaDoMC3g7VqQxM89i5IS", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16105.816899035191, + "y": 4160.405862452447, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 968505043, + "groupIds": [ + "HEB-7qETVKIH6DXJlO1_P", + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bU6" + }, + { + "id": "B_4wZo5GBy6hJDL71N1vJ", + "type": "arrow", + "x": 16007.842630091149, + "y": 4242.698809059308, + "width": 22.750610269800745, + "height": 73.72205129199483, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bU7", + "roundness": null, + "seed": 697427059, + "version": 3682, + "versionNonce": 874002892, + "isDeleted": false, + "boundElements": [], + "updated": 1757156008253, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -22.750610269800745, + 73.72205129199483 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "r5yjR4qOb6rOcI74ro1hF", + "focus": 0.03307784587762525, + "gap": 9.210405695105692 + }, + "endBinding": { + "elementId": "r5wSlJTMg1xdFyHlN1pk8", + "focus": 0.5720560982680579, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3551, + "versionNonce": 1778366836, + "isDeleted": false, + "id": "R02JxWp1_JlKwkoBTypSA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16379.299474696916, + "y": 4151.787298298312, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 85, + "seed": 1231216147, + "groupIds": [ + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "K0GoAiVEiz6HjV2-CEgSP" + }, + { + "id": "Uvf3v0XWzRyGtu9MF39di", + "type": "arrow" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bU8" + }, + { + "type": "text", + "version": 3233, + "versionNonce": 1378904820, + "isDeleted": false, + "id": "K0GoAiVEiz6HjV2-CEgSP", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16415.884814803496, + "y": 4156.787298298312, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 159.2798614501953, + "height": 75, + "seed": 1680057267, + "groupIds": [ + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nDevOps Engineer\nAgent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "R02JxWp1_JlKwkoBTypSA", + "originalText": "App Component:\nDevOps Engineer Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bU9", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3702, + "versionNonce": 609152116, + "isDeleted": false, + "id": "2z1aYCIn2n0_pl96ssyua", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16577.049090398028, + "y": 4156.514027025338, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 570078547, + "groupIds": [ + "LX1KFVfPq_3CNcT8tsXxW", + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bUA" + }, + { + "type": "rectangle", + "version": 4368, + "versionNonce": 35732980, + "isDeleted": false, + "id": "KCwjQCaGSjoqAtrvv8qNj", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16573.09205237276, + "y": 4158.934306701069, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1648268019, + "groupIds": [ + "LX1KFVfPq_3CNcT8tsXxW", + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bUB" + }, + { + "type": "rectangle", + "version": 4393, + "versionNonce": 1689083764, + "isDeleted": false, + "id": "41sDLTDEo_I7zUqirFYoD", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16573.262879825557, + "y": 4163.704757386558, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1433779347, + "groupIds": [ + "LX1KFVfPq_3CNcT8tsXxW", + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bUC" + }, + { + "id": "Uvf3v0XWzRyGtu9MF39di", + "type": "arrow", + "x": 16470.464837867592, + "y": 4245.997703993421, + "width": 28.195542933546676, + "height": 71.20613443200727, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bUD", + "roundness": null, + "seed": 1465299507, + "version": 3510, + "versionNonce": 552728564, + "isDeleted": false, + "boundElements": [], + "updated": 1757156025417, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -28.195542933546676, + 71.20613443200727 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": 0.3443126531644986, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 4188, + "versionNonce": 638035188, + "index": "bUE", + "isDeleted": false, + "id": "BR6_GD6drGeg44ixlRD80", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 16203.915429472469, + "y": 4317.556083434714, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 115, + "seed": 147321811, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "KMWx4maZBNvI5LU_XXYcR" + }, + { + "id": "zlSPouc1atj_bkWIUJQuy", + "type": "arrow" + }, + { + "id": "Uvf3v0XWzRyGtu9MF39di", + "type": "arrow" + }, + { + "id": "us0lX5xsh2EY-JuT-VOFU", + "type": "arrow" + } + ], + "updated": 1757156025416, + "link": null, + "locked": false + }, + { + "id": "KMWx4maZBNvI5LU_XXYcR", + "type": "text", + "x": 16216.626815445072, + "y": 4322.556083434714, + "width": 283.44384765625, + "height": 105, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bUF", + "roundness": null, + "seed": 702546291, + "version": 2186, + "versionNonce": 764407244, + "isDeleted": false, + "boundElements": [], + "updated": 1757156025416, + "link": null, + "locked": false, + "text": "Application function:\nGitflow - Create Pull\nRequest", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "BR6_GD6drGeg44ixlRD80", + "originalText": "Application function:\nGitflow - Create Pull Request", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3410, + "versionNonce": 377465716, + "isDeleted": false, + "id": "NvBRmIe-MNELXsV2a48ch", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16751.978378536074, + "y": 3747.895370521672, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 246.9748729860165, + "height": 67.89379668398578, + "seed": 870669075, + "groupIds": [ + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "6VJ-zua5KdVPrlaykN_CL", + "type": "text" + } + ], + "updated": 1757156007653, + "link": null, + "locked": false, + "index": "bUG" + }, + { + "type": "text", + "version": 3140, + "versionNonce": 232922356, + "isDeleted": false, + "id": "6VJ-zua5KdVPrlaykN_CL", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16772.395891628203, + "y": 3760.7891672056576, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 206.1398468017578, + "height": 50, + "seed": 860782771, + "groupIds": [ + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Product Owner", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "NvBRmIe-MNELXsV2a48ch", + "originalText": "Business role:\nData Product Owner", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUH", + "autoResize": true + }, + { + "type": "line", + "version": 10060, + "versionNonce": 586833524, + "index": "bUI", + "isDeleted": false, + "id": "94kbz4lET764uGkJlIwZr", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 16983.004287382082, + "y": 3747.8621539190226, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 1640100435, + "groupIds": [ + "3TAl1wW0mPEfEyXJeRuK9", + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10787, + "versionNonce": 1049522164, + "index": "bUJ", + "isDeleted": false, + "id": "kM2uicxKsK6ns-PmS4V5Q", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 16960.25726161175, + "y": 3758.1249868121504, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 1454067, + "groupIds": [ + "3TAl1wW0mPEfEyXJeRuK9", + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false + }, + { + "id": "iAhy1-5wJRKGEo2-d0GDC", + "type": "arrow", + "x": 15262.681138397034, + "y": 3809.1955153703057, + "width": 106.08560855906035, + "height": 77.76050549102138, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bUK", + "roundness": null, + "seed": 1884404115, + "version": 3239, + "versionNonce": 1084510580, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 106.08560855906035, + 77.76050549102138 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "arrow", + "version": 15371, + "versionNonce": 492231028, + "index": "bUL", + "isDeleted": false, + "id": "us0lX5xsh2EY-JuT-VOFU", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15958.699980563899, + "y": 4595.403867251386, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 247.2039003740083, + "height": 168.21171871291062, + "seed": 262868787, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757156025417, + "link": null, + "locked": false, + "startBinding": { + "elementId": "qzxygwfFOpkx059A7sg20", + "focus": 0.15736293405248597, + "gap": 14 + }, + "endBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": 0.31734589771349875, + "gap": 5.416844168325796 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 247.2039003740083, + -168.21171871291062 + ] + ] + }, + { + "type": "rectangle", + "version": 3936, + "versionNonce": 518879692, + "index": "bUk", + "isDeleted": false, + "id": "oI-HfgPU8_Hn1y02MoPFH", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 18752.01161207103, + "y": 4371.251611158422, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 115, + "seed": 282489292, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "-ziS_fwiccsqTAH7ay6_z" + }, + { + "id": "FHZdMJjKG7KPq_obryejx", + "type": "arrow" + }, + { + "id": "KdJrrSglDaaJvymL-C1MJ", + "type": "arrow" + }, + { + "id": "dMqm0DXrcZ913EHJMXYVX", + "type": "arrow" + }, + { + "id": "l43DQSw2-jvCmaa374v6w", + "type": "arrow" + }, + { + "id": "4mwOT0HLCgWXp6dgSBzM8", + "type": "arrow" + }, + { + "id": "F6WvHptU7pvO2Wb4wVFqt", + "type": "arrow" + }, + { + "id": "7F0rs0omBwLcA3065rIQm", + "type": "arrow" + }, + { + "id": "Xe8jAlibwN8YFYa5kiUmI", + "type": "arrow" + }, + { + "id": "kW10m8iWQeysCFnJpW4JK", + "type": "arrow" + }, + { + "id": "TdmzZb40-Ev0WPNUYja93", + "type": "arrow" + } + ], + "updated": 1757279570612, + "link": null, + "locked": false + }, + { + "id": "-ziS_fwiccsqTAH7ay6_z", + "type": "text", + "x": 18768.068991085624, + "y": 4376.251611158422, + "width": 276.7518615722656, + "height": 105, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bUl", + "roundness": null, + "seed": 457070668, + "version": 1907, + "versionNonce": 1597760844, + "isDeleted": false, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "text": "Application function:\nGenerate Archimate\nModel", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "oI-HfgPU8_Hn1y02MoPFH", + "originalText": "Application function:\nGenerate Archimate Model", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 10984, + "versionNonce": 736283084, + "index": "bUm", + "isDeleted": false, + "id": "FHZdMJjKG7KPq_obryejx", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19424.997838133717, + "y": 5149.585724417792, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 71.30648745788494, + "height": 256.6147927037464, + "seed": 216362700, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757279994968, + "link": null, + "locked": false, + "startBinding": { + "elementId": "BtA6Fc6su72LeH3jpLwIp", + "focus": 0.3025800025773869, + "gap": 2.472659176961315 + }, + "endBinding": { + "elementId": "Zp3VJoGUcscGZJTiJhdBF", + "focus": 0.16803103848116516, + "gap": 8.919129097872428 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -71.30648745788494, + -256.6147927037464 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 11576, + "versionNonce": 1904107892, + "index": "bUn", + "isDeleted": false, + "id": "KdJrrSglDaaJvymL-C1MJ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 19708.9315668714, + "y": 4360.228505053348, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 251.53012769971247, + "height": 328.2283195688801, + "seed": 375764300, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757276612500, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ruZXXRzQxSRdNSFy4Vtxz", + "focus": 0.002712867456485676, + "gap": 4.391427659347755 + }, + "endBinding": { + "elementId": "Hw-mRQRlGJ9pVilRZI4pf", + "focus": -0.8036170480362695, + "gap": 7.372719527113077 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -251.53012769971247, + -328.2283195688801 + ] + ] + }, + { + "type": "rectangle", + "version": 3248, + "versionNonce": 2130169804, + "isDeleted": false, + "id": "Hw-mRQRlGJ9pVilRZI4pf", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18848.544569170834, + "y": 3931.783925047398, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 601.4841504737424, + "height": 137.74762174495777, + "seed": 1796854348, + "groupIds": [ + "0w-Mj5cDJl_y6AN1ppos3" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "YzC4toCG59tsOSkUaRvej" + }, + { + "id": "KdJrrSglDaaJvymL-C1MJ", + "type": "arrow" + }, + { + "id": "WuMwxeKiR_9hJbWKh0-55", + "type": "arrow" + }, + { + "id": "F6WvHptU7pvO2Wb4wVFqt", + "type": "arrow" + } + ], + "updated": 1757276612493, + "link": null, + "locked": false, + "index": "bUp" + }, + { + "type": "text", + "version": 3236, + "versionNonce": 964949580, + "isDeleted": false, + "id": "YzC4toCG59tsOSkUaRvej", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19031.99787945409, + "y": 3967.69767377024, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 234.57752990722656, + "height": 65.92012429927392, + "seed": 121743564, + "groupIds": [ + "0w-Mj5cDJl_y6AN1ppos3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "fontSize": 26.368049719709568, + "fontFamily": 1, + "text": "Business function:\nModel Preparation", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Hw-mRQRlGJ9pVilRZI4pf", + "originalText": "Business function:\nModel Preparation", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUq", + "autoResize": true + }, + { + "id": "d45aoR8nGJc3oqlHY8zye", + "type": "line", + "x": 19432.117076939714, + "y": 3960.8326249490287, + "width": 31.748253937278275, + "height": 21.304337881065297, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "0w-Mj5cDJl_y6AN1ppos3" + ], + "frameId": null, + "index": "bUr", + "roundness": null, + "seed": 757772108, + "version": 4001, + "versionNonce": 1117810764, + "isDeleted": false, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.20629899858162748, + -12.612255961926767 + ], + [ + -15.585587543288966, + -20.991157871695926 + ], + [ + -31.722005889933477, + -13.501363242724135 + ], + [ + -31.748253937278275, + 0.31318000936937107 + ], + [ + -15.665980795407231, + -6.627013800335406 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3124, + "versionNonce": 809797324, + "isDeleted": false, + "id": "WMn7gfTVvsBH2T6urBwnu", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19039.526012284336, + "y": 3785.933385181501, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 246.9748729860165, + "height": 67.89379668398578, + "seed": 1831790028, + "groupIds": [ + "po4Vu3ZhjH8bWd5ta76wQ" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "IoVnFQOSSgziy7g8tn1FX", + "type": "text" + }, + { + "id": "WuMwxeKiR_9hJbWKh0-55", + "type": "arrow" + } + ], + "updated": 1757276612493, + "link": null, + "locked": false, + "index": "bUs" + }, + { + "type": "text", + "version": 2829, + "versionNonce": 773967180, + "isDeleted": false, + "id": "IoVnFQOSSgziy7g8tn1FX", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19058.373548569823, + "y": 3798.8271818654866, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 209.27980041503906, + "height": 50, + "seed": 1013468236, + "groupIds": [ + "po4Vu3ZhjH8bWd5ta76wQ" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nArchitecture Modeller", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "WMn7gfTVvsBH2T6urBwnu", + "originalText": "Business role:\nArchitecture Modeller", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUt", + "autoResize": true + }, + { + "type": "line", + "version": 9768, + "versionNonce": 615508556, + "index": "bUu", + "isDeleted": false, + "id": "n1V7k76kM5HzEJ7-TNNge", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 19270.551921130344, + "y": 3785.90016857885, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 1555096268, + "groupIds": [ + "MaZ2-wtGeUbRv0pk1L1v5", + "po4Vu3ZhjH8bWd5ta76wQ" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10497, + "versionNonce": 1448394956, + "index": "bUv", + "isDeleted": false, + "id": "k90nAj_XvFwy17_bmvEY-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 19247.804895360012, + "y": 3796.1630014719776, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 1151510860, + "groupIds": [ + "MaZ2-wtGeUbRv0pk1L1v5", + "po4Vu3ZhjH8bWd5ta76wQ" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 4226, + "versionNonce": 1833152244, + "isDeleted": false, + "id": "Zp3VJoGUcscGZJTiJhdBF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19261.87640694047, + "y": 4824.051802616174, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 60, + "seed": 127377356, + "groupIds": [ + "Oa9Zc2y2FXCtBord1YFRR" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "btP5wmpErnTlQeEd41Qpi", + "type": "text" + }, + { + "id": "dMqm0DXrcZ913EHJMXYVX", + "type": "arrow" + }, + { + "id": "6x_2VgiB76CKF2li7o1eU", + "type": "arrow" + }, + { + "id": "FHZdMJjKG7KPq_obryejx", + "type": "arrow" + }, + { + "id": "-R41zZPDyGIu2Xex_z0FC", + "type": "arrow" + }, + { + "id": "ADLQMoAyF1P3CAAxLo3X1", + "type": "arrow" + }, + { + "id": "PCzrlYuQWVGP7lGJ_IhxC", + "type": "arrow" + } + ], + "updated": 1757280082377, + "link": null, + "locked": false, + "index": "bUw" + }, + { + "type": "text", + "version": 3811, + "versionNonce": 3536460, + "isDeleted": false, + "id": "btP5wmpErnTlQeEd41Qpi", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19281.778181635003, + "y": 4829.051802616174, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 158.2398681640625, + "height": 50, + "seed": 1034536524, + "groupIds": [ + "Oa9Zc2y2FXCtBord1YFRR" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278683205, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nArchimate Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "Zp3VJoGUcscGZJTiJhdBF", + "originalText": "Data object:\nArchimate Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUx", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4818, + "versionNonce": 1196674380, + "isDeleted": false, + "id": "fN7lsskgMXjwoUlQ8a8EF", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19430.588549146363, + "y": 4829.974904125948, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1806900428, + "groupIds": [ + "Oa9Zc2y2FXCtBord1YFRR" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278683205, + "link": null, + "locked": false, + "index": "bUy" + }, + { + "type": "rectangle", + "version": 5185, + "versionNonce": 1619280844, + "isDeleted": false, + "id": "nuFM08iYUs0U3rYIjvxNO", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19430.598196082094, + "y": 4829.994692446396, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 1800250188, + "groupIds": [ + "Oa9Zc2y2FXCtBord1YFRR" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "6x_2VgiB76CKF2li7o1eU", + "type": "arrow" + } + ], + "updated": 1757278683205, + "link": null, + "locked": false, + "index": "bUz" + }, + { + "type": "rectangle", + "version": 4607, + "versionNonce": 1399739980, + "isDeleted": false, + "id": "BtA6Fc6su72LeH3jpLwIp", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19304.935129996462, + "y": 5152.058383594754, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "width": 198.0434175531282, + "height": 110, + "seed": 1389582796, + "groupIds": [ + "KATyEXoOh57T_umx-5nKP" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "ZFxqVQaqZ9EIGC1RVUtqQ" + }, + { + "id": "FHZdMJjKG7KPq_obryejx", + "type": "arrow" + } + ], + "updated": 1757280066161, + "link": null, + "locked": false, + "index": "bV0" + }, + { + "type": "text", + "version": 4266, + "versionNonce": 2028512204, + "isDeleted": false, + "id": "ZFxqVQaqZ9EIGC1RVUtqQ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19324.836904690994, + "y": 5157.058383594754, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "width": 158.2398681640625, + "height": 100, + "seed": 1566457932, + "groupIds": [ + "KATyEXoOh57T_umx-5nKP" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280067254, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<>\nExcaliarch\nArchimate Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "BtA6Fc6su72LeH3jpLwIp", + "originalText": "Artifact:\n<> Excaliarch Archimate Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bV1", + "autoResize": true + }, + { + "id": "c4uhzsSelIcgLDtQgj1FZ", + "type": "line", + "x": 19490.54542643558, + "y": 5158.978737619323, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "KATyEXoOh57T_umx-5nKP" + ], + "frameId": null, + "index": "bV2", + "roundness": null, + "seed": 1388861132, + "version": 6637, + "versionNonce": 1124053068, + "isDeleted": false, + "boundElements": [], + "updated": 1757279994968, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "PpbCCpd_a9VrXxih1KElO", + "type": "line", + "x": 19495.406449189293, + "y": 5164.322863546938, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "KATyEXoOh57T_umx-5nKP" + ], + "frameId": null, + "index": "bV3", + "roundness": null, + "seed": 1873517900, + "version": 5096, + "versionNonce": 1656473292, + "isDeleted": false, + "boundElements": [], + "updated": 1757279994968, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5431, + "versionNonce": 263261516, + "isDeleted": false, + "id": "nzr4FKYdFuZ6YVE44MsAn", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19479.558423772352, + "y": 5159.366386194847, + "strokeColor": "transparent", + "backgroundColor": "#ffc9c9", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1298273228, + "groupIds": [ + "KATyEXoOh57T_umx-5nKP" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757279994968, + "link": null, + "locked": false, + "index": "bV4" + }, + { + "type": "arrow", + "version": 10619, + "versionNonce": 1548952652, + "index": "bV5", + "isDeleted": false, + "id": "-R41zZPDyGIu2Xex_z0FC", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19597.34314838036, + "y": 5146.168767984442, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 195.55090964680494, + "height": 253.73173528556708, + "seed": 1241889356, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757279992868, + "link": null, + "locked": false, + "startBinding": { + "elementId": "_kHLLLrrWKHshR7SW-W9f", + "focus": 0.05083607629754953, + "gap": 6.087194303829165 + }, + "endBinding": { + "elementId": "Zp3VJoGUcscGZJTiJhdBF", + "focus": -0.09207257284206623, + "gap": 8.385230082700218 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -195.55090964680494, + -253.73173528556708 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 4741, + "versionNonce": 1969981260, + "isDeleted": false, + "id": "_kHLLLrrWKHshR7SW-W9f", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19523.01837013375, + "y": 5152.255962288271, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "width": 214.43329569747027, + "height": 92.03451626659263, + "seed": 1886425292, + "groupIds": [ + "cYxSmOdxVlkGMaJ0U-EWv" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Mv_TxJaMr_qXoipwcC1SS" + }, + { + "id": "-R41zZPDyGIu2Xex_z0FC", + "type": "arrow" + } + ], + "updated": 1757279992868, + "link": null, + "locked": false, + "index": "bV6" + }, + { + "type": "text", + "version": 4417, + "versionNonce": 1517230028, + "isDeleted": false, + "id": "Mv_TxJaMr_qXoipwcC1SS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19546.94753476715, + "y": 5158.0835524372815, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "width": 166.57496643066406, + "height": 81.20692611758173, + "seed": 1614583628, + "groupIds": [ + "cYxSmOdxVlkGMaJ0U-EWv" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280077819, + "link": null, + "locked": false, + "fontSize": 21.655180298021794, + "fontFamily": 1, + "text": "Artifact:\n<<*.archimate>>\nArchi Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "_kHLLLrrWKHshR7SW-W9f", + "originalText": "Artifact:\n<<*.archimate>> Archi Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bV7", + "autoResize": true + }, + { + "id": "52wK51uW3VYqmQYaj-s4i", + "type": "line", + "x": 19723.98959186167, + "y": 5159.749037994679, + "width": 17.54845777379122, + "height": 19.972720320632373, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "cYxSmOdxVlkGMaJ0U-EWv" + ], + "frameId": null, + "index": "bV8", + "roundness": null, + "seed": 902024652, + "version": 6776, + "versionNonce": 1770044108, + "isDeleted": false, + "boundElements": [], + "updated": 1757279992868, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -12.113993775151252, + 0.037633259612622066 + ], + [ + -11.976688234649934, + 19.972720320632373 + ], + [ + 5.434463998639967, + 19.8287209143135 + ], + [ + 5.29933331997805, + 5.835913700978125 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "YHQsIE4Zp7qgPIZmo60-1", + "type": "line", + "x": 19729.25290806989, + "y": 5165.5354385195715, + "width": 5.621496602404443, + "height": 5.844110723204111, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "cYxSmOdxVlkGMaJ0U-EWv" + ], + "frameId": null, + "index": "bV9", + "roundness": null, + "seed": 1914713164, + "version": 5235, + "versionNonce": 1505198412, + "isDeleted": false, + "boundElements": [], + "updated": 1757279992868, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.621496602404443, + 0.1351311362982975 + ], + [ + -5.474139820497525, + -5.708979586905814 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5569, + "versionNonce": 1414625228, + "isDeleted": false, + "id": "JtxyW6J1HdeskHGU9mfga", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19712.093315681315, + "y": 5160.168767984442, + "strokeColor": "transparent", + "backgroundColor": "#ffc9c9", + "width": 17.00270734471247, + "height": 19.484128973846662, + "seed": 1663814348, + "groupIds": [ + "cYxSmOdxVlkGMaJ0U-EWv" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "-R41zZPDyGIu2Xex_z0FC", + "type": "arrow" + } + ], + "updated": 1757279992868, + "link": null, + "locked": false, + "index": "bVA" + }, + { + "type": "arrow", + "version": 15633, + "versionNonce": 1832471756, + "index": "bVB", + "isDeleted": false, + "id": "dMqm0DXrcZ913EHJMXYVX", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 19013.520586521507, + "y": 4487.460719602323, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 288.6505023781792, + "height": 328.9538258810471, + "seed": 192975180, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "ViAluZTfOmFUO9eUbF5HD" + } + ], + "updated": 1757278683205, + "link": null, + "locked": false, + "startBinding": { + "elementId": "oI-HfgPU8_Hn1y02MoPFH", + "focus": -0.2711039392550385, + "gap": 3.35997973198846 + }, + "endBinding": { + "elementId": "Zp3VJoGUcscGZJTiJhdBF", + "focus": -0.20518531249261626, + "gap": 7.637257132804734 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 288.6505023781792, + 328.9538258810471 + ] + ] + }, + { + "id": "ViAluZTfOmFUO9eUbF5HD", + "type": "text", + "x": 19114.090026076577, + "y": 4616.716378119581, + "width": 60.03993225097656, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#868e96", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bVBV", + "roundness": null, + "seed": 1039219572, + "version": 9, + "versionNonce": 1828424140, + "isDeleted": false, + "boundElements": [], + "updated": 1757275605591, + "link": null, + "locked": false, + "text": "writes", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "dMqm0DXrcZ913EHJMXYVX", + "originalText": "writes", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "WuMwxeKiR_9hJbWKh0-55", + "type": "arrow", + "x": 19179.914330303098, + "y": 3859.077009661269, + "width": 0.26487461376018473, + "height": 70.44848506221024, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bVC", + "roundness": null, + "seed": 175671244, + "version": 3111, + "versionNonce": 172201076, + "isDeleted": false, + "boundElements": [], + "updated": 1757276612500, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.26487461376018473, + 70.44848506221024 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "WMn7gfTVvsBH2T6urBwnu", + "focus": -0.1355296581345076, + "gap": 5.249827795782494 + }, + "endBinding": { + "elementId": "Hw-mRQRlGJ9pVilRZI4pf", + "focus": 0.10352126037958419, + "gap": 2.258430323918674 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3813, + "versionNonce": 407075148, + "isDeleted": false, + "id": "81YCaPZZg7q7dHt_mCU5E", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19029.6048201641, + "y": 4159.772210169574, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 85, + "seed": 70102604, + "groupIds": [ + "h63odLfolzpelfe6w0iBe" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "OW6T0YhLgV9dnEoMD7Fk9" + }, + { + "id": "TdmzZb40-Ev0WPNUYja93", + "type": "arrow" + }, + { + "id": "K5vOZO5trxbcZTuj54k5x", + "type": "arrow" + } + ], + "updated": 1757279583969, + "link": null, + "locked": false, + "index": "bVD" + }, + { + "type": "text", + "version": 3453, + "versionNonce": 1311925324, + "isDeleted": false, + "id": "OW6T0YhLgV9dnEoMD7Fk9", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19054.310170646655, + "y": 4164.772210169574, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 183.0398406982422, + "height": 75, + "seed": 158991564, + "groupIds": [ + "h63odLfolzpelfe6w0iBe" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nArchimate Modeller\nAgent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "81YCaPZZg7q7dHt_mCU5E", + "originalText": "App Component:\nArchimate Modeller Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bVE", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3961, + "versionNonce": 595113932, + "isDeleted": false, + "id": "gDTmxTuJZ41BJHoJ8zO4f", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19227.35443586521, + "y": 4164.4989388966, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 2146929484, + "groupIds": [ + "UXnvat-r7vCJUvOeSTLXy", + "h63odLfolzpelfe6w0iBe" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "index": "bVF" + }, + { + "type": "rectangle", + "version": 4627, + "versionNonce": 1839717964, + "isDeleted": false, + "id": "jT9K1WDh-sXpYofHJfaD-", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19223.39739783994, + "y": 4166.919218572327, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 167789004, + "groupIds": [ + "UXnvat-r7vCJUvOeSTLXy", + "h63odLfolzpelfe6w0iBe" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "index": "bVG" + }, + { + "type": "rectangle", + "version": 4652, + "versionNonce": 607007948, + "isDeleted": false, + "id": "RTbBod0KEtoXSPv5lW3py", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19223.568225292733, + "y": 4171.689669257817, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1856907340, + "groupIds": [ + "UXnvat-r7vCJUvOeSTLXy", + "h63odLfolzpelfe6w0iBe" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "index": "bVH" + }, + { + "type": "arrow", + "version": 15908, + "versionNonce": 1015927628, + "index": "bVJ", + "isDeleted": false, + "id": "6x_2VgiB76CKF2li7o1eU", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 19372.57433788046, + "y": 4818.343618052115, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 346.94547076005983, + "height": 337.40899536155484, + "seed": 203523404, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757278683205, + "link": null, + "locked": false, + "startBinding": { + "elementId": "Zp3VJoGUcscGZJTiJhdBF", + "focus": -0.1928870049297136, + "gap": 5.708184564059593 + }, + "endBinding": { + "elementId": "ruZXXRzQxSRdNSFy4Vtxz", + "focus": -0.11267184013696359, + "gap": 3.644296513115478 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 346.94547076005983, + -337.40899536155484 + ] + ] + }, + { + "type": "arrow", + "version": 15912, + "versionNonce": 2091959116, + "index": "bVL", + "isDeleted": false, + "id": "l43DQSw2-jvCmaa374v6w", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 18782.362444159786, + "y": 4752.909867834903, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 76.7413239285961, + "height": 266.1685680609762, + "seed": 639454796, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757276637583, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ep8nuspJL03qmVlM4a0tf", + "focus": -0.08693448813440949, + "gap": 8.331654425772285 + }, + "endBinding": { + "elementId": "oI-HfgPU8_Hn1y02MoPFH", + "focus": 0.17803747608706041, + "gap": 1.3852264763954736 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 76.7413239285961, + -266.1685680609762 + ] + ] + }, + { + "type": "rectangle", + "version": 3818, + "versionNonce": 659875404, + "isDeleted": false, + "id": "ep8nuspJL03qmVlM4a0tf", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18678.32194782704, + "y": 4761.241522260675, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.1630253178984, + "height": 85.05133551082423, + "seed": 1822333900, + "groupIds": [ + "KRUPtNkMHxGw65AwfLMA7" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "xb21BR2Psg68EWSiE__me", + "type": "text" + }, + { + "id": "l43DQSw2-jvCmaa374v6w", + "type": "arrow" + }, + { + "id": "ADLQMoAyF1P3CAAxLo3X1", + "type": "arrow" + }, + { + "id": "bdls-MBSszqy6Mybc-58O", + "type": "arrow" + } + ], + "updated": 1757276637583, + "link": null, + "locked": false, + "index": "bVS" + }, + { + "type": "text", + "version": 3436, + "versionNonce": 855260364, + "isDeleted": false, + "id": "xb21BR2Psg68EWSiE__me", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18706.117892248683, + "y": 4766.247561732537, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 142.57113647460938, + "height": 75.04529603896256, + "seed": 1618035276, + "groupIds": [ + "KRUPtNkMHxGw65AwfLMA7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276637583, + "link": null, + "locked": false, + "fontSize": 20.01207894372335, + "fontFamily": 1, + "text": "Data object:\nLogical Domain\nModel", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "ep8nuspJL03qmVlM4a0tf", + "originalText": "Data object:\nLogical Domain Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bVT", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4410, + "versionNonce": 142172236, + "isDeleted": false, + "id": "_TLWp70Gl67O26oxSp2uo", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18847.13598325649, + "y": 4767.591734568348, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.29573250244865, + "height": 13.429939204122967, + "seed": 1076566220, + "groupIds": [ + "KRUPtNkMHxGw65AwfLMA7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276637583, + "link": null, + "locked": false, + "index": "bVU" + }, + { + "type": "rectangle", + "version": 4781, + "versionNonce": 763328204, + "isDeleted": false, + "id": "UxtZ-0moZgtx9zoT5BQ92", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18847.14563601846, + "y": 4767.611534839898, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.293923684591036, + "height": 4.556481181868547, + "seed": 1734745932, + "groupIds": [ + "KRUPtNkMHxGw65AwfLMA7" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "l43DQSw2-jvCmaa374v6w", + "type": "arrow" + } + ], + "updated": 1757276637583, + "link": null, + "locked": false, + "index": "bVV" + }, + { + "type": "arrow", + "version": 11174, + "versionNonce": 1920977268, + "index": "bVW", + "isDeleted": false, + "id": "ADLQMoAyF1P3CAAxLo3X1", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19127.832541166703, + "y": 4958.7110709152785, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 128.5113283773244, + "height": 65.5683306518822, + "seed": 779900364, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280085422, + "link": null, + "locked": false, + "startBinding": { + "elementId": "8yAKMKr-3-EWx30ODz-ma", + "focus": -0.4761744728167166, + "gap": 3.4885971661533404 + }, + "endBinding": { + "elementId": "Zp3VJoGUcscGZJTiJhdBF", + "focus": 0.17940895017672398, + "gap": 9.090937647221836 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 128.5113283773244, + -65.5683306518822 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 4932, + "versionNonce": 732801228, + "isDeleted": false, + "id": "8yAKMKr-3-EWx30ODz-ma", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19025.024721889105, + "y": 4962.199668081432, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 1384627276, + "groupIds": [ + "P_Y3LKheimBeLirg2wVtm" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "6p8_xvPWAAFNCsow2Q-Ve" + }, + { + "id": "ADLQMoAyF1P3CAAxLo3X1", + "type": "arrow" + } + ], + "updated": 1757280086822, + "link": null, + "locked": false, + "index": "bVX" + }, + { + "type": "text", + "version": 4653, + "versionNonce": 1844910580, + "isDeleted": false, + "id": "6p8_xvPWAAFNCsow2Q-Ve", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19044.926496583637, + "y": 4967.199668081432, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 158.2398681640625, + "height": 75, + "seed": 1566724812, + "groupIds": [ + "P_Y3LKheimBeLirg2wVtm" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280086822, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<> Logical\nArchimate Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "8yAKMKr-3-EWx30ODz-ma", + "originalText": "Artifact:\n<> Logical Archimate Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bVY", + "autoResize": true + }, + { + "id": "YADC-rmb345fgJN5SHHN3", + "type": "line", + "x": 19210.635018328223, + "y": 4969.120022106001, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "P_Y3LKheimBeLirg2wVtm" + ], + "frameId": null, + "index": "bVZ", + "roundness": null, + "seed": 228989260, + "version": 6963, + "versionNonce": 1679208268, + "isDeleted": false, + "boundElements": [], + "updated": 1757280086822, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "q1K3hoLLhfeEGDz_p112Q", + "type": "line", + "x": 19215.496041081937, + "y": 4974.464148033616, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "P_Y3LKheimBeLirg2wVtm" + ], + "frameId": null, + "index": "bVa", + "roundness": null, + "seed": 1051529164, + "version": 5422, + "versionNonce": 292010868, + "isDeleted": false, + "boundElements": [], + "updated": 1757280086822, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5755, + "versionNonce": 1721427404, + "isDeleted": false, + "id": "1h8Z7VAItgcZJlKLhGy8g", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19199.648015664996, + "y": 4969.507670681525, + "strokeColor": "transparent", + "backgroundColor": "#b2f2bb", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1351693900, + "groupIds": [ + "P_Y3LKheimBeLirg2wVtm" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280086822, + "link": null, + "locked": false, + "index": "bVb" + }, + { + "type": "rectangle", + "version": 4041, + "versionNonce": 369484492, + "index": "bVm", + "isDeleted": false, + "id": "ruZXXRzQxSRdNSFy4Vtxz", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 19601.388814788992, + "y": 4364.619932712696, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 115, + "seed": 1056868212, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "YjMbss9TzxJ7YVZbQfW32" + }, + { + "id": "4mwOT0HLCgWXp6dgSBzM8", + "type": "arrow" + }, + { + "id": "6x_2VgiB76CKF2li7o1eU", + "type": "arrow" + }, + { + "id": "KdJrrSglDaaJvymL-C1MJ", + "type": "arrow" + }, + { + "id": "T4OsHDslMqlvs-nKk1g_t", + "type": "arrow" + }, + { + "id": "sZZu44yjybvOLiZ22JvJQ", + "type": "arrow" + }, + { + "id": "RcfHE6HjEI9AomOMekUEb", + "type": "arrow" + }, + { + "id": "K5vOZO5trxbcZTuj54k5x", + "type": "arrow" + } + ], + "updated": 1757279582027, + "link": null, + "locked": false + }, + { + "id": "YjMbss9TzxJ7YVZbQfW32", + "type": "text", + "x": 19617.446193803586, + "y": 4369.619932712696, + "width": 276.7518615722656, + "height": 105, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bVn", + "roundness": null, + "seed": 2049276148, + "version": 2016, + "versionNonce": 1905285196, + "isDeleted": false, + "boundElements": [], + "updated": 1757276612493, + "link": null, + "locked": false, + "text": "Application function:\nValidate Open\nExchange Model", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "ruZXXRzQxSRdNSFy4Vtxz", + "originalText": "Application function:\nValidate Open Exchange Model", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "4mwOT0HLCgWXp6dgSBzM8", + "type": "arrow", + "x": 19067.589293838173, + "y": 4427.45926464885, + "width": 527.2735897271086, + "height": 1.7980671014074687, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bWA", + "roundness": null, + "seed": 1308848844, + "version": 1347, + "versionNonce": 1923857012, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "_2orlDnsHr7mRD92t5Kl-" + } + ], + "updated": 1757276612501, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 527.2735897271086, + -1.7980671014074687 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "oI-HfgPU8_Hn1y02MoPFH", + "focus": -0.0128014415264197, + "gap": 6.711062165686599 + }, + "endBinding": { + "elementId": "ruZXXRzQxSRdNSFy4Vtxz", + "focus": -0.05156897631070495, + "gap": 6.525931223710359 + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "_2orlDnsHr7mRD92t5Kl-", + "type": "text", + "x": 18881.95065104028, + "y": 4474.483200107923, + "width": 40.29997253417969, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bWB", + "roundness": null, + "seed": 220412236, + "version": 59, + "versionNonce": 1403651188, + "isDeleted": false, + "boundElements": [], + "updated": 1757097818837, + "link": null, + "locked": false, + "text": "flow", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "4mwOT0HLCgWXp6dgSBzM8", + "originalText": "flow", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 10484, + "versionNonce": 1463958772, + "index": "bWR", + "isDeleted": false, + "id": "bdls-MBSszqy6Mybc-58O", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18748.301932096216, + "y": 5029.560390030302, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.732425291571417, + "height": 175.6821778598096, + "seed": 101751884, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276637603, + "link": null, + "locked": false, + "startBinding": { + "elementId": "sCJkfv0y_VLc1j8wmHvPf", + "focus": -0.022865226083677505, + "gap": 5.409172714738816 + }, + "endBinding": { + "elementId": "ep8nuspJL03qmVlM4a0tf", + "focus": 0.2700976714620846, + "gap": 7.585354398993331 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 1.732425291571417, + -175.6821778598096 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 4490, + "versionNonce": 118130548, + "isDeleted": false, + "id": "sCJkfv0y_VLc1j8wmHvPf", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18651.022837357243, + "y": 5034.969562745041, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.1630253178984, + "height": 85.05133551082423, + "seed": 1825518284, + "groupIds": [ + "JHcrlrPje9eDqbK0qrPZT" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "H9l_9jj0wB0osxERdqJOf" + }, + { + "id": "bdls-MBSszqy6Mybc-58O", + "type": "arrow" + } + ], + "updated": 1757276988370, + "link": null, + "locked": false, + "index": "bWS" + }, + { + "type": "text", + "version": 4102, + "versionNonce": 710597068, + "isDeleted": false, + "id": "H9l_9jj0wB0osxERdqJOf", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18668.07340519197, + "y": 5039.975602216903, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 164.0618896484375, + "height": 75.04529603896256, + "seed": 1551300940, + "groupIds": [ + "JHcrlrPje9eDqbK0qrPZT" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276988370, + "link": null, + "locked": false, + "fontSize": 20.01207894372335, + "fontFamily": 1, + "text": "Artifact:\n<> Logical\nObject Definition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "sCJkfv0y_VLc1j8wmHvPf", + "originalText": "Artifact:\n<> Logical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bWT", + "autoResize": true + }, + { + "id": "urYW5adfjp_uOTfqWv4oB", + "type": "line", + "x": 18837.075202395874, + "y": 5041.89409629795, + "width": 16.216956750149343, + "height": 18.457276747490983, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "JHcrlrPje9eDqbK0qrPZT" + ], + "frameId": null, + "index": "bWU", + "roundness": null, + "seed": 1080160204, + "version": 6523, + "versionNonce": 1622243572, + "isDeleted": false, + "boundElements": [], + "updated": 1757276988370, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.194836358589257, + 0.034777810755342725 + ], + [ + -11.067948968223174, + 18.457276747490983 + ], + [ + 5.022120391560086, + 18.324203392873578 + ], + [ + 4.897242843930144, + 5.393109828016514 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "NhWEglI3TDrn3o2desS7n", + "type": "line", + "x": 18841.939160950602, + "y": 5047.241449795382, + "width": 5.194961770854754, + "height": 5.400684895673877, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "JHcrlrPje9eDqbK0qrPZT" + ], + "frameId": null, + "index": "bWV", + "roundness": null, + "seed": 145364556, + "version": 4982, + "versionNonce": 1475723340, + "isDeleted": false, + "boundElements": [], + "updated": 1757276988370, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.194961770854754, + 0.12487797054285453 + ], + [ + -5.05878578377772, + -5.275806925131023 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5317, + "versionNonce": 461257332, + "isDeleted": false, + "id": "woz7bvmSQbErKRQ4uhtdD", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18826.081564163305, + "y": 5042.281978992741, + "strokeColor": "transparent", + "backgroundColor": "#b2f2bb", + "width": 15.712615501543228, + "height": 18.00575759740619, + "seed": 304704716, + "groupIds": [ + "JHcrlrPje9eDqbK0qrPZT" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276988370, + "link": null, + "locked": false, + "index": "bWW" + }, + { + "id": "h54kY_-h1406itmWaN4ud", + "type": "rectangle", + "x": 14555.252757694447, + "y": 2974.3034805939283, + "width": 2.1409380113418592, + "height": 2.1719660984635993, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#868e96", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bWl", + "roundness": { + "type": 3 + }, + "seed": 1380538828, + "version": 201, + "versionNonce": 1480980340, + "isDeleted": false, + "boundElements": [], + "updated": 1757156007653, + "link": null, + "locked": false + }, + { + "type": "text", + "version": 5021, + "versionNonce": 142024820, + "isDeleted": false, + "id": "VpT1bSF3ueMLQ76SBq2RZ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16611.08948082822, + "y": 4618.386202994888, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1311.4698906446615, + "height": 145.4569234463803, + "seed": 1615784820, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757156030383, + "link": null, + "locked": false, + "fontSize": 58.182769378552024, + "fontFamily": 1, + "text": "These Logical object definitions\n<------ are internal framework objects. ----->", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "These Logical object definitions\n<------ are internal framework objects. ----->", + "lineHeight": 1.25, + "baseline": 265, + "index": "bWn", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3361, + "versionNonce": 798518732, + "isDeleted": false, + "id": "5xfn-lBCS9lOkcCOxJV5N", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14482.794262825315, + "y": 4618.209902197943, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 78772172, + "groupIds": [ + "JFdvXWfD8OyTMZlDkkp4s" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "XRueyVo3zeSLuVYf8bIPp", + "type": "text" + } + ], + "updated": 1757157306934, + "link": null, + "locked": false, + "index": "bWw" + }, + { + "type": "text", + "version": 2902, + "versionNonce": 642110964, + "isDeleted": false, + "id": "XRueyVo3zeSLuVYf8bIPp", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14517.566017378247, + "y": 4623.209902197943, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 75, + "seed": 1438195276, + "groupIds": [ + "JFdvXWfD8OyTMZlDkkp4s" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757157321931, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nBusiness\nrequirements", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "5xfn-lBCS9lOkcCOxJV5N", + "originalText": "Data object:\nBusiness requirements", + "lineHeight": 1.25, + "baseline": 18, + "index": "bWx", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3964, + "versionNonce": 676883148, + "isDeleted": false, + "id": "Ejc5FY2qsdGacxZhTasWF", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14651.506405031207, + "y": 4624.133003707717, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 2014803148, + "groupIds": [ + "JFdvXWfD8OyTMZlDkkp4s" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757157306934, + "link": null, + "locked": false, + "index": "bWy" + }, + { + "type": "rectangle", + "version": 4332, + "versionNonce": 1108947276, + "isDeleted": false, + "id": "J_V5IT9dHWOjSGL7ZiZnK", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14651.516051966937, + "y": 4624.152792028164, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 426179404, + "groupIds": [ + "JFdvXWfD8OyTMZlDkkp4s" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "cNqFA3aQG4dlYRpKz8knb", + "type": "arrow" + } + ], + "updated": 1757157306934, + "link": null, + "locked": false, + "index": "bWz" + }, + { + "type": "arrow", + "version": 15515, + "versionNonce": 1409943116, + "index": "bX0", + "isDeleted": false, + "id": "cNqFA3aQG4dlYRpKz8knb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 14850.363936323016, + "y": 4426.135981167302, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 161.53285289878477, + "height": 203.52769302579418, + "seed": 604090828, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "sJ0EL49ta4G__UbubKGCq" + } + ], + "updated": 1757157311562, + "link": null, + "locked": false, + "startBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": 0.301247532838073, + "gap": 10.378905227050382 + }, + "endBinding": { + "elementId": "J_V5IT9dHWOjSGL7ZiZnK", + "focus": 2.081831655076006, + "gap": 14.067766967023365 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -161.53285289878477, + 203.52769302579418 + ] + ] + }, + { + "id": "sJ0EL49ta4G__UbubKGCq", + "type": "text", + "x": 14317.890421975724, + "y": 4700.986369852179, + "width": 59.07997131347656, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bX1", + "roundness": null, + "seed": 654415948, + "version": 150, + "versionNonce": 943446516, + "isDeleted": false, + "boundElements": [], + "updated": 1757157303515, + "link": null, + "locked": false, + "text": "read", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "cNqFA3aQG4dlYRpKz8knb", + "originalText": "read", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 11646, + "versionNonce": 1255202932, + "index": "bXL", + "isDeleted": false, + "id": "F6WvHptU7pvO2Wb4wVFqt", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 18923.466701367644, + "y": 4365.5533183301295, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 2.9835445631615585, + "height": 294.7658594702557, + "seed": 1015909236, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757276612502, + "link": null, + "locked": false, + "startBinding": { + "elementId": "oI-HfgPU8_Hn1y02MoPFH", + "focus": 0.11393362647027952, + "gap": 5.698292828292324 + }, + "endBinding": { + "elementId": "Hw-mRQRlGJ9pVilRZI4pf", + "focus": 0.761391763198879, + "gap": 1.2559120675182385 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -2.9835445631615585, + -294.7658594702557 + ] + ] + }, + { + "type": "rectangle", + "version": 4419, + "versionNonce": 908624972, + "isDeleted": false, + "id": "ciJincbLXCzsibwGHJEcr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19225.341743086392, + "y": 4548.2578938694605, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 799215564, + "groupIds": [ + "KrkNChQZUfMPvRkyx9ygk" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "JnS_j3R8qSElSwyp7HtAT", + "type": "text" + }, + { + "id": "7F0rs0omBwLcA3065rIQm", + "type": "arrow" + }, + { + "id": "sZZu44yjybvOLiZ22JvJQ", + "type": "arrow" + } + ], + "updated": 1757278676922, + "link": null, + "locked": false, + "index": "bXX" + }, + { + "type": "text", + "version": 4046, + "versionNonce": 564796108, + "isDeleted": false, + "id": "JnS_j3R8qSElSwyp7HtAT", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19260.113497639322, + "y": 4553.2578938694605, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 75, + "seed": 851916364, + "groupIds": [ + "KrkNChQZUfMPvRkyx9ygk" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278676922, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nArchimate\nMetamodel", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "ciJincbLXCzsibwGHJEcr", + "originalText": "Data object:\nArchimate Metamodel", + "lineHeight": 1.25, + "baseline": 18, + "index": "bXY", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5007, + "versionNonce": 428736076, + "isDeleted": false, + "id": "Xb-lTyvznk-hgzObsWjCh", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19394.276372444874, + "y": 4554.312119324288, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1000508620, + "groupIds": [ + "KrkNChQZUfMPvRkyx9ygk" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278676922, + "link": null, + "locked": false, + "index": "bXZ" + }, + { + "type": "rectangle", + "version": 5379, + "versionNonce": 777016524, + "isDeleted": false, + "id": "P_F_4KGxF3H3N7SHuG2lo", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19394.286019380597, + "y": 4554.331907644737, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 1808733004, + "groupIds": [ + "KrkNChQZUfMPvRkyx9ygk" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "7F0rs0omBwLcA3065rIQm", + "type": "arrow" + } + ], + "updated": 1757278676922, + "link": null, + "locked": false, + "index": "bXa" + }, + { + "type": "arrow", + "version": 17016, + "versionNonce": 95740236, + "index": "bXb", + "isDeleted": false, + "id": "7F0rs0omBwLcA3065rIQm", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 19242.079879825335, + "y": 4544.343896562615, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 179.32505966593817, + "height": 68.68900632050554, + "seed": 564578764, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "98IpgpIrsnQpoYdX6z3uw" + } + ], + "updated": 1757278676922, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ciJincbLXCzsibwGHJEcr", + "focus": 0.18747294582234134, + "gap": 3.9139973068458858 + }, + "endBinding": { + "elementId": "oI-HfgPU8_Hn1y02MoPFH", + "focus": -0.11534500781549187, + "gap": 5.5332344214319775 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -179.32505966593817, + -68.68900632050554 + ] + ] + }, + { + "id": "98IpgpIrsnQpoYdX6z3uw", + "type": "text", + "x": 18308.547922716123, + "y": 4785.5663900243, + "width": 53.05995178222656, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#868e96", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bXc", + "roundness": null, + "seed": 1615048780, + "version": 15, + "versionNonce": 200520140, + "isDeleted": false, + "boundElements": [], + "updated": 1757241692715, + "link": null, + "locked": false, + "text": "reads", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "7F0rs0omBwLcA3065rIQm", + "originalText": "reads", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 5010, + "versionNonce": 1546321740, + "isDeleted": false, + "id": "0nIsY2Cgx1T6_K2fDfWzG", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17739.715198441372, + "y": 5619.751080211429, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 690.0311889648438, + "height": 173.48946292702155, + "seed": 1604564684, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "FHZdMJjKG7KPq_obryejx", + "type": "arrow" + } + ], + "updated": 1757275767023, + "link": null, + "locked": false, + "fontSize": 27.75831406832345, + "fontFamily": 1, + "text": "io files are all \nphysical realisations\nof the logical.\ne.g. \nif 1:1 in all cases, then perfect mapping to registry", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "io files are all \nphysical realisations\nof the logical.\ne.g. \nif 1:1 in all cases, then perfect mapping to registry", + "lineHeight": 1.25, + "baseline": 265, + "index": "bXp", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4433, + "versionNonce": 61810292, + "isDeleted": false, + "id": "AErzPHrr7bFnmCLUZFEfN", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18404.30610396828, + "y": 4772.1459307653195, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1698071372, + "groupIds": [ + "HFeX0XL_yxmql1Y8dRufI" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "sEFXqNbOS7M8-Jgny5xSl", + "type": "text" + }, + { + "id": "kW10m8iWQeysCFnJpW4JK", + "type": "arrow" + }, + { + "id": "fxKqbS0lbdyVVaIahepGU", + "type": "arrow" + }, + { + "id": "Tr221BAmIjKl09d98KOI8", + "type": "arrow" + } + ], + "updated": 1757276715023, + "link": null, + "locked": false, + "index": "bXu" + }, + { + "type": "text", + "version": 4084, + "versionNonce": 1697886540, + "isDeleted": false, + "id": "sEFXqNbOS7M8-Jgny5xSl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18424.20787866281, + "y": 4777.1459307653195, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 158.2398681640625, + "height": 75, + "seed": 1554004428, + "groupIds": [ + "HFeX0XL_yxmql1Y8dRufI" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276637583, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nArchimate Model\nTemplate", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "AErzPHrr7bFnmCLUZFEfN", + "originalText": "Data object:\nArchimate Model Template", + "lineHeight": 1.25, + "baseline": 18, + "index": "bXv", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5019, + "versionNonce": 1317086412, + "isDeleted": false, + "id": "oufLUUzoWdMSaEH42DvGb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18573.240733326762, + "y": 4778.200156220147, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1519329356, + "groupIds": [ + "HFeX0XL_yxmql1Y8dRufI" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276637583, + "link": null, + "locked": false, + "index": "bXw" + }, + { + "type": "rectangle", + "version": 5391, + "versionNonce": 1461365580, + "isDeleted": false, + "id": "3M43Vogab7ZwWawjFD0Lt", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18573.250380262485, + "y": 4778.219944540596, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 920467148, + "groupIds": [ + "HFeX0XL_yxmql1Y8dRufI" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276637583, + "link": null, + "locked": false, + "index": "bXx" + }, + { + "type": "arrow", + "version": 11018, + "versionNonce": 554282828, + "index": "bXy", + "isDeleted": false, + "id": "fxKqbS0lbdyVVaIahepGU", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18591.644179392042, + "y": 5200.810237593051, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 63.79633732331058, + "height": 339.41986598786207, + "seed": 1596560500, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276765440, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "AErzPHrr7bFnmCLUZFEfN", + "focus": -0.1567162769777005, + "gap": 4.24444083986964 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -63.79633732331058, + -339.41986598786207 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 16103, + "versionNonce": 13084620, + "index": "bY4", + "isDeleted": false, + "id": "kW10m8iWQeysCFnJpW4JK", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 18525.67416738739, + "y": 4761.243166839878, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 271.7914348602317, + "height": 272.48112465093527, + "seed": 63365708, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757276637583, + "link": null, + "locked": false, + "startBinding": { + "elementId": "AErzPHrr7bFnmCLUZFEfN", + "focus": -0.21849203392809216, + "gap": 10.902763925441832 + }, + "endBinding": { + "elementId": "oI-HfgPU8_Hn1y02MoPFH", + "focus": 0.23105622766828973, + "gap": 6.778255241172111 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 271.7914348602317, + -272.48112465093527 + ] + ] + }, + { + "type": "rectangle", + "version": 3311, + "versionNonce": 244303436, + "isDeleted": false, + "id": "Ms12PKUFBJ5_Bd7ZiHTk2", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18818.453525566587, + "y": 5256.09018397844, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 709332428, + "groupIds": [ + "xy6UFxlBJvXbnta7elD4U" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "V0K--KmAcOa7mfRFe7YXi" + }, + { + "id": "Xe8jAlibwN8YFYa5kiUmI", + "type": "arrow" + }, + { + "id": "5QtAiwo6HoeNoa-oGtv_L", + "type": "arrow" + } + ], + "updated": 1757280098774, + "link": null, + "locked": false, + "index": "bY6" + }, + { + "type": "text", + "version": 2944, + "versionNonce": 802757836, + "isDeleted": false, + "id": "V0K--KmAcOa7mfRFe7YXi", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18843.59529812489, + "y": 5261.09018397844, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 147.75987243652344, + "height": 75, + "seed": 539751500, + "groupIds": [ + "xy6UFxlBJvXbnta7elD4U" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280098774, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Tech service:\nTool Archimate\nGenerator", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "Ms12PKUFBJ5_Bd7ZiHTk2", + "originalText": "Tech service:\nTool Archimate Generator", + "lineHeight": 1.25, + "baseline": 18, + "index": "bY7", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4877, + "versionNonce": 189022284, + "isDeleted": false, + "id": "gs4-3PUydLOaSigBMrspJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18981.173980091236, + "y": 5263.720992581379, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 26.295585428327534, + "height": 9.753817021231114, + "seed": 1505725132, + "groupIds": [ + "xy6UFxlBJvXbnta7elD4U" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1757280098774, + "link": null, + "locked": false, + "index": "bY8" + }, + { + "id": "Xe8jAlibwN8YFYa5kiUmI", + "type": "arrow", + "x": 18918.830983603904, + "y": 5253.907439749892, + "width": 5.562684756398085, + "height": 765.3903137210473, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bY9", + "roundness": null, + "seed": 2040287564, + "version": 1069, + "versionNonce": 984851276, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "1ZyZjTfH-uZ9WpVz9VtMa" + } + ], + "updated": 1757280098774, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.562684756398085, + -765.3903137210473 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Ms12PKUFBJ5_Bd7ZiHTk2", + "focus": 0.01691832300815288, + "gap": 5.242825193712633 + }, + "endBinding": { + "elementId": "oI-HfgPU8_Hn1y02MoPFH", + "focus": -0.04126073768024846, + "gap": 6.148390401877805 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "1ZyZjTfH-uZ9WpVz9VtMa", + "type": "text", + "x": 18814.498919447407, + "y": 4846.863880506506, + "width": 61.93994140625, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bYA", + "roundness": null, + "seed": 1058817996, + "version": 78, + "versionNonce": 868997580, + "isDeleted": false, + "boundElements": [], + "updated": 1757276167593, + "link": null, + "locked": false, + "text": "serves", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Xe8jAlibwN8YFYa5kiUmI", + "originalText": "serves", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 16794, + "versionNonce": 1165580748, + "index": "bYG", + "isDeleted": false, + "id": "5QtAiwo6HoeNoa-oGtv_L", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 19169.802068142442, + "y": 5387.228496803429, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 149.2468520870534, + "height": 50.07477671536253, + "seed": 1561184076, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757280098774, + "link": null, + "locked": false, + "startBinding": { + "elementId": "mMHDGe2UiKd75koPwEAn_", + "focus": -0.22578014058289347, + "gap": 1.5612692219328892 + }, + "endBinding": { + "elementId": "Ms12PKUFBJ5_Bd7ZiHTk2", + "focus": 0.05125565712728703, + "gap": 8.354928621002728 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -149.2468520870534, + -50.07477671536253 + ] + ] + }, + { + "type": "rectangle", + "version": 3357, + "versionNonce": 71292620, + "isDeleted": false, + "id": "omhuPaXjFQ_5ahugQ3QaD", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19753.087405032562, + "y": 5294.642074323366, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 1043446004, + "groupIds": [ + "EWym78W7NqoKuPdpxybnO" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "4ntsSlBHx_jJtQOExVN_V" + }, + { + "id": "T4OsHDslMqlvs-nKk1g_t", + "type": "arrow" + }, + { + "id": "NJvS0n0g0JS_IRd0KamcL", + "type": "arrow" + } + ], + "updated": 1757280096035, + "link": null, + "locked": false, + "index": "bYP" + }, + { + "type": "text", + "version": 2999, + "versionNonce": 104013132, + "isDeleted": false, + "id": "4ntsSlBHx_jJtQOExVN_V", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19778.229177590863, + "y": 5299.642074323366, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 147.75987243652344, + "height": 75, + "seed": 1593211508, + "groupIds": [ + "EWym78W7NqoKuPdpxybnO" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280096035, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Tech service:\nTool Archimate\nValidator", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "omhuPaXjFQ_5ahugQ3QaD", + "originalText": "Tech service:\nTool Archimate Validator", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYQ", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4923, + "versionNonce": 1781010636, + "isDeleted": false, + "id": "GTvX2L-GZv6-iKaaSeSW0", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19915.80785955721, + "y": 5302.272882926304, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 26.295585428327534, + "height": 9.753817021231114, + "seed": 1554451444, + "groupIds": [ + "EWym78W7NqoKuPdpxybnO" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1757280096035, + "link": null, + "locked": false, + "index": "bYR" + }, + { + "id": "T4OsHDslMqlvs-nKk1g_t", + "type": "arrow", + "x": 19855.526842585936, + "y": 5293.859644750961, + "width": 4.000870646174008, + "height": 810.4990096878573, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bYS", + "roundness": null, + "seed": 1229548916, + "version": 1256, + "versionNonce": 653890508, + "isDeleted": false, + "boundElements": [], + "updated": 1757280096035, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 4.000870646174008, + -810.4990096878573 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "omhuPaXjFQ_5ahugQ3QaD", + "focus": 0.03228536551036402, + "gap": 1.9421123175980028 + }, + "endBinding": { + "elementId": "ruZXXRzQxSRdNSFy4Vtxz", + "focus": -0.6722099783968417, + "gap": 9.860714814893981 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "type": "rectangle", + "version": 4695, + "versionNonce": 495087436, + "isDeleted": false, + "id": "mMHDGe2UiKd75koPwEAn_", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19171.363337364375, + "y": 5370.61528652615, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 270.9617875622989, + "height": 85, + "seed": 1539022964, + "groupIds": [ + "mlvXlDqtUH1_VCJGKRmCj" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "yf50L_Div9iI8ziRm9HbJ" + }, + { + "id": "NJvS0n0g0JS_IRd0KamcL", + "type": "arrow" + }, + { + "id": "5QtAiwo6HoeNoa-oGtv_L", + "type": "arrow" + } + ], + "updated": 1757276533425, + "link": null, + "locked": false, + "index": "bYU" + }, + { + "type": "text", + "version": 4313, + "versionNonce": 1803190860, + "isDeleted": false, + "id": "yf50L_Div9iI8ziRm9HbJ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19186.084328191424, + "y": 5375.61528652615, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 241.51980590820312, + "height": 75, + "seed": 299332084, + "groupIds": [ + "mlvXlDqtUH1_VCJGKRmCj" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276141522, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<>\narchimate3_Diagram.xsd", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "mMHDGe2UiKd75koPwEAn_", + "originalText": "Artifact:\n<> archimate3_Diagram.xsd", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYV", + "autoResize": true + }, + { + "id": "o7NWDOkLob-PgC4_29CLA", + "type": "line", + "x": 19430.22177443189, + "y": 5377.535640550719, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "mlvXlDqtUH1_VCJGKRmCj" + ], + "frameId": null, + "index": "bYW", + "roundness": null, + "seed": 125637492, + "version": 6667, + "versionNonce": 824139596, + "isDeleted": false, + "boundElements": [], + "updated": 1757276141522, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "Y5pc4xvnyL0-qx3umHus7", + "type": "line", + "x": 19435.082797185605, + "y": 5382.879766478334, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "mlvXlDqtUH1_VCJGKRmCj" + ], + "frameId": null, + "index": "bYX", + "roundness": null, + "seed": 1257407732, + "version": 5126, + "versionNonce": 1863161292, + "isDeleted": false, + "boundElements": [], + "updated": 1757276141522, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5463, + "versionNonce": 85613004, + "isDeleted": false, + "id": "EHHl09TAKLCwIAQ5POPAi", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19419.234771768664, + "y": 5377.923289126244, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 834520692, + "groupIds": [ + "mlvXlDqtUH1_VCJGKRmCj" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276539284, + "link": null, + "locked": false, + "index": "bYY" + }, + { + "type": "arrow", + "version": 17020, + "versionNonce": 78461516, + "index": "bYZ", + "isDeleted": false, + "id": "NJvS0n0g0JS_IRd0KamcL", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 19447.374150274314, + "y": 5424.483494931013, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 303.5838314112516, + "height": 66.84123790443573, + "seed": 1889851380, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1757280096035, + "link": null, + "locked": false, + "startBinding": { + "elementId": "mMHDGe2UiKd75koPwEAn_", + "focus": 0.5843741734888114, + "gap": 5.049025347638235 + }, + "endBinding": { + "elementId": "omhuPaXjFQ_5ahugQ3QaD", + "focus": 0.027714125940919942, + "gap": 2.328425157604528 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 303.5838314112516, + -66.84123790443573 + ] + ] + }, + { + "type": "arrow", + "version": 11248, + "versionNonce": 319431628, + "index": "bYa", + "isDeleted": false, + "id": "Tr221BAmIjKl09d98KOI8", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18424.267150488206, + "y": 5042.963465458026, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 50.62077315833449, + "height": 183.74020089564146, + "seed": 703388532, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276781168, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PelNWwOvqq1qZFi1cSz26", + "focus": -0.23491928939125578, + "gap": 3.5060437286110755 + }, + "endBinding": { + "elementId": "AErzPHrr7bFnmCLUZFEfN", + "focus": 0.1451315787203899, + "gap": 2.077333797064057 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 50.62077315833449, + -183.74020089564146 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 4795, + "versionNonce": 1816610420, + "isDeleted": false, + "id": "PelNWwOvqq1qZFi1cSz26", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18335.814336228603, + "y": 5045.010282839756, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.1630253178984, + "height": 111, + "seed": 472468724, + "groupIds": [ + "walgr-w7yLeyxJ9Kqkx_i" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "uIi8XQ74YR0vpuLu8Ep_5" + }, + { + "id": "Tr221BAmIjKl09d98KOI8", + "type": "arrow" + } + ], + "updated": 1757276822213, + "link": null, + "locked": false, + "index": "bYb" + }, + { + "type": "text", + "version": 4469, + "versionNonce": 1401785036, + "isDeleted": false, + "id": "uIi8XQ74YR0vpuLu8Ep_5", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18361.139035838234, + "y": 5050.949888121139, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 147.5136260986328, + "height": 100.06039471861675, + "seed": 1088130676, + "groupIds": [ + "walgr-w7yLeyxJ9Kqkx_i" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276822213, + "link": null, + "locked": false, + "fontSize": 20.01207894372335, + "fontFamily": 1, + "text": "Artifact:\n<> Minimal\nOpen Exchange\nTemplate", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "PelNWwOvqq1qZFi1cSz26", + "originalText": "Artifact:\n<> Minimal Open Exchange Template", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYc", + "autoResize": true + }, + { + "id": "mJFXNYG3prvBm8uvjLVRn", + "type": "line", + "x": 18521.866701267234, + "y": 5051.934816392664, + "width": 16.216956750149343, + "height": 18.457276747490983, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "walgr-w7yLeyxJ9Kqkx_i" + ], + "frameId": null, + "index": "bYd", + "roundness": null, + "seed": 1758044148, + "version": 6827, + "versionNonce": 503207924, + "isDeleted": false, + "boundElements": [], + "updated": 1757276822213, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.194836358589257, + 0.034777810755342725 + ], + [ + -11.067948968223174, + 18.457276747490983 + ], + [ + 5.022120391560086, + 18.324203392873578 + ], + [ + 4.897242843930144, + 5.393109828016514 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "C-0n978C7uI6e4NaIbk5B", + "type": "line", + "x": 18526.730659821955, + "y": 5057.282169890097, + "width": 5.194961770854754, + "height": 5.400684895673877, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "walgr-w7yLeyxJ9Kqkx_i" + ], + "frameId": null, + "index": "bYe", + "roundness": null, + "seed": 1543078260, + "version": 5286, + "versionNonce": 162156876, + "isDeleted": false, + "boundElements": [], + "updated": 1757276822213, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.194961770854754, + 0.12487797054285453 + ], + [ + -5.05878578377772, + -5.275806925131023 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5621, + "versionNonce": 2044148084, + "isDeleted": false, + "id": "TBPV8PGk-To9qLo8nfK7v", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18510.873063034665, + "y": 5052.3226990874555, + "strokeColor": "transparent", + "backgroundColor": "#b2f2bb", + "width": 15.712615501543228, + "height": 18.00575759740619, + "seed": 1907438324, + "groupIds": [ + "walgr-w7yLeyxJ9Kqkx_i" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276822213, + "link": null, + "locked": false, + "index": "bYf" + }, + { + "type": "rectangle", + "version": 4856, + "versionNonce": 1823998028, + "isDeleted": false, + "id": "3A9_OvnGdWptCt9IJxm8I", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18492.149416544427, + "y": 5206.479712082345, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "width": 198.1630253178984, + "height": 161, + "seed": 911770316, + "groupIds": [ + "MaJVMdy7C0eu6GVSf-6Sj" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "zVEoPMvgkw6Ty0PnrU-XF" + } + ], + "updated": 1757276813115, + "link": null, + "locked": false, + "index": "bYq" + }, + { + "type": "text", + "version": 4556, + "versionNonce": 2115228620, + "isDeleted": false, + "id": "zVEoPMvgkw6Ty0PnrU-XF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18516.033381290777, + "y": 5212.38912000442, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "width": 150.3950958251953, + "height": 150.09059207792512, + "seed": 1213614412, + "groupIds": [ + "MaJVMdy7C0eu6GVSf-6Sj" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276814062, + "link": null, + "locked": false, + "fontSize": 20.01207894372335, + "fontFamily": 1, + "text": "Artifact:\n<>\nInformation\nStructure Open\nExchange\nTemplate", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "3A9_OvnGdWptCt9IJxm8I", + "originalText": "Artifact:\n<> Information Structure Open Exchange Template", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYr", + "autoResize": true + }, + { + "id": "qO3hLPqs3RJSxYZE2UlTi", + "type": "line", + "x": 18678.20178158306, + "y": 5213.404245635254, + "width": 16.216956750149343, + "height": 18.457276747490983, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "MaJVMdy7C0eu6GVSf-6Sj" + ], + "frameId": null, + "index": "bYs", + "roundness": null, + "seed": 332873676, + "version": 6886, + "versionNonce": 252355700, + "isDeleted": false, + "boundElements": [], + "updated": 1757276793231, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.194836358589257, + 0.034777810755342725 + ], + [ + -11.067948968223174, + 18.457276747490983 + ], + [ + 5.022120391560086, + 18.324203392873578 + ], + [ + 4.897242843930144, + 5.393109828016514 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "Kt5WLJHG36kx0CSZ4uXO5", + "type": "line", + "x": 18683.06574013778, + "y": 5218.751599132686, + "width": 5.194961770854754, + "height": 5.400684895673877, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "MaJVMdy7C0eu6GVSf-6Sj" + ], + "frameId": null, + "index": "bYt", + "roundness": null, + "seed": 1626695244, + "version": 5345, + "versionNonce": 212202996, + "isDeleted": false, + "boundElements": [], + "updated": 1757276793231, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.194961770854754, + 0.12487797054285453 + ], + [ + -5.05878578377772, + -5.275806925131023 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5680, + "versionNonce": 769333108, + "isDeleted": false, + "id": "Bdc4JyM48mW2amGtRXlF1", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18667.20814335049, + "y": 5213.792128330045, + "strokeColor": "transparent", + "backgroundColor": "#ffc9c9", + "width": 15.712615501543228, + "height": 18.00575759740619, + "seed": 1686813900, + "groupIds": [ + "MaJVMdy7C0eu6GVSf-6Sj" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757276793231, + "link": null, + "locked": false, + "index": "bYu" + }, + { + "type": "text", + "version": 4725, + "versionNonce": 1478351220, + "isDeleted": false, + "id": "5Xkc3E7mieuOC5taHhlYF", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17535.952159542718, + "y": 4367.873834090617, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 273.64263916015625, + "height": 34.69789258540431, + "seed": 1066240844, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "fontSize": 27.75831406832345, + "fontFamily": 1, + "text": "need to rename this", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "need to rename this", + "lineHeight": 1.25, + "baseline": 265, + "index": "bYv", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4309, + "versionNonce": 394955508, + "isDeleted": false, + "id": "8o45njW_XhR0w8Xc7kAPo", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17583.010966014303, + "y": 3890.51413612624, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1725317580, + "groupIds": [ + "pl5wGNJB9Ekn65HmaPMmV" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "Imbbue_LDuwFXVa3JZNli", + "type": "text" + }, + { + "id": "7gQ6AM_8Oj5vTbggB7YFr", + "type": "arrow" + }, + { + "id": "NCiKGuhPbkQJQsQ-N2xon", + "type": "arrow" + } + ], + "updated": 1757278637918, + "link": null, + "locked": false, + "index": "bYw" + }, + { + "type": "text", + "version": 3939, + "versionNonce": 2036665460, + "isDeleted": false, + "id": "Imbbue_LDuwFXVa3JZNli", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17617.782720567233, + "y": 3895.51413612624, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 75, + "seed": 1086597196, + "groupIds": [ + "pl5wGNJB9Ekn65HmaPMmV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nArchimate\nMetamodel", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "8o45njW_XhR0w8Xc7kAPo", + "originalText": "Data object:\nArchimate Metamodel", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYx", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4900, + "versionNonce": 1803776244, + "isDeleted": false, + "id": "0cUzgdx7_C4LGiopYPZco", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17751.945595372785, + "y": 3896.568361581067, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 556875468, + "groupIds": [ + "pl5wGNJB9Ekn65HmaPMmV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "index": "bYy" + }, + { + "type": "rectangle", + "version": 5272, + "versionNonce": 1766929012, + "isDeleted": false, + "id": "mgN-d0uDLej9aPdyWpWXZ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17751.955242308508, + "y": 3896.5881499015163, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 1354204492, + "groupIds": [ + "pl5wGNJB9Ekn65HmaPMmV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "index": "bYz" + }, + { + "type": "arrow", + "version": 10019, + "versionNonce": 1718766028, + "index": "bZ0", + "isDeleted": false, + "id": "7gQ6AM_8Oj5vTbggB7YFr", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17689.175095162438, + "y": 4247.599815754635, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 11.294522569613036, + "height": 267.23502290395754, + "seed": 1957755852, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "bku2zW5n-vda_uT2celzc" + } + ], + "updated": 1757278638173, + "link": null, + "locked": false, + "startBinding": { + "elementId": "DuVKVfKFVoInRtD_m7xAP", + "focus": -0.004794267159882285, + "gap": 9.9909333781452 + }, + "endBinding": { + "elementId": "8o45njW_XhR0w8Xc7kAPo", + "focus": -0.20272372251692164, + "gap": 4.850656724437158 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 11.294522569613036, + -267.23502290395754 + ] + ], + "elbowed": false + }, + { + "id": "bku2zW5n-vda_uT2celzc", + "type": "text", + "x": 17600.305169247513, + "y": 4059.842946677861, + "width": 71.93992614746094, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#868e96", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bZ1", + "roundness": null, + "seed": 2000134732, + "version": 39, + "versionNonce": 1261831244, + "isDeleted": false, + "boundElements": [], + "updated": 1757278636315, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "7gQ6AM_8Oj5vTbggB7YFr", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 4410, + "versionNonce": 374744436, + "isDeleted": false, + "id": "DuVKVfKFVoInRtD_m7xAP", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17552.05133720727, + "y": 4257.59074913278, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 271.12543417145605, + "height": 85.05133551082423, + "seed": 1864726732, + "groupIds": [ + "QHKdeXAZF_wBNmqNd_nS7" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "VhrBIYnsiQtANHomlhaMh" + }, + { + "id": "7gQ6AM_8Oj5vTbggB7YFr", + "type": "arrow" + } + ], + "updated": 1757278637918, + "link": null, + "locked": false, + "index": "bZ2" + }, + { + "type": "text", + "version": 4069, + "versionNonce": 14243572, + "isDeleted": false, + "id": "VhrBIYnsiQtANHomlhaMh", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17580.690691561067, + "y": 4262.596788604642, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 213.8467254638672, + "height": 75.04529603896256, + "seed": 135561036, + "groupIds": [ + "QHKdeXAZF_wBNmqNd_nS7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "fontSize": 20.01207894372335, + "fontFamily": 1, + "text": "Artifact:\n<>\narchimate-schema.json", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "DuVKVfKFVoInRtD_m7xAP", + "originalText": "Artifact:\n<>\narchimate-schema.json", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZ3", + "autoResize": true + }, + { + "id": "YuTR4RPxaAkDGLRqdZwDc", + "type": "line", + "x": 17811.066111099466, + "y": 4264.693590829551, + "width": 16.216956750149343, + "height": 18.457276747490983, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "QHKdeXAZF_wBNmqNd_nS7" + ], + "frameId": null, + "index": "bZ4", + "roundness": null, + "seed": 1784591820, + "version": 6384, + "versionNonce": 880749044, + "isDeleted": false, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.194836358589257, + 0.034777810755342725 + ], + [ + -11.067948968223174, + 18.457276747490983 + ], + [ + 5.022120391560086, + 18.324203392873578 + ], + [ + 4.897242843930144, + 5.393109828016514 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "1LK9Qpe_WqCc_S3Z6aPwC", + "type": "line", + "x": 17815.930069654194, + "y": 4270.040944326982, + "width": 5.194961770854754, + "height": 5.400684895673877, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "QHKdeXAZF_wBNmqNd_nS7" + ], + "frameId": null, + "index": "bZ5", + "roundness": null, + "seed": 589175884, + "version": 4843, + "versionNonce": 1819134836, + "isDeleted": false, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.194961770854754, + 0.12487797054285453 + ], + [ + -5.05878578377772, + -5.275806925131023 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5178, + "versionNonce": 1091321076, + "isDeleted": false, + "id": "k6h9eTcHjPbp3KljC4X2b", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17800.072472866897, + "y": 4265.081473524342, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.712615501543228, + "height": 18.00575759740619, + "seed": 204255948, + "groupIds": [ + "QHKdeXAZF_wBNmqNd_nS7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "index": "bZ6" + }, + { + "type": "rectangle", + "version": 4331, + "versionNonce": 736132724, + "index": "bZ7", + "isDeleted": false, + "id": "nLkOT_YzSd4911-k7Lq3b", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 17530.675724761848, + "y": 3592.464052950923, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 115, + "seed": 874805580, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "oo4NYhSyy30E-y66HNMF2" + }, + { + "id": "NCiKGuhPbkQJQsQ-N2xon", + "type": "arrow" + } + ], + "updated": 1757278637918, + "link": null, + "locked": false + }, + { + "id": "oo4NYhSyy30E-y66HNMF2", + "type": "text", + "x": 17546.73310377644, + "y": 3597.464052950923, + "width": 276.7518615722656, + "height": 105, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bZ8", + "roundness": null, + "seed": 1180659660, + "version": 2353, + "versionNonce": 95457268, + "isDeleted": false, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "text": "Application function:\nLoad Archimate\nMetamodel", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "nLkOT_YzSd4911-k7Lq3b", + "originalText": "Application function:\nLoad Archimate Metamodel", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 16927, + "versionNonce": 1600865996, + "index": "bZ9", + "isDeleted": false, + "id": "NCiKGuhPbkQJQsQ-N2xon", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 17689.926562247445, + "y": 3881.6825982479563, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 4.524739109900111, + "height": 172.4105211056376, + "seed": 1928828492, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "JBxY81X3uSOaTPATLFc_0" + } + ], + "updated": 1757278638173, + "link": null, + "locked": false, + "startBinding": { + "elementId": "8o45njW_XhR0w8Xc7kAPo", + "focus": 0.06537781483510867, + "gap": 8.831537878283598 + }, + "endBinding": { + "elementId": "nLkOT_YzSd4911-k7Lq3b", + "focus": -0.0698895871376109, + "gap": 1.8080241913958162 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 4.524739109900111, + -172.4105211056376 + ] + ] + }, + { + "id": "JBxY81X3uSOaTPATLFc_0", + "type": "text", + "x": 17607.111731785284, + "y": 3741.3379800703424, + "width": 53.05995178222656, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#868e96", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bZA", + "roundness": null, + "seed": 1455877324, + "version": 19, + "versionNonce": 1470126028, + "isDeleted": false, + "boundElements": [], + "updated": 1757278636315, + "link": null, + "locked": false, + "text": "reads", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "NCiKGuhPbkQJQsQ-N2xon", + "originalText": "reads", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "text", + "version": 5296, + "versionNonce": 830710900, + "isDeleted": false, + "id": "6iYHtmDXB_MBk4Nmjq-kS", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17569.643612490243, + "y": 3452.5260224798626, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 243.89695035292922, + "height": 124.00450477614879, + "seed": 1667724108, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278637918, + "link": null, + "locked": false, + "fontSize": 33.06786794030636, + "fontFamily": 1, + "text": "loaded as \npart of the\nframework core", + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "originalText": "loaded as \npart of the\nframework core", + "lineHeight": 1.25, + "baseline": 265, + "index": "bZB", + "autoResize": true + }, + { + "type": "arrow", + "version": 17219, + "versionNonce": 1503844300, + "index": "bZC", + "isDeleted": false, + "id": "sZZu44yjybvOLiZ22JvJQ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 19437.385160639526, + "y": 4555.704699668083, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 160.22817086702344, + "height": 66.87427836747429, + "seed": 1408960116, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "owG8rAi2TV9yIXL-aO2Pj" + } + ], + "updated": 1757278676922, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ciJincbLXCzsibwGHJEcr", + "focus": 0.14391166167287583, + "gap": 14 + }, + "endBinding": { + "elementId": "ruZXXRzQxSRdNSFy4Vtxz", + "focus": -0.0033420711839932692, + "gap": 24.688135121321274 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 160.22817086702344, + -66.87427836747429 + ] + ] + }, + { + "id": "owG8rAi2TV9yIXL-aO2Pj", + "type": "text", + "x": 19490.27639685766, + "y": 4455.4513814025595, + "width": 53.05995178222656, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#868e96", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bZD", + "roundness": null, + "seed": 1496979444, + "version": 19, + "versionNonce": 523742796, + "isDeleted": false, + "boundElements": [], + "updated": 1757278667715, + "link": null, + "locked": false, + "text": "reads", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "sZZu44yjybvOLiZ22JvJQ", + "originalText": "reads", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 4484, + "versionNonce": 1132886348, + "isDeleted": false, + "id": "qn_Cx_n7s4R_44_YSXiEe", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19998.03475282956, + "y": 4804.765579542567, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 879409100, + "groupIds": [ + "5lP9us2pkjT_o2Cd89y7N" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "jbZCAz8213HFejDl9vfjk", + "type": "text" + }, + { + "id": "RcfHE6HjEI9AomOMekUEb", + "type": "arrow" + }, + { + "id": "fAV-S6tnQ00dCvJDwtO7y", + "type": "arrow" + } + ], + "updated": 1757278837650, + "link": null, + "locked": false, + "index": "bZE" + }, + { + "type": "text", + "version": 4085, + "versionNonce": 566167412, + "isDeleted": false, + "id": "jbZCAz8213HFejDl9vfjk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20012.316532406905, + "y": 4809.765579542567, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 169.4798583984375, + "height": 75, + "seed": 274325068, + "groupIds": [ + "5lP9us2pkjT_o2Cd89y7N" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278813783, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nArchimate\nValidation Report", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "qn_Cx_n7s4R_44_YSXiEe", + "originalText": "Data object:\nArchimate Validation Report", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZF", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5075, + "versionNonce": 1930607220, + "isDeleted": false, + "id": "7dT9Ag8E_txvGSW0awIxm", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20166.746895035452, + "y": 4810.688681052339, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 547370188, + "groupIds": [ + "5lP9us2pkjT_o2Cd89y7N" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278813783, + "link": null, + "locked": false, + "index": "bZG" + }, + { + "type": "rectangle", + "version": 5442, + "versionNonce": 591088628, + "isDeleted": false, + "id": "wvxYRbSRbf7wWyFuLXIt4", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20166.756541971183, + "y": 4810.708469372788, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 852998988, + "groupIds": [ + "5lP9us2pkjT_o2Cd89y7N" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278813783, + "link": null, + "locked": false, + "index": "bZH" + }, + { + "type": "arrow", + "version": 16139, + "versionNonce": 819329268, + "index": "bZI", + "isDeleted": false, + "id": "RcfHE6HjEI9AomOMekUEb", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 19895.18736400015, + "y": 4483.546754203267, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 152.8737341294327, + "height": 313.5815682064949, + "seed": 1364881868, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "5and6OTxZU7bpCNop4G0p" + } + ], + "updated": 1757278813783, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ruZXXRzQxSRdNSFy4Vtxz", + "focus": -0.5990749046202507, + "gap": 10.650728491128062 + }, + "endBinding": { + "elementId": "qn_Cx_n7s4R_44_YSXiEe", + "focus": -0.20504085422755505, + "gap": 7.637257132805644 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 152.8737341294327, + 313.5815682064949 + ] + ] + }, + { + "id": "5and6OTxZU7bpCNop4G0p", + "type": "text", + "x": 20510.919941311236, + "y": 4808.065837814665, + "width": 60.03993225097656, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#868e96", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bZJ", + "roundness": null, + "seed": 725768268, + "version": 13, + "versionNonce": 773343348, + "isDeleted": false, + "boundElements": [], + "updated": 1757278743288, + "link": null, + "locked": false, + "text": "writes", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "RcfHE6HjEI9AomOMekUEb", + "originalText": "writes", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 10647, + "versionNonce": 75370228, + "index": "bZK", + "isDeleted": false, + "id": "fAV-S6tnQ00dCvJDwtO7y", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20107.469416411, + "y": 5068.304249050609, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.3564873757204623, + "height": 169.99815387637318, + "seed": 337327180, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278842770, + "link": null, + "locked": false, + "startBinding": { + "elementId": "AJqake2RzLewjq_VXXwcC", + "focus": -0.02286522608370518, + "gap": 5.409172714738816 + }, + "endBinding": { + "elementId": "qn_Cx_n7s4R_44_YSXiEe", + "focus": -0.12230593302043147, + "gap": 8.540515631668313 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 1.3564873757204623, + -169.99815387637318 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 4566, + "versionNonce": 1105034228, + "isDeleted": false, + "id": "AJqake2RzLewjq_VXXwcC", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20010.278691380652, + "y": 5073.713421765347, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.1630253178984, + "height": 85.05133551082423, + "seed": 231131852, + "groupIds": [ + "cLfBMP4DuhTF1QwR73GFx" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "mAxn1ZSfQeIZtrzmiRmmU" + }, + { + "id": "fAV-S6tnQ00dCvJDwtO7y", + "type": "arrow" + } + ], + "updated": 1757278842770, + "link": null, + "locked": false, + "index": "bZL" + }, + { + "type": "text", + "version": 4206, + "versionNonce": 361585228, + "isDeleted": false, + "id": "mAxn1ZSfQeIZtrzmiRmmU", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20023.427304564502, + "y": 5078.7194612372095, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 171.8657989501953, + "height": 75.04529603896256, + "seed": 716935500, + "groupIds": [ + "cLfBMP4DuhTF1QwR73GFx" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278853696, + "link": null, + "locked": false, + "fontSize": 20.01207894372335, + "fontFamily": 1, + "text": "Artifact:\n<> Validation\nReport", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "AJqake2RzLewjq_VXXwcC", + "originalText": "Artifact:\n<> Validation Report", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZM", + "autoResize": true + }, + { + "id": "NsS-fqCiNHxBoNM3NwLKH", + "type": "line", + "x": 20196.331056419283, + "y": 5080.637955318256, + "width": 16.216956750149343, + "height": 18.457276747490983, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "cLfBMP4DuhTF1QwR73GFx" + ], + "frameId": null, + "index": "bZN", + "roundness": null, + "seed": 173246412, + "version": 6599, + "versionNonce": 88608884, + "isDeleted": false, + "boundElements": [], + "updated": 1757278842770, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.194836358589257, + 0.034777810755342725 + ], + [ + -11.067948968223174, + 18.457276747490983 + ], + [ + 5.022120391560086, + 18.324203392873578 + ], + [ + 4.897242843930144, + 5.393109828016514 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "zH_VG2aoVTBPJU9RqTHDh", + "type": "line", + "x": 20201.195014974004, + "y": 5085.985308815689, + "width": 5.194961770854754, + "height": 5.400684895673877, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "cLfBMP4DuhTF1QwR73GFx" + ], + "frameId": null, + "index": "bZO", + "roundness": null, + "seed": 1353231948, + "version": 5058, + "versionNonce": 810934772, + "isDeleted": false, + "boundElements": [], + "updated": 1757278842770, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.194961770854754, + 0.12487797054285453 + ], + [ + -5.05878578377772, + -5.275806925131023 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5393, + "versionNonce": 749568884, + "isDeleted": false, + "id": "Rp-cBsn48FF9qT3PhucVl", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20185.337418186715, + "y": 5081.025838013047, + "strokeColor": "transparent", + "backgroundColor": "#b2f2bb", + "width": 15.712615501543228, + "height": 18.00575759740619, + "seed": 244647116, + "groupIds": [ + "cLfBMP4DuhTF1QwR73GFx" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757278842770, + "link": null, + "locked": false, + "index": "bZP" + }, + { + "id": "TdmzZb40-Ev0WPNUYja93", + "type": "arrow", + "x": 19114.817351234396, + "y": 4250.270140218825, + "width": 62.12538764149576, + "height": 125.43491804189125, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bZQ", + "roundness": null, + "seed": 1483293260, + "version": 704, + "versionNonce": 539930956, + "isDeleted": false, + "boundElements": [], + "updated": 1757279575587, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -62.12538764149576, + 125.43491804189125 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "81YCaPZZg7q7dHt_mCU5E", + "focus": 0.052743396570852516, + "gap": 5.4979300492514085 + }, + "endBinding": { + "elementId": "oI-HfgPU8_Hn1y02MoPFH", + "focus": 0.6559122288251861, + "gap": 1.387486827491698 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "K5vOZO5trxbcZTuj54k5x", + "type": "arrow", + "x": 19221.123816301668, + "y": 4250.491183273745, + "width": 368.6875263950169, + "height": 128.68958647121053, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bZS", + "roundness": null, + "seed": 1306157516, + "version": 673, + "versionNonce": 959480436, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "RJyiSul1hzIPvZjV8iEnM" + } + ], + "updated": 1757279711801, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 368.6875263950169, + 128.68958647121053 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "81YCaPZZg7q7dHt_mCU5E", + "focus": 0.2640946327157755, + "gap": 5.71897310417171 + }, + "endBinding": { + "elementId": "ruZXXRzQxSRdNSFy4Vtxz", + "focus": -0.1347030623313139, + "gap": 13.283103884876068 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "RJyiSul1hzIPvZjV8iEnM", + "type": "text", + "x": 19364.177624360018, + "y": 4302.33597650935, + "width": 82.57991027832031, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bZT", + "roundness": null, + "seed": 1917077580, + "version": 71, + "versionNonce": 420266228, + "isDeleted": false, + "boundElements": [], + "updated": 1757279589677, + "link": null, + "locked": false, + "text": "assigned", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "K5vOZO5trxbcZTuj54k5x", + "originalText": "assigned", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 11167, + "versionNonce": 763306612, + "index": "bZU", + "isDeleted": false, + "id": "PCzrlYuQWVGP7lGJ_IhxC", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19234.377443329056, + "y": 5150.7628756385675, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 79.79448377542212, + "height": 256.2870392085215, + "seed": 782762444, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280085422, + "link": null, + "locked": false, + "startBinding": { + "elementId": "ulMRYhdaQ661GsA-6Zw2Z", + "focus": 0.30260138011705445, + "gap": 2.472659176961315 + }, + "endBinding": { + "elementId": "Zp3VJoGUcscGZJTiJhdBF", + "focus": 0.2596881000220294, + "gap": 10.424033813871574 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 79.79448377542212, + -256.2870392085215 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 4673, + "versionNonce": 289942772, + "isDeleted": false, + "id": "ulMRYhdaQ661GsA-6Zw2Z", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19082.315835209367, + "y": 5153.235534815529, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 110, + "seed": 677242956, + "groupIds": [ + "fFOQZMBgAmHkc9Gxv6QI1" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "eC_R-ymeiXH2-1dJ69Ipl" + }, + { + "id": "PCzrlYuQWVGP7lGJ_IhxC", + "type": "arrow" + } + ], + "updated": 1757280086822, + "link": null, + "locked": false, + "index": "bZV" + }, + { + "type": "text", + "version": 4347, + "versionNonce": 676613196, + "isDeleted": false, + "id": "eC_R-ymeiXH2-1dJ69Ipl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19102.2176099039, + "y": 5158.235534815529, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 158.2398681640625, + "height": 100, + "seed": 1871904460, + "groupIds": [ + "fFOQZMBgAmHkc9Gxv6QI1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280086822, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<>\n Open Exchange\nArchimate Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "ulMRYhdaQ661GsA-6Zw2Z", + "originalText": "Artifact:\n<>\n Open Exchange Archimate Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZW", + "autoResize": true + }, + { + "id": "H54IgrYzAslhHmR5mhQYi", + "type": "line", + "x": 19267.926131648484, + "y": 5160.155888840098, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "fFOQZMBgAmHkc9Gxv6QI1" + ], + "frameId": null, + "index": "bZX", + "roundness": null, + "seed": 1826702668, + "version": 6703, + "versionNonce": 1864265332, + "isDeleted": false, + "boundElements": [], + "updated": 1757280086822, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "jj-vYpbPg_NM79qQ2ja17", + "type": "line", + "x": 19272.7871544022, + "y": 5165.500014767713, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "fFOQZMBgAmHkc9Gxv6QI1" + ], + "frameId": null, + "index": "bZY", + "roundness": null, + "seed": 1705163724, + "version": 5162, + "versionNonce": 1797055180, + "isDeleted": false, + "boundElements": [], + "updated": 1757280086822, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 5497, + "versionNonce": 196116468, + "isDeleted": false, + "id": "xF7bmRWLsjK3tyuenpgDK", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19256.939128985257, + "y": 5160.543537415622, + "strokeColor": "transparent", + "backgroundColor": "#b2f2bb", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1676763724, + "groupIds": [ + "fFOQZMBgAmHkc9Gxv6QI1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1757280086822, + "link": null, + "locked": false, + "index": "bZZ" + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#f8f9fa", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file diff --git a/applications/object-synthesis/model/agent-aware-object-synthesis-with-git-commit.excalidraw b/applications/object-synthesis/model/agent-aware-object-synthesis-with-git-commit.excalidraw new file mode 100644 index 0000000..60378a6 --- /dev/null +++ b/applications/object-synthesis/model/agent-aware-object-synthesis-with-git-commit.excalidraw @@ -0,0 +1,7162 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "text", + "version": 4926, + "versionNonce": 37524093, + "isDeleted": false, + "id": "GpMoxzCsXQf59lPLrGOq9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14966.476152561987, + "y": 6027.613694819856, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1798.3747218909289, + "height": 355.20718937909174, + "seed": 1233058835, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755285735198, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 35.52071893790918, + "fontFamily": 1, + "text": "- Each use-case has a physical representation (free) and a logical one (paid for)\n- the physical EXTENDS the logical\n- access to the logical model offers ability to create whatever physical model you want\n- when creating a physical use-case (workflow), start with the logical and generate the physical\n- IF YOU WANT ACCESS TO THE PARENT, YOU HAVE TO PAY FOR IT!\n\n(NB: should be no clue as to what this physical model is. Clue: It can be inferred from different\nphysical models)", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "- Each use-case has a physical representation (free) and a logical one (paid for)\n- the physical EXTENDS the logical\n- access to the logical model offers ability to create whatever physical model you want\n- when creating a physical use-case (workflow), start with the logical and generate the physical\n- IF YOU WANT ACCESS TO THE PARENT, YOU HAVE TO PAY FOR IT!\n\n(NB: should be no clue as to what this physical model is. Clue: It can be inferred from different physical models)", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSH", + "autoResize": false + }, + { + "type": "text", + "version": 4113, + "versionNonce": 1096760029, + "isDeleted": false, + "id": "dNizY4oS3tHSYGM-hCsUr", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14467.424411682568, + "y": 6031.586132500858, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 231.60594479761457, + "height": 173.48946292702155, + "seed": 118227379, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755285735198, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 27.75831406832345, + "fontFamily": 1, + "text": "Implementations:\n- archimate (xml)\n- json/yam\n- lucidchart\n- excalidraw", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Implementations:\n- archimate (xml)\n- json/yam\n- lucidchart\n- excalidraw", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSI", + "autoResize": true + }, + { + "type": "text", + "version": 5847, + "versionNonce": 1791874877, + "isDeleted": false, + "id": "rxZjaFG1bl6rGVqxniG1O", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14486.057942417503, + "y": 6364.741888492401, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 2389.416496257161, + "height": 444.0089867238647, + "seed": 287797491, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755285735198, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 35.52071893790918, + "fontFamily": 1, + "text": "METHOD:\n\n1. model business process through Functions => agent scope / inputs and outputs, events and triggers / use-cases \n2. identify application services => agent APIs and API calls (deployment packages and mocks)\n3. map domain objects => test data, object models and schemas\n4. define deployment targets\n i. in tech agnostic language (the 'Metamodel')\n ii. for each supported technology set => deployment package\n\nDeliverable: fully working demo for every defined technology set", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "METHOD:\n\n1. model business process through Functions => agent scope / inputs and outputs, events and triggers / use-cases \n2. identify application services => agent APIs and API calls (deployment packages and mocks)\n3. map domain objects => test data, object models and schemas\n4. define deployment targets\n i. in tech agnostic language (the 'Metamodel')\n ii. for each supported technology set => deployment package\n\nDeliverable: fully working demo for every defined technology set", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSK", + "autoResize": false + }, + { + "type": "arrow", + "version": 14355, + "versionNonce": 1821011105, + "index": "bSL", + "isDeleted": false, + "id": "QVOlcrqJ5xmRaYy8edi5B", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15566.418611982372, + "y": 4996.355225094412, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 243.24831039052333, + "height": 198.71880799321661, + "seed": 2019877075, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "-anmKW3ksniwIfAGMP_Jo", + "focus": 1.123431184358726, + "gap": 14 + }, + "endBinding": { + "elementId": "r5wSlJTMg1xdFyHlN1pk8", + "focus": 0.42586936403869297, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 243.24831039052333, + -198.71880799321661 + ] + ] + }, + { + "type": "rectangle", + "version": 3596, + "versionNonce": 1070584303, + "index": "bSM", + "isDeleted": false, + "id": "r5wSlJTMg1xdFyHlN1pk8", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15799.572728077692, + "y": 4706.826207705608, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 92.7413057426693, + "seed": 1364676211, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "FM01gF_gyvUtwBxPp1A4i" + }, + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + }, + { + "id": "QVOlcrqJ5xmRaYy8edi5B", + "type": "arrow" + }, + { + "id": "auMkqLDuk3Ti0Xp22OPru", + "type": "arrow" + }, + { + "id": "aiGwLFCeZKk5T2ghP1g3_", + "type": "arrow" + }, + { + "id": "B_4wZo5GBy6hJDL71N1vJ", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "id": "FM01gF_gyvUtwBxPp1A4i", + "type": "text", + "x": 15815.630107092285, + "y": 4718.1968605769425, + "width": 276.7518615722656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSN", + "roundness": null, + "seed": 1760233491, + "version": 1541, + "versionNonce": 1627241487, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "text": "Application function:\nModel Generation", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "r5wSlJTMg1xdFyHlN1pk8", + "originalText": "Application function:\nModel Generation", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "nrBU51XdHcoqbB2iQD1it", + "type": "text", + "x": 16840.19898994865, + "y": 4075.3247556095057, + "width": 161.6439971923828, + "height": 35, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSO", + "roundness": null, + "seed": 1964412339, + "version": 829, + "versionNonce": 2036579471, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "text": "Visual check", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Visual check", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 7737, + "versionNonce": 108951649, + "index": "bSP", + "isDeleted": false, + "id": "3pcyzeXzsI6wf96yzb6wS", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15860.560614400114, + "y": 5230.607736761567, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 36.55366091926953, + "height": 145.64514688066083, + "seed": 687890259, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "2RRirt9wLCZtP47QsixY6", + "focus": -0.19726618831002538, + "gap": 9.757884163531344 + }, + "endBinding": { + "elementId": "jYohxCNXaggYXZIgKzc8t", + "focus": 0.18982022182774397, + "gap": 15.58801946024687 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 36.55366091926953, + -145.64514688066083 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 7283, + "versionNonce": 1068680257, + "index": "bSQ", + "isDeleted": false, + "id": "UVRiZFoX2vg94cLLqnE6_", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14964.435557422654, + "y": 5260.398087962135, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 56.15426875538833, + "height": 165.19752520563543, + "seed": 251591923, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "JLcpc16BIhvwxz9U0kaaf" + } + ], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "APTPv6Az5V2NmUUs9cPKY", + "focus": 0.10607588001260473, + "gap": 4.008857397176143 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 56.15426875538833, + -165.19752520563543 + ] + ], + "elbowed": false + }, + { + "id": "JLcpc16BIhvwxz9U0kaaf", + "type": "text", + "x": 16864.47368463394, + "y": 5013.136973623218, + "width": 100.7159423828125, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 70, + "groupIds": [], + "frameId": null, + "index": "bSR", + "roundness": null, + "seed": 580445843, + "version": 175, + "versionNonce": 1103063540, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "UVRiZFoX2vg94cLLqnE6_", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13818, + "versionNonce": 137532449, + "index": "bSS", + "isDeleted": false, + "id": "D1USZU5QCXf1z_tvd0QHM", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15473.844197653838, + "y": 4796.9698958171675, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.4470373387994186, + "height": 197.6971326616922, + "seed": 713333811, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PPnF1x5bIW8e5eH2NSGNL", + "focus": 0.1000446083638219, + "gap": 1 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.4470373387994186, + 197.6971326616922 + ] + ] + }, + { + "type": "arrow", + "version": 9350, + "versionNonce": 1826799585, + "index": "bST", + "isDeleted": false, + "id": "Y-ujCGmMtrdr81wqKGUfy", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15009.834022199739, + "y": 4715.838167183763, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.4406727495625091, + "height": 291.28983370969445, + "seed": 1386782163, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "POK33O-WLkHxCVwaPEac1" + } + ], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": -0.15145808842082714, + "gap": 1.2652985180548058 + }, + "endBinding": { + "elementId": "0vkp3XfpvyUmriJEERhYC", + "focus": 0.04392662304115562, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 0.4406727495625091, + -291.28983370969445 + ] + ] + }, + { + "id": "POK33O-WLkHxCVwaPEac1", + "type": "text", + "x": 16889.01753219048, + "y": 4404.079289742226, + "width": 86.71597290039062, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSU", + "roundness": null, + "seed": 102460275, + "version": 220, + "versionNonce": 1445565900, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "serves", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Y-ujCGmMtrdr81wqKGUfy", + "originalText": "serves", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 10080, + "versionNonce": 281738145, + "index": "bSV", + "isDeleted": false, + "id": "XPIaGHSmzctn3PvW-9hvP", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15487.811543810396, + "y": 4707.1050549623415, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.682295487898955, + "height": 287.2089926053545, + "seed": 153322771, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PPnF1x5bIW8e5eH2NSGNL", + "focus": -0.019528587747001884, + "gap": 1 + }, + "endBinding": { + "elementId": "F7xGKrg7xqprxKtXY8w4_", + "focus": -0.05782469923597012, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.682295487898955, + -287.2089926053545 + ] + ] + }, + { + "type": "arrow", + "version": 10275, + "versionNonce": 739041153, + "index": "bSW", + "isDeleted": false, + "id": "auMkqLDuk3Ti0Xp22OPru", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15953.775812994387, + "y": 4706.534680774003, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 5.006843024375485, + "height": 284.81777142570354, + "seed": 1396140723, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": 0.3876301493934813, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -5.006843024375485, + -284.81777142570354 + ] + ] + }, + { + "type": "arrow", + "version": 9951, + "versionNonce": 443134785, + "index": "bSX", + "isDeleted": false, + "id": "kpEiaULRdnpoakPH-eZmz", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15182.833269239232, + "y": 4347.773362334676, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 132.8722620633598, + "height": 1.0299111124500087, + "seed": 687709267, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": { + "elementId": "0vkp3XfpvyUmriJEERhYC", + "focus": -0.10166869166142146, + "gap": 1.1474522223415988 + }, + "endBinding": { + "elementId": "F7xGKrg7xqprxKtXY8w4_", + "focus": -0.005364786616090013, + "gap": 6.771118992823176 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 132.8722620633598, + 1.0299111124500087 + ] + ] + }, + { + "type": "arrow", + "version": 9416, + "versionNonce": 1928632065, + "index": "bSY", + "isDeleted": false, + "id": "9aM2Jd51MAD8XOARGX5-8", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15631.373399150943, + "y": 4357.797151885071, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 116.33975593300784, + "height": 4.210359167059323, + "seed": 1984731635, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": { + "elementId": "F7xGKrg7xqprxKtXY8w4_", + "focus": 0.18374335536251019, + "gap": 5.065113126156575 + }, + "endBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": 0.07478835521731912, + "gap": 4.277715239473764 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 116.33975593300784, + -4.210359167059323 + ] + ] + }, + { + "type": "arrow", + "version": 10718, + "versionNonce": 1835633345, + "index": "bSZ", + "isDeleted": false, + "id": "UC0gyv0RbxBh9oMHMoFLq", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16398.235414902247, + "y": 4359.911086409979, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 385.3829321513331, + "height": 10.115594164144568, + "seed": 1747641235, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": 0.038577772749198345, + "gap": 6.15708500429173 + }, + "endBinding": { + "elementId": "bMI1ce855OEuj-IvK4hQl", + "focus": -0.2518409754065298, + "gap": 8.248526967388898 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 385.3829321513331, + 10.115594164144568 + ] + ] + }, + { + "type": "arrow", + "version": 10401, + "versionNonce": 273451681, + "index": "bSa", + "isDeleted": false, + "id": "5Kaa7QJ4Vr1ifCgR2JiiX", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16970.113853228195, + "y": 4949.504726915487, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.0012780146353179589, + "height": 520.0338568972538, + "seed": 1187969331, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "bMI1ce855OEuj-IvK4hQl", + "focus": -0.09420293547647528, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -0.0012780146353179589, + -520.0338568972538 + ] + ] + }, + { + "type": "arrow", + "version": 9662, + "versionNonce": 449910369, + "index": "bSb", + "isDeleted": false, + "id": "zlSPouc1atj_bkWIUJQuy", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16363.984752932545, + "y": 4707.181756368807, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 2.752218685040134, + "height": 285.4651007217053, + "seed": 262101715, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": -0.4751958082124978, + "gap": 1 + }, + "endBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": -0.8994194463197356, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -2.752218685040134, + -285.4651007217053 + ] + ] + }, + { + "type": "rectangle", + "version": 2705, + "versionNonce": 729562639, + "isDeleted": false, + "id": "0vkp3XfpvyUmriJEERhYC", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14853.503019231346, + "y": 4283.402081479207, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 328.18279778554523, + "height": 140.74941657121406, + "seed": 995033619, + "groupIds": [ + "raWP1e8bQVtIY6tbIGBhJ" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "UJ-Yk3yM-zw3WrChc3nqV" + }, + { + "id": "Y-ujCGmMtrdr81wqKGUfy", + "type": "arrow" + }, + { + "id": "kpEiaULRdnpoakPH-eZmz", + "type": "arrow" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSd" + }, + { + "type": "text", + "version": 2346, + "versionNonce": 1351066671, + "isDeleted": false, + "id": "UJ-Yk3yM-zw3WrChc3nqV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14883.504131869235, + "y": 4315.356939278952, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 216745907, + "groupIds": [ + "raWP1e8bQVtIY6tbIGBhJ" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nDomain Analysis", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "0vkp3XfpvyUmriJEERhYC", + "originalText": "Business function:\nDomain Analysis", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSe", + "autoResize": true + }, + { + "id": "bBwbOyhneCvGYwVK0pVfF", + "type": "line", + "x": 15166.696255915398, + "y": 4311.861869530348, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "raWP1e8bQVtIY6tbIGBhJ" + ], + "frameId": null, + "index": "bSf", + "roundness": null, + "seed": 439212371, + "version": 3545, + "versionNonce": 1126732975, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3226, + "versionNonce": 1773151951, + "isDeleted": false, + "id": "F7xGKrg7xqprxKtXY8w4_", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15322.476650295415, + "y": 4279.9069277509725, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 303.8316357293715, + "height": 139.49172216661904, + "seed": 812463859, + "groupIds": [ + "qpRqZvijKXUMPEC3Ck0U6" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "r0rGU8NDIf--uvdkR7PV0" + }, + { + "id": "XPIaGHSmzctn3PvW-9hvP", + "type": "arrow" + }, + { + "id": "kpEiaULRdnpoakPH-eZmz", + "type": "arrow" + }, + { + "id": "9aM2Jd51MAD8XOARGX5-8", + "type": "arrow" + }, + { + "id": "iAhy1-5wJRKGEo2-d0GDC", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSg" + }, + { + "type": "text", + "version": 3031, + "versionNonce": 432043247, + "isDeleted": false, + "id": "r0rGU8NDIf--uvdkR7PV0", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15353.741741841743, + "y": 4315.087663971572, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 241.30145263671875, + "height": 69.13024972542082, + "seed": 774889619, + "groupIds": [ + "qpRqZvijKXUMPEC3Ck0U6" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 27.65209989016833, + "fontFamily": 1, + "text": "Business function:\nObject Synthesis", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "F7xGKrg7xqprxKtXY8w4_", + "originalText": "Business function:\nObject Synthesis", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSh", + "autoResize": true + }, + { + "id": "A6UMdXzK9093p4a9ikrAo", + "type": "line", + "x": 15612.822651787326, + "y": 4305.511299322275, + "width": 33.29430498440818, + "height": 19.193296671048646, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "qpRqZvijKXUMPEC3Ck0U6" + ], + "frameId": null, + "index": "bSi", + "roundness": null, + "seed": 1563186739, + "version": 4050, + "versionNonce": 269682031, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21634518201612724, + -11.362510852008604 + ], + [ + -16.344562004972463, + -18.91114958603595 + ], + [ + -33.266778730672485, + -12.163516727337878 + ], + [ + -33.29430498440818, + 0.28214708501269614 + ], + [ + -16.42887018330573, + -5.970344754343089 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 2972, + "versionNonce": 965640079, + "isDeleted": false, + "id": "EysawDVhRAwWO51Md93VG", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15751.990870323425, + "y": 4274.903176109597, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 640.0874595745308, + "height": 146.58827700732988, + "seed": 206116819, + "groupIds": [ + "Lgg2lsAEiiT5S3Lg8OguY" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "Z1ixIH_uM_0wjQ4WJ4IrK" + }, + { + "id": "auMkqLDuk3Ti0Xp22OPru", + "type": "arrow" + }, + { + "id": "9aM2Jd51MAD8XOARGX5-8", + "type": "arrow" + }, + { + "id": "UC0gyv0RbxBh9oMHMoFLq", + "type": "arrow" + }, + { + "id": "zlSPouc1atj_bkWIUJQuy", + "type": "arrow" + }, + { + "id": "ob1942x-aJeUUDKBnT6rj", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSj" + }, + { + "type": "text", + "version": 2757, + "versionNonce": 903198127, + "isDeleted": false, + "id": "Z1ixIH_uM_0wjQ4WJ4IrK", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15947.181679578465, + "y": 4313.121872588458, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 249.70584106445312, + "height": 70.15088404960646, + "seed": 1771873651, + "groupIds": [ + "Lgg2lsAEiiT5S3Lg8OguY" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 28.060353619842584, + "fontFamily": 1, + "text": "Business function:\nModel Preparation", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "EysawDVhRAwWO51Md93VG", + "originalText": "Business function:\nModel Preparation", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSk", + "autoResize": true + }, + { + "id": "VVHYLwjAhBe93WO5yCZSp", + "type": "line", + "x": 16373.017116287043, + "y": 4305.816224291054, + "width": 33.785859847900824, + "height": 22.671652281224716, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "Lgg2lsAEiiT5S3Lg8OguY" + ], + "frameId": null, + "index": "bSl", + "roundness": null, + "seed": 476938003, + "version": 3729, + "versionNonce": 1417889871, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21953928762857447, + -13.421711730583429 + ], + [ + -16.58587201126224, + -22.33837234952763 + ], + [ + -33.75792719841955, + -14.367881999918982 + ], + [ + -33.785859847900824, + 0.3332799316970858 + ], + [ + -16.671424909829533, + -7.052336166598999 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3214, + "versionNonce": 1353934447, + "isDeleted": false, + "id": "bMI1ce855OEuj-IvK4hQl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16791.86687402097, + "y": 4280.86937393756, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 325.79971197539163, + "height": 147.89867400167594, + "seed": 523379891, + "groupIds": [ + "_KEF53NxGDMJ0rBQ_MNS1" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "jMbh_s5VaSG8OFsZEQydh" + }, + { + "id": "UC0gyv0RbxBh9oMHMoFLq", + "type": "arrow" + }, + { + "id": "5Kaa7QJ4Vr1ifCgR2JiiX", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSm" + }, + { + "type": "text", + "version": 2930, + "versionNonce": 695910543, + "isDeleted": false, + "id": "jMbh_s5VaSG8OFsZEQydh", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16820.676443753782, + "y": 4316.3988604525375, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 1502680659, + "groupIds": [ + "_KEF53NxGDMJ0rBQ_MNS1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nApprove Model", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "bMI1ce855OEuj-IvK4hQl", + "originalText": "Business function:\nApprove Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSn", + "autoResize": true + }, + { + "id": "JFf7oRkHEIw2uRbJpd1qw", + "type": "line", + "x": 17102.677024894867, + "y": 4309.329161988701, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "_KEF53NxGDMJ0rBQ_MNS1" + ], + "frameId": null, + "index": "bSo", + "roundness": null, + "seed": 2053166067, + "version": 3953, + "versionNonce": 457258735, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3822, + "versionNonce": 1929019663, + "index": "bSp", + "isDeleted": false, + "id": "L55CfL0i8MXV6jtmkaF5p", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 14865.367041188787, + "y": 4717.103465701818, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 340.3676103637019, + "height": 88.76743066113535, + "seed": 296213907, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "a8W46Mhue2WZerc1zMkrH" + }, + { + "id": "Y-ujCGmMtrdr81wqKGUfy", + "type": "arrow" + }, + { + "id": "NVvDryM_AW_QCQ_yrwioa", + "type": "arrow" + }, + { + "id": "qWs9jyZR-8aXxtmbxVPpZ", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "id": "a8W46Mhue2WZerc1zMkrH", + "type": "text", + "x": 14897.174915584506, + "y": 4726.487181032386, + "width": 276.7518615722656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSq", + "roundness": null, + "seed": 1788654387, + "version": 1563, + "versionNonce": 893749039, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "text": "Application function:\nDomain Analysis", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "L55CfL0i8MXV6jtmkaF5p", + "originalText": "Application function:\nDomain Analysis", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3742, + "versionNonce": 610072495, + "index": "bSr", + "isDeleted": false, + "id": "PPnF1x5bIW8e5eH2NSGNL", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15321.54212680523, + "y": 4707.9462013605835, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 340.3676103637019, + "height": 88.76743066113535, + "seed": 631624915, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "9Ajjn1dGl_ljazpxBJnA8" + }, + { + "id": "D1USZU5QCXf1z_tvd0QHM", + "type": "arrow" + }, + { + "id": "XPIaGHSmzctn3PvW-9hvP", + "type": "arrow" + }, + { + "id": "nqw6PFzKGWi4Wkye_IGbR", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "id": "9Ajjn1dGl_ljazpxBJnA8", + "type": "text", + "x": 15353.35000120095, + "y": 4717.329916691151, + "width": 276.7518615722656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSs", + "roundness": null, + "seed": 307872371, + "version": 1317, + "versionNonce": 207628751, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "text": "Application function:\nObject Synthesis", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "PPnF1x5bIW8e5eH2NSGNL", + "originalText": "Application function:\nObject Synthesis", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3056, + "versionNonce": 1010911823, + "isDeleted": false, + "id": "L5mPp-qXif1BCTgSDp0fS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14859.164278450484, + "y": 5273.200976380297, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 798153363, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "OBadGTJ3pFEikvW6tQIIO" + }, + { + "id": "UVRiZFoX2vg94cLLqnE6_", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSu" + }, + { + "type": "text", + "version": 2637, + "versionNonce": 1432430703, + "isDeleted": false, + "id": "OBadGTJ3pFEikvW6tQIIO", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14884.356038801754, + "y": 5278.200976380297, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 147.65989685058594, + "height": 75, + "seed": 1814040627, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<> Generic\nObject Listing", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "L5mPp-qXif1BCTgSDp0fS", + "originalText": "Artifact:\n<> Generic Object Listing", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSv", + "autoResize": true + }, + { + "id": "zr7worpEvX-qEW1HODZdB", + "type": "line", + "x": 15045.010088894207, + "y": 5280.121330404864, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "index": "bSw", + "roundness": null, + "seed": 951423443, + "version": 5093, + "versionNonce": 387990159, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "CGWGmaaFAprq7HKsZ5qBB", + "type": "line", + "x": 15049.87111164792, + "y": 5285.465456332481, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "index": "bSx", + "roundness": null, + "seed": 107601779, + "version": 3552, + "versionNonce": 574036143, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3887, + "versionNonce": 1817062095, + "isDeleted": false, + "id": "zDFe4dX_kdRkvcjwB2rtg", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15034.02308623098, + "y": 5280.508978980391, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1602451731, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSy" + }, + { + "type": "rectangle", + "version": 2997, + "versionNonce": 570292463, + "isDeleted": false, + "id": "4t42liXEYM5ssvt4P5y3V", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15205.259707994075, + "y": 4111.364305890916, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1098440371, + "groupIds": [ + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "yEmpmJdou_a-7NLpK6uox", + "type": "text" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSz" + }, + { + "type": "text", + "version": 2644, + "versionNonce": 1221526287, + "isDeleted": false, + "id": "yEmpmJdou_a-7NLpK6uox", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15227.69147383851, + "y": 4132.5987468359035, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 153.1798858642578, + "height": 50, + "seed": 921735251, + "groupIds": [ + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Architect", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "4t42liXEYM5ssvt4P5y3V", + "originalText": "Business role:\nData Architect", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT0", + "autoResize": true + }, + { + "type": "line", + "version": 9766, + "versionNonce": 557435183, + "index": "bT1", + "isDeleted": false, + "id": "gZMBToViqkoR_-6gnHGms", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15387.354161407195, + "y": 4111.331089288265, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 834735603, + "groupIds": [ + "HALI5MzPW3Ntrrx0KNyn_", + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10495, + "versionNonce": 1218890575, + "index": "bT2", + "isDeleted": false, + "id": "yUs304uhIxX8Uv6IwuKNJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15364.607135636863, + "y": 4121.593922181392, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 619763603, + "groupIds": [ + "HALI5MzPW3Ntrrx0KNyn_", + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 2999, + "versionNonce": 460228975, + "isDeleted": false, + "id": "qapzWFhyaHHIFgSFzXvUA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15205.259707994075, + "y": 4110.817705954109, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 410434163, + "groupIds": [ + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "TqCBluopYvS0QT5be9HSs", + "type": "text" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bT28" + }, + { + "type": "text", + "version": 2645, + "versionNonce": 1457095567, + "isDeleted": false, + "id": "TqCBluopYvS0QT5be9HSs", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15227.69147383851, + "y": 4132.052146899097, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 153.1798858642578, + "height": 50, + "seed": 1530829373, + "groupIds": [ + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Architect", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "qapzWFhyaHHIFgSFzXvUA", + "originalText": "Business role:\nData Architect", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT2G", + "autoResize": true + }, + { + "type": "line", + "version": 9767, + "versionNonce": 1835740111, + "index": "bT2V", + "isDeleted": false, + "id": "koD8hu2M-vJgOhEuiCaGY", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15387.354161407195, + "y": 4110.784489351458, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 1899820051, + "groupIds": [ + "7p5QGy7-IFF3XOXQTDPs0", + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10496, + "versionNonce": 1506990575, + "index": "bT2l", + "isDeleted": false, + "id": "8bYoG2OmjMHo07M3XVbhU", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15364.607135636863, + "y": 4121.047322244586, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 71977629, + "groupIds": [ + "7p5QGy7-IFF3XOXQTDPs0", + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 2951, + "versionNonce": 1432339471, + "isDeleted": false, + "id": "Mc3EQx-lMrxS0Wj0bzMKU", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15978.961666983996, + "y": 4128.169753636269, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 246.9748729860165, + "height": 67.89379668398578, + "seed": 1589013811, + "groupIds": [ + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "dcx5-HSGhPmHLbcYQWWUy", + "type": "text" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bT3" + }, + { + "type": "text", + "version": 2657, + "versionNonce": 1074424367, + "isDeleted": false, + "id": "dcx5-HSGhPmHLbcYQWWUy", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15997.809203269484, + "y": 4141.063550320255, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 209.27980041503906, + "height": 50, + "seed": 578309843, + "groupIds": [ + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nArchitecture Modeller", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "Mc3EQx-lMrxS0Wj0bzMKU", + "originalText": "Business role:\nArchitecture Modeller", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT4", + "autoResize": true + }, + { + "type": "line", + "version": 9596, + "versionNonce": 1723550799, + "index": "bT5", + "isDeleted": false, + "id": "bwXMhC5NEvRirLKD5ar_c", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 16209.987575830004, + "y": 4128.136537033618, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 46988403, + "groupIds": [ + "XGvrlOp8KgdDkplF9YiDD", + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10325, + "versionNonce": 1699408495, + "index": "bT6", + "isDeleted": false, + "id": "cvFNbmoL-OJNnX-2t0NhB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 16187.240550059672, + "y": 4138.399369926746, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 2071655955, + "groupIds": [ + "XGvrlOp8KgdDkplF9YiDD", + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "id": "4bfcdtuEsQskYEKvYVLjU", + "type": "arrow", + "x": 16941.19433261853, + "y": 4217.334363608591, + "width": 0.44871836812308175, + "height": 61.15307240254333, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bT7", + "roundness": null, + "seed": 1266203571, + "version": 2053, + "versionNonce": 1216464015, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.44871836812308175, + 61.15307240254333 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 2797, + "versionNonce": 1880644271, + "isDeleted": false, + "id": "3fCBHxVaWETsktdmybp9H", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15143.58674912922, + "y": 4543.832566454238, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 69.74310838919793, + "seed": 250400083, + "groupIds": [ + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "KscoDFXd2W508m1V5xXwV" + }, + { + "id": "WOTsr_7_PmZECNeZCq-pi", + "type": "arrow" + }, + { + "id": "qWs9jyZR-8aXxtmbxVPpZ", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bT8" + }, + { + "type": "text", + "version": 2402, + "versionNonce": 817310927, + "isDeleted": false, + "id": "KscoDFXd2W508m1V5xXwV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15152.95209564449, + "y": 4558.575674843436, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 213.7198486328125, + "height": 50, + "seed": 422423283, + "groupIds": [ + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nDomain Analyst Agent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "3fCBHxVaWETsktdmybp9H", + "originalText": "App Component:\nDomain Analyst Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT9", + "autoResize": true + }, + { + "type": "rectangle", + "version": 2953, + "versionNonce": 610239759, + "isDeleted": false, + "id": "dnZVGcRChGSyCcPBJe_Wv", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15341.336364830328, + "y": 4548.559295181264, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 247583891, + "groupIds": [ + "N8dWk6ApgWDtPoCZyZAoF", + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTA" + }, + { + "type": "rectangle", + "version": 3619, + "versionNonce": 2070547247, + "isDeleted": false, + "id": "LFcG-gLJgs2PJdflnpTmG", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15337.379326805058, + "y": 4550.979574856993, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1063242291, + "groupIds": [ + "N8dWk6ApgWDtPoCZyZAoF", + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTB" + }, + { + "type": "rectangle", + "version": 3646, + "versionNonce": 931056975, + "isDeleted": false, + "id": "Pdwy3tYU6TvgflHKN3Q-9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15337.550154257857, + "y": 4555.750025542483, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1072565203, + "groupIds": [ + "N8dWk6ApgWDtPoCZyZAoF", + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTC" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow", + "x": 15248.649152928392, + "y": 4193.472538205969, + "width": 158.08864122442355, + "height": 89.1098521743279, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bTD", + "roundness": null, + "seed": 1149442419, + "version": 3235, + "versionNonce": 49656353, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -158.08864122442355, + 89.1098521743279 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "qapzWFhyaHHIFgSFzXvUA", + "focus": -0.14030629577604803, + "gap": 6.420391306871352 + }, + "endBinding": { + "elementId": "0vkp3XfpvyUmriJEERhYC", + "focus": -0.1846008025143174, + "gap": 1 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "WOTsr_7_PmZECNeZCq-pi", + "type": "arrow", + "x": 15313.149276597549, + "y": 4623.307293314778, + "width": 64.30133681539155, + "height": 76.82210393113837, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bTE", + "roundness": null, + "seed": 979727123, + "version": 1469, + "versionNonce": 1293485455, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 64.30133681539155, + 76.82210393113837 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 2980, + "versionNonce": 1109359535, + "isDeleted": false, + "id": "APTPv6Az5V2NmUUs9cPKY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14949.413759587944, + "y": 5006.191705359323, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 571185331, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "auTw0KW5mhbRPQJ2H_D1Q", + "type": "text" + }, + { + "id": "Pm6_q6QFzPZbA4UBL48SD", + "type": "arrow" + }, + { + "id": "UVRiZFoX2vg94cLLqnE6_", + "type": "arrow" + }, + { + "id": "NVvDryM_AW_QCQ_yrwioa", + "type": "arrow" + }, + { + "id": "wi0OZPoZoJ6DzOdDMV4fM", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTF" + }, + { + "type": "text", + "version": 2481, + "versionNonce": 1462906319, + "isDeleted": false, + "id": "auTw0KW5mhbRPQJ2H_D1Q", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14958.97554557398, + "y": 5011.191705359323, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 178.9198455810547, + "height": 75, + "seed": 689703507, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nConceptual Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "APTPv6Az5V2NmUUs9cPKY", + "originalText": "Data object:\nConceptual Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTG", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3583, + "versionNonce": 382617103, + "isDeleted": false, + "id": "je-_kGZ_u9jVrDkhtn7FQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15118.125901793836, + "y": 5012.114806869097, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 74270707, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTH" + }, + { + "type": "rectangle", + "version": 3951, + "versionNonce": 341355567, + "isDeleted": false, + "id": "mf2YJjgJIFxpJsEf5KZ6h", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15118.135548729566, + "y": 5012.134595189545, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 168153491, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "nqw6PFzKGWi4Wkye_IGbR", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTI" + }, + { + "type": "arrow", + "version": 7842, + "versionNonce": 614254081, + "index": "bTJ", + "isDeleted": false, + "id": "Pm6_q6QFzPZbA4UBL48SD", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15379.830487859363, + "y": 5285.66604900703, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 40.633187902129066, + "height": 189.7779547987302, + "seed": 186394419, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "4hpgK0tKdfZnmCeG68gnM", + "focus": 0.2137439653697753, + "gap": 11.538758774730923 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 40.633187902129066, + -189.7779547987302 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3300, + "versionNonce": 1168066191, + "isDeleted": false, + "id": "C9zyvGD0OeAKnjGQkeT22", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15270.282996372684, + "y": 5290.8937563187865, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 1846986963, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "mWMNjQVNaXmUIgvfaDMvp" + }, + { + "id": "Pm6_q6QFzPZbA4UBL48SD", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTK" + }, + { + "type": "text", + "version": 2909, + "versionNonce": 842374319, + "isDeleted": false, + "id": "mWMNjQVNaXmUIgvfaDMvp", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15287.314783579426, + "y": 5295.8937563187865, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 163.97984313964844, + "height": 75, + "seed": 143406707, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<> Logical\nObject Definition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "C9zyvGD0OeAKnjGQkeT22", + "originalText": "Artifact:\n<> Logical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTL", + "autoResize": true + }, + { + "id": "zswuI8u1kULgp4jw3rzmo", + "type": "line", + "x": 15456.223063431018, + "y": 5297.814110343355, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "index": "bTM", + "roundness": null, + "seed": 960688147, + "version": 5335, + "versionNonce": 31207119, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "f8LUylhnGA-eMN11J5b8-", + "type": "line", + "x": 15461.084086184732, + "y": 5303.1582362709705, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "index": "bTN", + "roundness": null, + "seed": 1110537651, + "version": 3794, + "versionNonce": 1596685551, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4129, + "versionNonce": 229377807, + "isDeleted": false, + "id": "2FADJi3Ul4nrczPE6y73z", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15445.236060767791, + "y": 5298.20175891888, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1652442963, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTO" + }, + { + "type": "rectangle", + "version": 3060, + "versionNonce": 1272335663, + "isDeleted": false, + "id": "4hpgK0tKdfZnmCeG68gnM", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15356.122442391468, + "y": 4999.349335433569, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 813688051, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "g7tSe9PQK6bDpWt2QO7t3", + "type": "text" + }, + { + "id": "QVOlcrqJ5xmRaYy8edi5B", + "type": "arrow" + }, + { + "id": "D1USZU5QCXf1z_tvd0QHM", + "type": "arrow" + }, + { + "id": "Pm6_q6QFzPZbA4UBL48SD", + "type": "arrow" + }, + { + "id": "3ESbNWBcI1cBNjAc9Gq9-", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTP" + }, + { + "type": "text", + "version": 2602, + "versionNonce": 1964166991, + "isDeleted": false, + "id": "g7tSe9PQK6bDpWt2QO7t3", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15385.334207015203, + "y": 5004.349335433569, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 139.61988830566406, + "height": 75, + "seed": 868011667, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nLogical Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "4hpgK0tKdfZnmCeG68gnM", + "originalText": "Data object:\nLogical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTQ", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3657, + "versionNonce": 320112527, + "isDeleted": false, + "id": "ITLaXNDwrjNMRoQIRu7ij", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15524.83458459736, + "y": 5005.272436943343, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1055622195, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTR" + }, + { + "type": "rectangle", + "version": 4028, + "versionNonce": 22724015, + "isDeleted": false, + "id": "-anmKW3ksniwIfAGMP_Jo", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15524.84423153309, + "y": 5005.29222526379, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 166888915, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "QVOlcrqJ5xmRaYy8edi5B", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTS" + }, + { + "type": "arrow", + "version": 14375, + "versionNonce": 672266689, + "index": "bTT", + "isDeleted": false, + "id": "nqw6PFzKGWi4Wkye_IGbR", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15378.48088086924, + "y": 4797.236865387568, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 223.0654682633649, + "height": 220.44440035933712, + "seed": 199775091, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "L1pS9BfTcSyx2SmIortEw" + } + ], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PPnF1x5bIW8e5eH2NSGNL", + "focus": 0.31522855722112386, + "gap": 1 + }, + "endBinding": { + "elementId": "mf2YJjgJIFxpJsEf5KZ6h", + "focus": 2.0760819228869556, + "gap": 14.0351675809876 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -223.0654682633649, + 220.44440035933712 + ] + ] + }, + { + "id": "L1pS9BfTcSyx2SmIortEw", + "type": "text", + "x": 17163.558579353103, + "y": 4739.010280006921, + "width": 59.07997131347656, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bTU", + "roundness": null, + "seed": 353594643, + "version": 146, + "versionNonce": 2119118668, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "read", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "nqw6PFzKGWi4Wkye_IGbR", + "originalText": "read", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13891, + "versionNonce": 1510939041, + "index": "bTV", + "isDeleted": false, + "id": "NVvDryM_AW_QCQ_yrwioa", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15022.767879977397, + "y": 4806.527326550433, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.4369458498877066, + "height": 191.21984335474826, + "seed": 686445235, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "kSguHxLTYrSwE4ALfyMEt" + } + ], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": 0.07695068955881496, + "gap": 1 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.4369458498877066, + 191.21984335474826 + ] + ] + }, + { + "id": "kSguHxLTYrSwE4ALfyMEt", + "type": "text", + "x": 16911.386283450167, + "y": 4738.3992453425135, + "width": 68.85195922851562, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bTW", + "roundness": null, + "seed": 403932243, + "version": 137, + "versionNonce": 633562572, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "NVvDryM_AW_QCQ_yrwioa", + "originalText": "write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3146, + "versionNonce": 1659039279, + "isDeleted": false, + "id": "jYohxCNXaggYXZIgKzc8t", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15832.183626096441, + "y": 4993.1401294756715, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1516601843, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "PRZHhJpMGSxDUQ8oyxWRS", + "type": "text" + }, + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + }, + { + "id": "z8L8HHJ74uk2e3Tbf_m6h", + "type": "arrow" + }, + { + "id": "aiGwLFCeZKk5T2ghP1g3_", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTX" + }, + { + "type": "text", + "version": 2704, + "versionNonce": 602099791, + "isDeleted": false, + "id": "PRZHhJpMGSxDUQ8oyxWRS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15838.965420932574, + "y": 5014.374570420659, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 184.47982788085938, + "height": 50, + "seed": 686214035, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nArchitecture Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "jYohxCNXaggYXZIgKzc8t", + "originalText": "Data object:\nArchitecture Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTY", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3749, + "versionNonce": 377014415, + "isDeleted": false, + "id": "GeNqun0oUb4_IpiVahX6_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16000.895768302333, + "y": 4999.063230985445, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1473110323, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTZ" + }, + { + "type": "rectangle", + "version": 4116, + "versionNonce": 1888411311, + "isDeleted": false, + "id": "qzxygwfFOpkx059A7sg20", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16000.905415238063, + "y": 4999.083019305893, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 1887519443, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "us0lX5xsh2EY-JuT-VOFU", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTa" + }, + { + "type": "rectangle", + "version": 3480, + "versionNonce": 630996719, + "isDeleted": false, + "id": "2RRirt9wLCZtP47QsixY6", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15770.061134151267, + "y": 5240.3656209250985, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 194474099, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "NSOrhGG548QhrMFreZuYw" + }, + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTb" + }, + { + "type": "text", + "version": 3114, + "versionNonce": 213158159, + "isDeleted": false, + "id": "NSOrhGG548QhrMFreZuYw", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15776.8429289874, + "y": 5245.3656209250985, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 184.47982788085938, + "height": 75, + "seed": 1792469523, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<>\nArchitecture Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "2RRirt9wLCZtP47QsixY6", + "originalText": "Artifact:\n<> Architecture Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTc", + "autoResize": true + }, + { + "id": "yKyQZ5xYizfZlX3ljBkMm", + "type": "line", + "x": 15955.671430590384, + "y": 5247.285974949667, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "index": "bTd", + "roundness": null, + "seed": 1396060083, + "version": 5517, + "versionNonce": 157471055, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "3jYqAlXB0sJcYmVYJLQX7", + "type": "line", + "x": 15960.532453344098, + "y": 5252.6301008772825, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "index": "bTe", + "roundness": null, + "seed": 651936083, + "version": 3976, + "versionNonce": 851038063, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4311, + "versionNonce": 818678159, + "isDeleted": false, + "id": "Rc0hNWnQqTVtkgK2UnO4W", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15944.684427927157, + "y": 5247.673623525192, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1058938611, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTf" + }, + { + "type": "arrow", + "version": 7848, + "versionNonce": 857554305, + "index": "bTg", + "isDeleted": false, + "id": "z8L8HHJ74uk2e3Tbf_m6h", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16047.40858695145, + "y": 5355.475256060173, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 98.50942192125694, + "height": 270.10994438666785, + "seed": 109299859, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "1i-Sd2TX0jmyJ0cu4iMdY", + "focus": -0.20954256526700363, + "gap": 13.405494288288537 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -98.50942192125694, + -270.10994438666785 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3669, + "versionNonce": 1693725135, + "isDeleted": false, + "id": "1i-Sd2TX0jmyJ0cu4iMdY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15987.846598345765, + "y": 5368.880750348461, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 214.43329569747027, + "height": 92.03451626659263, + "seed": 1388527155, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "uvA53K9SAX_ZGOGV0gFUr" + }, + { + "id": "z8L8HHJ74uk2e3Tbf_m6h", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTh" + }, + { + "type": "text", + "version": 3342, + "versionNonce": 1179328495, + "isDeleted": false, + "id": "uvA53K9SAX_ZGOGV0gFUr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15995.213507119792, + "y": 5374.708340497472, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 199.69947814941406, + "height": 81.20692611758173, + "seed": 2126708691, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 21.655180298021794, + "fontFamily": 1, + "text": "Artifact:\n<<*.archimate>>\nArchitecture Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "1i-Sd2TX0jmyJ0cu4iMdY", + "originalText": "Artifact:\n<<*.archimate>> Architecture Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTi", + "autoResize": true + }, + { + "id": "zuGuSlw_U0ewvNHUPcXtM", + "type": "line", + "x": 16188.817820073684, + "y": 5376.37382605487, + "width": 17.54845777379122, + "height": 19.972720320632373, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "index": "bTj", + "roundness": null, + "seed": 1150913907, + "version": 5706, + "versionNonce": 866725935, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -12.113993775151252, + 0.037633259612622066 + ], + [ + -11.976688234649934, + 19.972720320632373 + ], + [ + 5.434463998639967, + 19.8287209143135 + ], + [ + 5.29933331997805, + 5.835913700978125 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "3Emce6RHznDa8Jbxg8lbg", + "type": "line", + "x": 16194.081136281904, + "y": 5382.160226579762, + "width": 5.621496602404443, + "height": 5.844110723204111, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "index": "bTk", + "roundness": null, + "seed": 1468884755, + "version": 4165, + "versionNonce": 1183928911, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.621496602404443, + 0.1351311362982975 + ], + [ + -5.474139820497525, + -5.708979586905814 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4498, + "versionNonce": 678441071, + "isDeleted": false, + "id": "9Pt3svqe280jSdNLNdhY_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16176.921543893332, + "y": 5376.793556044632, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 17.00270734471247, + "height": 19.484128973846662, + "seed": 1041566899, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTl" + }, + { + "type": "arrow", + "version": 7801, + "versionNonce": 846980449, + "index": "bTm", + "isDeleted": false, + "id": "3ESbNWBcI1cBNjAc9Gq9-", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15517.327785028323, + "y": 5426.422029073465, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 38.07960412866851, + "height": 342.7506539193264, + "seed": 1809251923, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "trxhz3YophkmRie0J0OsH", + "focus": -0.20813581932445946, + "gap": 13.405494288284899 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -38.07960412866851, + -342.7506539193264 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3605, + "versionNonce": 858005679, + "isDeleted": false, + "id": "trxhz3YophkmRie0J0OsH", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15447.787706587565, + "y": 5439.82752336175, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 110, + "seed": 464108531, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "yyutMeJLuCdrcmzZcYycV" + }, + { + "id": "3ESbNWBcI1cBNjAc9Gq9-", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTn" + }, + { + "type": "text", + "version": 3291, + "versionNonce": 1784296143, + "isDeleted": false, + "id": "yyutMeJLuCdrcmzZcYycV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15474.519467854363, + "y": 5444.82752336175, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 144.57989501953125, + "height": 100, + "seed": 1771292051, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<<*.xml>> Archi\nLogical Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "trxhz3YophkmRie0J0OsH", + "originalText": "Artifact:\n<<*.xml>> Archi Logical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTo", + "autoResize": true + }, + { + "id": "QJUVvb89KiYeZssN2LSmo", + "type": "line", + "x": 15633.398003026683, + "y": 5446.747877386319, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "index": "bTp", + "roundness": null, + "seed": 751541043, + "version": 5640, + "versionNonce": 695798543, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "odO0dPtzzkdQUFBmK5O89", + "type": "line", + "x": 15638.259025780397, + "y": 5452.092003313934, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "index": "bTq", + "roundness": null, + "seed": 297254099, + "version": 4099, + "versionNonce": 1868747055, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4432, + "versionNonce": 2087637839, + "isDeleted": false, + "id": "7SM0LIJPEhHYPaZUvrPM-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15622.411000363456, + "y": 5447.135525961843, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1945021043, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTr" + }, + { + "type": "arrow", + "version": 7904, + "versionNonce": 687182191, + "index": "bTs", + "isDeleted": false, + "id": "wi0OZPoZoJ6DzOdDMV4fM", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15140.437812390523, + "y": 5427.510166916886, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 64.90222886159245, + "height": 327.76903592533563, + "seed": 2016863251, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -64.90222886159245, + -327.76903592533563 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3759, + "versionNonce": 775916431, + "isDeleted": false, + "id": "SOvgPdORIZRjZFXMyY3vZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15055.574234840446, + "y": 5439.596578728307, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 110, + "seed": 1720117683, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Yu81s1kx84LlAhyQ2uD1J" + }, + { + "id": "wi0OZPoZoJ6DzOdDMV4fM", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTt" + }, + { + "type": "text", + "version": 3461, + "versionNonce": 142950831, + "isDeleted": false, + "id": "Yu81s1kx84LlAhyQ2uD1J", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15065.136020826481, + "y": 5444.596578728307, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 178.9198455810547, + "height": 100, + "seed": 1141193555, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<<*.xml>> Archi\nConceptual Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "SOvgPdORIZRjZFXMyY3vZ", + "originalText": "Artifact:\n<<*.xml>> Archi Conceptual Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTu", + "autoResize": true + }, + { + "id": "gcNhf8xnl7qoLfgi5kfyV", + "type": "line", + "x": 15241.184531279563, + "y": 5446.208437657479, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "index": "bTv", + "roundness": null, + "seed": 755521779, + "version": 5792, + "versionNonce": 418329551, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "RlvXvvEH0EzdbqfC6haq7", + "type": "line", + "x": 15246.045554033277, + "y": 5451.5525635850945, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "index": "bTw", + "roundness": null, + "seed": 1863762579, + "version": 4251, + "versionNonce": 127263215, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4586, + "versionNonce": 1703005199, + "isDeleted": false, + "id": "jUIyT0cAgSGKWMLAgzG6z", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15230.197528616336, + "y": 5446.596086233004, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1659303987, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTx" + }, + { + "type": "arrow", + "version": 14069, + "versionNonce": 1132106049, + "index": "bTy", + "isDeleted": false, + "id": "aiGwLFCeZKk5T2ghP1g3_", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15943.318176347198, + "y": 4800.6226195107665, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.587076613184763, + "height": 184.48702968206544, + "seed": 106920403, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "r5wSlJTMg1xdFyHlN1pk8", + "focus": 0.06286891644348463, + "gap": 1.055106062489358 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.587076613184763, + 184.48702968206544 + ] + ] + }, + { + "id": "ob1942x-aJeUUDKBnT6rj", + "type": "arrow", + "x": 16116.15068567565, + "y": 4205.800175364508, + "width": 1.7283993024066149, + "height": 68.79107043924341, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bTz", + "roundness": null, + "seed": 1452722035, + "version": 2824, + "versionNonce": 1274762319, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.7283993024066149, + 68.79107043924341 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "qWs9jyZR-8aXxtmbxVPpZ", + "type": "arrow", + "x": 15216.265616085719, + "y": 4621.543343465098, + "width": 75.80802914048763, + "height": 92.22642211935272, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bU0", + "roundness": null, + "seed": 1775460627, + "version": 2202, + "versionNonce": 400946433, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "GZHQv2QrHBo6xfD1WCxre" + } + ], + "updated": 1755677315488, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -75.80802914048763, + 92.22642211935272 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "3fCBHxVaWETsktdmybp9H", + "focus": 0.05751671492203296, + "gap": 7.967668621661687 + }, + "endBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": 0.3178270180251838, + "gap": 3.333700117367698 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "GZHQv2QrHBo6xfD1WCxre", + "type": "text", + "x": 17053.528357337036, + "y": 4503.982230150307, + "width": 100.89991760253906, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bU1", + "roundness": null, + "seed": 1233897139, + "version": 201, + "versionNonce": 1800917876, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "realization", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "qWs9jyZR-8aXxtmbxVPpZ", + "originalText": "realization", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3081, + "versionNonce": 1398787215, + "isDeleted": false, + "id": "r5yjR4qOb6rOcI74ro1hF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15991.698075959495, + "y": 4538.602223786904, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 85, + "seed": 208042067, + "groupIds": [ + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "O69My6oamN39wKnmlWdBW" + }, + { + "id": "B_4wZo5GBy6hJDL71N1vJ", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU2" + }, + { + "type": "text", + "version": 2725, + "versionNonce": 32858799, + "isDeleted": false, + "id": "O69My6oamN39wKnmlWdBW", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16016.403426442052, + "y": 4543.602223786904, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 183.0398406982422, + "height": 75, + "seed": 809104883, + "groupIds": [ + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nArchimate Modeller\nAgent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "r5yjR4qOb6rOcI74ro1hF", + "originalText": "App Component:\nArchimate Modeller Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bU3", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3234, + "versionNonce": 707904239, + "isDeleted": false, + "id": "lE1VzNXAqIJ8gGhLieXZd", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16189.447691660604, + "y": 4543.32895251393, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 873250707, + "groupIds": [ + "HEB-7qETVKIH6DXJlO1_P", + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU4" + }, + { + "type": "rectangle", + "version": 3900, + "versionNonce": 1811516687, + "isDeleted": false, + "id": "3rcC2P5mLhfuWt7K75Gh7", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16185.490653635334, + "y": 4545.749232189659, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1914000691, + "groupIds": [ + "HEB-7qETVKIH6DXJlO1_P", + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU5" + }, + { + "type": "rectangle", + "version": 3925, + "versionNonce": 1384321839, + "isDeleted": false, + "id": "YFaDoMC3g7VqQxM89i5IS", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16185.661481088133, + "y": 4550.519682875149, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 968505043, + "groupIds": [ + "HEB-7qETVKIH6DXJlO1_P", + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU6" + }, + { + "id": "B_4wZo5GBy6hJDL71N1vJ", + "type": "arrow", + "x": 16087.68721214409, + "y": 4632.8126294820095, + "width": 22.750610269800745, + "height": 73.72205129199483, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bU7", + "roundness": null, + "seed": 697427059, + "version": 2789, + "versionNonce": 1880844481, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -22.750610269800745, + 73.72205129199483 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "r5yjR4qOb6rOcI74ro1hF", + "focus": 0.033077845877622726, + "gap": 9.210405695105692 + }, + "endBinding": { + "elementId": "r5wSlJTMg1xdFyHlN1pk8", + "focus": 0.5720560982680579, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3254, + "versionNonce": 1315787631, + "isDeleted": false, + "id": "R02JxWp1_JlKwkoBTypSA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16459.144056749858, + "y": 4541.9011187210135, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 85, + "seed": 1231216147, + "groupIds": [ + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "K0GoAiVEiz6HjV2-CEgSP" + }, + { + "id": "Uvf3v0XWzRyGtu9MF39di", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU8" + }, + { + "type": "text", + "version": 2936, + "versionNonce": 326045071, + "isDeleted": false, + "id": "K0GoAiVEiz6HjV2-CEgSP", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16495.729396856437, + "y": 4546.9011187210135, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 159.2798614501953, + "height": 75, + "seed": 1680057267, + "groupIds": [ + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nDevOps Engineer\nAgent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "R02JxWp1_JlKwkoBTypSA", + "originalText": "App Component:\nDevOps Engineer Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bU9", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3405, + "versionNonce": 1618248623, + "isDeleted": false, + "id": "2z1aYCIn2n0_pl96ssyua", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16656.89367245097, + "y": 4546.62784744804, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 570078547, + "groupIds": [ + "LX1KFVfPq_3CNcT8tsXxW", + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUA" + }, + { + "type": "rectangle", + "version": 4071, + "versionNonce": 1973827023, + "isDeleted": false, + "id": "KCwjQCaGSjoqAtrvv8qNj", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16652.9366344257, + "y": 4549.04812712377, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1648268019, + "groupIds": [ + "LX1KFVfPq_3CNcT8tsXxW", + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUB" + }, + { + "type": "rectangle", + "version": 4096, + "versionNonce": 2048697327, + "isDeleted": false, + "id": "41sDLTDEo_I7zUqirFYoD", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16653.1074618785, + "y": 4553.81857780926, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1433779347, + "groupIds": [ + "LX1KFVfPq_3CNcT8tsXxW", + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUC" + }, + { + "id": "Uvf3v0XWzRyGtu9MF39di", + "type": "arrow", + "x": 16550.309419920533, + "y": 4636.111524416123, + "width": 28.195542933550314, + "height": 71.20613443200637, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bUD", + "roundness": null, + "seed": 1465299507, + "version": 2912, + "versionNonce": 1561503905, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -28.195542933550314, + 71.20613443200637 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": 0.3443126531644863, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3884, + "versionNonce": 2078913583, + "index": "bUE", + "isDeleted": false, + "id": "BR6_GD6drGeg44ixlRD80", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 16283.76001152541, + "y": 4707.669903857416, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 115, + "seed": 147321811, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "KMWx4maZBNvI5LU_XXYcR" + }, + { + "id": "cRAJtOfQPungml6LIfwyO", + "type": "arrow" + }, + { + "id": "zlSPouc1atj_bkWIUJQuy", + "type": "arrow" + }, + { + "id": "Uvf3v0XWzRyGtu9MF39di", + "type": "arrow" + }, + { + "id": "us0lX5xsh2EY-JuT-VOFU", + "type": "arrow" + }, + { + "id": "NLo2tt7n8WZSzF4FoM_kv", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false + }, + { + "id": "KMWx4maZBNvI5LU_XXYcR", + "type": "text", + "x": 16296.471397498011, + "y": 4712.669903857416, + "width": 283.44384765625, + "height": 105, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bUF", + "roundness": null, + "seed": 702546291, + "version": 1884, + "versionNonce": 1008817743, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "text": "Application function:\nGitflow - Create Pull\nRequest", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "BR6_GD6drGeg44ixlRD80", + "originalText": "Application function:\nGitflow - Create Pull Request", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3113, + "versionNonce": 2018936047, + "isDeleted": false, + "id": "NvBRmIe-MNELXsV2a48ch", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16831.822960589016, + "y": 4138.009190944374, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 246.9748729860165, + "height": 67.89379668398578, + "seed": 870669075, + "groupIds": [ + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "6VJ-zua5KdVPrlaykN_CL", + "type": "text" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUG" + }, + { + "type": "text", + "version": 2843, + "versionNonce": 1547046671, + "isDeleted": false, + "id": "6VJ-zua5KdVPrlaykN_CL", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16852.240473681144, + "y": 4150.902987628359, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 206.1398468017578, + "height": 50, + "seed": 860782771, + "groupIds": [ + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Product Owner", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "NvBRmIe-MNELXsV2a48ch", + "originalText": "Business role:\nData Product Owner", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUH", + "autoResize": true + }, + { + "type": "line", + "version": 9763, + "versionNonce": 1272927535, + "index": "bUI", + "isDeleted": false, + "id": "94kbz4lET764uGkJlIwZr", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 17062.848869435024, + "y": 4137.975974341724, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 1640100435, + "groupIds": [ + "3TAl1wW0mPEfEyXJeRuK9", + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10490, + "versionNonce": 515561295, + "index": "bUJ", + "isDeleted": false, + "id": "kM2uicxKsK6ns-PmS4V5Q", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 17040.101843664692, + "y": 4148.238807234852, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 1454067, + "groupIds": [ + "3TAl1wW0mPEfEyXJeRuK9", + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false + }, + { + "id": "iAhy1-5wJRKGEo2-d0GDC", + "type": "arrow", + "x": 15342.525720449976, + "y": 4199.309335793007, + "width": 106.08560855906035, + "height": 77.76050549102138, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bUK", + "roundness": null, + "seed": 1884404115, + "version": 2942, + "versionNonce": 723588463, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 106.08560855906035, + 77.76050549102138 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "arrow", + "version": 14473, + "versionNonce": 1730655329, + "index": "bUL", + "isDeleted": false, + "id": "us0lX5xsh2EY-JuT-VOFU", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 16038.185279114372, + "y": 4985.5392072291, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 246.98205748435794, + "height": 167.83766778809695, + "seed": 262868787, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "startBinding": { + "elementId": "qzxygwfFOpkx059A7sg20", + "focus": 0.15736429117515605, + "gap": 14 + }, + "endBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": 0.3167690542452295, + "gap": 5.777866081233873 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 246.98205748435794, + -167.83766778809695 + ] + ] + }, + { + "type": "rectangle", + "version": 3285, + "versionNonce": 1352648111, + "isDeleted": false, + "id": "RM_rfM_tPNFtgsgy2k5nP", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16319.173848450097, + "y": 5004.881430481847, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1351135443, + "groupIds": [ + "cU7OwM1cPZVtB84Jqt0Is" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "txhYqvMvotHo2eVOlkyOk", + "type": "text" + }, + { + "id": "EVt1PETVAKz2_i3B2-XwR", + "type": "arrow" + }, + { + "id": "nMy6oGjEbqrG3CJeTNm5c", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUM" + }, + { + "type": "text", + "version": 2858, + "versionNonce": 51984335, + "isDeleted": false, + "id": "txhYqvMvotHo2eVOlkyOk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16353.945603003027, + "y": 5026.115871426835, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 50, + "seed": 344006259, + "groupIds": [ + "cU7OwM1cPZVtB84Jqt0Is" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nPull Request", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "RM_rfM_tPNFtgsgy2k5nP", + "originalText": "Data object:\nPull Request", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUN", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3891, + "versionNonce": 635397615, + "isDeleted": false, + "id": "W73Q481X6cDUjxJNqmYq7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16487.88599065599, + "y": 5010.804531991619, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1180358675, + "groupIds": [ + "cU7OwM1cPZVtB84Jqt0Is" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUO" + }, + { + "type": "rectangle", + "version": 4255, + "versionNonce": 133877775, + "isDeleted": false, + "id": "Bhl5nyG7YZ2IVUv7ARMYU", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16487.89563759172, + "y": 5010.824320312068, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 873225651, + "groupIds": [ + "cU7OwM1cPZVtB84Jqt0Is" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUP" + }, + { + "type": "arrow", + "version": 13854, + "versionNonce": 56882735, + "index": "bUQ", + "isDeleted": false, + "id": "EVt1PETVAKz2_i3B2-XwR", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 16426.47760030111, + "y": 4830.256360406441, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.553505081225012, + "height": 166.17560637284714, + "seed": 683421523, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -0.553505081225012, + 166.17560637284714 + ] + ] + }, + { + "type": "rectangle", + "version": 2817, + "versionNonce": 520312911, + "isDeleted": false, + "id": "LaFyXL6XrI7JMk8sAWQUx", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16723.875678251166, + "y": 5420.567122672569, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1187040499, + "groupIds": [ + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "c5EVoIQPC4_je_uTJWslZ" + }, + { + "id": "DFKnVan90gD9yT2E-zhFz", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUR" + }, + { + "type": "text", + "version": 2372, + "versionNonce": 1890678383, + "isDeleted": false, + "id": "c5EVoIQPC4_je_uTJWslZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16751.64745569228, + "y": 5441.801563617557, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 142.49986267089844, + "height": 50, + "seed": 564180627, + "groupIds": [ + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Node:\nGit Repository", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "LaFyXL6XrI7JMk8sAWQUx", + "originalText": "Node:\nGit Repository", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUS", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3584, + "versionNonce": 1060556943, + "isDeleted": false, + "id": "xnPC2vWiP0C8TI6pAlR02", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16892.421860571285, + "y": 5428.856103901934, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 19.248182578072566, + "height": 15.363838546045104, + "seed": 403860531, + "groupIds": [ + "gcwhDNiHfAuKx9XY5pl2-", + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUT" + }, + { + "id": "2DOhW6dmR-aA_SW4bbJaM", + "type": "line", + "x": 16914.659522257472, + "y": 5426.6757108563115, + "width": 3.003079486571451, + "height": 17.54457135406796, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "gcwhDNiHfAuKx9XY5pl2-", + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "index": "bUU", + "roundness": null, + "seed": 1845259731, + "version": 2315, + "versionNonce": 1682695855, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21179345361984853, + 14.972937267542322 + ], + [ + -2.995690343063882, + 17.54457135406796 + ], + [ + -3.003079486571451, + 2.118571281484566 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "t1TeljzMDNUq3MxOmBJo9", + "type": "line", + "x": 16914.669951295775, + "y": 5426.623351468909, + "width": 22.22666794475111, + "height": 2.206035892395766, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "gcwhDNiHfAuKx9XY5pl2-", + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "index": "bUV", + "roundness": null, + "seed": 645217139, + "version": 1906, + "versionNonce": 1855535311, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -18.34081603072079, + 0.10124955609878751 + ], + [ + -22.22666794475111, + 2.1495365046023367 + ], + [ + -3.1016389619817986, + 2.206035892395766 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3640, + "versionNonce": 62342895, + "isDeleted": false, + "id": "v948jtnERrzLOofthcgsc", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16699.480610003586, + "y": 5186.908489620625, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 235.45687427491387, + "height": 90.45212049767441, + "seed": 499340563, + "groupIds": [ + "IPG7oGzY1-6m9dhItjMuz" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "3Mz0lHsd2L8CZq13fppNz" + }, + { + "id": "DFKnVan90gD9yT2E-zhFz", + "type": "arrow" + }, + { + "id": "nMy6oGjEbqrG3CJeTNm5c", + "type": "arrow" + }, + { + "id": "0er5cs7XhaE_09cQEG4IZ", + "type": "arrow" + }, + { + "id": "cRAJtOfQPungml6LIfwyO", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUW" + }, + { + "type": "text", + "version": 3171, + "versionNonce": 36606223, + "isDeleted": false, + "id": "3Mz0lHsd2L8CZq13fppNz", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16741.14509755608, + "y": 5212.914838785922, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 152.12789916992188, + "height": 59.44577133237688, + "seed": 1667054259, + "groupIds": [ + "IPG7oGzY1-6m9dhItjMuz" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 23.778308532950753, + "fontFamily": 1, + "text": "Tech service:\nGit", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "v948jtnERrzLOofthcgsc", + "originalText": "Tech service:\nGit", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUX", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5191, + "versionNonce": 1192286063, + "isDeleted": false, + "id": "X60q-UrVfsHBOox16VVMl", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16892.941468619036, + "y": 5195.980875686454, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 31.263227168466805, + "height": 11.596463525239006, + "seed": 1407806547, + "groupIds": [ + "IPG7oGzY1-6m9dhItjMuz" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUY" + }, + { + "type": "arrow", + "version": 8239, + "versionNonce": 889328015, + "index": "bUZ", + "isDeleted": false, + "id": "DFKnVan90gD9yT2E-zhFz", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16818.014125856702, + "y": 5414.866109041191, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.1783363207687216, + "height": 136.57232933546675, + "seed": 1933470195, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 1.1783363207687216, + -136.57232933546675 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 14711, + "versionNonce": 802455617, + "index": "bUa", + "isDeleted": false, + "id": "nMy6oGjEbqrG3CJeTNm5c", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 16708.235457393646, + "y": 5185.911327184292, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 183.3767410968794, + "height": 98.40350434668744, + "seed": 107131795, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "startBinding": { + "elementId": "v948jtnERrzLOofthcgsc", + "focus": -0.11304383994961471, + "gap": 3.722260352963072 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -183.3767410968794, + -98.40350434668744 + ] + ] + }, + { + "type": "arrow", + "version": 7466, + "versionNonce": 1229470159, + "index": "bUb", + "isDeleted": false, + "id": "0er5cs7XhaE_09cQEG4IZ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16845.252245005715, + "y": 5186.253381742426, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 57.45441119697716, + "height": 147.68113943616936, + "seed": 1837943091, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 57.45441119697716, + -147.68113943616936 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 8062, + "versionNonce": 79482913, + "index": "bUc", + "isDeleted": false, + "id": "cRAJtOfQPungml6LIfwyO", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16786.626147924737, + "y": 5186.037973742856, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 90.49686588186523, + "height": 151.2574281676043, + "seed": 1042492115, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "startBinding": { + "elementId": "v948jtnERrzLOofthcgsc", + "focus": -0.020743953428697174, + "gap": 1 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -90.49686588186523, + -151.2574281676043 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 2867, + "versionNonce": 735138319, + "isDeleted": false, + "id": "HwNZjIg0QM0twAJt7WmwJ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16868.209109685526, + "y": 4950.292135446239, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.07952464098153, + "seed": 482105459, + "groupIds": [ + "3QcE48GeewApXj978bUg0" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "F-Q2PX3UYT7AlWgx2Zb_K" + }, + { + "id": "5Kaa7QJ4Vr1ifCgR2JiiX", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUd" + }, + { + "type": "text", + "version": 2420, + "versionNonce": 756693039, + "isDeleted": false, + "id": "F-Q2PX3UYT7AlWgx2Zb_K", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16887.320875835136, + "y": 4971.37166008722, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 159.81988525390625, + "height": 50, + "seed": 1461637651, + "groupIds": [ + "3QcE48GeewApXj978bUg0" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App service:\nGit PR Approval", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "HwNZjIg0QM0twAJt7WmwJ", + "originalText": "App service:\nGit PR Approval", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUe", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4433, + "versionNonce": 2090949199, + "isDeleted": false, + "id": "CPwKNS0-KCBNCIchzlOyP", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17029.39991318124, + "y": 4957.399919514771, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 26.295585428327534, + "height": 9.753817021231114, + "seed": 1044453299, + "groupIds": [ + "3QcE48GeewApXj978bUg0" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUf" + }, + { + "type": "rectangle", + "version": 2981, + "versionNonce": 792672367, + "isDeleted": false, + "id": "TcknGCUkZcMiPm7tCHpyi", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16606.756631433404, + "y": 4955.064064505378, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.07952464098153, + "seed": 1078569299, + "groupIds": [ + "EZxPqNUsRr5hkoN1D8tOE" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "VDqeBGM4bbPq8N5MMJRTk" + }, + { + "id": "cRAJtOfQPungml6LIfwyO", + "type": "arrow" + }, + { + "id": "NLo2tt7n8WZSzF4FoM_kv", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUg" + }, + { + "type": "text", + "version": 2551, + "versionNonce": 716984975, + "isDeleted": false, + "id": "VDqeBGM4bbPq8N5MMJRTk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16634.07838903809, + "y": 4976.14358914636, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 143.39990234375, + "height": 50, + "seed": 1116669683, + "groupIds": [ + "EZxPqNUsRr5hkoN1D8tOE" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App service:\nGit create PR", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "TcknGCUkZcMiPm7tCHpyi", + "originalText": "App service:\nGit create PR", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUh", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4539, + "versionNonce": 874920655, + "isDeleted": false, + "id": "Jp4PVB0ukUkp9VVeDFP61", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16767.94743492912, + "y": 4962.17184857391, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 26.295585428327534, + "height": 9.753817021231114, + "seed": 999796883, + "groupIds": [ + "EZxPqNUsRr5hkoN1D8tOE" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUi" + }, + { + "type": "arrow", + "version": 9779, + "versionNonce": 1091435489, + "index": "bUj", + "isDeleted": false, + "id": "NLo2tt7n8WZSzF4FoM_kv", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16657.060914437217, + "y": 4952.394586879833, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 77.80575911757478, + "height": 126.72349309818492, + "seed": 219817523, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "startBinding": { + "elementId": "TcknGCUkZcMiPm7tCHpyi", + "focus": -0.19384909201700298, + "gap": 2.669477625545369 + }, + "endBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": -0.5476800830712367, + "gap": 5.456862070734407 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -77.80575911757478, + -126.72349309818492 + ] + ] + }, + { + "type": "text", + "version": 5583, + "versionNonce": 1709380367, + "isDeleted": false, + "id": "6iMz2k1HtekeNK6PuOlhD", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14490.817486490707, + "y": 3861.0802308163325, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1053.23583984375, + "height": 169.43573414501193, + "seed": 1328711795, + "groupIds": [ + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Application: agent-aware-object-sythesis (json) \ntimothy@agileintegrator.com\n6-Aug-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Application: agent-aware-object-sythesis (json) \ntimothy@agileintegrator.com\n6-Aug-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bYQG", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5642, + "versionNonce": 558618927, + "isDeleted": false, + "id": "PaZk0xYEtoBV-OFZAzaS4", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14418.368430280349, + "y": 3807.9336714734054, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 3087.9733473831334, + "height": 2001.0199311400847, + "seed": 1470267677, + "groupIds": [ + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Nt5qmY9lmZ84CeurnFEYa" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bYQV" + }, + { + "type": "text", + "version": 5609, + "versionNonce": 469162831, + "isDeleted": false, + "id": "Nt5qmY9lmZ84CeurnFEYa", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "angle": 0, + "x": 15126.011699538481, + "y": 5684.847150054348, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 2375.330078125, + "height": 119.10645255914173, + "seed": 1565414781, + "groupIds": [ + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 95.28516204731338, + "fontFamily": 1, + "text": "Grouping: Application: agent-aware-object-sythesis ", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "PaZk0xYEtoBV-OFZAzaS4", + "originalText": "Grouping: Application: agent-aware-object-sythesis ", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYR", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5340, + "versionNonce": 708614511, + "isDeleted": false, + "id": "l1zJr80S72hBgbRCI7cqJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17319.315833814024, + "y": 3867.3400904030327, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 113.92127254271757, + "height": 60.585522418333525, + "seed": 1648377715, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV", + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bYRV" + }, + { + "type": "rectangle", + "version": 5451, + "versionNonce": 23434127, + "isDeleted": false, + "id": "mtMaKucnQVjM2XGRsEuJB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17319.96758096921, + "y": 3839.966117035328, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 59.27927860964957, + "height": 25.952395015707573, + "seed": 831379731, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV", + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bYS" + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file diff --git a/applications/object-synthesis/model/agent-aware-object-synthesis.excalidraw b/applications/object-synthesis/model/agent-aware-object-synthesis.excalidraw new file mode 100644 index 0000000..60378a6 --- /dev/null +++ b/applications/object-synthesis/model/agent-aware-object-synthesis.excalidraw @@ -0,0 +1,7162 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "text", + "version": 4926, + "versionNonce": 37524093, + "isDeleted": false, + "id": "GpMoxzCsXQf59lPLrGOq9", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14966.476152561987, + "y": 6027.613694819856, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1798.3747218909289, + "height": 355.20718937909174, + "seed": 1233058835, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755285735198, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 35.52071893790918, + "fontFamily": 1, + "text": "- Each use-case has a physical representation (free) and a logical one (paid for)\n- the physical EXTENDS the logical\n- access to the logical model offers ability to create whatever physical model you want\n- when creating a physical use-case (workflow), start with the logical and generate the physical\n- IF YOU WANT ACCESS TO THE PARENT, YOU HAVE TO PAY FOR IT!\n\n(NB: should be no clue as to what this physical model is. Clue: It can be inferred from different\nphysical models)", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "- Each use-case has a physical representation (free) and a logical one (paid for)\n- the physical EXTENDS the logical\n- access to the logical model offers ability to create whatever physical model you want\n- when creating a physical use-case (workflow), start with the logical and generate the physical\n- IF YOU WANT ACCESS TO THE PARENT, YOU HAVE TO PAY FOR IT!\n\n(NB: should be no clue as to what this physical model is. Clue: It can be inferred from different physical models)", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSH", + "autoResize": false + }, + { + "type": "text", + "version": 4113, + "versionNonce": 1096760029, + "isDeleted": false, + "id": "dNizY4oS3tHSYGM-hCsUr", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14467.424411682568, + "y": 6031.586132500858, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 231.60594479761457, + "height": 173.48946292702155, + "seed": 118227379, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755285735198, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 27.75831406832345, + "fontFamily": 1, + "text": "Implementations:\n- archimate (xml)\n- json/yam\n- lucidchart\n- excalidraw", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Implementations:\n- archimate (xml)\n- json/yam\n- lucidchart\n- excalidraw", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSI", + "autoResize": true + }, + { + "type": "text", + "version": 5847, + "versionNonce": 1791874877, + "isDeleted": false, + "id": "rxZjaFG1bl6rGVqxniG1O", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14486.057942417503, + "y": 6364.741888492401, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 2389.416496257161, + "height": 444.0089867238647, + "seed": 287797491, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755285735198, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 35.52071893790918, + "fontFamily": 1, + "text": "METHOD:\n\n1. model business process through Functions => agent scope / inputs and outputs, events and triggers / use-cases \n2. identify application services => agent APIs and API calls (deployment packages and mocks)\n3. map domain objects => test data, object models and schemas\n4. define deployment targets\n i. in tech agnostic language (the 'Metamodel')\n ii. for each supported technology set => deployment package\n\nDeliverable: fully working demo for every defined technology set", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "METHOD:\n\n1. model business process through Functions => agent scope / inputs and outputs, events and triggers / use-cases \n2. identify application services => agent APIs and API calls (deployment packages and mocks)\n3. map domain objects => test data, object models and schemas\n4. define deployment targets\n i. in tech agnostic language (the 'Metamodel')\n ii. for each supported technology set => deployment package\n\nDeliverable: fully working demo for every defined technology set", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSK", + "autoResize": false + }, + { + "type": "arrow", + "version": 14355, + "versionNonce": 1821011105, + "index": "bSL", + "isDeleted": false, + "id": "QVOlcrqJ5xmRaYy8edi5B", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15566.418611982372, + "y": 4996.355225094412, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 243.24831039052333, + "height": 198.71880799321661, + "seed": 2019877075, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "-anmKW3ksniwIfAGMP_Jo", + "focus": 1.123431184358726, + "gap": 14 + }, + "endBinding": { + "elementId": "r5wSlJTMg1xdFyHlN1pk8", + "focus": 0.42586936403869297, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 243.24831039052333, + -198.71880799321661 + ] + ] + }, + { + "type": "rectangle", + "version": 3596, + "versionNonce": 1070584303, + "index": "bSM", + "isDeleted": false, + "id": "r5wSlJTMg1xdFyHlN1pk8", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15799.572728077692, + "y": 4706.826207705608, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 92.7413057426693, + "seed": 1364676211, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "FM01gF_gyvUtwBxPp1A4i" + }, + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + }, + { + "id": "QVOlcrqJ5xmRaYy8edi5B", + "type": "arrow" + }, + { + "id": "auMkqLDuk3Ti0Xp22OPru", + "type": "arrow" + }, + { + "id": "aiGwLFCeZKk5T2ghP1g3_", + "type": "arrow" + }, + { + "id": "B_4wZo5GBy6hJDL71N1vJ", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "id": "FM01gF_gyvUtwBxPp1A4i", + "type": "text", + "x": 15815.630107092285, + "y": 4718.1968605769425, + "width": 276.7518615722656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSN", + "roundness": null, + "seed": 1760233491, + "version": 1541, + "versionNonce": 1627241487, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "text": "Application function:\nModel Generation", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "r5wSlJTMg1xdFyHlN1pk8", + "originalText": "Application function:\nModel Generation", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "nrBU51XdHcoqbB2iQD1it", + "type": "text", + "x": 16840.19898994865, + "y": 4075.3247556095057, + "width": 161.6439971923828, + "height": 35, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSO", + "roundness": null, + "seed": 1964412339, + "version": 829, + "versionNonce": 2036579471, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "text": "Visual check", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Visual check", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 7737, + "versionNonce": 108951649, + "index": "bSP", + "isDeleted": false, + "id": "3pcyzeXzsI6wf96yzb6wS", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15860.560614400114, + "y": 5230.607736761567, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 36.55366091926953, + "height": 145.64514688066083, + "seed": 687890259, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "2RRirt9wLCZtP47QsixY6", + "focus": -0.19726618831002538, + "gap": 9.757884163531344 + }, + "endBinding": { + "elementId": "jYohxCNXaggYXZIgKzc8t", + "focus": 0.18982022182774397, + "gap": 15.58801946024687 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 36.55366091926953, + -145.64514688066083 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 7283, + "versionNonce": 1068680257, + "index": "bSQ", + "isDeleted": false, + "id": "UVRiZFoX2vg94cLLqnE6_", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14964.435557422654, + "y": 5260.398087962135, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 56.15426875538833, + "height": 165.19752520563543, + "seed": 251591923, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "JLcpc16BIhvwxz9U0kaaf" + } + ], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "APTPv6Az5V2NmUUs9cPKY", + "focus": 0.10607588001260473, + "gap": 4.008857397176143 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 56.15426875538833, + -165.19752520563543 + ] + ], + "elbowed": false + }, + { + "id": "JLcpc16BIhvwxz9U0kaaf", + "type": "text", + "x": 16864.47368463394, + "y": 5013.136973623218, + "width": 100.7159423828125, + "height": 35, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 70, + "groupIds": [], + "frameId": null, + "index": "bSR", + "roundness": null, + "seed": 580445843, + "version": 175, + "versionNonce": 1103063540, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "UVRiZFoX2vg94cLLqnE6_", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13818, + "versionNonce": 137532449, + "index": "bSS", + "isDeleted": false, + "id": "D1USZU5QCXf1z_tvd0QHM", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15473.844197653838, + "y": 4796.9698958171675, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.4470373387994186, + "height": 197.6971326616922, + "seed": 713333811, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PPnF1x5bIW8e5eH2NSGNL", + "focus": 0.1000446083638219, + "gap": 1 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.4470373387994186, + 197.6971326616922 + ] + ] + }, + { + "type": "arrow", + "version": 9350, + "versionNonce": 1826799585, + "index": "bST", + "isDeleted": false, + "id": "Y-ujCGmMtrdr81wqKGUfy", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15009.834022199739, + "y": 4715.838167183763, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.4406727495625091, + "height": 291.28983370969445, + "seed": 1386782163, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "POK33O-WLkHxCVwaPEac1" + } + ], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": -0.15145808842082714, + "gap": 1.2652985180548058 + }, + "endBinding": { + "elementId": "0vkp3XfpvyUmriJEERhYC", + "focus": 0.04392662304115562, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 0.4406727495625091, + -291.28983370969445 + ] + ] + }, + { + "id": "POK33O-WLkHxCVwaPEac1", + "type": "text", + "x": 16889.01753219048, + "y": 4404.079289742226, + "width": 86.71597290039062, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSU", + "roundness": null, + "seed": 102460275, + "version": 220, + "versionNonce": 1445565900, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "serves", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Y-ujCGmMtrdr81wqKGUfy", + "originalText": "serves", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 10080, + "versionNonce": 281738145, + "index": "bSV", + "isDeleted": false, + "id": "XPIaGHSmzctn3PvW-9hvP", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15487.811543810396, + "y": 4707.1050549623415, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.682295487898955, + "height": 287.2089926053545, + "seed": 153322771, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PPnF1x5bIW8e5eH2NSGNL", + "focus": -0.019528587747001884, + "gap": 1 + }, + "endBinding": { + "elementId": "F7xGKrg7xqprxKtXY8w4_", + "focus": -0.05782469923597012, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.682295487898955, + -287.2089926053545 + ] + ] + }, + { + "type": "arrow", + "version": 10275, + "versionNonce": 739041153, + "index": "bSW", + "isDeleted": false, + "id": "auMkqLDuk3Ti0Xp22OPru", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15953.775812994387, + "y": 4706.534680774003, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 5.006843024375485, + "height": 284.81777142570354, + "seed": 1396140723, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315485, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": 0.3876301493934813, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -5.006843024375485, + -284.81777142570354 + ] + ] + }, + { + "type": "arrow", + "version": 9951, + "versionNonce": 443134785, + "index": "bSX", + "isDeleted": false, + "id": "kpEiaULRdnpoakPH-eZmz", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15182.833269239232, + "y": 4347.773362334676, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 132.8722620633598, + "height": 1.0299111124500087, + "seed": 687709267, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": { + "elementId": "0vkp3XfpvyUmriJEERhYC", + "focus": -0.10166869166142146, + "gap": 1.1474522223415988 + }, + "endBinding": { + "elementId": "F7xGKrg7xqprxKtXY8w4_", + "focus": -0.005364786616090013, + "gap": 6.771118992823176 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 132.8722620633598, + 1.0299111124500087 + ] + ] + }, + { + "type": "arrow", + "version": 9416, + "versionNonce": 1928632065, + "index": "bSY", + "isDeleted": false, + "id": "9aM2Jd51MAD8XOARGX5-8", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 15631.373399150943, + "y": 4357.797151885071, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 116.33975593300784, + "height": 4.210359167059323, + "seed": 1984731635, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": { + "elementId": "F7xGKrg7xqprxKtXY8w4_", + "focus": 0.18374335536251019, + "gap": 5.065113126156575 + }, + "endBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": 0.07478835521731912, + "gap": 4.277715239473764 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 116.33975593300784, + -4.210359167059323 + ] + ] + }, + { + "type": "arrow", + "version": 10718, + "versionNonce": 1835633345, + "index": "bSZ", + "isDeleted": false, + "id": "UC0gyv0RbxBh9oMHMoFLq", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16398.235414902247, + "y": 4359.911086409979, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 385.3829321513331, + "height": 10.115594164144568, + "seed": 1747641235, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": 0.038577772749198345, + "gap": 6.15708500429173 + }, + "endBinding": { + "elementId": "bMI1ce855OEuj-IvK4hQl", + "focus": -0.2518409754065298, + "gap": 8.248526967388898 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 385.3829321513331, + 10.115594164144568 + ] + ] + }, + { + "type": "arrow", + "version": 10401, + "versionNonce": 273451681, + "index": "bSa", + "isDeleted": false, + "id": "5Kaa7QJ4Vr1ifCgR2JiiX", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16970.113853228195, + "y": 4949.504726915487, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.0012780146353179589, + "height": 520.0338568972538, + "seed": 1187969331, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "bMI1ce855OEuj-IvK4hQl", + "focus": -0.09420293547647528, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -0.0012780146353179589, + -520.0338568972538 + ] + ] + }, + { + "type": "arrow", + "version": 9662, + "versionNonce": 449910369, + "index": "bSb", + "isDeleted": false, + "id": "zlSPouc1atj_bkWIUJQuy", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16363.984752932545, + "y": 4707.181756368807, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 2.752218685040134, + "height": 285.4651007217053, + "seed": 262101715, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315486, + "link": null, + "locked": false, + "startBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": -0.4751958082124978, + "gap": 1 + }, + "endBinding": { + "elementId": "EysawDVhRAwWO51Md93VG", + "focus": -0.8994194463197356, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -2.752218685040134, + -285.4651007217053 + ] + ] + }, + { + "type": "rectangle", + "version": 2705, + "versionNonce": 729562639, + "isDeleted": false, + "id": "0vkp3XfpvyUmriJEERhYC", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14853.503019231346, + "y": 4283.402081479207, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 328.18279778554523, + "height": 140.74941657121406, + "seed": 995033619, + "groupIds": [ + "raWP1e8bQVtIY6tbIGBhJ" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "UJ-Yk3yM-zw3WrChc3nqV" + }, + { + "id": "Y-ujCGmMtrdr81wqKGUfy", + "type": "arrow" + }, + { + "id": "kpEiaULRdnpoakPH-eZmz", + "type": "arrow" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSd" + }, + { + "type": "text", + "version": 2346, + "versionNonce": 1351066671, + "isDeleted": false, + "id": "UJ-Yk3yM-zw3WrChc3nqV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14883.504131869235, + "y": 4315.356939278952, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 216745907, + "groupIds": [ + "raWP1e8bQVtIY6tbIGBhJ" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nDomain Analysis", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "0vkp3XfpvyUmriJEERhYC", + "originalText": "Business function:\nDomain Analysis", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSe", + "autoResize": true + }, + { + "id": "bBwbOyhneCvGYwVK0pVfF", + "type": "line", + "x": 15166.696255915398, + "y": 4311.861869530348, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "raWP1e8bQVtIY6tbIGBhJ" + ], + "frameId": null, + "index": "bSf", + "roundness": null, + "seed": 439212371, + "version": 3545, + "versionNonce": 1126732975, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3226, + "versionNonce": 1773151951, + "isDeleted": false, + "id": "F7xGKrg7xqprxKtXY8w4_", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15322.476650295415, + "y": 4279.9069277509725, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 303.8316357293715, + "height": 139.49172216661904, + "seed": 812463859, + "groupIds": [ + "qpRqZvijKXUMPEC3Ck0U6" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "r0rGU8NDIf--uvdkR7PV0" + }, + { + "id": "XPIaGHSmzctn3PvW-9hvP", + "type": "arrow" + }, + { + "id": "kpEiaULRdnpoakPH-eZmz", + "type": "arrow" + }, + { + "id": "9aM2Jd51MAD8XOARGX5-8", + "type": "arrow" + }, + { + "id": "iAhy1-5wJRKGEo2-d0GDC", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSg" + }, + { + "type": "text", + "version": 3031, + "versionNonce": 432043247, + "isDeleted": false, + "id": "r0rGU8NDIf--uvdkR7PV0", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15353.741741841743, + "y": 4315.087663971572, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 241.30145263671875, + "height": 69.13024972542082, + "seed": 774889619, + "groupIds": [ + "qpRqZvijKXUMPEC3Ck0U6" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 27.65209989016833, + "fontFamily": 1, + "text": "Business function:\nObject Synthesis", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "F7xGKrg7xqprxKtXY8w4_", + "originalText": "Business function:\nObject Synthesis", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSh", + "autoResize": true + }, + { + "id": "A6UMdXzK9093p4a9ikrAo", + "type": "line", + "x": 15612.822651787326, + "y": 4305.511299322275, + "width": 33.29430498440818, + "height": 19.193296671048646, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "qpRqZvijKXUMPEC3Ck0U6" + ], + "frameId": null, + "index": "bSi", + "roundness": null, + "seed": 1563186739, + "version": 4050, + "versionNonce": 269682031, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21634518201612724, + -11.362510852008604 + ], + [ + -16.344562004972463, + -18.91114958603595 + ], + [ + -33.266778730672485, + -12.163516727337878 + ], + [ + -33.29430498440818, + 0.28214708501269614 + ], + [ + -16.42887018330573, + -5.970344754343089 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 2972, + "versionNonce": 965640079, + "isDeleted": false, + "id": "EysawDVhRAwWO51Md93VG", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15751.990870323425, + "y": 4274.903176109597, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 640.0874595745308, + "height": 146.58827700732988, + "seed": 206116819, + "groupIds": [ + "Lgg2lsAEiiT5S3Lg8OguY" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "Z1ixIH_uM_0wjQ4WJ4IrK" + }, + { + "id": "auMkqLDuk3Ti0Xp22OPru", + "type": "arrow" + }, + { + "id": "9aM2Jd51MAD8XOARGX5-8", + "type": "arrow" + }, + { + "id": "UC0gyv0RbxBh9oMHMoFLq", + "type": "arrow" + }, + { + "id": "zlSPouc1atj_bkWIUJQuy", + "type": "arrow" + }, + { + "id": "ob1942x-aJeUUDKBnT6rj", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSj" + }, + { + "type": "text", + "version": 2757, + "versionNonce": 903198127, + "isDeleted": false, + "id": "Z1ixIH_uM_0wjQ4WJ4IrK", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15947.181679578465, + "y": 4313.121872588458, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 249.70584106445312, + "height": 70.15088404960646, + "seed": 1771873651, + "groupIds": [ + "Lgg2lsAEiiT5S3Lg8OguY" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 28.060353619842584, + "fontFamily": 1, + "text": "Business function:\nModel Preparation", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "EysawDVhRAwWO51Md93VG", + "originalText": "Business function:\nModel Preparation", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSk", + "autoResize": true + }, + { + "id": "VVHYLwjAhBe93WO5yCZSp", + "type": "line", + "x": 16373.017116287043, + "y": 4305.816224291054, + "width": 33.785859847900824, + "height": 22.671652281224716, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "Lgg2lsAEiiT5S3Lg8OguY" + ], + "frameId": null, + "index": "bSl", + "roundness": null, + "seed": 476938003, + "version": 3729, + "versionNonce": 1417889871, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21953928762857447, + -13.421711730583429 + ], + [ + -16.58587201126224, + -22.33837234952763 + ], + [ + -33.75792719841955, + -14.367881999918982 + ], + [ + -33.785859847900824, + 0.3332799316970858 + ], + [ + -16.671424909829533, + -7.052336166598999 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3214, + "versionNonce": 1353934447, + "isDeleted": false, + "id": "bMI1ce855OEuj-IvK4hQl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16791.86687402097, + "y": 4280.86937393756, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 325.79971197539163, + "height": 147.89867400167594, + "seed": 523379891, + "groupIds": [ + "_KEF53NxGDMJ0rBQ_MNS1" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "jMbh_s5VaSG8OFsZEQydh" + }, + { + "id": "UC0gyv0RbxBh9oMHMoFLq", + "type": "arrow" + }, + { + "id": "5Kaa7QJ4Vr1ifCgR2JiiX", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSm" + }, + { + "type": "text", + "version": 2930, + "versionNonce": 695910543, + "isDeleted": false, + "id": "jMbh_s5VaSG8OFsZEQydh", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16820.676443753782, + "y": 4316.3988604525375, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 1502680659, + "groupIds": [ + "_KEF53NxGDMJ0rBQ_MNS1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nApprove Model", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "bMI1ce855OEuj-IvK4hQl", + "originalText": "Business function:\nApprove Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSn", + "autoResize": true + }, + { + "id": "JFf7oRkHEIw2uRbJpd1qw", + "type": "line", + "x": 17102.677024894867, + "y": 4309.329161988701, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "_KEF53NxGDMJ0rBQ_MNS1" + ], + "frameId": null, + "index": "bSo", + "roundness": null, + "seed": 2053166067, + "version": 3953, + "versionNonce": 457258735, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3822, + "versionNonce": 1929019663, + "index": "bSp", + "isDeleted": false, + "id": "L55CfL0i8MXV6jtmkaF5p", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 14865.367041188787, + "y": 4717.103465701818, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 340.3676103637019, + "height": 88.76743066113535, + "seed": 296213907, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "a8W46Mhue2WZerc1zMkrH" + }, + { + "id": "Y-ujCGmMtrdr81wqKGUfy", + "type": "arrow" + }, + { + "id": "NVvDryM_AW_QCQ_yrwioa", + "type": "arrow" + }, + { + "id": "qWs9jyZR-8aXxtmbxVPpZ", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "id": "a8W46Mhue2WZerc1zMkrH", + "type": "text", + "x": 14897.174915584506, + "y": 4726.487181032386, + "width": 276.7518615722656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSq", + "roundness": null, + "seed": 1788654387, + "version": 1563, + "versionNonce": 893749039, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "text": "Application function:\nDomain Analysis", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "L55CfL0i8MXV6jtmkaF5p", + "originalText": "Application function:\nDomain Analysis", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3742, + "versionNonce": 610072495, + "index": "bSr", + "isDeleted": false, + "id": "PPnF1x5bIW8e5eH2NSGNL", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15321.54212680523, + "y": 4707.9462013605835, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 340.3676103637019, + "height": 88.76743066113535, + "seed": 631624915, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "9Ajjn1dGl_ljazpxBJnA8" + }, + { + "id": "D1USZU5QCXf1z_tvd0QHM", + "type": "arrow" + }, + { + "id": "XPIaGHSmzctn3PvW-9hvP", + "type": "arrow" + }, + { + "id": "nqw6PFzKGWi4Wkye_IGbR", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "id": "9Ajjn1dGl_ljazpxBJnA8", + "type": "text", + "x": 15353.35000120095, + "y": 4717.329916691151, + "width": 276.7518615722656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bSs", + "roundness": null, + "seed": 307872371, + "version": 1317, + "versionNonce": 207628751, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "text": "Application function:\nObject Synthesis", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "PPnF1x5bIW8e5eH2NSGNL", + "originalText": "Application function:\nObject Synthesis", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3056, + "versionNonce": 1010911823, + "isDeleted": false, + "id": "L5mPp-qXif1BCTgSDp0fS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14859.164278450484, + "y": 5273.200976380297, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 798153363, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "OBadGTJ3pFEikvW6tQIIO" + }, + { + "id": "UVRiZFoX2vg94cLLqnE6_", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSu" + }, + { + "type": "text", + "version": 2637, + "versionNonce": 1432430703, + "isDeleted": false, + "id": "OBadGTJ3pFEikvW6tQIIO", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14884.356038801754, + "y": 5278.200976380297, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 147.65989685058594, + "height": 75, + "seed": 1814040627, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<> Generic\nObject Listing", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "L5mPp-qXif1BCTgSDp0fS", + "originalText": "Artifact:\n<> Generic Object Listing", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSv", + "autoResize": true + }, + { + "id": "zr7worpEvX-qEW1HODZdB", + "type": "line", + "x": 15045.010088894207, + "y": 5280.121330404864, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "index": "bSw", + "roundness": null, + "seed": 951423443, + "version": 5093, + "versionNonce": 387990159, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "CGWGmaaFAprq7HKsZ5qBB", + "type": "line", + "x": 15049.87111164792, + "y": 5285.465456332481, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "index": "bSx", + "roundness": null, + "seed": 107601779, + "version": 3552, + "versionNonce": 574036143, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3887, + "versionNonce": 1817062095, + "isDeleted": false, + "id": "zDFe4dX_kdRkvcjwB2rtg", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15034.02308623098, + "y": 5280.508978980391, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1602451731, + "groupIds": [ + "dTwqjV4qe4sFXlVu9K9DK" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSy" + }, + { + "type": "rectangle", + "version": 2997, + "versionNonce": 570292463, + "isDeleted": false, + "id": "4t42liXEYM5ssvt4P5y3V", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15205.259707994075, + "y": 4111.364305890916, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1098440371, + "groupIds": [ + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "yEmpmJdou_a-7NLpK6uox", + "type": "text" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bSz" + }, + { + "type": "text", + "version": 2644, + "versionNonce": 1221526287, + "isDeleted": false, + "id": "yEmpmJdou_a-7NLpK6uox", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15227.69147383851, + "y": 4132.5987468359035, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 153.1798858642578, + "height": 50, + "seed": 921735251, + "groupIds": [ + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Architect", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "4t42liXEYM5ssvt4P5y3V", + "originalText": "Business role:\nData Architect", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT0", + "autoResize": true + }, + { + "type": "line", + "version": 9766, + "versionNonce": 557435183, + "index": "bT1", + "isDeleted": false, + "id": "gZMBToViqkoR_-6gnHGms", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15387.354161407195, + "y": 4111.331089288265, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 834735603, + "groupIds": [ + "HALI5MzPW3Ntrrx0KNyn_", + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10495, + "versionNonce": 1218890575, + "index": "bT2", + "isDeleted": false, + "id": "yUs304uhIxX8Uv6IwuKNJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15364.607135636863, + "y": 4121.593922181392, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 619763603, + "groupIds": [ + "HALI5MzPW3Ntrrx0KNyn_", + "Jlw0Ea0Ztoo9glbC6C6_e" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 2999, + "versionNonce": 460228975, + "isDeleted": false, + "id": "qapzWFhyaHHIFgSFzXvUA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15205.259707994075, + "y": 4110.817705954109, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 410434163, + "groupIds": [ + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "TqCBluopYvS0QT5be9HSs", + "type": "text" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bT28" + }, + { + "type": "text", + "version": 2645, + "versionNonce": 1457095567, + "isDeleted": false, + "id": "TqCBluopYvS0QT5be9HSs", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15227.69147383851, + "y": 4132.052146899097, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 153.1798858642578, + "height": 50, + "seed": 1530829373, + "groupIds": [ + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Architect", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "qapzWFhyaHHIFgSFzXvUA", + "originalText": "Business role:\nData Architect", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT2G", + "autoResize": true + }, + { + "type": "line", + "version": 9767, + "versionNonce": 1835740111, + "index": "bT2V", + "isDeleted": false, + "id": "koD8hu2M-vJgOhEuiCaGY", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15387.354161407195, + "y": 4110.784489351458, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 1899820051, + "groupIds": [ + "7p5QGy7-IFF3XOXQTDPs0", + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10496, + "versionNonce": 1506990575, + "index": "bT2l", + "isDeleted": false, + "id": "8bYoG2OmjMHo07M3XVbhU", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 15364.607135636863, + "y": 4121.047322244586, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 71977629, + "groupIds": [ + "7p5QGy7-IFF3XOXQTDPs0", + "GJDmVybq852KKs-WMypsL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "type": "rectangle", + "version": 2951, + "versionNonce": 1432339471, + "isDeleted": false, + "id": "Mc3EQx-lMrxS0Wj0bzMKU", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15978.961666983996, + "y": 4128.169753636269, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 246.9748729860165, + "height": 67.89379668398578, + "seed": 1589013811, + "groupIds": [ + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "dcx5-HSGhPmHLbcYQWWUy", + "type": "text" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bT3" + }, + { + "type": "text", + "version": 2657, + "versionNonce": 1074424367, + "isDeleted": false, + "id": "dcx5-HSGhPmHLbcYQWWUy", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15997.809203269484, + "y": 4141.063550320255, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 209.27980041503906, + "height": 50, + "seed": 578309843, + "groupIds": [ + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nArchitecture Modeller", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "Mc3EQx-lMrxS0Wj0bzMKU", + "originalText": "Business role:\nArchitecture Modeller", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT4", + "autoResize": true + }, + { + "type": "line", + "version": 9596, + "versionNonce": 1723550799, + "index": "bT5", + "isDeleted": false, + "id": "bwXMhC5NEvRirLKD5ar_c", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 16209.987575830004, + "y": 4128.136537033618, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 46988403, + "groupIds": [ + "XGvrlOp8KgdDkplF9YiDD", + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10325, + "versionNonce": 1699408495, + "index": "bT6", + "isDeleted": false, + "id": "cvFNbmoL-OJNnX-2t0NhB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 16187.240550059672, + "y": 4138.399369926746, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 2071655955, + "groupIds": [ + "XGvrlOp8KgdDkplF9YiDD", + "1C_vE_O10TqOBaW1_-7wX" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false + }, + { + "id": "4bfcdtuEsQskYEKvYVLjU", + "type": "arrow", + "x": 16941.19433261853, + "y": 4217.334363608591, + "width": 0.44871836812308175, + "height": 61.15307240254333, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bT7", + "roundness": null, + "seed": 1266203571, + "version": 2053, + "versionNonce": 1216464015, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.44871836812308175, + 61.15307240254333 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 2797, + "versionNonce": 1880644271, + "isDeleted": false, + "id": "3fCBHxVaWETsktdmybp9H", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15143.58674912922, + "y": 4543.832566454238, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 69.74310838919793, + "seed": 250400083, + "groupIds": [ + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "KscoDFXd2W508m1V5xXwV" + }, + { + "id": "WOTsr_7_PmZECNeZCq-pi", + "type": "arrow" + }, + { + "id": "qWs9jyZR-8aXxtmbxVPpZ", + "type": "arrow" + } + ], + "updated": 1755677315273, + "link": null, + "locked": false, + "index": "bT8" + }, + { + "type": "text", + "version": 2402, + "versionNonce": 817310927, + "isDeleted": false, + "id": "KscoDFXd2W508m1V5xXwV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15152.95209564449, + "y": 4558.575674843436, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 213.7198486328125, + "height": 50, + "seed": 422423283, + "groupIds": [ + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315273, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nDomain Analyst Agent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "3fCBHxVaWETsktdmybp9H", + "originalText": "App Component:\nDomain Analyst Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bT9", + "autoResize": true + }, + { + "type": "rectangle", + "version": 2953, + "versionNonce": 610239759, + "isDeleted": false, + "id": "dnZVGcRChGSyCcPBJe_Wv", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15341.336364830328, + "y": 4548.559295181264, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 247583891, + "groupIds": [ + "N8dWk6ApgWDtPoCZyZAoF", + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTA" + }, + { + "type": "rectangle", + "version": 3619, + "versionNonce": 2070547247, + "isDeleted": false, + "id": "LFcG-gLJgs2PJdflnpTmG", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15337.379326805058, + "y": 4550.979574856993, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1063242291, + "groupIds": [ + "N8dWk6ApgWDtPoCZyZAoF", + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTB" + }, + { + "type": "rectangle", + "version": 3646, + "versionNonce": 931056975, + "isDeleted": false, + "id": "Pdwy3tYU6TvgflHKN3Q-9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15337.550154257857, + "y": 4555.750025542483, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1072565203, + "groupIds": [ + "N8dWk6ApgWDtPoCZyZAoF", + "sGm_7Y54Xx877JCLzaO6q" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTC" + }, + { + "id": "9t8qyrWx-yb9D1wdOrnel", + "type": "arrow", + "x": 15248.649152928392, + "y": 4193.472538205969, + "width": 158.08864122442355, + "height": 89.1098521743279, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bTD", + "roundness": null, + "seed": 1149442419, + "version": 3235, + "versionNonce": 49656353, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -158.08864122442355, + 89.1098521743279 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "qapzWFhyaHHIFgSFzXvUA", + "focus": -0.14030629577604803, + "gap": 6.420391306871352 + }, + "endBinding": { + "elementId": "0vkp3XfpvyUmriJEERhYC", + "focus": -0.1846008025143174, + "gap": 1 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "WOTsr_7_PmZECNeZCq-pi", + "type": "arrow", + "x": 15313.149276597549, + "y": 4623.307293314778, + "width": 64.30133681539155, + "height": 76.82210393113837, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bTE", + "roundness": null, + "seed": 979727123, + "version": 1469, + "versionNonce": 1293485455, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 64.30133681539155, + 76.82210393113837 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 2980, + "versionNonce": 1109359535, + "isDeleted": false, + "id": "APTPv6Az5V2NmUUs9cPKY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14949.413759587944, + "y": 5006.191705359323, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 571185331, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "auTw0KW5mhbRPQJ2H_D1Q", + "type": "text" + }, + { + "id": "Pm6_q6QFzPZbA4UBL48SD", + "type": "arrow" + }, + { + "id": "UVRiZFoX2vg94cLLqnE6_", + "type": "arrow" + }, + { + "id": "NVvDryM_AW_QCQ_yrwioa", + "type": "arrow" + }, + { + "id": "wi0OZPoZoJ6DzOdDMV4fM", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTF" + }, + { + "type": "text", + "version": 2481, + "versionNonce": 1462906319, + "isDeleted": false, + "id": "auTw0KW5mhbRPQJ2H_D1Q", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14958.97554557398, + "y": 5011.191705359323, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 178.9198455810547, + "height": 75, + "seed": 689703507, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nConceptual Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "APTPv6Az5V2NmUUs9cPKY", + "originalText": "Data object:\nConceptual Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTG", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3583, + "versionNonce": 382617103, + "isDeleted": false, + "id": "je-_kGZ_u9jVrDkhtn7FQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15118.125901793836, + "y": 5012.114806869097, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 74270707, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTH" + }, + { + "type": "rectangle", + "version": 3951, + "versionNonce": 341355567, + "isDeleted": false, + "id": "mf2YJjgJIFxpJsEf5KZ6h", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15118.135548729566, + "y": 5012.134595189545, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 168153491, + "groupIds": [ + "xNWkF0oRSwPJvPd1msPS3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "nqw6PFzKGWi4Wkye_IGbR", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTI" + }, + { + "type": "arrow", + "version": 7842, + "versionNonce": 614254081, + "index": "bTJ", + "isDeleted": false, + "id": "Pm6_q6QFzPZbA4UBL48SD", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15379.830487859363, + "y": 5285.66604900703, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 40.633187902129066, + "height": 189.7779547987302, + "seed": 186394419, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": { + "elementId": "4hpgK0tKdfZnmCeG68gnM", + "focus": 0.2137439653697753, + "gap": 11.538758774730923 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 40.633187902129066, + -189.7779547987302 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3300, + "versionNonce": 1168066191, + "isDeleted": false, + "id": "C9zyvGD0OeAKnjGQkeT22", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15270.282996372684, + "y": 5290.8937563187865, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 1846986963, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "mWMNjQVNaXmUIgvfaDMvp" + }, + { + "id": "Pm6_q6QFzPZbA4UBL48SD", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTK" + }, + { + "type": "text", + "version": 2909, + "versionNonce": 842374319, + "isDeleted": false, + "id": "mWMNjQVNaXmUIgvfaDMvp", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15287.314783579426, + "y": 5295.8937563187865, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 163.97984313964844, + "height": 75, + "seed": 143406707, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<> Logical\nObject Definition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "C9zyvGD0OeAKnjGQkeT22", + "originalText": "Artifact:\n<> Logical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTL", + "autoResize": true + }, + { + "id": "zswuI8u1kULgp4jw3rzmo", + "type": "line", + "x": 15456.223063431018, + "y": 5297.814110343355, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "index": "bTM", + "roundness": null, + "seed": 960688147, + "version": 5335, + "versionNonce": 31207119, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "f8LUylhnGA-eMN11J5b8-", + "type": "line", + "x": 15461.084086184732, + "y": 5303.1582362709705, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "index": "bTN", + "roundness": null, + "seed": 1110537651, + "version": 3794, + "versionNonce": 1596685551, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4129, + "versionNonce": 229377807, + "isDeleted": false, + "id": "2FADJi3Ul4nrczPE6y73z", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15445.236060767791, + "y": 5298.20175891888, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1652442963, + "groupIds": [ + "R1l8oQ0vGnKCwv4Buso2J" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTO" + }, + { + "type": "rectangle", + "version": 3060, + "versionNonce": 1272335663, + "isDeleted": false, + "id": "4hpgK0tKdfZnmCeG68gnM", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15356.122442391468, + "y": 4999.349335433569, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 813688051, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "g7tSe9PQK6bDpWt2QO7t3", + "type": "text" + }, + { + "id": "QVOlcrqJ5xmRaYy8edi5B", + "type": "arrow" + }, + { + "id": "D1USZU5QCXf1z_tvd0QHM", + "type": "arrow" + }, + { + "id": "Pm6_q6QFzPZbA4UBL48SD", + "type": "arrow" + }, + { + "id": "3ESbNWBcI1cBNjAc9Gq9-", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTP" + }, + { + "type": "text", + "version": 2602, + "versionNonce": 1964166991, + "isDeleted": false, + "id": "g7tSe9PQK6bDpWt2QO7t3", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15385.334207015203, + "y": 5004.349335433569, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 139.61988830566406, + "height": 75, + "seed": 868011667, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nLogical Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "4hpgK0tKdfZnmCeG68gnM", + "originalText": "Data object:\nLogical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTQ", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3657, + "versionNonce": 320112527, + "isDeleted": false, + "id": "ITLaXNDwrjNMRoQIRu7ij", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15524.83458459736, + "y": 5005.272436943343, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1055622195, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTR" + }, + { + "type": "rectangle", + "version": 4028, + "versionNonce": 22724015, + "isDeleted": false, + "id": "-anmKW3ksniwIfAGMP_Jo", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15524.84423153309, + "y": 5005.29222526379, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 166888915, + "groupIds": [ + "N7IKip1lLe6LVq_klnG9W" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "QVOlcrqJ5xmRaYy8edi5B", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTS" + }, + { + "type": "arrow", + "version": 14375, + "versionNonce": 672266689, + "index": "bTT", + "isDeleted": false, + "id": "nqw6PFzKGWi4Wkye_IGbR", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15378.48088086924, + "y": 4797.236865387568, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 223.0654682633649, + "height": 220.44440035933712, + "seed": 199775091, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "L1pS9BfTcSyx2SmIortEw" + } + ], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "PPnF1x5bIW8e5eH2NSGNL", + "focus": 0.31522855722112386, + "gap": 1 + }, + "endBinding": { + "elementId": "mf2YJjgJIFxpJsEf5KZ6h", + "focus": 2.0760819228869556, + "gap": 14.0351675809876 + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -223.0654682633649, + 220.44440035933712 + ] + ] + }, + { + "id": "L1pS9BfTcSyx2SmIortEw", + "type": "text", + "x": 17163.558579353103, + "y": 4739.010280006921, + "width": 59.07997131347656, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bTU", + "roundness": null, + "seed": 353594643, + "version": 146, + "versionNonce": 2119118668, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "read", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "nqw6PFzKGWi4Wkye_IGbR", + "originalText": "read", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 13891, + "versionNonce": 1510939041, + "index": "bTV", + "isDeleted": false, + "id": "NVvDryM_AW_QCQ_yrwioa", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15022.767879977397, + "y": 4806.527326550433, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 1.4369458498877066, + "height": 191.21984335474826, + "seed": 686445235, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [ + { + "type": "text", + "id": "kSguHxLTYrSwE4ALfyMEt" + } + ], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": 0.07695068955881496, + "gap": 1 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.4369458498877066, + 191.21984335474826 + ] + ] + }, + { + "id": "kSguHxLTYrSwE4ALfyMEt", + "type": "text", + "x": 16911.386283450167, + "y": 4738.3992453425135, + "width": 68.85195922851562, + "height": 35, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bTW", + "roundness": null, + "seed": 403932243, + "version": 137, + "versionNonce": 633562572, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "write", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "NVvDryM_AW_QCQ_yrwioa", + "originalText": "write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3146, + "versionNonce": 1659039279, + "isDeleted": false, + "id": "jYohxCNXaggYXZIgKzc8t", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15832.183626096441, + "y": 4993.1401294756715, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1516601843, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "PRZHhJpMGSxDUQ8oyxWRS", + "type": "text" + }, + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + }, + { + "id": "z8L8HHJ74uk2e3Tbf_m6h", + "type": "arrow" + }, + { + "id": "aiGwLFCeZKk5T2ghP1g3_", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTX" + }, + { + "type": "text", + "version": 2704, + "versionNonce": 602099791, + "isDeleted": false, + "id": "PRZHhJpMGSxDUQ8oyxWRS", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15838.965420932574, + "y": 5014.374570420659, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 184.47982788085938, + "height": 50, + "seed": 686214035, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nArchitecture Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "jYohxCNXaggYXZIgKzc8t", + "originalText": "Data object:\nArchitecture Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTY", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3749, + "versionNonce": 377014415, + "isDeleted": false, + "id": "GeNqun0oUb4_IpiVahX6_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16000.895768302333, + "y": 4999.063230985445, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1473110323, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTZ" + }, + { + "type": "rectangle", + "version": 4116, + "versionNonce": 1888411311, + "isDeleted": false, + "id": "qzxygwfFOpkx059A7sg20", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16000.905415238063, + "y": 4999.083019305893, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 1887519443, + "groupIds": [ + "Di6GUmWSvuahVWX4BjJkD" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "us0lX5xsh2EY-JuT-VOFU", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTa" + }, + { + "type": "rectangle", + "version": 3480, + "versionNonce": 630996719, + "isDeleted": false, + "id": "2RRirt9wLCZtP47QsixY6", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15770.061134151267, + "y": 5240.3656209250985, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 194474099, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "NSOrhGG548QhrMFreZuYw" + }, + { + "id": "3pcyzeXzsI6wf96yzb6wS", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTb" + }, + { + "type": "text", + "version": 3114, + "versionNonce": 213158159, + "isDeleted": false, + "id": "NSOrhGG548QhrMFreZuYw", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15776.8429289874, + "y": 5245.3656209250985, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 184.47982788085938, + "height": 75, + "seed": 1792469523, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<>\nArchitecture Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "2RRirt9wLCZtP47QsixY6", + "originalText": "Artifact:\n<> Architecture Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTc", + "autoResize": true + }, + { + "id": "yKyQZ5xYizfZlX3ljBkMm", + "type": "line", + "x": 15955.671430590384, + "y": 5247.285974949667, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "index": "bTd", + "roundness": null, + "seed": 1396060083, + "version": 5517, + "versionNonce": 157471055, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "3jYqAlXB0sJcYmVYJLQX7", + "type": "line", + "x": 15960.532453344098, + "y": 5252.6301008772825, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "index": "bTe", + "roundness": null, + "seed": 651936083, + "version": 3976, + "versionNonce": 851038063, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4311, + "versionNonce": 818678159, + "isDeleted": false, + "id": "Rc0hNWnQqTVtkgK2UnO4W", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15944.684427927157, + "y": 5247.673623525192, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1058938611, + "groupIds": [ + "_74cdS12U--ryREEAMD6i" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTf" + }, + { + "type": "arrow", + "version": 7848, + "versionNonce": 857554305, + "index": "bTg", + "isDeleted": false, + "id": "z8L8HHJ74uk2e3Tbf_m6h", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16047.40858695145, + "y": 5355.475256060173, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 98.50942192125694, + "height": 270.10994438666785, + "seed": 109299859, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "1i-Sd2TX0jmyJ0cu4iMdY", + "focus": -0.20954256526700363, + "gap": 13.405494288288537 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -98.50942192125694, + -270.10994438666785 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3669, + "versionNonce": 1693725135, + "isDeleted": false, + "id": "1i-Sd2TX0jmyJ0cu4iMdY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15987.846598345765, + "y": 5368.880750348461, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 214.43329569747027, + "height": 92.03451626659263, + "seed": 1388527155, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "uvA53K9SAX_ZGOGV0gFUr" + }, + { + "id": "z8L8HHJ74uk2e3Tbf_m6h", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTh" + }, + { + "type": "text", + "version": 3342, + "versionNonce": 1179328495, + "isDeleted": false, + "id": "uvA53K9SAX_ZGOGV0gFUr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15995.213507119792, + "y": 5374.708340497472, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 199.69947814941406, + "height": 81.20692611758173, + "seed": 2126708691, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 21.655180298021794, + "fontFamily": 1, + "text": "Artifact:\n<<*.archimate>>\nArchitecture Model", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "1i-Sd2TX0jmyJ0cu4iMdY", + "originalText": "Artifact:\n<<*.archimate>> Architecture Model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTi", + "autoResize": true + }, + { + "id": "zuGuSlw_U0ewvNHUPcXtM", + "type": "line", + "x": 16188.817820073684, + "y": 5376.37382605487, + "width": 17.54845777379122, + "height": 19.972720320632373, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "index": "bTj", + "roundness": null, + "seed": 1150913907, + "version": 5706, + "versionNonce": 866725935, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -12.113993775151252, + 0.037633259612622066 + ], + [ + -11.976688234649934, + 19.972720320632373 + ], + [ + 5.434463998639967, + 19.8287209143135 + ], + [ + 5.29933331997805, + 5.835913700978125 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "3Emce6RHznDa8Jbxg8lbg", + "type": "line", + "x": 16194.081136281904, + "y": 5382.160226579762, + "width": 5.621496602404443, + "height": 5.844110723204111, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "index": "bTk", + "roundness": null, + "seed": 1468884755, + "version": 4165, + "versionNonce": 1183928911, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.621496602404443, + 0.1351311362982975 + ], + [ + -5.474139820497525, + -5.708979586905814 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4498, + "versionNonce": 678441071, + "isDeleted": false, + "id": "9Pt3svqe280jSdNLNdhY_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16176.921543893332, + "y": 5376.793556044632, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 17.00270734471247, + "height": 19.484128973846662, + "seed": 1041566899, + "groupIds": [ + "OBHiO1qlnL7YNjWdrcZFF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTl" + }, + { + "type": "arrow", + "version": 7801, + "versionNonce": 846980449, + "index": "bTm", + "isDeleted": false, + "id": "3ESbNWBcI1cBNjAc9Gq9-", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15517.327785028323, + "y": 5426.422029073465, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 38.07960412866851, + "height": 342.7506539193264, + "seed": 1809251923, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "trxhz3YophkmRie0J0OsH", + "focus": -0.20813581932445946, + "gap": 13.405494288284899 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -38.07960412866851, + -342.7506539193264 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3605, + "versionNonce": 858005679, + "isDeleted": false, + "id": "trxhz3YophkmRie0J0OsH", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15447.787706587565, + "y": 5439.82752336175, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 110, + "seed": 464108531, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "yyutMeJLuCdrcmzZcYycV" + }, + { + "id": "3ESbNWBcI1cBNjAc9Gq9-", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTn" + }, + { + "type": "text", + "version": 3291, + "versionNonce": 1784296143, + "isDeleted": false, + "id": "yyutMeJLuCdrcmzZcYycV", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15474.519467854363, + "y": 5444.82752336175, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 144.57989501953125, + "height": 100, + "seed": 1771292051, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<<*.xml>> Archi\nLogical Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "trxhz3YophkmRie0J0OsH", + "originalText": "Artifact:\n<<*.xml>> Archi Logical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTo", + "autoResize": true + }, + { + "id": "QJUVvb89KiYeZssN2LSmo", + "type": "line", + "x": 15633.398003026683, + "y": 5446.747877386319, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "index": "bTp", + "roundness": null, + "seed": 751541043, + "version": 5640, + "versionNonce": 695798543, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "odO0dPtzzkdQUFBmK5O89", + "type": "line", + "x": 15638.259025780397, + "y": 5452.092003313934, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "index": "bTq", + "roundness": null, + "seed": 297254099, + "version": 4099, + "versionNonce": 1868747055, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4432, + "versionNonce": 2087637839, + "isDeleted": false, + "id": "7SM0LIJPEhHYPaZUvrPM-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15622.411000363456, + "y": 5447.135525961843, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1945021043, + "groupIds": [ + "GKnD0DdVpiLnF0dmPR1q3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTr" + }, + { + "type": "arrow", + "version": 7904, + "versionNonce": 687182191, + "index": "bTs", + "isDeleted": false, + "id": "wi0OZPoZoJ6DzOdDMV4fM", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15140.437812390523, + "y": 5427.510166916886, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 64.90222886159245, + "height": 327.76903592533563, + "seed": 2016863251, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -64.90222886159245, + -327.76903592533563 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3759, + "versionNonce": 775916431, + "isDeleted": false, + "id": "SOvgPdORIZRjZFXMyY3vZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15055.574234840446, + "y": 5439.596578728307, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 110, + "seed": 1720117683, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Yu81s1kx84LlAhyQ2uD1J" + }, + { + "id": "wi0OZPoZoJ6DzOdDMV4fM", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTt" + }, + { + "type": "text", + "version": 3461, + "versionNonce": 142950831, + "isDeleted": false, + "id": "Yu81s1kx84LlAhyQ2uD1J", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15065.136020826481, + "y": 5444.596578728307, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 178.9198455810547, + "height": 100, + "seed": 1141193555, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Artifact:\n<<*.xml>> Archi\nConceptual Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "SOvgPdORIZRjZFXMyY3vZ", + "originalText": "Artifact:\n<<*.xml>> Archi Conceptual Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTu", + "autoResize": true + }, + { + "id": "gcNhf8xnl7qoLfgi5kfyV", + "type": "line", + "x": 15241.184531279563, + "y": 5446.208437657479, + "width": 16.207168476352308, + "height": 18.44613625540387, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "index": "bTv", + "roundness": null, + "seed": 755521779, + "version": 5792, + "versionNonce": 418329551, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -11.188079349547479, + 0.03475681947202247 + ], + [ + -11.061268546209249, + 18.44613625540387 + ], + [ + 5.019089126804829, + 18.313143221555038 + ], + [ + 4.894286953096525, + 5.389854640472549 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "RlvXvvEH0EzdbqfC6haq7", + "type": "line", + "x": 15246.045554033277, + "y": 5451.5525635850945, + "width": 5.191826182041041, + "height": 5.397425135950471, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "index": "bTw", + "roundness": null, + "seed": 1863762579, + "version": 4251, + "versionNonce": 127263215, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.191826182041041, + 0.12480259636595292 + ], + [ + -5.055732388427714, + -5.272622539584518 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4586, + "versionNonce": 1703005199, + "isDeleted": false, + "id": "jUIyT0cAgSGKWMLAgzG6z", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15230.197528616336, + "y": 5446.596086233004, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 15.703131639375611, + "height": 17.994889634446075, + "seed": 1659303987, + "groupIds": [ + "zKVKoX5MCZvGK73R461EA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bTx" + }, + { + "type": "arrow", + "version": 14069, + "versionNonce": 1132106049, + "index": "bTy", + "isDeleted": false, + "id": "aiGwLFCeZKk5T2ghP1g3_", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 15943.318176347198, + "y": 4800.6226195107665, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.587076613184763, + "height": 184.48702968206544, + "seed": 106920403, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315487, + "link": null, + "locked": false, + "startBinding": { + "elementId": "r5wSlJTMg1xdFyHlN1pk8", + "focus": 0.06286891644348463, + "gap": 1.055106062489358 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.587076613184763, + 184.48702968206544 + ] + ] + }, + { + "id": "ob1942x-aJeUUDKBnT6rj", + "type": "arrow", + "x": 16116.15068567565, + "y": 4205.800175364508, + "width": 1.7283993024066149, + "height": 68.79107043924341, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bTz", + "roundness": null, + "seed": 1452722035, + "version": 2824, + "versionNonce": 1274762319, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.7283993024066149, + 68.79107043924341 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "qWs9jyZR-8aXxtmbxVPpZ", + "type": "arrow", + "x": 15216.265616085719, + "y": 4621.543343465098, + "width": 75.80802914048763, + "height": 92.22642211935272, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bU0", + "roundness": null, + "seed": 1775460627, + "version": 2202, + "versionNonce": 400946433, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "GZHQv2QrHBo6xfD1WCxre" + } + ], + "updated": 1755677315488, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -75.80802914048763, + 92.22642211935272 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "3fCBHxVaWETsktdmybp9H", + "focus": 0.05751671492203296, + "gap": 7.967668621661687 + }, + "endBinding": { + "elementId": "L55CfL0i8MXV6jtmkaF5p", + "focus": 0.3178270180251838, + "gap": 3.333700117367698 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "GZHQv2QrHBo6xfD1WCxre", + "type": "text", + "x": 17053.528357337036, + "y": 4503.982230150307, + "width": 100.89991760253906, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bU1", + "roundness": null, + "seed": 1233897139, + "version": 201, + "versionNonce": 1800917876, + "isDeleted": false, + "boundElements": [], + "updated": 1754825375160, + "link": null, + "locked": false, + "text": "realization", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "qWs9jyZR-8aXxtmbxVPpZ", + "originalText": "realization", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3081, + "versionNonce": 1398787215, + "isDeleted": false, + "id": "r5yjR4qOb6rOcI74ro1hF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 15991.698075959495, + "y": 4538.602223786904, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 85, + "seed": 208042067, + "groupIds": [ + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "O69My6oamN39wKnmlWdBW" + }, + { + "id": "B_4wZo5GBy6hJDL71N1vJ", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU2" + }, + { + "type": "text", + "version": 2725, + "versionNonce": 32858799, + "isDeleted": false, + "id": "O69My6oamN39wKnmlWdBW", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16016.403426442052, + "y": 4543.602223786904, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 183.0398406982422, + "height": 75, + "seed": 809104883, + "groupIds": [ + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nArchimate Modeller\nAgent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "r5yjR4qOb6rOcI74ro1hF", + "originalText": "App Component:\nArchimate Modeller Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bU3", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3234, + "versionNonce": 707904239, + "isDeleted": false, + "id": "lE1VzNXAqIJ8gGhLieXZd", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16189.447691660604, + "y": 4543.32895251393, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 873250707, + "groupIds": [ + "HEB-7qETVKIH6DXJlO1_P", + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU4" + }, + { + "type": "rectangle", + "version": 3900, + "versionNonce": 1811516687, + "isDeleted": false, + "id": "3rcC2P5mLhfuWt7K75Gh7", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16185.490653635334, + "y": 4545.749232189659, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1914000691, + "groupIds": [ + "HEB-7qETVKIH6DXJlO1_P", + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU5" + }, + { + "type": "rectangle", + "version": 3925, + "versionNonce": 1384321839, + "isDeleted": false, + "id": "YFaDoMC3g7VqQxM89i5IS", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16185.661481088133, + "y": 4550.519682875149, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 968505043, + "groupIds": [ + "HEB-7qETVKIH6DXJlO1_P", + "4Z-miMWfIbrnrQG0xFY4K" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU6" + }, + { + "id": "B_4wZo5GBy6hJDL71N1vJ", + "type": "arrow", + "x": 16087.68721214409, + "y": 4632.8126294820095, + "width": 22.750610269800745, + "height": 73.72205129199483, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bU7", + "roundness": null, + "seed": 697427059, + "version": 2789, + "versionNonce": 1880844481, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -22.750610269800745, + 73.72205129199483 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "r5yjR4qOb6rOcI74ro1hF", + "focus": 0.033077845877622726, + "gap": 9.210405695105692 + }, + "endBinding": { + "elementId": "r5wSlJTMg1xdFyHlN1pk8", + "focus": 0.5720560982680579, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3254, + "versionNonce": 1315787631, + "isDeleted": false, + "id": "R02JxWp1_JlKwkoBTypSA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16459.144056749858, + "y": 4541.9011187210135, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 85, + "seed": 1231216147, + "groupIds": [ + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "K0GoAiVEiz6HjV2-CEgSP" + }, + { + "id": "Uvf3v0XWzRyGtu9MF39di", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bU8" + }, + { + "type": "text", + "version": 2936, + "versionNonce": 326045071, + "isDeleted": false, + "id": "K0GoAiVEiz6HjV2-CEgSP", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16495.729396856437, + "y": 4546.9011187210135, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 159.2798614501953, + "height": 75, + "seed": 1680057267, + "groupIds": [ + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nDevOps Engineer\nAgent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "R02JxWp1_JlKwkoBTypSA", + "originalText": "App Component:\nDevOps Engineer Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bU9", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3405, + "versionNonce": 1618248623, + "isDeleted": false, + "id": "2z1aYCIn2n0_pl96ssyua", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16656.89367245097, + "y": 4546.62784744804, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 570078547, + "groupIds": [ + "LX1KFVfPq_3CNcT8tsXxW", + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUA" + }, + { + "type": "rectangle", + "version": 4071, + "versionNonce": 1973827023, + "isDeleted": false, + "id": "KCwjQCaGSjoqAtrvv8qNj", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16652.9366344257, + "y": 4549.04812712377, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1648268019, + "groupIds": [ + "LX1KFVfPq_3CNcT8tsXxW", + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUB" + }, + { + "type": "rectangle", + "version": 4096, + "versionNonce": 2048697327, + "isDeleted": false, + "id": "41sDLTDEo_I7zUqirFYoD", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16653.1074618785, + "y": 4553.81857780926, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1433779347, + "groupIds": [ + "LX1KFVfPq_3CNcT8tsXxW", + "7H-WrbrCnfH-pAh_uEUHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUC" + }, + { + "id": "Uvf3v0XWzRyGtu9MF39di", + "type": "arrow", + "x": 16550.309419920533, + "y": 4636.111524416123, + "width": 28.195542933550314, + "height": 71.20613443200637, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bUD", + "roundness": null, + "seed": 1465299507, + "version": 2912, + "versionNonce": 1561503905, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -28.195542933550314, + 71.20613443200637 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": 0.3443126531644863, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3884, + "versionNonce": 2078913583, + "index": "bUE", + "isDeleted": false, + "id": "BR6_GD6drGeg44ixlRD80", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 16283.76001152541, + "y": 4707.669903857416, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 115, + "seed": 147321811, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "KMWx4maZBNvI5LU_XXYcR" + }, + { + "id": "cRAJtOfQPungml6LIfwyO", + "type": "arrow" + }, + { + "id": "zlSPouc1atj_bkWIUJQuy", + "type": "arrow" + }, + { + "id": "Uvf3v0XWzRyGtu9MF39di", + "type": "arrow" + }, + { + "id": "us0lX5xsh2EY-JuT-VOFU", + "type": "arrow" + }, + { + "id": "NLo2tt7n8WZSzF4FoM_kv", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false + }, + { + "id": "KMWx4maZBNvI5LU_XXYcR", + "type": "text", + "x": 16296.471397498011, + "y": 4712.669903857416, + "width": 283.44384765625, + "height": 105, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bUF", + "roundness": null, + "seed": 702546291, + "version": 1884, + "versionNonce": 1008817743, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "text": "Application function:\nGitflow - Create Pull\nRequest", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "BR6_GD6drGeg44ixlRD80", + "originalText": "Application function:\nGitflow - Create Pull Request", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3113, + "versionNonce": 2018936047, + "isDeleted": false, + "id": "NvBRmIe-MNELXsV2a48ch", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16831.822960589016, + "y": 4138.009190944374, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 246.9748729860165, + "height": 67.89379668398578, + "seed": 870669075, + "groupIds": [ + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "6VJ-zua5KdVPrlaykN_CL", + "type": "text" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUG" + }, + { + "type": "text", + "version": 2843, + "versionNonce": 1547046671, + "isDeleted": false, + "id": "6VJ-zua5KdVPrlaykN_CL", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16852.240473681144, + "y": 4150.902987628359, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 206.1398468017578, + "height": 50, + "seed": 860782771, + "groupIds": [ + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Product Owner", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "NvBRmIe-MNELXsV2a48ch", + "originalText": "Business role:\nData Product Owner", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUH", + "autoResize": true + }, + { + "type": "line", + "version": 9763, + "versionNonce": 1272927535, + "index": "bUI", + "isDeleted": false, + "id": "94kbz4lET764uGkJlIwZr", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 17062.848869435024, + "y": 4137.975974341724, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 1640100435, + "groupIds": [ + "3TAl1wW0mPEfEyXJeRuK9", + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10490, + "versionNonce": 515561295, + "index": "bUJ", + "isDeleted": false, + "id": "kM2uicxKsK6ns-PmS4V5Q", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 17040.101843664692, + "y": 4148.238807234852, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 1454067, + "groupIds": [ + "3TAl1wW0mPEfEyXJeRuK9", + "vFViES9FRVVdWFUfAK5li" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false + }, + { + "id": "iAhy1-5wJRKGEo2-d0GDC", + "type": "arrow", + "x": 15342.525720449976, + "y": 4199.309335793007, + "width": 106.08560855906035, + "height": 77.76050549102138, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bUK", + "roundness": null, + "seed": 1884404115, + "version": 2942, + "versionNonce": 723588463, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 106.08560855906035, + 77.76050549102138 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "arrow", + "version": 14473, + "versionNonce": 1730655329, + "index": "bUL", + "isDeleted": false, + "id": "us0lX5xsh2EY-JuT-VOFU", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 16038.185279114372, + "y": 4985.5392072291, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 246.98205748435794, + "height": 167.83766778809695, + "seed": 262868787, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "startBinding": { + "elementId": "qzxygwfFOpkx059A7sg20", + "focus": 0.15736429117515605, + "gap": 14 + }, + "endBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": 0.3167690542452295, + "gap": 5.777866081233873 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 246.98205748435794, + -167.83766778809695 + ] + ] + }, + { + "type": "rectangle", + "version": 3285, + "versionNonce": 1352648111, + "isDeleted": false, + "id": "RM_rfM_tPNFtgsgy2k5nP", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16319.173848450097, + "y": 5004.881430481847, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1351135443, + "groupIds": [ + "cU7OwM1cPZVtB84Jqt0Is" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "txhYqvMvotHo2eVOlkyOk", + "type": "text" + }, + { + "id": "EVt1PETVAKz2_i3B2-XwR", + "type": "arrow" + }, + { + "id": "nMy6oGjEbqrG3CJeTNm5c", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUM" + }, + { + "type": "text", + "version": 2858, + "versionNonce": 51984335, + "isDeleted": false, + "id": "txhYqvMvotHo2eVOlkyOk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16353.945603003027, + "y": 5026.115871426835, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 50, + "seed": 344006259, + "groupIds": [ + "cU7OwM1cPZVtB84Jqt0Is" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nPull Request", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "RM_rfM_tPNFtgsgy2k5nP", + "originalText": "Data object:\nPull Request", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUN", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3891, + "versionNonce": 635397615, + "isDeleted": false, + "id": "W73Q481X6cDUjxJNqmYq7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16487.88599065599, + "y": 5010.804531991619, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1180358675, + "groupIds": [ + "cU7OwM1cPZVtB84Jqt0Is" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUO" + }, + { + "type": "rectangle", + "version": 4255, + "versionNonce": 133877775, + "isDeleted": false, + "id": "Bhl5nyG7YZ2IVUv7ARMYU", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16487.89563759172, + "y": 5010.824320312068, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 873225651, + "groupIds": [ + "cU7OwM1cPZVtB84Jqt0Is" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUP" + }, + { + "type": "arrow", + "version": 13854, + "versionNonce": 56882735, + "index": "bUQ", + "isDeleted": false, + "id": "EVt1PETVAKz2_i3B2-XwR", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 16426.47760030111, + "y": 4830.256360406441, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 0.553505081225012, + "height": 166.17560637284714, + "seed": 683421523, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -0.553505081225012, + 166.17560637284714 + ] + ] + }, + { + "type": "rectangle", + "version": 2817, + "versionNonce": 520312911, + "isDeleted": false, + "id": "LaFyXL6XrI7JMk8sAWQUx", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16723.875678251166, + "y": 5420.567122672569, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1187040499, + "groupIds": [ + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "c5EVoIQPC4_je_uTJWslZ" + }, + { + "id": "DFKnVan90gD9yT2E-zhFz", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUR" + }, + { + "type": "text", + "version": 2372, + "versionNonce": 1890678383, + "isDeleted": false, + "id": "c5EVoIQPC4_je_uTJWslZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16751.64745569228, + "y": 5441.801563617557, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 142.49986267089844, + "height": 50, + "seed": 564180627, + "groupIds": [ + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Node:\nGit Repository", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "LaFyXL6XrI7JMk8sAWQUx", + "originalText": "Node:\nGit Repository", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUS", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3584, + "versionNonce": 1060556943, + "isDeleted": false, + "id": "xnPC2vWiP0C8TI6pAlR02", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16892.421860571285, + "y": 5428.856103901934, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 19.248182578072566, + "height": 15.363838546045104, + "seed": 403860531, + "groupIds": [ + "gcwhDNiHfAuKx9XY5pl2-", + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUT" + }, + { + "id": "2DOhW6dmR-aA_SW4bbJaM", + "type": "line", + "x": 16914.659522257472, + "y": 5426.6757108563115, + "width": 3.003079486571451, + "height": 17.54457135406796, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "gcwhDNiHfAuKx9XY5pl2-", + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "index": "bUU", + "roundness": null, + "seed": 1845259731, + "version": 2315, + "versionNonce": 1682695855, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21179345361984853, + 14.972937267542322 + ], + [ + -2.995690343063882, + 17.54457135406796 + ], + [ + -3.003079486571451, + 2.118571281484566 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "t1TeljzMDNUq3MxOmBJo9", + "type": "line", + "x": 16914.669951295775, + "y": 5426.623351468909, + "width": 22.22666794475111, + "height": 2.206035892395766, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "gcwhDNiHfAuKx9XY5pl2-", + "fANgfe-X-DbF5wfHMFrpf" + ], + "frameId": null, + "index": "bUV", + "roundness": null, + "seed": 645217139, + "version": 1906, + "versionNonce": 1855535311, + "isDeleted": false, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -18.34081603072079, + 0.10124955609878751 + ], + [ + -22.22666794475111, + 2.1495365046023367 + ], + [ + -3.1016389619817986, + 2.206035892395766 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3640, + "versionNonce": 62342895, + "isDeleted": false, + "id": "v948jtnERrzLOofthcgsc", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16699.480610003586, + "y": 5186.908489620625, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 235.45687427491387, + "height": 90.45212049767441, + "seed": 499340563, + "groupIds": [ + "IPG7oGzY1-6m9dhItjMuz" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "3Mz0lHsd2L8CZq13fppNz" + }, + { + "id": "DFKnVan90gD9yT2E-zhFz", + "type": "arrow" + }, + { + "id": "nMy6oGjEbqrG3CJeTNm5c", + "type": "arrow" + }, + { + "id": "0er5cs7XhaE_09cQEG4IZ", + "type": "arrow" + }, + { + "id": "cRAJtOfQPungml6LIfwyO", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUW" + }, + { + "type": "text", + "version": 3171, + "versionNonce": 36606223, + "isDeleted": false, + "id": "3Mz0lHsd2L8CZq13fppNz", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16741.14509755608, + "y": 5212.914838785922, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 152.12789916992188, + "height": 59.44577133237688, + "seed": 1667054259, + "groupIds": [ + "IPG7oGzY1-6m9dhItjMuz" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 23.778308532950753, + "fontFamily": 1, + "text": "Tech service:\nGit", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "v948jtnERrzLOofthcgsc", + "originalText": "Tech service:\nGit", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUX", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5191, + "versionNonce": 1192286063, + "isDeleted": false, + "id": "X60q-UrVfsHBOox16VVMl", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16892.941468619036, + "y": 5195.980875686454, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 31.263227168466805, + "height": 11.596463525239006, + "seed": 1407806547, + "groupIds": [ + "IPG7oGzY1-6m9dhItjMuz" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUY" + }, + { + "type": "arrow", + "version": 8239, + "versionNonce": 889328015, + "index": "bUZ", + "isDeleted": false, + "id": "DFKnVan90gD9yT2E-zhFz", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16818.014125856702, + "y": 5414.866109041191, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.1783363207687216, + "height": 136.57232933546675, + "seed": 1933470195, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 1.1783363207687216, + -136.57232933546675 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 14711, + "versionNonce": 802455617, + "index": "bUa", + "isDeleted": false, + "id": "nMy6oGjEbqrG3CJeTNm5c", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 16708.235457393646, + "y": 5185.911327184292, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 183.3767410968794, + "height": 98.40350434668744, + "seed": 107131795, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "startBinding": { + "elementId": "v948jtnERrzLOofthcgsc", + "focus": -0.11304383994961471, + "gap": 3.722260352963072 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -183.3767410968794, + -98.40350434668744 + ] + ] + }, + { + "type": "arrow", + "version": 7466, + "versionNonce": 1229470159, + "index": "bUb", + "isDeleted": false, + "id": "0er5cs7XhaE_09cQEG4IZ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16845.252245005715, + "y": 5186.253381742426, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 57.45441119697716, + "height": 147.68113943616936, + "seed": 1837943091, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 57.45441119697716, + -147.68113943616936 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 8062, + "versionNonce": 79482913, + "index": "bUc", + "isDeleted": false, + "id": "cRAJtOfQPungml6LIfwyO", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16786.626147924737, + "y": 5186.037973742856, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 90.49686588186523, + "height": 151.2574281676043, + "seed": 1042492115, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "startBinding": { + "elementId": "v948jtnERrzLOofthcgsc", + "focus": -0.020743953428697174, + "gap": 1 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -90.49686588186523, + -151.2574281676043 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 2867, + "versionNonce": 735138319, + "isDeleted": false, + "id": "HwNZjIg0QM0twAJt7WmwJ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16868.209109685526, + "y": 4950.292135446239, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.07952464098153, + "seed": 482105459, + "groupIds": [ + "3QcE48GeewApXj978bUg0" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "F-Q2PX3UYT7AlWgx2Zb_K" + }, + { + "id": "5Kaa7QJ4Vr1ifCgR2JiiX", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUd" + }, + { + "type": "text", + "version": 2420, + "versionNonce": 756693039, + "isDeleted": false, + "id": "F-Q2PX3UYT7AlWgx2Zb_K", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16887.320875835136, + "y": 4971.37166008722, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 159.81988525390625, + "height": 50, + "seed": 1461637651, + "groupIds": [ + "3QcE48GeewApXj978bUg0" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App service:\nGit PR Approval", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "HwNZjIg0QM0twAJt7WmwJ", + "originalText": "App service:\nGit PR Approval", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUe", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4433, + "versionNonce": 2090949199, + "isDeleted": false, + "id": "CPwKNS0-KCBNCIchzlOyP", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17029.39991318124, + "y": 4957.399919514771, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 26.295585428327534, + "height": 9.753817021231114, + "seed": 1044453299, + "groupIds": [ + "3QcE48GeewApXj978bUg0" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUf" + }, + { + "type": "rectangle", + "version": 2981, + "versionNonce": 792672367, + "isDeleted": false, + "id": "TcknGCUkZcMiPm7tCHpyi", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16606.756631433404, + "y": 4955.064064505378, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.07952464098153, + "seed": 1078569299, + "groupIds": [ + "EZxPqNUsRr5hkoN1D8tOE" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "VDqeBGM4bbPq8N5MMJRTk" + }, + { + "id": "cRAJtOfQPungml6LIfwyO", + "type": "arrow" + }, + { + "id": "NLo2tt7n8WZSzF4FoM_kv", + "type": "arrow" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUg" + }, + { + "type": "text", + "version": 2551, + "versionNonce": 716984975, + "isDeleted": false, + "id": "VDqeBGM4bbPq8N5MMJRTk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16634.07838903809, + "y": 4976.14358914636, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 143.39990234375, + "height": 50, + "seed": 1116669683, + "groupIds": [ + "EZxPqNUsRr5hkoN1D8tOE" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App service:\nGit create PR", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "TcknGCUkZcMiPm7tCHpyi", + "originalText": "App service:\nGit create PR", + "lineHeight": 1.25, + "baseline": 18, + "index": "bUh", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4539, + "versionNonce": 874920655, + "isDeleted": false, + "id": "Jp4PVB0ukUkp9VVeDFP61", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16767.94743492912, + "y": 4962.17184857391, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 26.295585428327534, + "height": 9.753817021231114, + "seed": 999796883, + "groupIds": [ + "EZxPqNUsRr5hkoN1D8tOE" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bUi" + }, + { + "type": "arrow", + "version": 9779, + "versionNonce": 1091435489, + "index": "bUj", + "isDeleted": false, + "id": "NLo2tt7n8WZSzF4FoM_kv", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 16657.060914437217, + "y": 4952.394586879833, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 77.80575911757478, + "height": 126.72349309818492, + "seed": 219817523, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755677315488, + "link": null, + "locked": false, + "startBinding": { + "elementId": "TcknGCUkZcMiPm7tCHpyi", + "focus": -0.19384909201700298, + "gap": 2.669477625545369 + }, + "endBinding": { + "elementId": "BR6_GD6drGeg44ixlRD80", + "focus": -0.5476800830712367, + "gap": 5.456862070734407 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -77.80575911757478, + -126.72349309818492 + ] + ] + }, + { + "type": "text", + "version": 5583, + "versionNonce": 1709380367, + "isDeleted": false, + "id": "6iMz2k1HtekeNK6PuOlhD", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14490.817486490707, + "y": 3861.0802308163325, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1053.23583984375, + "height": 169.43573414501193, + "seed": 1328711795, + "groupIds": [ + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Application: agent-aware-object-sythesis (json) \ntimothy@agileintegrator.com\n6-Aug-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Application: agent-aware-object-sythesis (json) \ntimothy@agileintegrator.com\n6-Aug-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bYQG", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5642, + "versionNonce": 558618927, + "isDeleted": false, + "id": "PaZk0xYEtoBV-OFZAzaS4", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 14418.368430280349, + "y": 3807.9336714734054, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 3087.9733473831334, + "height": 2001.0199311400847, + "seed": 1470267677, + "groupIds": [ + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Nt5qmY9lmZ84CeurnFEYa" + } + ], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bYQV" + }, + { + "type": "text", + "version": 5609, + "versionNonce": 469162831, + "isDeleted": false, + "id": "Nt5qmY9lmZ84CeurnFEYa", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "angle": 0, + "x": 15126.011699538481, + "y": 5684.847150054348, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 2375.330078125, + "height": 119.10645255914173, + "seed": 1565414781, + "groupIds": [ + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "fontSize": 95.28516204731338, + "fontFamily": 1, + "text": "Grouping: Application: agent-aware-object-sythesis ", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "PaZk0xYEtoBV-OFZAzaS4", + "originalText": "Grouping: Application: agent-aware-object-sythesis ", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYR", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5340, + "versionNonce": 708614511, + "isDeleted": false, + "id": "l1zJr80S72hBgbRCI7cqJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17319.315833814024, + "y": 3867.3400904030327, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 113.92127254271757, + "height": 60.585522418333525, + "seed": 1648377715, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV", + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bYRV" + }, + { + "type": "rectangle", + "version": 5451, + "versionNonce": 23434127, + "isDeleted": false, + "id": "mtMaKucnQVjM2XGRsEuJB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17319.96758096921, + "y": 3839.966117035328, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 59.27927860964957, + "height": 25.952395015707573, + "seed": 831379731, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV", + "DJz1Tuoa5Ms7HWRo11Zqd" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755677315274, + "link": null, + "locked": false, + "index": "bYS" + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file diff --git a/applications/object-synthesis/object_synthesis_prompts_generic.md b/applications/object-synthesis/object_synthesis_prompts_generic.md new file mode 100644 index 0000000..0b6e19c --- /dev/null +++ b/applications/object-synthesis/object_synthesis_prompts_generic.md @@ -0,0 +1,45 @@ +# OBJECT-SYNTHESIS-PROMPTS.md +## Local Prompts - Object Synthesis (Domain Agnostic) + +### **APPLICATION_CONTEXT** +You operate within the Object Synthesis application. Transform conceptual object definitions into logical, executable data specifications for any business domain. + +**Domain Agnostic**: Adapt to manufacturing, finance, retail, healthcare, or any domain via external domain model references. + +### **OBJECT_SYNTHESIS_METHODOLOGY** +**Step 1: Conceptual Analysis** +- Extract core business entities from requirements +- Map to domain-specific hierarchies (via domain model reference) +- Identify relationships and dependencies + +**Step 2: Logical Definition** +- Define precise object specifications +- Establish attributes using domain standards +- Create realistic sample values +- Document business rules and constraints + +**Step 3: Schema Generation** +- Generate domain-compliant data structures +- Create API specifications (OpenAPI 3.0) +- Produce ArchiMate data object models +- Validate cross-domain consistency + +### **DOMAIN_MODEL_INTEGRATION** +**External Domain Reference**: Load domain knowledge from specified repository +**Inheritance Pattern**: Extend base domain objects with specialized properties +**Consistency Validation**: Ensure new objects align with domain standards + +### **SAMPLE_VALUE_GENERATION** +**Domain-Appropriate**: Use domain model examples as templates +**Realistic Data**: Generate values consistent with domain context +**Test Coverage**: Include normal, edge, and error cases + +### **COMPLIANCE_ADAPTATION** +**Standards Reference**: Apply domain-specific compliance rules (ISA-95, SOX, GDPR, etc.) +**Validation Rules**: Enforce domain-specific validation patterns +**Documentation**: Generate domain-appropriate documentation + +### **OUTPUT_OPTIMIZATION** +**Format Flexibility**: Support JSON, YAML, XML, ArchiMate as needed +**Integration Readiness**: Generate implementation-ready specifications +**Domain Alignment**: Ensure outputs match domain conventions \ No newline at end of file diff --git a/applications/object-synthesis/object_synthesis_tests_generic.md b/applications/object-synthesis/object_synthesis_tests_generic.md new file mode 100644 index 0000000..ed56159 --- /dev/null +++ b/applications/object-synthesis/object_synthesis_tests_generic.md @@ -0,0 +1,93 @@ +# OBJECT-SYNTHESIS-TESTS.md +## Local Tests - Object Synthesis (Domain Agnostic) + +### **APPLICATION_TEST_PHILOSOPHY** +Validate object synthesis produces domain-compliant, implementation-ready data specifications regardless of business domain. + +### **DOMAIN_AGNOSTIC_TESTS** + +#### **Object_Definition_Compliance** +```javascript +test("objects_follow_domain_standards", (synthesizedObjects, domainModel) => { + synthesizedObjects.forEach(obj => { + assert(obj.domain_compliance !== undefined); + assert(validateAgainstDomainModel(obj, domainModel)); + }); +}); + +test("hierarchical_consistency", (objects, domainHierarchy) => { + objects.forEach(obj => { + if (obj.parent_object) { + assert(isValidHierarchicalRelationship(obj, obj.parent_object, domainHierarchy)); + } + }); +}); +``` + +#### **Schema_Generation_Tests** +```javascript +test("schema_format_compliance", (generatedSchemas, targetFormat) => { + generatedSchemas.forEach(schema => { + assert(validateSchemaFormat(schema, targetFormat)); + assert(schema.properties.length > 0); + }); +}); + +test("api_specification_completeness", (apiSpecs) => { + apiSpecs.forEach(spec => { + assert(spec.openapi === "3.0.0"); + assert(hasErrorHandling(spec)); + assert(hasSecuritySchemes(spec)); + }); +}); +``` + +#### **Sample_Value_Quality** +```javascript +test("sample_values_domain_appropriate", (objects, domainContext) => { + objects.forEach(obj => { + assert(obj.sample_values.realistic_examples.length >= 3); + assert(validateDomainRealism(obj.sample_values, domainContext)); + }); +}); +``` + +#### **Cross_Domain_Consistency** +```javascript +test("domain_model_compatibility", (synthesizedObjects, domainModel) => { + const conflicts = findDomainConflicts(synthesizedObjects, domainModel); + assert(conflicts.length === 0); +}); +``` + +### **PERFORMANCE_BENCHMARKS** +```javascript +test("synthesis_performance_sla", async (businessRequirement) => { + const startTime = Date.now(); + const result = await executeObjectSynthesis(businessRequirement); + const duration = Date.now() - startTime; + + assert(duration < 120000); // 2 minutes SLA + assert(result.validation.completeness_score >= 80); +}); +``` + +### **DOMAIN_ADAPTATION_TESTS** +```javascript +test("adapts_to_different_domains", async (requirements, domains) => { + for (const domain of domains) { + const result = await executeWithDomain(requirements, domain); + assert(result.domain_compliance === domain.name); + assert(result.validation.domain_standards_met === true); + } +}); +``` + +### **ERROR_HANDLING_TESTS** +```javascript +test("handles_domain_model_unavailable", async (requirement) => { + const result = await executeWithoutDomainModel(requirement); + assert(result.error_response.classification === "DOMAIN_UNAVAILABLE"); + assert(result.partial_deliverables.length > 0); +}); +``` \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/credit-risk-object-synthesis/credit-risk-scenario.md b/applications/object-synthesis/scenarios/credit-risk-object-synthesis/credit-risk-scenario.md new file mode 100644 index 0000000..d78154b --- /dev/null +++ b/applications/object-synthesis/scenarios/credit-risk-object-synthesis/credit-risk-scenario.md @@ -0,0 +1,31 @@ +# Scenario: Regulatory Compliance Credit Product + +## Business Context +Financial institution needs to develop a new credit product that meets multiple regulatory requirements while maintaining competitive market positioning. + +## Input Package +- **Product**: New SME lending product for EU market +- **Regulations**: Basel III, EU banking directives, local compliance +- **Requirements**: Risk assessment, pricing models, audit trails +- **Constraints**: Time to market, competitive positioning + +## Agent Pipeline +`credit-risk-domain-analyst-agent` → `archimate-modeller-agent` → `devops-engineer-agent` → `test-agent` + +## Expected Process +1. **Risk Analysis** (credit-risk-domain-analyst-agent): Design risk models and regulatory compliance framework +2. **Architecture Design** (archimate-modeller-agent): Create comprehensive financial architecture model +3. **Infrastructure Planning** (devops-engineer-agent): Design secure, compliant deployment architecture +4. **Compliance Validation** (test-agent): Verify all regulatory requirements and risk calculations + +## Expected Outputs +- Credit risk domain model with regulatory compliance +- Risk calculation APIs and algorithm specifications +- Financial architecture with audit trails +- Secure deployment infrastructure +- Regulatory compliance validation framework + +## Success Metrics +- Product development time reduced from months to weeks +- 100% regulatory compliance validation +- Automated risk calculation and reporting \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/credit-risk-object-synthesis/credit_risk_scenario.md b/applications/object-synthesis/scenarios/credit-risk-object-synthesis/credit_risk_scenario.md new file mode 100644 index 0000000..d78154b --- /dev/null +++ b/applications/object-synthesis/scenarios/credit-risk-object-synthesis/credit_risk_scenario.md @@ -0,0 +1,31 @@ +# Scenario: Regulatory Compliance Credit Product + +## Business Context +Financial institution needs to develop a new credit product that meets multiple regulatory requirements while maintaining competitive market positioning. + +## Input Package +- **Product**: New SME lending product for EU market +- **Regulations**: Basel III, EU banking directives, local compliance +- **Requirements**: Risk assessment, pricing models, audit trails +- **Constraints**: Time to market, competitive positioning + +## Agent Pipeline +`credit-risk-domain-analyst-agent` → `archimate-modeller-agent` → `devops-engineer-agent` → `test-agent` + +## Expected Process +1. **Risk Analysis** (credit-risk-domain-analyst-agent): Design risk models and regulatory compliance framework +2. **Architecture Design** (archimate-modeller-agent): Create comprehensive financial architecture model +3. **Infrastructure Planning** (devops-engineer-agent): Design secure, compliant deployment architecture +4. **Compliance Validation** (test-agent): Verify all regulatory requirements and risk calculations + +## Expected Outputs +- Credit risk domain model with regulatory compliance +- Risk calculation APIs and algorithm specifications +- Financial architecture with audit trails +- Secure deployment infrastructure +- Regulatory compliance validation framework + +## Success Metrics +- Product development time reduced from months to weeks +- 100% regulatory compliance validation +- Automated risk calculation and reporting \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/generic-domain-object-synthesis-scenario.md b/applications/object-synthesis/scenarios/generic-domain-object-synthesis-scenario.md new file mode 100644 index 0000000..88bc342 --- /dev/null +++ b/applications/object-synthesis/scenarios/generic-domain-object-synthesis-scenario.md @@ -0,0 +1,31 @@ +# Scenario: Generic Object Synthesis Scenario + +## Business Context +This is a generic scenario for extending or modifying an existing domain model based on some input or inputs. + +## Input Package +- **Requirement**: "Extend or modify the [domain-specific] domain model based on new information" +- **Current Model**: Existing domain model, conceptual, logical and physical schemas, any data definitions +- **Constraints**: Identify an impact on existing domain boundaries as potential external dependencies +- **Success Criteria**: Updated domain model at a new version with changes identified as breaking or non-breaking dependencies outside of the domain + +## Agent Pipeline +`domain-analyst-agent` → `archimate-modeller-agent` → `archimate-translator` → `test-agent` + +## Expected Process +1. **Requirement Analysis** (domain-analyst-agent): Parse new information to elicit candidate changes to the domain model +2. **Model Architecture** (archimate-modeller-agent): Create ArchiMate model with new data objects and relationships +3. **Format Translation** (archimate-modeller-agent): Generate physical schema specifications as required +4. **Validation** (test-agent): Ensure compatibility, compliance, and business requirement satisfaction. Ensure existing domain boundary interfaces or linked integrations do not break. + +## Expected Outputs +- Extended domain model with new entities +- API specification for data endpoints +- Updated architecture views +- Updated integration configurations +- Validation test cases + +## Success Metrics +- Model extension completed in hours (vs weeks manual) +- API specification compatible with existing systems +- All requirements automatically validated \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/new-domain-source-object-synthesis-scenario.md b/applications/object-synthesis/scenarios/new-domain-source-object-synthesis-scenario.md new file mode 100644 index 0000000..97f9c96 --- /dev/null +++ b/applications/object-synthesis/scenarios/new-domain-source-object-synthesis-scenario.md @@ -0,0 +1,31 @@ +# Scenario: New Data Source Integration + +## Business Context +Organization needs to integrate a new data source into existing systems, requiring domain model extension and API development. + +## Input Package +- **Requirement**: "Integrate new data source for [domain-specific] monitoring" +- **Current Model**: Existing domain model with current integrations +- **Constraints**: System compatibility and compliance requirements +- **Success Criteria**: Seamless integration with existing workflows + +## Agent Pipeline +`domain-analyst-agent` → `archimate-modeller-agent` → `archimate-translator` → `test-agent` + +## Expected Process +1. **Requirement Analysis** (domain-analyst-agent): Parse integration needs and data structures +2. **Model Architecture** (archimate-modeller-agent): Create ArchiMate model with new data objects and relationships +3. **Format Translation** (archimate-translator): Generate API specifications and integration configurations +4. **Validation** (test-agent): Ensure compatibility, compliance, and business requirement satisfaction + +## Expected Outputs +- Extended domain model with new entities +- API specification for data endpoints +- Updated architecture views +- Integration configuration +- Validation test cases + +## Success Metrics +- Model extension completed in hours (vs weeks manual) +- API specification compatible with existing systems +- All requirements automatically validated \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS-CONFIG.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS-CONFIG.md new file mode 100644 index 0000000..bfd3394 --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS-CONFIG.md @@ -0,0 +1,142 @@ +# OBJECT-SYNTHESIS-CONFIG.md +## Application Configuration - Object Synthesis + +### **APPLICATION_METADATA** +**Name**: Object Synthesis +**Purpose**: Accelerate analysis, development, and deployment of manufacturing data artifacts +**Domain**: Manufacturing (ISA-95 compliant) +**Version**: 1.0 +**Status**: Active Development + +### **BUSINESS_OBJECTIVE** +Transform conceptual manufacturing object definitions into logical, executable data specifications. Enable rapid domain model extension and API generation for manufacturing systems integration. + +**Value Proposition**: From business manufacturing requirement to working data schema in minutes, not weeks. + +### **SCOPE_BOUNDARIES** +**Included**: +- Manufacturing domain object definition and extension +- ISA-95 compliant data model generation +- API specification synthesis +- ArchiMate model updates +- Integration pattern generation + +**Excluded**: +- Actual system deployment +- Process control logic implementation +- Equipment configuration management +- Historical data migration + +### **DOMAIN_DEPENDENCIES** +**Primary Domain**: Manufacturing (pharma5.0 repository) +- Equipment hierarchies (ISA-95 Levels 0-4) +- Process definitions and procedures +- Material specifications and handling +- Quality control and testing protocols +- Sensor and instrumentation catalogs + +**Domain Access Pattern**: +``` +pharma5.0/domains/manufacturing/ + equipment-models.yaml + process-definitions.yaml + material-specifications.yaml + quality-protocols.yaml + sensor-catalog.yaml +``` + +### **AGENT_ROLE_DEPENDENCIES** +**Required Agent Roles**: +- Domain Analyst Agent (conceptual → logical translation) +- ArchiMate Modeller Agent (model generation and updates) +- API Generator Agent (OpenAPI specification synthesis) +- Schema Validator Agent (compliance verification) + +**Optional Agent Roles**: +- Integration Pattern Agent (system integration guidance) +- Migration Planner Agent (data migration strategies) + +### **INPUT_SPECIFICATIONS** +**Required Inputs**: +- Business manufacturing requirements (natural language) +- Existing domain model context (pharma5.0 reference) +- Target integration systems (if applicable) +- Compliance requirements (ISA-95, regulatory) + +**Input Formats**: +- Structured problem statements +- Context documents (DMF, equipment specs) +- Existing ArchiMate models +- Integration requirements + +### **OUTPUT_SPECIFICATIONS** +**Primary Outputs**: +- Extended domain model (logical object definitions) +- ArchiMate model updates (data object extensions) +- OpenAPI 3.0 specifications +- Integration patterns and guidelines +- Sample data and test cases + +**Output Compliance**: +- ISA-95 hierarchical alignment +- ArchiMate 3.1 data object standards +- OpenAPI 3.0 specification format +- Pharma5.0 domain model consistency + +### **QUALITY_GATES** +**Mandatory Validations**: +- ISA-95 compliance verification +- ArchiMate data object consistency +- Cross-domain model compatibility +- API specification completeness +- Sample data realism assessment + +**Performance Requirements**: +- Object definition: < 2 minutes +- Model update: < 1 minute +- API generation: < 30 seconds +- Validation suite: < 10 seconds + +### **INTEGRATION_POINTS** +**Upstream Dependencies**: +- pharma5.0/domains/manufacturing (domain knowledge) +- Global agent-aware configs (behaviors, compliance) +- Existing ArchiMate models (context) + +**Downstream Consumers**: +- API portals (generated specifications) +- Data integration platforms (schema definitions) +- Manufacturing execution systems (object models) +- Architecture documentation (updated models) + +### **CONFIGURATION_HIERARCHY** +``` +Priority Order (highest to lowest): +1. OBJECT-SYNTHESIS-* configs (this application) +2. pharma5.0/domains/manufacturing/* (domain model) +3. agent-aware-architecture/GLOBAL-* (platform behaviors) +``` + +### **VERSION_CONTROL_STRATEGY** +**Git Flow Integration**: +- Feature branches for new object types +- Release branches for domain model updates +- Hotfix branches for compliance corrections + +**Change Impact Analysis**: +- Object definition changes → downstream API updates +- Domain model changes → cross-application validation +- Schema changes → backward compatibility checks + +### **DEPLOYMENT_INTEGRATION** +**Automated Triggers**: +- Schema push → pharma5.0 validation +- API generation → portal upload +- Model update → ArchiMate compliance check +- Cross-reference → domain consistency validation + +**Human Approval Gates**: +- New object type introduction +- Domain model structural changes +- Cross-application integration points +- Regulatory compliance modifications \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS-TESTS.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS-TESTS.md new file mode 100644 index 0000000..68c5d4e --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS-TESTS.md @@ -0,0 +1,260 @@ +# OBJECT-SYNTHESIS-TESTS.md +## Local Tests - Object Synthesis Application + +### **APPLICATION_TEST_PHILOSOPHY** +Validate that object synthesis produces ISA-95 compliant, manufacturing-ready data specifications that integrate seamlessly with pharmaceutical manufacturing systems. + +**Test Pyramid**: +- **Unit**: Individual object definition compliance +- **Integration**: Cross-object relationships and dependencies +- **System**: End-to-end workflow validation +- **Acceptance**: Business requirement fulfillment + +### **ISA95_COMPLIANCE_TESTS** + +#### **Hierarchical_Level_Validation** +```javascript +test("objects_map_to_correct_isa95_levels", (synthesizedObjects) => { + synthesizedObjects.forEach(obj => { + assert(obj.isa95_level in [0, 1, 2, 3, 4]); + assert(validateHierarchicalPlacement(obj.type, obj.isa95_level)); + }); +}); + +test("equipment_hierarchy_consistency", (equipmentObjects) => { + equipmentObjects.forEach(equipment => { + if (equipment.parent_equipment) { + const parent = findObject(equipment.parent_equipment); + assert(parent.isa95_level >= equipment.isa95_level); + } + }); +}); +``` + +#### **Manufacturing_Object_Classification** +```javascript +test("object_classification_valid", (objects) => { + const validTypes = ["Equipment", "Material", "Process", "Personnel", "Information"]; + objects.forEach(obj => { + assert(validTypes.includes(obj.classification)); + assert(obj.properties.manufacturing_context !== undefined); + }); +}); +``` + +### **DOMAIN_MODEL_INTEGRATION_TESTS** + +#### **Pharma50_Domain_Consistency** +```javascript +test("extends_pharma50_domain_correctly", (synthesizedObjects) => { + const domainBase = loadPharma50Domain(); + synthesizedObjects.forEach(obj => { + if (obj.extends_base_object) { + const baseObject = domainBase.findObject(obj.extends_base_object); + assert(baseObject !== null); + assert(isValidExtension(baseObject, obj)); + } + }); +}); + +test("no_domain_model_conflicts", (synthesizedObjects) => { + const domainBase = loadPharma50Domain(); + synthesizedObjects.forEach(obj => { + const conflicts = findNamingConflicts(obj, domainBase); + assert(conflicts.length === 0, `Conflicts found: ${conflicts}`); + }); +}); +``` + +### **PHENYLPIRACETAM_MANUFACTURING_TESTS** + +#### **Process_Specific_Validation** +```javascript +test("phenylpiracetam_process_compliance", (processObjects) => { + processObjects.forEach(process => { + assert(process.properties.gmp_compliant === true); + assert(process.critical_parameters.length > 0); + assert(process.quality_checkpoints.length > 0); + }); +}); + +test("pat_sensor_integration_complete", (sensorObjects) => { + const patSensors = sensorObjects.filter(s => s.type === "PAT_Sensor"); + patSensors.forEach(sensor => { + assert(sensor.real_time_data_spec !== undefined); + assert(sensor.calibration_schedule !== undefined); + assert(sensor.alarm_thresholds !== undefined); + }); +}); +``` + +### **API_SPECIFICATION_TESTS** + +#### **OpenAPI_Manufacturing_Compliance** +```javascript +test("api_specs_manufacturing_ready", (apiSpecs) => { + apiSpecs.forEach(spec => { + assert(spec.openapi === "3.0.0"); + assert(spec.info.title.includes("Manufacturing")); + assert(hasManufacturingSecuritySchemes(spec)); + assert(hasErrorHandlingPaths(spec)); + }); +}); + +test("equipment_apis_follow_isa95_patterns", (equipmentAPIs) => { + equipmentAPIs.forEach(api => { + assert(api.paths["/equipment/{id}/status"] !== undefined); + assert(api.paths["/equipment/{id}/alarms"] !== undefined); + assert(api.paths["/equipment/{id}/maintenance"] !== undefined); + }); +}); +``` + +### **SAMPLE_VALUE_REALISM_TESTS** + +#### **Manufacturing_Data_Validation** +```javascript +test("sample_values_pharmaceutically_realistic", (objects) => { + objects.forEach(obj => { + if (obj.classification === "Equipment") { + validateEquipmentSampleValues(obj.sample_values); + } + if (obj.classification === "Material") { + validateMaterialSampleValues(obj.sample_values); + } + if (obj.classification === "Process") { + validateProcessSampleValues(obj.sample_values); + } + }); +}); + +function validateEquipmentSampleValues(samples) { + // Temperature ranges realistic for pharmaceutical manufacturing + if (samples.temperature) { + assert(samples.temperature >= -80 && samples.temperature <= 300); + } + // Pressure ranges appropriate for process equipment + if (samples.pressure) { + assert(samples.pressure >= 0 && samples.pressure <= 10); + } +} +``` + +### **WORKFLOW_INTEGRATION_TESTS** + +#### **Agent_Collaboration_Validation** +```javascript +test("domain_analysis_to_schema_generation", async (businessRequirement) => { + const analysisResult = await executeDomainAnalysisAgent(businessRequirement); + const schemaResult = await executeSchemaGeneratorAgent(analysisResult); + + assert(schemaResult.validation.business_objective_met === true); + assert(schemaResult.generation_metadata.traceability.business_requirement === businessRequirement.id); +}); + +test("archimate_model_update_workflow", async (newObjects) => { + const modelUpdate = await executeArchimateModellerAgent(newObjects); + + assert(modelUpdate.elements.length > 0); + assert(modelUpdate.validation.archimate_compliant === true); + assert(allNewObjectsRepresented(newObjects, modelUpdate.elements)); +}); +``` + +### **PERFORMANCE_BENCHMARKS** + +#### **Object_Synthesis_Performance** +```javascript +test("object_definition_within_sla", async (businessRequirement) => { + const startTime = Date.now(); + const result = await executeObjectSynthesis(businessRequirement); + const duration = Date.now() - startTime; + + assert(duration < 120000); // 2 minutes SLA + assert(result.objects.length > 0); + assert(result.validation.completeness_score >= 80); +}); + +test("api_generation_performance", async (domainObjects) => { + const startTime = Date.now(); + const apiSpecs = await generateAPIs(domainObjects); + const duration = Date.now() - startTime; + + assert(duration < 30000); // 30 seconds SLA + assert(apiSpecs.length > 0); +}); +``` + +### **REGULATORY_COMPLIANCE_TESTS** + +#### **GMP_Compliance_Validation** +```javascript +test("gmp_requirements_satisfied", (manufacturingObjects) => { + manufacturingObjects.forEach(obj => { + if (obj.classification === "Process") { + assert(obj.properties.gmp_controls !== undefined); + assert(obj.properties.documentation_requirements !== undefined); + assert(obj.properties.audit_trail_enabled === true); + } + }); +}); + +test("quality_control_integration", (qualityObjects) => { + qualityObjects.forEach(obj => { + assert(obj.properties.testing_protocols !== undefined); + assert(obj.properties.acceptance_criteria !== undefined); + assert(obj.properties.deviation_handling !== undefined); + }); +}); +``` + +### **ERROR_HANDLING_TESTS** + +#### **Manufacturing_Specific_Error_Scenarios** +```javascript +test("equipment_failure_error_handling", async (equipmentFailureScenario) => { + const result = await processEquipmentFailure(equipmentFailureScenario); + + assert(result.error_response.classification === "EQUIPMENT_UNAVAILABLE"); + assert(result.partial_deliverables.length > 0); + assert(result.continuation_strategy.includes("alternative_equipment")); +}); + +test("invalid_process_parameter_handling", async (invalidParameters) => { + const result = await processInvalidParameters(invalidParameters); + + assert(result.error_response.classification === "CONSTRAINT_VIOLATION"); + assert(result.error_response.safety_impact_assessed === true); +}); +``` + +### **INTEGRATION_TEST_MATRIX** + +| Test Category | Execution Trigger | Pass Criteria | Failure Action | +|---------------|------------------|---------------|----------------| +| ISA-95 Compliance | Object synthesis | All objects hierarchically valid | Block synthesis | +| Domain Integration | pharma5.0 reference | No conflicts, valid extensions | Fix conflicts | +| API Generation | Schema completion | Valid OpenAPI 3.0 specs | Regenerate APIs | +| Sample Value Quality | Object definition | Realistic manufacturing values | Improve samples | +| Performance SLA | Workflow execution | Within time bounds | Optimize workflow | +| GMP Compliance | Process objects | All regulatory requirements | Add missing controls | + +### **TEST_DATA_GENERATION** + +#### **Manufacturing_Test_Scenarios** +```yaml +equipment_failure_test: + scenario: "Main reactor offline for maintenance" + expected_objects: ["backup_reactor", "process_modification", "quality_adjustment"] + success_criteria: ["production_continuity", "quality_maintained"] + +new_sensor_integration_test: + scenario: "Add PAT sensor for real-time moisture monitoring" + expected_objects: ["moisture_sensor", "calibration_procedure", "alarm_config"] + success_criteria: ["real_time_data", "gmp_compliant", "integrated_workflow"] + +material_specification_test: + scenario: "New raw material supplier qualification" + expected_objects: ["supplier_spec", "quality_protocol", "receiving_procedure"] + success_criteria: ["traceability_maintained", "quality_assured"] +``` \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS-USE-CASES.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS-USE-CASES.md new file mode 100644 index 0000000..46b5457 --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS-USE-CASES.md @@ -0,0 +1,358 @@ +# OBJECT-SYNTHESIS-USE-CASES.md +## Concrete Examples - Object Synthesis Application + +### **USE_CASE_FRAMEWORK** +Each use case provides specific inputs, expected processing, and concrete outputs for testing and demonstration purposes. Use cases support the scenarios defined in OBJECT-SYNTHESIS-SCENARIOS.md with realistic data. + +### **USE_CASE_1: MOISTURE_PAT_SENSOR_INTEGRATION** +**Scenario Reference**: PAT_SENSOR_INTEGRATION +**Business Statement**: "Add NIR moisture sensor to Dryer-03 for real-time moisture monitoring during phenylpiracetam drying cycle" + +#### **Input_Package** +```yaml +business_requirement: + description: "Install NIR moisture sensor on Dryer-03 for real-time phenylpiracetam moisture monitoring" + business_driver: "Reduce batch release testing from 8 hours to real-time" + regulatory_requirement: "FDA PAT guidance compliance" + equipment_context: "Dryer-03 (Fluid Bed Dryer, 50kg capacity)" + process_context: "Phenylpiracetam drying stage (95°C, 2-4 hours)" + integration_target: "PlantPAx DCS and SAP MES" + +current_equipment_spec: + equipment_id: "DRYER-03" + equipment_type: "Fluid Bed Dryer" + manufacturer: "Glatt" + model: "GPCG-50" + capacity: "50kg batch" + current_sensors: ["temperature", "pressure", "airflow"] + control_system: "PlantPAx v13" + +quality_requirements: + target_moisture: "< 0.5% w/w" + measurement_frequency: "Every 30 seconds" + alarm_threshold: "> 0.7% w/w" + documentation: "21 CFR Part 11 compliant" +``` + +#### **Expected_Processing** +```yaml +domain_analysis_output: + conceptual_objects: + - name: "NIR Moisture Sensor" + type: "PAT Sensor" + isa95_level: 1 + purpose: "Real-time moisture measurement" + + - name: "Moisture Monitoring Procedure" + type: "Process Procedure" + isa95_level: 2 + purpose: "Automated moisture control workflow" + +object_synthesis_output: + logical_objects: + - name: "NIR_Moisture_Sensor_DRYER03" + classification: "Equipment" + isa95_level: 1 + properties: + sensor_type: "Near Infrared (NIR)" + measurement_range: "0.1% - 5.0% w/w" + accuracy: "±0.05% w/w" + response_time: "< 5 seconds" + calibration_frequency: "Weekly" + maintenance_interval: "Monthly" + sample_values: + realistic_examples: ["0.35% w/w", "0.42% w/w", "0.28% w/w"] + test_data: ["0.15% w/w", "0.65% w/w", "0.85% w/w", "1.2% w/w"] + alarm_conditions: ["0.71% w/w", "0.89% w/w"] + + - name: "Moisture_Control_Procedure_PHENYL" + classification: "Process" + isa95_level: 2 + properties: + procedure_type: "Automated Quality Control" + trigger_condition: "Moisture reading > 0.7% w/w" + response_actions: ["Extend drying time", "Increase temperature", "Alert operator"] + documentation_required: "21 CFR Part 11" + sample_values: + control_parameters: ["Target: 0.3% w/w", "Max: 0.5% w/w", "Alarm: 0.7% w/w"] +``` + +#### **Expected_Outputs** +```yaml +api_specifications: + moisture_sensor_api: + path: "/equipment/dryer-03/sensors/moisture" + methods: + GET: + description: "Get current moisture reading" + response_schema: + type: "object" + properties: + timestamp: { type: "string", format: "date-time" } + moisture_percent: { type: "number", minimum: 0, maximum: 5 } + status: { type: "string", enum: ["normal", "alarm", "fault"] } + calibration_due: { type: "boolean" } + +archimate_model_updates: + new_elements: + - element_type: "DataObject" + name: "Moisture Reading" + properties: { real_time: true, critical_parameter: true } + - element_type: "ApplicationComponent" + name: "PAT Data Collector" + properties: { vendor: "Glatt", integration: "PlantPAx" } + new_relationships: + - source: "NIR_Moisture_Sensor" + target: "Dryer-03" + type: "AssignedTo" + - source: "Moisture Reading" + target: "Quality Control Process" + type: "Triggers" + +integration_patterns: + mes_integration: + system: "SAP MES" + interface: "OPC UA" + data_frequency: "30 seconds" + batch_context: "Required" + + dcs_integration: + system: "PlantPAx v13" + interface: "Native I/O" + control_logic: "Embedded in procedure" + alarm_handling: "Integrated" +``` + +### **USE_CASE_2: REACTOR_B_MAINTENANCE_SCHEDULE** +**Scenario Reference**: EQUIPMENT_MAINTENANCE_INTEGRATION +**Business Statement**: "Reactor-B requires 48-hour maintenance, reschedule phenylpiracetam batch to Reactor-C with modified parameters" + +#### **Input_Package** +```yaml +maintenance_notification: + equipment_id: "REACTOR-B" + maintenance_type: "Scheduled preventive maintenance" + duration: "48 hours" + start_time: "2025-08-12T06:00:00Z" + urgency: "Medium" + affected_operations: ["Phenylpiracetam synthesis stage 2"] + +production_schedule: + current_batch: "PHENYL-2025-089" + scheduled_start: "2025-08-12T14:00:00Z" + critical_deadline: "2025-08-15T18:00:00Z" + batch_size: "25kg" + customer_priority: "High" + +alternative_equipment: + equipment_id: "REACTOR-C" + equipment_type: "Glass-lined reactor" + capacity: "30kg" + current_status: "Available" + differences_from_reactor_b: + - "Smaller agitator (different mixing profile)" + - "Different heating jacket (slower heat-up)" + - "Manual sampling port (vs automated)" +``` + +#### **Expected_Processing** +```yaml +constraint_analysis_output: + production_impact: + delay_hours: 0 + quality_risk: "Low" + cost_impact: "Minimal" + customer_impact: "None" + + equipment_modifications_required: + - name: "Modified Mixing Profile" + description: "Adjust agitation speed for Reactor-C smaller impeller" + estimated_time: "30 minutes setup" + + - name: "Extended Heat-up Time" + description: "Allow additional 45 minutes for temperature ramp" + impact: "Batch cycle extended by 45 minutes" + +workflow_reconfiguration_output: + modified_objects: + - name: "Reactor_C_Phenylpiracetam_Recipe" + classification: "Process" + properties: + agitation_speed: "120 rpm (vs 150 rpm standard)" + heat_up_time: "105 minutes (vs 60 minutes)" + sampling_method: "Manual with sterile technique" + quality_checks: "Additional mixing homogeneity test" + sample_values: + process_parameters: ["Temp: 85°C", "Pressure: 1.2 bar", "Agitation: 120 rpm"] +``` + +### **USE_CASE_3: NEW_EXCIPIENT_SUPPLIER_ONBOARDING** +**Scenario Reference**: NEW_MATERIAL_SPECIFICATION +**Business Statement**: "Qualify new microcrystalline cellulose supplier (Pharma-Grade MCC) for phenylpiracetam tablet formulation" + +#### **Input_Package** +```yaml +supplier_information: + supplier_name: "Pharma-Grade MCC Ltd" + material_type: "Microcrystalline Cellulose" + grade: "PH-102" + regulatory_status: "DMF filed, USP/NF compliant" + supply_capacity: "500kg/month" + lead_time: "14 days" + +material_specifications: + particle_size: "90 μm (average)" + moisture_content: "< 5.0%" + bulk_density: "0.35 g/cm³" + compressibility: "Excellent" + flow_properties: "Good" + ash_content: "< 0.1%" + heavy_metals: "< 10 ppm" + +quality_requirements: + incoming_inspection: "Required for each lot" + certificate_of_analysis: "Required" + retention_sample: "Required (500g per lot)" + expiry_dating: "36 months" + storage_conditions: "25°C, < 60% RH" +``` + +#### **Expected_Outputs** +```yaml +material_specification_objects: + - name: "MCC_PH102_PharmaGrade" + classification: "Material" + isa95_level: 0 + properties: + material_category: "Pharmaceutical Excipient" + functional_purpose: "Tablet binder/disintegrant" + regulatory_status: "USP/NF compliant" + quality_grade: "Pharmaceutical" + sample_values: + lot_numbers: ["PG-MCC-240801", "PG-MCC-240815", "PG-MCC-240829"] + typical_usage: ["50-200 mg per tablet", "5-15% w/w in formulation"] + +supplier_qualification_objects: + - name: "Supplier_Qualification_PharmaGrade" + classification: "Information" + properties: + qualification_status: "In Progress" + audit_required: true + regulatory_notifications: "DMF reference in submission" + supply_agreement: "Master service agreement required" + +api_specifications: + material_tracking_api: + path: "/materials/mcc-ph102/lots/{lot_id}" + methods: + GET: + description: "Retrieve lot information and test results" + response_schema: + properties: + lot_id: { type: "string" } + supplier: { type: "string", enum: ["Pharma-Grade MCC Ltd"] } + manufacture_date: { type: "string", format: "date" } + expiry_date: { type: "string", format: "date" } + test_results: { $ref: "#/components/schemas/MCCTestResults" } + status: { type: "string", enum: ["quarantine", "approved", "rejected"] } +``` + +### **USE_CASE_4: FDA_PROCESS_VALIDATION_ENHANCEMENT** +**Scenario Reference**: REGULATORY_COMPLIANCE_UPDATE +**Business Statement**: "Implement enhanced process validation per FDA Process Validation Guidance, requiring additional CPP monitoring" + +#### **Input_Package** +```yaml +regulatory_requirement: + guidance: "FDA Process Validation Guidance (2011)" + enhancement_focus: "Stage 2 Process Qualification" + new_requirements: + - "Enhanced critical process parameter (CPP) monitoring" + - "Statistical process control implementation" + - "Automated deviation detection" + - "Real-time process capability assessment" + +current_process_controls: + monitored_parameters: ["Temperature", "Pressure", "Agitation speed", "Reaction time"] + control_limits: "±5% of target" + monitoring_frequency: "Every 5 minutes" + deviation_handling: "Manual investigation" + +enhancement_scope: + additional_monitoring: + - "pH monitoring with ±0.1 accuracy" + - "Dissolved oxygen measurement" + - "Particle size distribution tracking" + statistical_controls: + - "Real-time Cpk calculation" + - "Automated out-of-trend detection" + - "Process capability reporting" +``` + +#### **Expected_Outputs** +```yaml +enhanced_control_objects: + - name: "Enhanced_CPP_Monitoring_System" + classification: "Information" + properties: + monitoring_scope: "All critical process parameters" + statistical_methods: ["SPC charts", "Cpk calculation", "Trend analysis"] + alert_thresholds: "2-sigma warning, 3-sigma action" + documentation: "21 CFR Part 11 compliant" + sample_values: + cpk_targets: ["Cpk > 1.33 for all CPPs"] + control_limits: ["UCL", "LCL", "Target", "Warning limits"] + +compliance_monitoring_apis: + process_validation_api: + path: "/process-validation/batches/{batch_id}/cpps" + methods: + GET: + description: "Retrieve process validation metrics for batch" + response_schema: + properties: + batch_id: { type: "string" } + validation_stage: { type: "string", enum: ["stage1", "stage2", "stage3"] } + cpp_metrics: { $ref: "#/components/schemas/CPPMetrics" } + statistical_summary: { $ref: "#/components/schemas/StatisticalSummary" } + compliance_status: { type: "string", enum: ["compliant", "deviation", "investigation"] } + +regulatory_reporting_specifications: + - report_type: "Process Performance Report" + frequency: "Monthly" + content: ["CPP trends", "Process capability", "Deviation summary"] + format: "PDF with embedded data" + distribution: ["QA Manager", "Regulatory Affairs", "FDA (upon request)"] +``` + +### **USE_CASE_VALIDATION_CRITERIA** + +#### **Input_Completeness_Checks** +```yaml +required_elements: + business_context: "Clear problem statement with business driver" + technical_context: "Equipment, process, or material specifications" + regulatory_context: "Compliance requirements and constraints" + integration_context: "Target systems and interfaces" + success_criteria: "Measurable outcomes and acceptance criteria" +``` + +#### **Output_Quality_Metrics** +```yaml +object_quality_assessment: + isa95_compliance: "All objects must map to appropriate hierarchy levels" + sample_value_realism: "Values must be representative of actual manufacturing" + integration_readiness: "APIs and interfaces must be implementable" + regulatory_alignment: "Must meet stated compliance requirements" + business_objective_achievement: "Must address original business driver" +``` + +#### **Test_Data_Coverage** +```yaml +test_scenarios: + normal_operations: "Typical manufacturing conditions and parameters" + edge_cases: "Boundary conditions and limit values" + error_conditions: "Equipment failures and process deviations" + regulatory_scenarios: "Audit situations and compliance demonstrations" + integration_scenarios: "Cross-system data exchange and workflow" +``` \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS_PROMPTS.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS_PROMPTS.md new file mode 100644 index 0000000..36f63d9 --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS_PROMPTS.md @@ -0,0 +1,150 @@ +# OBJECT-SYNTHESIS-PROMPTS.md +## Local Prompts - Object Synthesis Application + +### **APPLICATION_CONTEXT** +You are operating within the Object Synthesis application. Your mission: transform conceptual manufacturing object definitions into logical, executable data specifications for ISA-95 compliant manufacturing systems. + +**Domain Focus**: Manufacturing processes, equipment hierarchies, material handling, quality control, and sensor integration. +**Primary Use Case**: Accelerate manufacturing data architecture from business requirements to working schemas. + +### **MANUFACTURING_DOMAIN_KNOWLEDGE** +**ISA-95 Hierarchical Compliance Required**: +- **Level 4**: Enterprise business planning and logistics +- **Level 3**: Manufacturing operations management +- **Level 2**: Supervisory control and batch management +- **Level 1**: Control systems and equipment automation +- **Level 0**: Physical production processes and equipment + +**Object Classification Framework**: +``` +Manufacturing Objects: +├── Equipment Objects (Machines, sensors, controllers) +├── Material Objects (Raw materials, intermediates, products) +├── Process Objects (Procedures, recipes, quality specs) +├── Personnel Objects (Roles, qualifications, assignments) +└── Information Objects (Events, measurements, reports) +``` + +### **PHENYLPIRACETAM_MANUFACTURING_CONTEXT** +**Process Knowledge**: +- Multi-step chemical synthesis process +- Critical process parameters requiring real-time monitoring +- Quality control at each intermediate stage +- Equipment-specific calibration requirements +- Material handling and containment protocols + +**Regulatory Environment**: +- Pharmaceutical manufacturing compliance (GMP) +- Process analytical technology (PAT) integration +- Real-time release testing requirements +- Documentation and traceability obligations + +### **OBJECT_SYNTHESIS_METHODOLOGY** +**Step 1: Conceptual Analysis** +- Extract core business entities from requirements +- Map to ISA-95 hierarchical levels +- Identify relationships and dependencies +- Determine integration touchpoints + +**Step 2: Logical Definition** +- Define precise object specifications +- Establish attributes and properties +- Create realistic sample values +- Document business rules and constraints + +**Step 3: Schema Generation** +- Generate ISA-95 compliant data structures +- Create OpenAPI 3.0 specifications +- Produce ArchiMate data object models +- Validate cross-domain consistency + +**Step 4: Integration Pattern** +- Define system integration approaches +- Specify API interaction patterns +- Document data flow requirements +- Recommend implementation strategies + +### **DOMAIN_MODEL_INTEGRATION** +**Primary Domain Source**: pharma5.0/domains/manufacturing +- Reference existing equipment catalogs +- Extend current process definitions +- Maintain material specification consistency +- Align with quality protocol standards + +**Extension Strategy**: +- Inherit base object properties from domain model +- Specialize for specific manufacturing requirements +- Maintain backward compatibility +- Document extension rationale + +### **MANUFACTURING_SPECIFIC_VALIDATION** +**Equipment Object Validation**: +- Must map to ISA-95 equipment hierarchy +- Requires sensor integration specifications +- Must define maintenance and calibration schedules +- Needs safety and containment requirements + +**Process Object Validation**: +- Must align with pharmaceutical manufacturing standards +- Requires critical parameter identification +- Must define quality checkpoints +- Needs regulatory compliance documentation + +**Material Object Validation**: +- Must specify handling and storage requirements +- Requires traceability and lot management +- Must define quality specifications +- Needs safety and environmental protocols + +### **REAL_TIME_INTEGRATION_FOCUS** +**PAT Sensor Integration**: +- Define real-time data requirements +- Specify alarm and notification protocols +- Establish data quality and validation rules +- Document calibration and maintenance needs + +**Manufacturing Execution System (MES) Integration**: +- Define workflow integration points +- Specify batch and lot tracking requirements +- Establish performance monitoring protocols +- Document exception handling procedures + +### **SAMPLE_VALUE_GENERATION** +**Realistic Manufacturing Examples**: +- Use actual pharmaceutical manufacturing parameters +- Reference real equipment specifications +- Include typical sensor reading ranges +- Provide realistic batch and lot identifiers + +**Test Data Requirements**: +- Edge cases and boundary conditions +- Error scenarios and exception cases +- Performance stress test values +- Integration test data sets + +### **COMPLIANCE_REQUIREMENTS** +**ISA-95 Compliance**: +- All objects must map to appropriate hierarchical levels +- Relationships must follow ISA-95 information models +- Data structures must align with standard definitions +- Integration patterns must follow recommended practices + +**Pharmaceutical Manufacturing Compliance**: +- GMP (Good Manufacturing Practice) alignment +- FDA regulatory requirement consideration +- Quality control and validation protocols +- Documentation and audit trail requirements + +### **OUTPUT_OPTIMIZATION** +**Manufacturing Domain Priorities**: +1. Equipment and process safety +2. Product quality assurance +3. Regulatory compliance +4. Operational efficiency +5. Cost optimization + +**Integration Readiness**: +- Generate implementation-ready schemas +- Provide clear integration guidance +- Include error handling specifications +- Document testing and validation approaches \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS_SCENARIOS.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS_SCENARIOS.md new file mode 100644 index 0000000..56c7d08 --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/PHARMA-MANUFACTURING-OBJECT-SYNTHESIS_SCENARIOS.md @@ -0,0 +1,223 @@ +# OBJECT-SYNTHESIS-SCENARIOS.md +## Execution Workflows - Object Synthesis Application + +### **SCENARIO_FRAMEWORK** +Each scenario represents a complete workflow from business manufacturing requirement to executable data specifications. All scenarios follow the Agent-aware Model defined in the Excalidraw diagram. + +**Standard Workflow Pattern**: +Business Requirement → Domain Analysis → Object Synthesis → Schema Generation → Model Update → Validation + +### **SCENARIO_1: PAT_SENSOR_INTEGRATION** +**Business Context**: "Add real-time moisture monitoring to phenylpiracetam drying process for immediate release testing" + +**Workflow Definition**: +```yaml +scenario_id: "PAT_SENSOR_INTEGRATION" +trigger: "New sensor requirement for real-time quality monitoring" +business_objective: "Reduce batch testing time from 8 hours to real-time" + +workflow_steps: + 1. domain_analysis: + agent_role: "Domain Analyst Agent" + inputs: ["business_requirement", "current_process_model", "equipment_specifications"] + outputs: ["conceptual_object_definitions", "integration_requirements"] + success_criteria: ["sensor_type_identified", "integration_points_mapped"] + + 2. object_synthesis: + agent_role: "Object Synthesis Agent" + inputs: ["conceptual_object_definitions", "pharma5.0_domain_model"] + outputs: ["logical_object_specifications", "sample_data", "validation_rules"] + success_criteria: ["isa95_compliant", "gmp_aligned", "integration_ready"] + + 3. schema_generation: + agent_role: "API Generator Agent" + inputs: ["logical_object_specifications", "existing_api_catalog"] + outputs: ["openapi_specifications", "integration_patterns"] + success_criteria: ["api_contracts_defined", "error_handling_complete"] + + 4. model_update: + agent_role: "ArchiMate Modeller Agent" + inputs: ["logical_object_specifications", "current_archimate_model"] + outputs: ["updated_archimate_model", "traceability_documentation"] + success_criteria: ["model_consistency_maintained", "new_objects_integrated"] + +expected_outputs: + - PAT moisture sensor object definition + - Real-time data collection API specification + - Calibration and maintenance procedures + - Alarm and notification configurations + - Updated manufacturing process model +``` + +### **SCENARIO_2: EQUIPMENT_MAINTENANCE_INTEGRATION** +**Business Context**: "Equipment failure requires rapid workflow reconfiguration and alternative processing path" + +**Workflow Definition**: +```yaml +scenario_id: "EQUIPMENT_MAINTENANCE_INTEGRATION" +trigger: "Emergency maintenance event on primary reactor" +business_objective: "Maintain production schedule using backup equipment" + +workflow_steps: + 1. constraint_analysis: + agent_role: "Domain Analyst Agent" + inputs: ["maintenance_notification", "production_schedule", "equipment_catalog"] + outputs: ["constraint_assessment", "alternative_equipment_options"] + success_criteria: ["production_impact_quantified", "alternatives_identified"] + + 2. workflow_reconfiguration: + agent_role: "Object Synthesis Agent" + inputs: ["constraint_assessment", "alternative_equipment_specs"] + outputs: ["modified_process_objects", "equipment_configuration_updates"] + success_criteria: ["quality_maintained", "safety_assured", "schedule_optimized"] + + 3. integration_planning: + agent_role: "API Generator Agent" + inputs: ["modified_process_objects", "mes_integration_requirements"] + outputs: ["workflow_api_updates", "notification_specifications"] + success_criteria: ["mes_compatibility", "operator_notification", "audit_trail"] + + 4. model_synchronization: + agent_role: "ArchiMate Modeller Agent" + inputs: ["workflow_updates", "equipment_changes"] + outputs: ["synchronized_architecture_model", "change_documentation"] + success_criteria: ["model_reflects_reality", "change_impact_documented"] + +expected_outputs: + - Alternative equipment configuration objects + - Modified process procedure specifications + - Updated scheduling and workflow APIs + - Equipment maintenance tracking objects + - Synchronized architecture documentation +``` + +### **SCENARIO_3: NEW_MATERIAL_SPECIFICATION** +**Business Context**: "Introduce new raw material supplier requiring specification and handling procedure updates" + +**Workflow Definition**: +```yaml +scenario_id: "NEW_MATERIAL_SPECIFICATION" +trigger: "New supplier qualification and material specification" +business_objective: "Integrate new material source with existing quality controls" + +workflow_steps: + 1. material_analysis: + agent_role: "Domain Analyst Agent" + inputs: ["supplier_specifications", "existing_material_catalog", "quality_requirements"] + outputs: ["material_object_requirements", "quality_control_updates"] + success_criteria: ["specification_complete", "quality_requirements_mapped"] + + 2. specification_synthesis: + agent_role: "Object Synthesis Agent" + inputs: ["material_object_requirements", "gmp_compliance_rules"] + outputs: ["material_specification_objects", "handling_procedure_objects"] + success_criteria: ["gmp_compliant", "traceability_enabled", "safety_assured"] + + 3. integration_specification: + agent_role: "API Generator Agent" + inputs: ["material_objects", "inventory_management_apis"] + outputs: ["material_tracking_apis", "quality_control_integrations"] + success_criteria: ["inventory_integration", "quality_workflow_support"] + + 4. documentation_update: + agent_role: "ArchiMate Modeller Agent" + inputs: ["material_specifications", "supply_chain_model"] + outputs: ["updated_supply_chain_model", "material_flow_documentation"] + success_criteria: ["supply_chain_visibility", "material_traceability"] + +expected_outputs: + - New material specification objects + - Supplier qualification procedures + - Material handling and storage protocols + - Quality control and testing procedures + - Supply chain integration specifications +``` + +### **SCENARIO_4: REGULATORY_COMPLIANCE_UPDATE** +**Business Context**: "New FDA guidance requires additional process monitoring and documentation" + +**Workflow Definition**: +```yaml +scenario_id: "REGULATORY_COMPLIANCE_UPDATE" +trigger: "FDA guidance update requiring enhanced process controls" +business_objective: "Ensure continued regulatory compliance with new requirements" + +workflow_steps: + 1. compliance_gap_analysis: + agent_role: "Domain Analyst Agent" + inputs: ["fda_guidance", "current_process_controls", "documentation_standards"] + outputs: ["compliance_gap_assessment", "enhancement_requirements"] + success_criteria: ["gaps_identified", "enhancement_scope_defined"] + + 2. control_enhancement_synthesis: + agent_role: "Object Synthesis Agent" + inputs: ["enhancement_requirements", "existing_control_objects"] + outputs: ["enhanced_control_objects", "documentation_templates"] + success_criteria: ["regulatory_requirements_met", "implementation_ready"] + + 3. system_integration_planning: + agent_role: "API Generator Agent" + inputs: ["enhanced_control_objects", "regulatory_reporting_requirements"] + outputs: ["compliance_monitoring_apis", "regulatory_reporting_specifications"] + success_criteria: ["monitoring_automated", "reporting_streamlined"] + + 4. compliance_documentation: + agent_role: "ArchiMate Modeller Agent" + inputs: ["compliance_enhancements", "regulatory_architecture"] + outputs: ["compliance_architecture_model", "audit_documentation"] + success_criteria: ["compliance_visible", "audit_ready"] + +expected_outputs: + - Enhanced process control objects + - Regulatory monitoring specifications + - Automated compliance reporting APIs + - Audit trail and documentation procedures + - Updated compliance architecture model +``` + +### **SCENARIO_EXECUTION_PATTERNS** + +#### **Error_Recovery_Workflows** +```yaml +error_scenario_pattern: + trigger: "Workflow execution failure at any step" + recovery_steps: + 1. error_classification: "Determine error type and impact scope" + 2. partial_deliverable_assessment: "Identify usable outputs from completed steps" + 3. recovery_strategy_selection: "Choose appropriate recovery approach" + 4. continuation_planning: "Define steps to complete workflow" +``` + +#### **Cross_Scenario_Dependencies** +```yaml +dependency_management: + scenario_interdependencies: + - "PAT sensor integration affects equipment maintenance procedures" + - "Material specification changes impact quality control workflows" + - "Regulatory updates affect all manufacturing scenarios" + + coordination_protocol: + - "Check for active scenarios before major changes" + - "Validate cross-scenario consistency" + - "Update dependent scenarios when base objects change" +``` + +### **SCENARIO_VALIDATION_CRITERIA** + +#### **Business_Objective_Achievement** +- Manufacturing requirement addressed completely +- Regulatory compliance maintained or enhanced +- Operational efficiency improved or maintained +- Quality standards upheld throughout process + +#### **Technical_Implementation_Readiness** +- All generated objects ISA-95 compliant +- API specifications implementable +- Integration patterns validated +- Error handling comprehensive + +#### **Model_Consistency** +- ArchiMate model remains coherent +- Cross-object relationships valid +- Traceability chains complete +- Documentation accuracy maintained \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/pharma-manufacturing-object-synthesis-scenario.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/pharma-manufacturing-object-synthesis-scenario.md new file mode 100644 index 0000000..165c8f3 --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/pharma-manufacturing-object-synthesis-scenario.md @@ -0,0 +1,176 @@ +# OBJECT-SYNTHESIS-SCENARIOS.md +## Execution Workflows - Object Synthesis Application + +### **SCENARIO_FRAMEWORK** +Each scenario represents a complete workflow from business manufacturing requirement to executable data specifications. All scenarios follow the Agent-aware Model defined in the Excalidraw diagram. + +**Standard Workflow Pattern**: +Business Requirement → Domain Analysis → Object Synthesis → Schema Generation → Model Update → Validation + +### **SCENARIO_1: PAT_SENSOR_INTEGRATION** +**Business Context**: "Add real-time moisture monitoring to phenylpiracetam drying process for immediate release testing" + +**Workflow Definition**: +```yaml +scenario_id: "PAT_SENSOR_INTEGRATION" +trigger: "New sensor requirement for real-time quality monitoring" +business_objective: "Reduce batch testing time from 8 hours to real-time" + +workflow_steps: + 1. domain_analysis: + agent_role: "domain-analyst-agent" + inputs: ["business_requirement", "current_process_model", "equipment_specifications"] + outputs: ["conceptual_object_definitions", "integration_requirements"] + success_criteria: ["sensor_type_identified", "integration_points_mapped"] + + 2. model_architecture: + agent_role: "archimate-modeller-agent" + inputs: ["conceptual_object_definitions", "pharma5.0_domain_model"] + outputs: ["logical_object_specifications", "sample_data", "validation_rules"] + success_criteria: ["isa95_compliant", "gmp_aligned", "integration_ready"] + + 3. format_translation: + agent_role: "archimate-translator" + inputs: ["logical_object_specifications", "existing_api_catalog"] + outputs: ["openapi_specifications", "integration_patterns"] + success_criteria: ["api_contracts_defined", "error_handling_complete"] + + 4. validation: + agent_role: "test-agent" + inputs: ["openapi_specifications", "integration_patterns", "compliance_requirements"] + outputs: ["validation_results", "compliance_certification"] + success_criteria: ["all_tests_pass", "regulatory_compliance_verified"] + +expected_outputs: + - PAT moisture sensor object definition + - Real-time data collection API specification + - Calibration and maintenance procedures + - Alarm and notification configurations + - Updated manufacturing process model +``` + +### **SCENARIO_2: EQUIPMENT_MAINTENANCE_INTEGRATION** +**Business Context**: "Equipment failure requires rapid workflow reconfiguration and alternative processing path" + +**Workflow Definition**: +```yaml +scenario_id: "EQUIPMENT_MAINTENANCE_INTEGRATION" +trigger: "Emergency maintenance event on primary reactor" +business_objective: "Maintain production schedule using backup equipment" + +workflow_steps: + 1. constraint_analysis: + agent_role: "domain-analyst-agent" + inputs: ["maintenance_notification", "production_schedule", "equipment_catalog"] + outputs: ["constraint_assessment", "alternative_equipment_options"] + success_criteria: ["production_impact_quantified", "alternatives_identified"] + + 2. workflow_reconfiguration: + agent_role: "archimate-modeller-agent" + inputs: ["constraint_assessment", "alternative_equipment_specs"] + outputs: ["modified_process_objects", "equipment_configuration_updates"] + success_criteria: ["quality_maintained", "safety_assured", "schedule_optimized"] + + 3. integration_planning: + agent_role: "archimate-translator" + inputs: ["modified_process_objects", "mes_integration_requirements"] + outputs: ["workflow_api_updates", "notification_specifications"] + success_criteria: ["mes_compatibility", "operator_notification", "audit_trail"] + + 4. validation: + agent_role: "test-agent" + inputs: ["workflow_api_updates", "safety_requirements", "quality_standards"] + outputs: ["workflow_validation_results", "safety_compliance_report"] + success_criteria: ["workflow_safe", "quality_maintained", "audit_compliant"] + +expected_outputs: + - Alternative equipment configuration objects + - Modified process procedure specifications + - Updated scheduling and workflow APIs + - Equipment maintenance tracking objects + - Synchronized architecture documentation +``` + +### **SCENARIO_3: NEW_MATERIAL_SPECIFICATION** +**Business Context**: "Introduce new raw material supplier requiring specification and handling procedure updates" + +**Workflow Definition**: +```yaml +scenario_id: "NEW_MATERIAL_SPECIFICATION" +trigger: "New supplier qualification and material specification" +business_objective: "Integrate new material source with existing quality controls" + +workflow_steps: + 1. material_analysis: + agent_role: "domain-analyst-agent" + inputs: ["supplier_specifications", "existing_material_catalog", "quality_requirements"] + outputs: ["material_object_requirements", "quality_control_updates"] + success_criteria: ["specification_complete", "quality_requirements_mapped"] + + 2. specification_synthesis: + agent_role: "archimate-modeller-agent" + inputs: ["material_object_requirements", "gmp_compliance_rules"] + outputs: ["material_specification_objects", "handling_procedure_objects"] + success_criteria: ["gmp_compliant", "traceability_enabled", "safety_assured"] + + 3. integration_specification: + agent_role: "archimate-translator" + inputs: ["material_objects", "inventory_management_apis"] + outputs: ["material_tracking_apis", "quality_control_integrations"] + success_criteria: ["inventory_integration", "quality_workflow_support"] + + 4. validation: + agent_role: "test-agent" + inputs: ["material_tracking_apis", "gmp_requirements", "safety_protocols"] + outputs: ["material_compliance_validation", "safety_assessment"] + success_criteria: ["gmp_verified", "safety_validated", "integration_tested"] + +expected_outputs: + - New material specification objects + - Supplier qualification procedures + - Material handling and storage protocols + - Quality control and testing procedures + - Supply chain integration specifications +``` + +### **SCENARIO_4: REGULATORY_COMPLIANCE_UPDATE** +**Business Context**: "New FDA guidance requires additional process monitoring and documentation" + +**Workflow Definition**: +```yaml +scenario_id: "REGULATORY_COMPLIANCE_UPDATE" +trigger: "FDA guidance update requiring enhanced process controls" +business_objective: "Ensure continued regulatory compliance with new requirements" + +workflow_steps: + 1. compliance_gap_analysis: + agent_role: "domain-analyst-agent" + inputs: ["fda_guidance", "current_process_controls", "documentation_standards"] + outputs: ["compliance_gap_assessment", "enhancement_requirements"] + success_criteria: ["gaps_identified", "enhancement_scope_defined"] + + 2. control_enhancement_synthesis: + agent_role: "archimate-modeller-agent" + inputs: ["enhancement_requirements", "existing_control_objects"] + outputs: ["enhanced_control_objects", "documentation_templates"] + success_criteria: ["regulatory_requirements_met", "implementation_ready"] + + 3. system_integration_planning: + agent_role: "archimate-translator" + inputs: ["enhanced_control_objects", "regulatory_reporting_requirements"] + outputs: ["compliance_monitoring_apis", "regulatory_reporting_specifications"] + success_criteria: ["monitoring_automated", "reporting_streamlined"] + + 4. compliance_validation: + agent_role: "test-agent" + inputs: ["compliance_monitoring_apis", "fda_guidance", "audit_requirements"] + outputs: ["compliance_validation_report", "audit_readiness_assessment"] + success_criteria: ["fda_compliant", "audit_ready", "documentation_complete"] + +expected_outputs: + - Enhanced process control objects + - Regulatory compliance monitoring APIs + - Automated reporting specifications + - Audit trail documentation + - FDA compliance validation framework +``` \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-equipment-maintenance-scenario.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-equipment-maintenance-scenario.md new file mode 100644 index 0000000..10c5e2a --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-equipment-maintenance-scenario.md @@ -0,0 +1,34 @@ +# Scenario: Equipment Maintenance Integration + +## Business Context +Equipment failure requires rapid workflow reconfiguration and alternative processing path. Maintain production schedule using backup equipment while ensuring quality and safety standards. + +## Input Package +- **Problem**: "Emergency maintenance event on primary reactor" +- **Current Schedule**: Active job assignments and dependencies +- **Constraints**: Production deadlines, quality requirements, safety protocols +- **Available Resources**: Alternative equipment with different capabilities + +## Agent Pipeline +`domain-analyst-agent` → `archimate-modeller-agent` → `archimate-translator` → `test-agent` + +## Expected Process +1. **Constraint Analysis** (domain-analyst-agent): Identify production impact and alternative equipment options +2. **Workflow Reconfiguration** (archimate-modeller-agent): Create modified process objects and equipment configurations +3. **Integration Planning** (archimate-translator): Generate workflow API updates and notification specifications +4. **Validation** (test-agent): Verify workflow safety, quality maintenance, and audit compliance + +## Expected Outputs +- Alternative equipment configuration objects +- Modified process procedure specifications +- Updated scheduling and workflow APIs +- Equipment maintenance tracking objects +- Synchronized architecture documentation +- Safety compliance validation +- Quality assurance protocols + +## Success Metrics +- Workflow reconfiguration completed in minutes (vs hours manual) +- Production quality maintained during equipment transition +- Safety protocols automatically validated +- Complete audit trail for regulatory compliance \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-material-specification-scenario.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-material-specification-scenario.md new file mode 100644 index 0000000..d6ce019 --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-material-specification-scenario.md @@ -0,0 +1,34 @@ +# Scenario: New Material Specification + +## Business Context +Introduce new raw material supplier requiring specification and handling procedure updates. Integrate new material source with existing quality controls while maintaining GMP compliance. + +## Input Package +- **Trigger**: "New supplier qualification and material specification" +- **Requirements**: Supplier specifications, quality requirements, GMP compliance +- **Constraints**: Existing material catalog, quality control systems, traceability requirements +- **Success Criteria**: Seamless integration with existing quality controls + +## Agent Pipeline +`domain-analyst-agent` → `archimate-modeller-agent` → `archimate-translator` → `test-agent` + +## Expected Process +1. **Material Analysis** (domain-analyst-agent): Analyze supplier specifications and map quality requirements +2. **Specification Synthesis** (archimate-modeller-agent): Create material specification objects and handling procedures +3. **Integration Specification** (archimate-translator): Generate material tracking APIs and quality control integrations +4. **Validation** (test-agent): Verify GMP compliance, safety validation, and integration testing + +## Expected Outputs +- New material specification objects +- Supplier qualification procedures +- Material handling and storage protocols +- Quality control and testing procedures +- Supply chain integration specifications +- GMP compliance validation +- Material traceability framework + +## Success Metrics +- Material integration completed rapidly (vs weeks manual) +- GMP compliance automatically verified +- Complete material traceability established +- Quality control workflow seamlessly integrated \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-pat-sensor-scenario.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-pat-sensor-scenario.md new file mode 100644 index 0000000..71192ad --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-pat-sensor-scenario.md @@ -0,0 +1,35 @@ +# Scenario: PAT Sensor Integration for Real-time Release + +## Business Context +Add real-time moisture monitoring to phenylpiracetam drying process for immediate release testing. Reduce batch testing time from 8 hours to real-time. + +## Input Package +- **Requirement**: "Integrate NIR sensor for real-time moisture content monitoring" +- **Current Model**: PLANT domain model with existing MES integration +- **Constraints**: FDA Part 11 compliance, existing batch system integration, ISA95 compliance +- **Success Criteria**: Real-time release decision within 5 minutes of batch completion + +## Agent Pipeline +`domain-analyst-agent` → `archimate-modeller-agent` → `archimate-translator` → `test-agent` + +## Expected Process +1. **Domain Analysis** (domain-analyst-agent): Parse PAT sensor integration needs and regulatory requirements +2. **Model Architecture** (archimate-modeller-agent): Extend PLANT model with sensor entities and MES integration +3. **Format Translation** (archimate-translator): Generate API specifications and integration configurations +4. **Validation** (test-agent): Ensure FDA Part 11 compliance and ISA95 standards compliance + +## Expected Outputs +- PAT moisture sensor object definition +- Real-time data collection API specification +- Calibration and maintenance procedures +- Alarm and notification configurations +- Updated manufacturing process model +- FDA Part 11 compliant data integrity framework +- MES integration configuration +- Regulatory validation test cases + +## Success Metrics +- Model extension completed in < 2 hours (vs 2 weeks manual) +- API specification 100% compatible with existing MES +- FDA Part 11 compliance automatically validated +- Real-time data processing within 30-second SLA \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-regulatory-compliance-scenario.md b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-regulatory-compliance-scenario.md new file mode 100644 index 0000000..8c67973 --- /dev/null +++ b/applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/updated-regulatory-compliance-scenario.md @@ -0,0 +1,34 @@ +# Scenario: Updated FDA Regulatory Compliance + +## Business Context +New FDA guidance requires additional process monitoring and documentation. Ensure continued regulatory compliance with new requirements while maintaining operational efficiency. + +## Input Package +- **Trigger**: "FDA guidance update requiring enhanced process controls" +- **Requirements**: New FDA guidance, current process controls, documentation standards +- **Constraints**: Existing systems, operational continuity, compliance deadlines +- **Success Criteria**: Full compliance with new FDA requirements + +## Agent Pipeline +`domain-analyst-agent` → `archimate-modeller-agent` → `devops-engineer-agent` → `test-agent` + +## Expected Process +1. **Compliance Gap Analysis** (domain-analyst-agent): Identify gaps in the manufacturingn process between current controls and FDA requirements +2. **Control Enhancement Synthesis** (archimate-modeller-agent): Create enhanced control objects and documentation templates +3. **System Integration Planning** (devops-engineer-agent): Generate compliance monitoring APIs and reporting specifications +4. **Compliance Validation** (test-agent): Verify FDA compliance, audit readiness, and documentation completeness + +## Expected Outputs +- Enhanced process control objects +- Regulatory compliance monitoring APIs +- Automated reporting specifications +- Audit trail documentation +- FDA compliance validation framework +- Process monitoring enhancements +- Regulatory reporting automation + +## Success Metrics +- Compliance gap remediation completed rapidly (vs months manual) +- FDA compliance automatically validated +- Audit trail documentation complete +- Regulatory reporting fully automated \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/README.md b/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/README.md new file mode 100644 index 0000000..261daac --- /dev/null +++ b/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/README.md @@ -0,0 +1,59 @@ +# Test Fixtures: Resource Constraint Response + +**Purpose**: Test data for ArchiMate generator tool validation + +## Files + +### Input Domain Models +- `resource-constraint-response-domain.json` - Structured JSON format for programmatic processing +- `resource-constraint-response-domain.md` - Human-readable Markdown format for business analysis + +### Expected Outputs (To Be Created) +- `expected-archimate-model.xml` - Golden master ArchiMate Open Exchange format +- `expected-validation-report.json` - Expected tool validation output + +## Test Coverage + +### Domain Elements +- **Technology Nodes**: Reactor units with capabilities and constraints +- **Business Processes**: Production batches with priorities and requirements +- **Business Objects**: Production schedules with time dependencies +- **Relationships**: Assignments, alternatives, compositions with constraint impacts + +### ISA-95 Compliance +- Level 2 (Equipment) and Level 3 (Manufacturing Operations) integration +- Work Unit and Work Order modeling patterns +- Resource constraint and scheduling optimization scenarios + +### ArchiMate Element Types Expected +- `technology-node` (reactors) +- `business-process` (production batches) +- `business-object` (schedules) +- `assignment` relationships +- `composition` relationships + +## Usage + +### Unit Tests (Bash) +```bash +node test-domain-parser.js resource-constraint-response-domain.json +node test-domain-parser.js resource-constraint-response-domain.md +``` + +### Integration Tests (Claude Code) +```javascript +const tool = require('../../../tools/archimate-modeller'); +const result = tool.generate('resource-constraint-response-domain.json'); +// Validate against expected-archimate-model.xml +``` + +### User Tests (Framework) +```yaml +# Load archimate-modeller-agent role +# Execute function-generate-archimate-model +# Input: resource constraint scenario +# Expected: Valid ArchiMate XML with ISA-95 job scheduling elements +``` + +--- +*Version 1.0 | Created: September 7, 2025* \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/expected-archimate-model.xml b/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/expected-archimate-model.xml new file mode 100644 index 0000000..ec6ecd0 --- /dev/null +++ b/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/expected-archimate-model.xml @@ -0,0 +1,161 @@ + + + + Job Scheduling Information Structure + Information Structure viewpoint showing job scheduling business objects, data objects, and realization relationships + + + + + Job + Business concept of production job - represents the business understanding of work orders with priorities, deadlines, and resource requirements + + + + Resource + Business concept of production resource - represents the business understanding of equipment and capabilities available for job execution + + + + + JobData + Logical data representation of job - database table or API model that implements the job business concept with scheduling attributes + + + + ResourceData + Logical data representation of resource - database table or API model that implements the resource business concept with capacity and availability data + + + + + + + assigned to + Jobs are assigned to resources - basic business relationship for scheduling + + + + + realizes + JobData table/API realizes the Job business concept + + + + realizes + ResourceData table/API realizes the Resource business concept + + + + + + + Job Scheduling Information View + Shows job scheduling business concepts and their data implementations with realization relationships + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/resource-constraint-response-domain.json b/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/resource-constraint-response-domain.json new file mode 100644 index 0000000..9662fc9 --- /dev/null +++ b/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/resource-constraint-response-domain.json @@ -0,0 +1,123 @@ +{ + "metadata": { + "domain": "job-scheduling", + "scenario": "resource-constraint-response", + "description": "Primary reactor failure requiring immediate rescheduling of production jobs", + "isa95_compliance": true, + "created": "2025-09-07", + "version": "1.0" + }, + "entities": [ + { + "id": "primary_reactor", + "name": "Primary Reactor Unit", + "type": "WorkUnit", + "archimate_type": "technology-node", + "status": "unavailable", + "failure_reason": "scheduled_maintenance", + "capabilities": ["heating", "mixing", "pressure_control", "temperature_monitoring"], + "capacity": "2000L", + "isa95_level": 2 + }, + { + "id": "backup_reactor", + "name": "Backup Reactor Unit", + "type": "WorkUnit", + "archimate_type": "technology-node", + "status": "available", + "capabilities": ["heating", "mixing"], + "capacity": "1500L", + "limitations": ["no_pressure_control", "manual_temperature_monitoring"], + "isa95_level": 2 + }, + { + "id": "batch_001", + "name": "Production Batch 001", + "type": "WorkOrder", + "archimate_type": "business-process", + "priority": "high", + "product": "compound_x", + "quantity": "1800L", + "due_date": "2025-09-08T14:00:00Z", + "current_assignment": "primary_reactor", + "status": "scheduled" + }, + { + "id": "batch_002", + "name": "Production Batch 002", + "type": "WorkOrder", + "archimate_type": "business-process", + "priority": "medium", + "product": "compound_y", + "quantity": "1200L", + "due_date": "2025-09-09T10:00:00Z", + "current_assignment": "primary_reactor", + "status": "queued" + }, + { + "id": "current_schedule", + "name": "Production Schedule Week 37", + "type": "WorkSchedule", + "archimate_type": "business-object", + "horizon_start": "2025-09-07T00:00:00Z", + "horizon_end": "2025-09-14T23:59:59Z", + "total_jobs": 12, + "affected_jobs": 8, + "requires_replanning": true + } + ], + "relationships": [ + { + "id": "rel_001", + "type": "assignment", + "source": "batch_001", + "target": "primary_reactor", + "status": "broken_by_constraint" + }, + { + "id": "rel_002", + "type": "assignment", + "source": "batch_002", + "target": "primary_reactor", + "status": "blocked" + }, + { + "id": "rel_003", + "type": "alternative", + "source": "backup_reactor", + "target": "primary_reactor", + "feasibility": "possible_with_constraints" + }, + { + "id": "rel_004", + "type": "composition", + "source": "current_schedule", + "target": "batch_001", + "dependency": "time_critical" + } + ], + "constraints": [ + { + "id": "delivery_commitment", + "type": "business_rule", + "description": "Batch 001 delivery commitment cannot be moved", + "applies_to": ["batch_001"], + "priority": "mandatory" + }, + { + "id": "reactor_capacity", + "type": "resource_constraint", + "description": "Backup reactor has 25% less capacity than primary", + "impact": "longer_processing_time", + "mitigation": "reduce_batch_size_or_extend_timeline" + }, + { + "id": "quality_requirements", + "type": "process_constraint", + "description": "Compound X requires pressure control for quality", + "applies_to": ["batch_001"], + "backup_reactor_compatible": false, + "alternative_approach": "manual_pressure_monitoring_with_operator" + } + ] +} \ No newline at end of file diff --git a/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/resource-constraint-response-domain.md b/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/resource-constraint-response-domain.md new file mode 100644 index 0000000..5fd5dfa --- /dev/null +++ b/applications/object-synthesis/scenarios/resource-constraint-response-test-fixtures/resource-constraint-response-domain.md @@ -0,0 +1,99 @@ +# Resource Constraint Response Domain Model + +**Scenario**: Primary reactor failure requiring immediate rescheduling of production jobs + +**Domain**: Job Scheduling (ISA-95 Level 2-3 Integration) +**Compliance**: ISA-95, GMP Manufacturing Standards +**Created**: September 7, 2025 +**Version**: 1.0 + +## Business Context + +The primary reactor unit has become unavailable due to scheduled maintenance, disrupting the production schedule for Week 37. Critical delivery commitments must be maintained while alternative resources are deployed. + +## Domain Entities + +### Resources (Work Units) + +#### Primary Reactor Unit +- **Type**: Technology Node (ISA-95 Level 2) +- **Status**: UNAVAILABLE (scheduled maintenance) +- **Capabilities**: Heating, Mixing, Pressure Control, Temperature Monitoring +- **Capacity**: 2000L +- **Impact**: 8 jobs affected, schedule replanning required + +#### Backup Reactor Unit +- **Type**: Technology Node (ISA-95 Level 2) +- **Status**: AVAILABLE +- **Capabilities**: Heating, Mixing +- **Capacity**: 1500L (25% less than primary) +- **Limitations**: No pressure control, manual temperature monitoring required + +### Production Jobs (Work Orders) + +#### Production Batch 001 +- **Product**: Compound X +- **Priority**: HIGH (delivery commitment) +- **Quantity**: 1800L +- **Due Date**: September 8, 2025 at 2:00 PM +- **Current Assignment**: Primary Reactor (BROKEN) +- **Quality Requirements**: Requires pressure control +- **Business Impact**: Customer delivery commitment cannot be moved + +#### Production Batch 002 +- **Product**: Compound Y +- **Priority**: MEDIUM +- **Quantity**: 1200L +- **Due Date**: September 9, 2025 at 10:00 AM +- **Current Assignment**: Primary Reactor (BLOCKED) +- **Status**: Queued, awaiting resource reallocation + +### Schedule Management + +#### Production Schedule Week 37 +- **Time Horizon**: September 7-14, 2025 +- **Total Jobs**: 12 production orders +- **Affected Jobs**: 8 orders requiring reassignment +- **Status**: REQUIRES REPLANNING +- **Optimization Goal**: Maintain delivery commitments with alternative resources + +## Relationships and Dependencies + +### Resource Assignments +- **Batch 001** → assigned to → **Primary Reactor** (BROKEN by constraint) +- **Batch 002** → assigned to → **Primary Reactor** (BLOCKED) +- **Backup Reactor** → alternative for → **Primary Reactor** (possible with constraints) + +### Schedule Dependencies +- **Current Schedule** → contains → **Batch 001** (time critical dependency) +- **Delivery Commitment** → constrains → **Batch 001** (cannot be moved) + +## Business Constraints + +### Mandatory Constraints +1. **Delivery Commitment**: Batch 001 delivery date cannot be changed +2. **Quality Standards**: Compound X requires pressure control for regulatory compliance +3. **Resource Capacity**: Backup reactor has 25% capacity reduction + +### Optimization Constraints +1. **Resource Utilization**: Maximize backup reactor efficiency +2. **Schedule Continuity**: Minimize disruption to other planned jobs +3. **Cost Management**: Avoid overtime and premium resource rates + +## Expected Workflow Outcomes + +### Immediate Actions Required +1. **Constraint Analysis**: Identify all affected jobs and business rules +2. **Resource Reallocation**: Assign compatible jobs to backup reactor +3. **Schedule Optimization**: Generate new timeline with alternative resources +4. **Risk Mitigation**: Plan for quality control with manual pressure monitoring + +### Success Metrics +- Schedule regeneration completed in minutes (vs. hours manually) +- All delivery commitments maintained +- Optimal resource utilization achieved +- Regulatory compliance preserved + +--- + +*This domain model provides the logical foundation for automated job scheduling and constraint optimization in pharmaceutical manufacturing environments.* \ No newline at end of file diff --git a/applications/schema-generator/model/agent-aware-generate-schema.excalidraw b/applications/schema-generator/model/agent-aware-generate-schema.excalidraw new file mode 100644 index 0000000..2aeee35 --- /dev/null +++ b/applications/schema-generator/model/agent-aware-generate-schema.excalidraw @@ -0,0 +1,3047 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 5330, + "versionNonce": 1042621565, + "isDeleted": false, + "id": "PaZk0xYEtoBV-OFZAzaS4", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17148.902070509368, + "y": 3855.4499517556715, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 2074.0142105734094, + "height": 1638.0071874755226, + "seed": 1470267677, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "Nt5qmY9lmZ84CeurnFEYa", + "type": "text" + } + ], + "updated": 1755290729705, + "link": null, + "locked": false, + "index": "bSD" + }, + { + "type": "text", + "version": 5270, + "versionNonce": 212736573, + "isDeleted": false, + "id": "Nt5qmY9lmZ84CeurnFEYa", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "angle": 0, + "x": 17990.244894364027, + "y": 5443.457139231194, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 1227.67138671875, + "height": 45, + "seed": 1565414781, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290791391, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "Grouping: Application: agent-aware-object-sythesis-schema-generation ", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "PaZk0xYEtoBV-OFZAzaS4", + "originalText": "Grouping: Application: agent-aware-object-sythesis-schema-generation ", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSE", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5094, + "versionNonce": 1866066237, + "isDeleted": false, + "id": "l1zJr80S72hBgbRCI7cqJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19069.629268645338, + "y": 3928.8209179959626, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 113.92127254271757, + "height": 60.585522418333525, + "seed": 1648377715, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290729705, + "link": null, + "locked": false, + "index": "bSF" + }, + { + "type": "rectangle", + "version": 5205, + "versionNonce": 973322653, + "isDeleted": false, + "id": "mtMaKucnQVjM2XGRsEuJB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19069.86329508525, + "y": 3901.446944628258, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 59.27927860964957, + "height": 25.952395015707573, + "seed": 831379731, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290729705, + "link": null, + "locked": false, + "index": "bSG" + }, + { + "type": "text", + "version": 5315, + "versionNonce": 981515389, + "isDeleted": false, + "id": "6iMz2k1HtekeNK6PuOlhD", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17186.274708435765, + "y": 3889.340543593167, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1368.0950927734375, + "height": 169.43573414501193, + "seed": 1328711795, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290732812, + "link": "https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html#_Toc10045408", + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Application: agent-aware-object-sythesis - Schema Generation\ntimothy@agileintegrator.com\n6-Aug-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Application: agent-aware-object-sythesis - Schema Generation\ntimothy@agileintegrator.com\n6-Aug-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSc", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3218, + "versionNonce": 348696499, + "isDeleted": false, + "id": "Uiqk01RdhKC9U5MrFz_ih", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17585.18109996939, + "y": 4843.205358377921, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1871436979, + "groupIds": [ + "xTbymX-Xe_lA7A1d1LTT7" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "ymPB2jdmI4LfdFEQ9RI0k", + "type": "text" + }, + { + "id": "qpQl_B5ICUmuZoHJLzTxi", + "type": "arrow" + } + ], + "updated": 1755290622148, + "link": null, + "locked": false, + "index": "bTS8" + }, + { + "type": "text", + "version": 2760, + "versionNonce": 303972691, + "isDeleted": false, + "id": "ymPB2jdmI4LfdFEQ9RI0k", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17614.392864593123, + "y": 4848.205358377921, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 139.61988830566406, + "height": 75, + "seed": 87276541, + "groupIds": [ + "xTbymX-Xe_lA7A1d1LTT7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290622148, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nLogical Object\nDefinition", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "Uiqk01RdhKC9U5MrFz_ih", + "originalText": "Data object:\nLogical Object Definition", + "lineHeight": 1.25, + "baseline": 18, + "index": "bTSG", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3815, + "versionNonce": 504405747, + "isDeleted": false, + "id": "mGnnqEEHcGG-PaepIOFtn", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17753.893242175283, + "y": 4849.128459887695, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1710476883, + "groupIds": [ + "xTbymX-Xe_lA7A1d1LTT7" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290622148, + "link": null, + "locked": false, + "index": "bTSV" + }, + { + "type": "rectangle", + "version": 4187, + "versionNonce": 1663453331, + "isDeleted": false, + "id": "1G0Ou_3GwRQ2RxwZ45w9I", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17753.902889111014, + "y": 4849.148248208142, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 2125804637, + "groupIds": [ + "xTbymX-Xe_lA7A1d1LTT7" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "qpQl_B5ICUmuZoHJLzTxi", + "type": "arrow" + } + ], + "updated": 1755290622148, + "link": null, + "locked": false, + "index": "bTSl" + }, + { + "type": "rectangle", + "version": 3846, + "versionNonce": 1250587837, + "index": "bWB", + "isDeleted": false, + "id": "8gv377J_npBAbb79P5stz", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 17943.010371725682, + "y": 4612.733647454243, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 92.7413057426693, + "seed": 2093117587, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "JopVPKHj5TA0td_qBH35i" + }, + { + "id": "9XSBN80ZDpiyPnXLDmPVJ", + "type": "arrow" + }, + { + "id": "OaHQgbBKgv_SeVXYAn_xX", + "type": "arrow" + }, + { + "id": "qpQl_B5ICUmuZoHJLzTxi", + "type": "arrow" + }, + { + "id": "A-g1D9FYk-bBevlRHLgPx", + "type": "arrow" + } + ], + "updated": 1755290617024, + "link": null, + "locked": false + }, + { + "id": "JopVPKHj5TA0td_qBH35i", + "type": "text", + "x": 17959.067750740276, + "y": 4624.104300325577, + "width": 276.7518615722656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bWC", + "roundness": null, + "seed": 1525474867, + "version": 1808, + "versionNonce": 37147933, + "isDeleted": false, + "boundElements": [], + "updated": 1755290617024, + "link": null, + "locked": false, + "text": "Application function:\nSchema Generation", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "8gv377J_npBAbb79P5stz", + "originalText": "Application function:\nSchema Generation", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "arrow", + "version": 11097, + "versionNonce": 76012317, + "index": "bWL", + "isDeleted": false, + "id": "9XSBN80ZDpiyPnXLDmPVJ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 18094.073479380022, + "y": 4603.795628209928, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.530356717958057, + "height": 279.0068486170858, + "seed": 960783571, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755290637607, + "link": null, + "locked": false, + "startBinding": { + "elementId": "8gv377J_npBAbb79P5stz", + "focus": -0.017225933205895494, + "gap": 8.938019244315 + }, + "endBinding": { + "elementId": "S-Fznlu_slDJdQ30Vk3LB", + "focus": -0.05599153545450453, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.530356717958057, + -279.0068486170858 + ] + ] + }, + { + "type": "arrow", + "version": 10143, + "versionNonce": 595356211, + "index": "bWQ", + "isDeleted": false, + "id": "6AjOdRna9Tyn1OGdIeDRX", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 18593.973223040197, + "y": 4603.020278489521, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 3.023872660793131, + "height": 266.20484987165764, + "seed": 1068237043, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755290642558, + "link": null, + "locked": false, + "startBinding": { + "elementId": "CxLFgqq0jh6ZoIQKr4IN0", + "focus": 0.195318648152591, + "gap": 9.12438002998897 + }, + "endBinding": { + "elementId": "RA8LmFk1M1dtMljZXNNIA", + "focus": 0.08138925074953618, + "gap": 6.012295377761802 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -3.023872660793131, + -266.20484987165764 + ] + ] + }, + { + "type": "rectangle", + "version": 3631, + "versionNonce": 2038821245, + "isDeleted": false, + "id": "RA8LmFk1M1dtMljZXNNIA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18440.467859254233, + "y": 4182.904459238425, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 325.79971197539163, + "height": 147.89867400167594, + "seed": 1593237203, + "groupIds": [ + "egOSBv-ETLfFyv99TypVt" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "qBbyObPPg0l0RzxrFRse-" + }, + { + "id": "j-4oYTU8Bt7EBBqClPLZc", + "type": "arrow" + }, + { + "id": "ijAbwibQSsvBB04bN0Tr3", + "type": "arrow" + }, + { + "id": "6AjOdRna9Tyn1OGdIeDRX", + "type": "arrow" + } + ], + "updated": 1755290632993, + "link": null, + "locked": false, + "index": "bWb" + }, + { + "type": "text", + "version": 3358, + "versionNonce": 1713682909, + "isDeleted": false, + "id": "qBbyObPPg0l0RzxrFRse-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18469.277428987047, + "y": 4218.433945753402, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 268.1805725097656, + "height": 76.83970097172228, + "seed": 1358531699, + "groupIds": [ + "egOSBv-ETLfFyv99TypVt" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290632993, + "link": null, + "locked": false, + "fontSize": 30.735880388688912, + "fontFamily": 1, + "text": "Business function:\nDeploy Schema", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "RA8LmFk1M1dtMljZXNNIA", + "originalText": "Business function:\nDeploy Schema", + "lineHeight": 1.25, + "baseline": 18, + "index": "bWc", + "autoResize": true + }, + { + "id": "JyeUYw2gs7Ipi17120hCh", + "type": "line", + "x": 18751.27801012813, + "y": 4211.364247289566, + "width": 37.00730793284681, + "height": 21.333745830844425, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "egOSBv-ETLfFyv99TypVt" + ], + "frameId": null, + "index": "bWd", + "roundness": null, + "seed": 1972733459, + "version": 4365, + "versionNonce": 206463837, + "isDeleted": false, + "boundElements": [], + "updated": 1755290632994, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.2404721400374031, + -12.629665589581023 + ], + [ + -18.167318387597685, + -21.020133515996292 + ], + [ + -36.97671193305911, + -13.520000170771766 + ], + [ + -37.00730793284681, + 0.31361231484813207 + ], + [ + -18.261028669830566, + -6.636161556539509 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "ijAbwibQSsvBB04bN0Tr3", + "type": "arrow", + "x": 18604.831452370374, + "y": 4102.445812555675, + "width": 1.4180724957077473, + "height": 80.04277820588868, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bWv", + "roundness": null, + "seed": 1544869715, + "version": 2770, + "versionNonce": 204126205, + "isDeleted": false, + "boundElements": [], + "updated": 1755290643285, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.4180724957077473, + 80.04277820588868 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "TaN9_ysFbK1RnD5CBjF_Y", + "focus": 0.11965663978048033, + "gap": 15.786454606288316 + }, + "endBinding": { + "elementId": "RA8LmFk1M1dtMljZXNNIA", + "focus": 0.02864156206059783, + "gap": 1 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3744, + "versionNonce": 1959100371, + "isDeleted": false, + "id": "ZDDu9vGJWljPxJGxDo7CC", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17991.857926237044, + "y": 4859.22485769998, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 60, + "seed": 337008019, + "groupIds": [ + "n-H4I4ZUmye617mS9pyGG" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "UbKokMx6yiYGsoaP3kKIr", + "type": "text" + }, + { + "id": "D88NQU4GzXb-VPD4j3fwJ", + "type": "arrow" + }, + { + "id": "OaHQgbBKgv_SeVXYAn_xX", + "type": "arrow" + } + ], + "updated": 1755290622148, + "link": null, + "locked": false, + "index": "bXL" + }, + { + "type": "text", + "version": 3381, + "versionNonce": 1447824755, + "isDeleted": false, + "id": "UbKokMx6yiYGsoaP3kKIr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18018.169689334896, + "y": 4864.22485769998, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 145.41989135742188, + "height": 50, + "seed": 142355251, + "groupIds": [ + "n-H4I4ZUmye617mS9pyGG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290622148, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nDomain Schema", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "ZDDu9vGJWljPxJGxDo7CC", + "originalText": "Data object:\nDomain Schema", + "lineHeight": 1.25, + "baseline": 18, + "index": "bXM", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4340, + "versionNonce": 211385939, + "isDeleted": false, + "id": "2DdSQxQxVwUEsPsDiMAv7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18160.570068442936, + "y": 4865.147959209752, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1222003923, + "groupIds": [ + "n-H4I4ZUmye617mS9pyGG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290622148, + "link": null, + "locked": false, + "index": "bXN" + }, + { + "type": "rectangle", + "version": 4707, + "versionNonce": 1850355, + "isDeleted": false, + "id": "aMU6AHJBqC1LmQkyCmtgG", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18160.579715378666, + "y": 4865.167747530201, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 1757100659, + "groupIds": [ + "n-H4I4ZUmye617mS9pyGG" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "FJuIlpeIB58DZ59uDY1oG", + "type": "arrow" + } + ], + "updated": 1755290622148, + "link": null, + "locked": false, + "index": "bXO" + }, + { + "type": "arrow", + "version": 9662, + "versionNonce": 2005682291, + "index": "bXU", + "isDeleted": false, + "id": "D88NQU4GzXb-VPD4j3fwJ", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18091.63907980192, + "y": 5026.5329949277175, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 1.0544857169188617, + "height": 100.08295502990495, + "seed": 419924019, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290626994, + "link": null, + "locked": false, + "startBinding": { + "elementId": "tFFzX9C-ptfVS_vheq9Pg", + "focus": -0.10375360452658776, + "gap": 8.702278755020416 + }, + "endBinding": { + "elementId": "ZDDu9vGJWljPxJGxDo7CC", + "focus": -0.02390456859526437, + "gap": 7.22518219783251 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + 1.0544857169188617, + -100.08295502990495 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 15327, + "versionNonce": 1697090739, + "index": "bXm", + "isDeleted": false, + "id": "OaHQgbBKgv_SeVXYAn_xX", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 18099.895079020873, + "y": 4706.258354032028, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 8.064122522602702, + "height": 144.0299658168442, + "seed": 1241289075, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755290622148, + "link": null, + "locked": false, + "startBinding": { + "elementId": "8gv377J_npBAbb79P5stz", + "focus": -0.032554987377246866, + "gap": 2.630410839493379 + }, + "endBinding": { + "elementId": "ZDDu9vGJWljPxJGxDo7CC", + "focus": -0.012167477238378351, + "gap": 8.93653785110746 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -8.064122522602702, + 144.0299658168442 + ] + ] + }, + { + "type": "rectangle", + "version": 3597, + "versionNonce": 175647219, + "isDeleted": false, + "id": "ig7XFJ6ljVW-5gqm3Gj_r", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18210.426093176946, + "y": 4424.041261518318, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 85, + "seed": 347401651, + "groupIds": [ + "wLSe41iHr5iveSyTbxlsA" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "HRHT5liyuHpsdY1aawZAk" + }, + { + "id": "PbvDnYehBGPDyzsuTrn1v", + "type": "arrow" + }, + { + "id": "A-g1D9FYk-bBevlRHLgPx", + "type": "arrow" + } + ], + "updated": 1755290629435, + "link": null, + "locked": false, + "index": "bXw" + }, + { + "type": "text", + "version": 3302, + "versionNonce": 275018643, + "isDeleted": false, + "id": "HRHT5liyuHpsdY1aawZAk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18253.57143084212, + "y": 4454.041261518318, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 146.1598663330078, + "height": 50, + "seed": 97697619, + "groupIds": [ + "wLSe41iHr5iveSyTbxlsA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290629435, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nDBA Agent", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "ig7XFJ6ljVW-5gqm3Gj_r", + "originalText": "App Component:\nDBA Agent", + "lineHeight": 1.25, + "baseline": 18, + "index": "bXx", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3746, + "versionNonce": 1763055731, + "isDeleted": false, + "id": "AIlUCglPv-XdhJZSMZ-G5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18408.175708878058, + "y": 4429.060957530508, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 1652907251, + "groupIds": [ + "bLbtjlIjj1uxcsFWZjswQ", + "wLSe41iHr5iveSyTbxlsA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290629435, + "link": null, + "locked": false, + "index": "bXy" + }, + { + "type": "rectangle", + "version": 4412, + "versionNonce": 1916834323, + "isDeleted": false, + "id": "5El2QwHCPnYxaIrIYFeIq", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18404.218670852788, + "y": 4431.481237206239, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1985169043, + "groupIds": [ + "bLbtjlIjj1uxcsFWZjswQ", + "wLSe41iHr5iveSyTbxlsA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290629435, + "link": null, + "locked": false, + "index": "bXz" + }, + { + "type": "rectangle", + "version": 4437, + "versionNonce": 254465971, + "isDeleted": false, + "id": "aYt9JmOlvFFzibrHTP_09", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18404.389498305587, + "y": 4436.251687891729, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1475542067, + "groupIds": [ + "bLbtjlIjj1uxcsFWZjswQ", + "wLSe41iHr5iveSyTbxlsA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290629435, + "link": null, + "locked": false, + "index": "bY0" + }, + { + "id": "PbvDnYehBGPDyzsuTrn1v", + "type": "arrow", + "x": 18349.7114085862, + "y": 4516.036576048466, + "width": 77.62305559952438, + "height": 96.16578353366458, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bY1", + "roundness": null, + "seed": 55246291, + "version": 3666, + "versionNonce": 1364625715, + "isDeleted": false, + "boundElements": [], + "updated": 1755290629435, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 77.62305559952438, + 96.16578353366458 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "ig7XFJ6ljVW-5gqm3Gj_r", + "focus": 0.11209174559704635, + "gap": 6.995314530148789 + }, + "endBinding": { + "elementId": "CxLFgqq0jh6ZoIQKr4IN0", + "focus": -0.4494839860289413, + "gap": 2.3392098722302412 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 4097, + "versionNonce": 1128218813, + "index": "bY2", + "isDeleted": false, + "id": "CxLFgqq0jh6ZoIQKr4IN0", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 18410.005434134928, + "y": 4612.14465851951, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 308.86661960145494, + "height": 115, + "seed": 863095667, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "s6wcunDxH3vi72do6MOrQ" + }, + { + "id": "6AjOdRna9Tyn1OGdIeDRX", + "type": "arrow" + }, + { + "id": "PbvDnYehBGPDyzsuTrn1v", + "type": "arrow" + }, + { + "id": "FJuIlpeIB58DZ59uDY1oG", + "type": "arrow" + }, + { + "id": "pauOZ6WGrPVmWuspCP_6V", + "type": "arrow" + } + ], + "updated": 1755290617025, + "link": null, + "locked": false + }, + { + "id": "s6wcunDxH3vi72do6MOrQ", + "type": "text", + "x": 18426.06281314952, + "y": 4634.64465851951, + "width": 276.7518615722656, + "height": 70, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 80, + "groupIds": [], + "frameId": null, + "index": "bY3", + "roundness": null, + "seed": 2091771155, + "version": 2156, + "versionNonce": 577904925, + "isDeleted": false, + "boundElements": [], + "updated": 1755290617025, + "link": null, + "locked": false, + "text": "Application function:\nRDBMS", + "fontSize": 28, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "CxLFgqq0jh6ZoIQKr4IN0", + "originalText": "Application function:\nRDBMS", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3441, + "versionNonce": 1138139965, + "isDeleted": false, + "id": "TaN9_ysFbK1RnD5CBjF_Y", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18495.477938052336, + "y": 4018.765561265402, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 246.9748729860165, + "height": 67.89379668398578, + "seed": 645253811, + "groupIds": [ + "f7h3rk-ggQgBLeY99csqG" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "FMgOCgqy2LIvMUYSqCr9w", + "type": "text" + }, + { + "id": "ijAbwibQSsvBB04bN0Tr3", + "type": "arrow" + } + ], + "updated": 1755290643285, + "link": null, + "locked": false, + "index": "bY4" + }, + { + "type": "text", + "version": 3187, + "versionNonce": 251212701, + "isDeleted": false, + "id": "FMgOCgqy2LIvMUYSqCr9w", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18552.03544290472, + "y": 4031.659357949388, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 133.85986328125, + "height": 50, + "seed": 1164966995, + "groupIds": [ + "f7h3rk-ggQgBLeY99csqG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290643285, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nDBA", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "TaN9_ysFbK1RnD5CBjF_Y", + "originalText": "Business role:\nDBA", + "lineHeight": 1.25, + "baseline": 18, + "index": "bY5", + "autoResize": true + }, + { + "type": "line", + "version": 10090, + "versionNonce": 91009117, + "index": "bY6", + "isDeleted": false, + "id": "IxxZXG35owKPr3gYcdA_s", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 18726.503846898344, + "y": 4018.732344662753, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 359856627, + "groupIds": [ + "iF2UdoTrp5y8qzxMkWQDn", + "f7h3rk-ggQgBLeY99csqG" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755290643285, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10817, + "versionNonce": 143695037, + "index": "bY7", + "isDeleted": false, + "id": "TfIOkoMb8FSFjtq1ykWMA", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 18703.756821128012, + "y": 4028.9951775558807, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 327500691, + "groupIds": [ + "iF2UdoTrp5y8qzxMkWQDn", + "f7h3rk-ggQgBLeY99csqG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290643285, + "link": null, + "locked": false + }, + { + "type": "arrow", + "version": 15421, + "versionNonce": 464930195, + "index": "bY9", + "isDeleted": false, + "id": "FJuIlpeIB58DZ59uDY1oG", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 18197.859579254975, + "y": 4852.652424001088, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 213.91613945980134, + "height": 135.996304246627, + "seed": 803322579, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755290622148, + "link": null, + "locked": false, + "startBinding": { + "elementId": "aMU6AHJBqC1LmQkyCmtgG", + "focus": 0.1583088995961428, + "gap": 14 + }, + "endBinding": { + "elementId": "CxLFgqq0jh6ZoIQKr4IN0", + "focus": 0.31867380423450364, + "gap": 2.3672938049095285 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 213.91613945980134, + -135.996304246627 + ] + ] + }, + { + "type": "rectangle", + "version": 3264, + "versionNonce": 1625272787, + "isDeleted": false, + "id": "9LsQw9byisPtKVYpUprC8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18569.32390183464, + "y": 5283.426109042137, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 85, + "seed": 287981715, + "groupIds": [ + "sBDtoQR61FDGjrkPmGTBj" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "h-GKXwQDq97akuKMe7h5u" + }, + { + "id": "Umtjuy69ciJzqKbD0oQag", + "type": "arrow" + } + ], + "updated": 1755290623967, + "link": null, + "locked": false, + "index": "bYF" + }, + { + "type": "text", + "version": 2945, + "versionNonce": 1682964339, + "isDeleted": false, + "id": "h-GKXwQDq97akuKMe7h5u", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18611.215666763546, + "y": 5288.426109042137, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 114.2598876953125, + "height": 75, + "seed": 836417075, + "groupIds": [ + "sBDtoQR61FDGjrkPmGTBj" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290623967, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Node:\nPostgreSQL\nDatabase", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "9LsQw9byisPtKVYpUprC8", + "originalText": "Node:\nPostgreSQL Database", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYG", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4025, + "versionNonce": 878116531, + "isDeleted": false, + "id": "F4-1fFmugb7t2OxoDY129", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18737.870084154758, + "y": 5291.715090271502, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 19.248182578072566, + "height": 15.363838546045104, + "seed": 2083223507, + "groupIds": [ + "oDMc8Mp2avW5FCo9qbz1d", + "sBDtoQR61FDGjrkPmGTBj" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290623967, + "link": null, + "locked": false, + "index": "bYH" + }, + { + "id": "sMNXRBDb8-TnDrt3F-KS1", + "type": "line", + "x": 18760.107745840945, + "y": 5289.534697225879, + "width": 3.003079486571451, + "height": 17.54457135406796, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "oDMc8Mp2avW5FCo9qbz1d", + "sBDtoQR61FDGjrkPmGTBj" + ], + "frameId": null, + "index": "bYI", + "roundness": null, + "seed": 1848837491, + "version": 2756, + "versionNonce": 1762308179, + "isDeleted": false, + "boundElements": [], + "updated": 1755290623967, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21179345361984853, + 14.972937267542322 + ], + [ + -2.995690343063882, + 17.54457135406796 + ], + [ + -3.003079486571451, + 2.118571281484566 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "5a_pxSxdW3ahm69tIb_nU", + "type": "line", + "x": 18760.118174879248, + "y": 5289.482337838477, + "width": 22.22666794475111, + "height": 2.206035892395766, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "oDMc8Mp2avW5FCo9qbz1d", + "sBDtoQR61FDGjrkPmGTBj" + ], + "frameId": null, + "index": "bYJ", + "roundness": null, + "seed": 2134368019, + "version": 2347, + "versionNonce": 1536634355, + "isDeleted": false, + "boundElements": [], + "updated": 1755290623967, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -18.34081603072079, + 0.10124955609878751 + ], + [ + -22.22666794475111, + 2.1495365046023367 + ], + [ + -3.1016389619817986, + 2.206035892395766 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 4117, + "versionNonce": 1358219891, + "isDeleted": false, + "id": "xwb3kyqQdBkrqzHThXdOY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18543.526178149823, + "y": 5020.900878491967, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 235.45687427491387, + "height": 129, + "seed": 2041611443, + "groupIds": [ + "vN7yZldl2PZb4rfSYNkDe" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "9bLNBvai_Q-TsdnhFHaIy" + }, + { + "id": "Umtjuy69ciJzqKbD0oQag", + "type": "arrow" + }, + { + "id": "pauOZ6WGrPVmWuspCP_6V", + "type": "arrow" + } + ], + "updated": 1755290625224, + "link": null, + "locked": false, + "index": "bYK" + }, + { + "type": "text", + "version": 3799, + "versionNonce": 259589139, + "isDeleted": false, + "id": "9bLNBvai_Q-TsdnhFHaIy", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18557.20149944255, + "y": 5055.732221493402, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 208.10623168945312, + "height": 89.16865699856533, + "seed": 356742739, + "groupIds": [ + "vN7yZldl2PZb4rfSYNkDe" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290625224, + "link": null, + "locked": false, + "fontSize": 23.778308532950753, + "fontFamily": 1, + "text": "Tech service:\n<>\nDatabase service", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "xwb3kyqQdBkrqzHThXdOY", + "originalText": "Tech service:\n<> Database service", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYL", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5661, + "versionNonce": 1174305011, + "isDeleted": false, + "id": "s7v4iMplkWI_JndMG0Ar6", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18737.220465100425, + "y": 5029.973264557796, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 31.263227168466805, + "height": 11.596463525239006, + "seed": 1355232243, + "groupIds": [ + "vN7yZldl2PZb4rfSYNkDe" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1755290625224, + "link": null, + "locked": false, + "index": "bYM" + }, + { + "type": "arrow", + "version": 9507, + "versionNonce": 277154227, + "index": "bYN", + "isDeleted": false, + "id": "Umtjuy69ciJzqKbD0oQag", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18666.079408529207, + "y": 5272.686026329733, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 5.231176941284502, + "height": 121.52506670475668, + "seed": 205667731, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290625224, + "link": null, + "locked": false, + "startBinding": { + "elementId": "9LsQw9byisPtKVYpUprC8", + "focus": 0.0017055863945798554, + "gap": 10.740082712404728 + }, + "endBinding": { + "elementId": "xwb3kyqQdBkrqzHThXdOY", + "focus": 0.02631714547293032, + "gap": 2.587420017772274 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -5.231176941284502, + -121.52506670475668 + ] + ], + "elbowed": false + }, + { + "type": "arrow", + "version": 9181, + "versionNonce": 1228888915, + "index": "bYQ", + "isDeleted": false, + "id": "pauOZ6WGrPVmWuspCP_6V", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18664.78296518747, + "y": 5018.20377092428, + "strokeColor": "#343a40", + "backgroundColor": "#b2f2bb", + "width": 11.772491670271847, + "height": 289.554513314627, + "seed": 1385177715, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290625224, + "link": null, + "locked": false, + "startBinding": { + "elementId": "xwb3kyqQdBkrqzHThXdOY", + "focus": 0.05222327257838953, + "gap": 5.46156044795498 + }, + "endBinding": { + "elementId": "CxLFgqq0jh6ZoIQKr4IN0", + "focus": -0.55047742604549, + "gap": 4.152393101890084 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "points": [ + [ + 0, + 0 + ], + [ + -11.772491670271847, + -289.554513314627 + ] + ], + "elbowed": false + }, + { + "type": "rectangle", + "version": 3849, + "versionNonce": 863911421, + "isDeleted": false, + "id": "S-Fznlu_slDJdQ30Vk3LB", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17927.166873359558, + "y": 4184.877170914614, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 303.8316357293715, + "height": 139.49172216661904, + "seed": 350193619, + "groupIds": [ + "gyAH0NfE_anvDBUKUsyHG" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "qxiTYk34pUV9vk1xWvEJs" + }, + { + "id": "9XSBN80ZDpiyPnXLDmPVJ", + "type": "arrow" + }, + { + "id": "MtppyB2nTKVIyFDDV8pLG", + "type": "arrow" + }, + { + "id": "j-4oYTU8Bt7EBBqClPLZc", + "type": "arrow" + }, + { + "id": "fpzXZ_6IypCjM9nQutIAB", + "type": "arrow" + } + ], + "updated": 1755290632994, + "link": null, + "locked": false, + "index": "bYa" + }, + { + "type": "text", + "version": 3669, + "versionNonce": 1147106909, + "isDeleted": false, + "id": "qxiTYk34pUV9vk1xWvEJs", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17951.851276429323, + "y": 4220.057907135213, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 254.46282958984375, + "height": 69.13024972542082, + "seed": 1977947507, + "groupIds": [ + "gyAH0NfE_anvDBUKUsyHG" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290632994, + "link": null, + "locked": false, + "fontSize": 27.65209989016833, + "fontFamily": 1, + "text": "Business function:\nSchema Generation", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "S-Fznlu_slDJdQ30Vk3LB", + "originalText": "Business function:\nSchema Generation", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYb", + "autoResize": true + }, + { + "id": "hGSCcJQuPS5NFZftmcPM4", + "type": "line", + "x": 18217.51287485147, + "y": 4210.481542485916, + "width": 33.29430498440818, + "height": 19.193296671048646, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "gyAH0NfE_anvDBUKUsyHG" + ], + "frameId": null, + "index": "bYc", + "roundness": null, + "seed": 1713893139, + "version": 4665, + "versionNonce": 305716285, + "isDeleted": false, + "boundElements": [], + "updated": 1755290632994, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21634518201612724, + -11.362510852008604 + ], + [ + -16.344562004972463, + -18.91114958603595 + ], + [ + -33.266778730672485, + -12.163516727337878 + ], + [ + -33.29430498440818, + 0.28214708501269614 + ], + [ + -16.42887018330573, + -5.970344754343089 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3872, + "versionNonce": 648826013, + "isDeleted": false, + "id": "sGCSHrnSAFIy6PX7SZlsx", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17477.36539104404, + "y": 4183.748361468471, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 303.8316357293715, + "height": 139.49172216661904, + "seed": 1206684221, + "groupIds": [ + "2pWiU-8tH5jS3OR4ZITig" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "YVfqgOmNRCcOj5XcDuW6M" + }, + { + "id": "fpzXZ_6IypCjM9nQutIAB", + "type": "arrow" + } + ], + "updated": 1755290632994, + "link": null, + "locked": false, + "index": "bYcG" + }, + { + "type": "text", + "version": 3710, + "versionNonce": 1343402237, + "isDeleted": false, + "id": "YVfqgOmNRCcOj5XcDuW6M", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17506.252583420446, + "y": 4218.92909768907, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 246.0572509765625, + "height": 69.13024972542082, + "seed": 1655047187, + "groupIds": [ + "2pWiU-8tH5jS3OR4ZITig" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290632994, + "link": null, + "locked": false, + "fontSize": 27.65209989016833, + "fontFamily": 1, + "text": "Business function:\nModel Preparation", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "sGCSHrnSAFIy6PX7SZlsx", + "originalText": "Business function:\nModel Preparation", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYcV", + "autoResize": true + }, + { + "id": "JKvR62eEMswht8DfPRheG", + "type": "line", + "x": 17767.71139253595, + "y": 4209.352733039773, + "width": 33.29430498440818, + "height": 19.193296671048646, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "2pWiU-8tH5jS3OR4ZITig" + ], + "frameId": null, + "index": "bYcl", + "roundness": null, + "seed": 96090781, + "version": 4689, + "versionNonce": 1804490173, + "isDeleted": false, + "boundElements": [], + "updated": 1755290632994, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.21634518201612724, + -11.362510852008604 + ], + [ + -16.344562004972463, + -18.91114958603595 + ], + [ + -33.266778730672485, + -12.163516727337878 + ], + [ + -33.29430498440818, + 0.28214708501269614 + ], + [ + -16.42887018330573, + -5.970344754343089 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 3174, + "versionNonce": 2048300573, + "isDeleted": false, + "id": "LTo7YfSOiLC57vAvwcwZH", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18001.248479810645, + "y": 4014.889679930045, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 790023293, + "groupIds": [ + "sOd-8By7r2iOJ4ksAiGoV" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "RgCBZ_pMCK099B6YvNh1O", + "type": "text" + }, + { + "id": "MtppyB2nTKVIyFDDV8pLG", + "type": "arrow" + } + ], + "updated": 1755290632994, + "link": null, + "locked": false, + "index": "bYs" + }, + { + "type": "text", + "version": 2820, + "versionNonce": 578275965, + "isDeleted": false, + "id": "RgCBZ_pMCK099B6YvNh1O", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18023.68024565508, + "y": 4036.124120875033, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 153.1798858642578, + "height": 50, + "seed": 182596829, + "groupIds": [ + "sOd-8By7r2iOJ4ksAiGoV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290632994, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business role:\nData Architect", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "LTo7YfSOiLC57vAvwcwZH", + "originalText": "Business role:\nData Architect", + "lineHeight": 1.25, + "baseline": 18, + "index": "bYt", + "autoResize": true + }, + { + "type": "line", + "version": 9942, + "versionNonce": 798691133, + "index": "bYu", + "isDeleted": false, + "id": "m8950HSx3I4-bIiQXS5JV", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 18183.342933223765, + "y": 4014.856463327394, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 10.018984245391911, + "height": 29.60015993147767, + "seed": 1038192957, + "groupIds": [ + "ci_GAataBZuY5oy-q740r", + "sOd-8By7r2iOJ4ksAiGoV" + ], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755290632994, + "link": null, + "locked": false, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": null, + "points": [ + [ + 0, + 0 + ], + [ + -0.033037464846042953, + 22.371640441120636 + ], + [ + -0.0015460757981068751, + 24.918554557359396 + ], + [ + -0.5159998470904422, + 26.019044652696014 + ], + [ + -2.3075594360369127, + 26.950415612232703 + ], + [ + -5.335802631885585, + 27.24043061587666 + ], + [ + -8.229088753296855, + 26.777379180156355 + ], + [ + -9.766312972402726, + 25.67000004654039 + ], + [ + -9.983117647296998, + 24.736467820092457 + ], + [ + -10.013567079045892, + 22.685965838110164 + ], + [ + -9.989667815754611, + 1.8768557638845274 + ], + [ + -9.935791204927582, + -0.08922172937975045 + ], + [ + -9.292471341918015, + -1.1880753736432337 + ], + [ + -7.937777000506176, + -1.8244732592346153 + ], + [ + -4.850611632571357, + -2.359729315601007 + ], + [ + -2.3754879688290367, + -2.0405549239586276 + ], + [ + -0.4288200167505504, + -0.9579543316478073 + ], + [ + 0.005417166346018751, + -0.013442308306484236 + ], + [ + 0, + 0 + ] + ], + "polygon": false + }, + { + "type": "ellipse", + "version": 10671, + "versionNonce": 1599086493, + "index": "bYv", + "isDeleted": false, + "id": "vmovmzMHLp1arg6ctDskU", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 4.712388980384691, + "x": 18160.595907453433, + "y": 4025.119296220522, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 9.819939520505784, + "height": 4.365733810121187, + "seed": 628515229, + "groupIds": [ + "ci_GAataBZuY5oy-q740r", + "sOd-8By7r2iOJ4ksAiGoV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290632994, + "link": null, + "locked": false + }, + { + "id": "MtppyB2nTKVIyFDDV8pLG", + "type": "arrow", + "x": 18095.781151375406, + "y": 4102.156156587433, + "width": 0.34275182981218677, + "height": 81.60918252692272, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bYw", + "roundness": null, + "seed": 1993483773, + "version": 3606, + "versionNonce": 437242899, + "isDeleted": false, + "boundElements": [], + "updated": 1755290633386, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.34275182981218677, + 81.60918252692272 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "LTo7YfSOiLC57vAvwcwZH", + "focus": 0.04734195313350232, + "gap": 11.032035712399647 + }, + "endBinding": { + "elementId": "S-Fznlu_slDJdQ30Vk3LB", + "focus": 0.11391466681680282, + "gap": 1.1118318002581873 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "arrow", + "version": 10966, + "versionNonce": 583279443, + "index": "bYy", + "isDeleted": false, + "id": "fpzXZ_6IypCjM9nQutIAB", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 17796.20359431856, + "y": 4260.398805387855, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 126.18141159515653, + "height": 1.3527841172790431, + "seed": 575619987, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755290633386, + "link": null, + "locked": false, + "startBinding": { + "elementId": "sGCSHrnSAFIy6PX7SZlsx", + "focus": 0.12181022040643497, + "gap": 15.006567545147846 + }, + "endBinding": { + "elementId": "S-Fznlu_slDJdQ30Vk3LB", + "focus": -0.038431655558488174, + "gap": 4.7818674458430905 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 126.18141159515653, + -1.3527841172790431 + ] + ] + }, + { + "type": "arrow", + "version": 15510, + "versionNonce": 1997913651, + "index": "bZG", + "isDeleted": false, + "id": "qpQl_B5ICUmuZoHJLzTxi", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 17791.182752987323, + "y": 4845.854578540933, + "strokeColor": "#1971c2", + "backgroundColor": "#b2f2bb", + "width": 158.09295822199056, + "height": 140.42313655681755, + "seed": 2076406035, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755290622148, + "link": null, + "locked": false, + "startBinding": { + "elementId": "1G0Ou_3GwRQ2RxwZ45w9I", + "focus": 1.3647217753721101, + "gap": 14 + }, + "endBinding": { + "elementId": "8gv377J_npBAbb79P5stz", + "focus": 0.462235625617523, + "gap": 5.903225476634039 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 158.09295822199056, + -140.42313655681755 + ] + ] + }, + { + "id": "A-g1D9FYk-bBevlRHLgPx", + "type": "arrow", + "x": 18306.333703477794, + "y": 4516.348367343551, + "width": 73.53727290256211, + "height": 96.20855882875094, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bZM", + "roundness": null, + "seed": 334738301, + "version": 3820, + "versionNonce": 45411027, + "isDeleted": false, + "boundElements": [], + "updated": 1755290629435, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -73.53727290256211, + 96.20855882875094 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "ig7XFJ6ljVW-5gqm3Gj_r", + "focus": -0.12010415843220541, + "gap": 7.307105825232611 + }, + "endBinding": { + "elementId": "8gv377J_npBAbb79P5stz", + "focus": 0.5278110702285056, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "arrow", + "version": 11226, + "versionNonce": 154905235, + "index": "bZN", + "isDeleted": false, + "id": "j-4oYTU8Bt7EBBqClPLZc", + "fillStyle": "hachure", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 18241.35068025676, + "y": 4250.048206628077, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "width": 193.17335835032645, + "height": 7.071732446000169, + "seed": 674357725, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1755290633387, + "link": null, + "locked": false, + "startBinding": { + "elementId": "S-Fznlu_slDJdQ30Vk3LB", + "focus": -0.13963025229813467, + "gap": 10.352171167833149 + }, + "endBinding": { + "elementId": "RA8LmFk1M1dtMljZXNNIA", + "focus": -0.0806780408168835, + "gap": 5.9438206471459125 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "points": [ + [ + 0, + 0 + ], + [ + 193.17335835032645, + 7.071732446000169 + ] + ] + }, + { + "type": "rectangle", + "version": 4394, + "versionNonce": 110672179, + "isDeleted": false, + "id": "tFFzX9C-ptfVS_vheq9Pg", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17984.847704944415, + "y": 5035.235273682738, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 237.10896356912946, + "height": 99.86923627881879, + "seed": 1240336851, + "groupIds": [ + "iwIaJfjHiwDBrB3HBYHFO", + "ASj8MGFdCc26Q_oVZUtGv" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "MmgpZMzUApL-0tdmK4MvQ" + }, + { + "id": "D88NQU4GzXb-VPD4j3fwJ", + "type": "arrow" + } + ], + "updated": 1755290626994, + "link": null, + "locked": false, + "index": "bZO" + }, + { + "type": "text", + "version": 4150, + "versionNonce": 808524499, + "isDeleted": false, + "id": "MmgpZMzUApL-0tdmK4MvQ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17991.850634910134, + "y": 5048.897583843975, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 223.1031036376953, + "height": 81.20692611758173, + "seed": 1238587251, + "groupIds": [ + "iwIaJfjHiwDBrB3HBYHFO", + "ASj8MGFdCc26Q_oVZUtGv" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290626994, + "link": null, + "locked": false, + "fontSize": 21.655180298021794, + "fontFamily": 1, + "text": "Artifact:\n<>\nPhysical SQL Schema", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "tFFzX9C-ptfVS_vheq9Pg", + "originalText": "Artifact:\n<> Physical SQL Schema", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZP", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5120, + "versionNonce": 846250515, + "isDeleted": false, + "id": "cU-44YNZYyutMhKeiCOG-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18196.59831836364, + "y": 5043.148079378909, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "width": 17.00270734471247, + "height": 19.484128973846662, + "seed": 204277843, + "groupIds": [ + "iwIaJfjHiwDBrB3HBYHFO", + "ASj8MGFdCc26Q_oVZUtGv" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1755290626994, + "link": null, + "locked": false, + "index": "bZQ" + }, + { + "id": "tbygk_LrEHxw0gj21pqzJ", + "type": "line", + "x": 18208.839001272077, + "y": 5042.728349389145, + "width": 17.54845777379122, + "height": 19.972720320632373, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "ASj8MGFdCc26Q_oVZUtGv" + ], + "frameId": null, + "index": "bZR", + "roundness": null, + "seed": 1727918355, + "version": 6190, + "versionNonce": 970262451, + "isDeleted": false, + "boundElements": [], + "updated": 1755290626994, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -12.113993775151252, + 0.037633259612622066 + ], + [ + -11.976688234649934, + 19.972720320632373 + ], + [ + 5.434463998639967, + 19.8287209143135 + ], + [ + 5.29933331997805, + 5.835913700978125 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "cQggkLUXl9GamNHVKNFlF", + "type": "line", + "x": 18214.102317480298, + "y": 5048.514749914037, + "width": 5.621496602404443, + "height": 5.844110723204111, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "groupIds": [ + "ASj8MGFdCc26Q_oVZUtGv" + ], + "frameId": null, + "index": "bZS", + "roundness": null, + "seed": 1659131571, + "version": 4649, + "versionNonce": 64985427, + "isDeleted": false, + "boundElements": [], + "updated": 1755290626994, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.621496602404443, + 0.1351311362982975 + ], + [ + -5.474139820497525, + -5.708979586905814 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file diff --git a/bootstrap-v3-executor.js b/bootstrap-v3-executor.js new file mode 100644 index 0000000..05adb0e --- /dev/null +++ b/bootstrap-v3-executor.js @@ -0,0 +1,280 @@ +// bootstrap-v3-executor.js +// Agent-Aware Architecture Framework Bootstrap Executor +// Version: 3.0.6 +// Context Commit Protocol Implementation + +async function runBootstrapV3(registryContent) { + console.log("=== Context Commit Protocol Starting ===\n"); + + // Detect environment + const env = detectEnvironment(); + console.log(`Environment: ${env.type}`); + console.log(`Capabilities: ${JSON.stringify(env.capabilities)}\n`); + + // Use provided registry content or get from global + const registry = registryContent || globalThis.registryContent; + + if (!registry) { + console.error("❌ No registry content provided"); + return 'FAIL'; + } + + // Verify this is real registry content, not mock data + if (registry.length < 5000) { + console.error("❌ Registry suspiciously small - likely mock data"); + console.error(`Registry size: ${registry.length} bytes (expected >5000)`); + return 'FAIL'; + } + + // Check for real registry markers + const realRegistryMarkers = [ + 'registry_version:', + 'functions:', + 'agent_roles:', + 'tools:', + 'io_objects:', + 'relationships:' + ]; + + let markersFound = 0; + for (const marker of realRegistryMarkers) { + if (registry.includes(marker)) markersFound++; + } + + if (markersFound < 5) { + console.error("❌ Registry missing key sections - likely fake or incomplete"); + console.error(`Only found ${markersFound}/6 required sections`); + return 'FAIL'; + } + + console.log("✓ Registry appears genuine"); + console.log(`Registry size: ${(registry.length/1024).toFixed(1)} KB`); + console.log("Parsing registry for context commit...\n"); + + // Parse registry and extract components + const footprint = parseRegistry(registry); + + // Perform verification + const scoring = verifyFootprint(footprint); + + // Display results + displayResults(env, footprint, scoring); + + // Store results globally + globalThis.bootstrapV3 = { + environment: env, + footprint: footprint, + scoring: scoring, + status: scoring.status, + timestamp: new Date().toISOString() + }; + + return scoring.status; +} + +function detectEnvironment() { + const capabilities = { + hasProjectKnowledge: typeof project_knowledge_search !== 'undefined', + hasFileSystem: typeof window?.fs?.readFile === 'function', + hasFetch: typeof fetch === 'function', + hasAnalysisTool: typeof console?.log === 'function' + }; + + let type = 'UNKNOWN'; + if (capabilities.hasProjectKnowledge) { + type = 'CLAUDE_PRO'; + } else if (capabilities.hasFileSystem) { + type = 'CLAUDE_CODE'; + } else { + type = 'CLAUDE_BASIC'; + } + + return { type, capabilities }; +} + +function parseRegistry(registryContent) { + console.log("Extracting components from registry..."); + + const footprint = { + metadata: { + registry_version: null, + registry_schema_version: null, + framework_keyword: null, + timestamp: new Date().toISOString(), + extraction_method: 'parsed_from_yaml' + }, + components: { + functions: [], + agent_roles: [], + tools: [], + io_objects: [], + applications: [], + relationships: [] + }, + counts: {}, + raw_length: registryContent.length + }; + + // Extract versions + const versionMatch = registryContent.match(/registry_version:\s*([\d.]+)/); + if (versionMatch) footprint.metadata.registry_version = versionMatch[1]; + + const schemaMatch = registryContent.match(/registry_schema_version:\s*([\d.]+)/); + if (schemaMatch) footprint.metadata.registry_schema_version = schemaMatch[1]; + + // Also check for old format + if (!footprint.metadata.registry_schema_version) { + const oldSchemaMatch = registryContent.match(/schema_version:\s*([\d.]+)/); + if (oldSchemaMatch) footprint.metadata.registry_schema_version = oldSchemaMatch[1]; + } + + // Check for verification keyword + if (registryContent.includes('AGENT_AWARE_VERIFIED')) { + footprint.metadata.framework_keyword = 'AGENT_AWARE_VERIFIED'; + } + + // Extract components by ID patterns + const patterns = { + functions: /function-[\w-]+/g, + agent_roles: /agent-role-[\w-]+/g, + tools: /tool-[\w-]+/g, + io_objects: /io-[\w-]+/g, + applications: /app-[\w-]+/g, + relationships: /rel-[\w-]+/g + }; + + for (const [component, pattern] of Object.entries(patterns)) { + const matches = registryContent.match(pattern) || []; + footprint.components[component] = [...new Set(matches)]; // Unique only + footprint.counts[component] = footprint.components[component].length; + } + + console.log(`Found ${footprint.counts.functions} functions`); + console.log(`Found ${footprint.counts.agent_roles} agent roles`); + console.log(`Found ${footprint.counts.tools} tools`); + console.log(`Found ${footprint.counts.io_objects} IO objects`); + console.log(`Found ${footprint.counts.applications} applications`); + console.log(`Found ${footprint.counts.relationships} relationships\n`); + + return footprint; +} + +function verifyFootprint(footprint) { + console.log("Verifying against blueprint...\n"); + + const blueprint = { + framework_keyword: "AGENT_AWARE_VERIFIED", + registry_version: "0.3.3", + registry_schema_version: "2.2.28", + required_components: { + functions: 6, + agent_roles: 4, + tools: 5, + io_objects: 9, + applications: 3 + } + }; + + // Two-tier scoring + const scoring = { + // Tier 1: Simple percentage + percentage: 0, + totalExpected: 0, + totalFound: 0, + + // Tier 2: Critical checks for status + status: 'FAIL', + criticalChecks: { + keyword_match: footprint.metadata.framework_keyword === blueprint.framework_keyword, + version_match: footprint.metadata.registry_version === blueprint.registry_version, + schema_match: footprint.metadata.registry_schema_version === blueprint.registry_schema_version, + all_functions_found: footprint.counts.functions === blueprint.required_components.functions, + all_tools_found: footprint.counts.tools === blueprint.required_components.tools + }, + + // Component breakdown + componentScores: {} + }; + + // Calculate percentage score + for (const [component, expected] of Object.entries(blueprint.required_components)) { + scoring.totalExpected += expected; + const found = footprint.counts[component] || 0; + scoring.totalFound += found; + scoring.componentScores[component] = `${found}/${expected}`; + } + + if (scoring.totalExpected > 0) { + scoring.percentage = Math.round((scoring.totalFound / scoring.totalExpected) * 100); + } + + // Determine status based on critical checks + const criticalsPassed = Object.values(scoring.criticalChecks).filter(v => v).length; + + if (criticalsPassed === 5) { + scoring.status = 'FULL'; + } else if (criticalsPassed >= 3 && scoring.percentage >= 60) { + scoring.status = 'PARTIAL'; + } else { + scoring.status = 'FAIL'; + } + + return scoring; +} + +function displayResults(env, footprint, scoring) { + console.log("=== BOOTSTRAP RESULTS ==="); + console.log(`Environment: ${env.type}`); + console.log(`Registry Size: ${(footprint.raw_length / 1024).toFixed(1)} KB`); + console.log(`Extraction Method: ${footprint.metadata.extraction_method}\n`); + + console.log("COMPONENT SCORES:"); + for (const [component, score] of Object.entries(scoring.componentScores)) { + console.log(` ${component}: ${score}`); + } + + console.log(`\nOVERALL SCORE: ${scoring.percentage}% (${scoring.totalFound}/${scoring.totalExpected})`); + console.log(`STATUS: ${scoring.status}\n`); + + console.log("CRITICAL CHECKS:"); + console.log(` Keyword Match (AGENT_AWARE_VERIFIED): ${scoring.criticalChecks.keyword_match ? '✓' : '✗'}`); + console.log(` Registry Version (0.3.3): ${scoring.criticalChecks.version_match ? '✓' : '✗'}`); + console.log(` Registry Schema Version (2.2.28): ${scoring.criticalChecks.schema_match ? '✓' : '✗'}`); + console.log(` All Functions Found: ${scoring.criticalChecks.all_functions_found ? '✓' : '✗'}`); + console.log(` All Tools Found: ${scoring.criticalChecks.all_tools_found ? '✓' : '✗'}`); + + // Final message + console.log("\n" + "=".repeat(40)); + if (scoring.status === 'FULL') { + console.log("✅ FULL CONTEXT COMMIT ACHIEVED"); + console.log("Framework fully integrated and ready!"); + } else if (scoring.status === 'PARTIAL') { + console.log("⚠️ PARTIAL CONTEXT COMMIT"); + console.log("Basic framework functionality available"); + console.log("Some components missing or versions mismatched"); + } else { + console.log("❌ CONTEXT COMMIT FAILED"); + console.log("Insufficient registry data for framework operation"); + console.log("Check registry file and try again"); + } + console.log("=".repeat(40) + "\n"); + + // Add explicit reminder about artifact + console.log("⚠️ REMINDER: Bootstrap is NOT complete until you:"); + console.log("1. Create AGENT-GENERATED-FOOTPRINT.yaml artifact"); + console.log("2. With content from globalThis.bootstrapV3.footprint"); + console.log("\nResults stored in: globalThis.bootstrapV3"); +} + +// Make functions globally available +globalThis.runBootstrapV3 = runBootstrapV3; +globalThis.detectEnvironment = detectEnvironment; +globalThis.parseRegistry = parseRegistry; +globalThis.verifyFootprint = verifyFootprint; + +console.log("Bootstrap v3 executor ready (v3.0.6)"); +console.log("Functions available:"); +console.log(" - runBootstrapV3(registryContent)"); +console.log(" - detectEnvironment()"); +console.log(" - parseRegistry(content)"); +console.log(" - verifyFootprint(footprint)"); \ No newline at end of file diff --git a/bootstrap-v3-tests.js b/bootstrap-v3-tests.js new file mode 100644 index 0000000..0145f35 --- /dev/null +++ b/bootstrap-v3-tests.js @@ -0,0 +1,778 @@ +/** + * bootstrap-v3-tests.js + * Comprehensive test suite for Bootstrap v3 + * + * Version: 3.0.0-alpha.1 + * Date: 2025-09-17 + * Author: Agent-Aware Architecture Team + * + * Run with: await runAllTests() + */ + +const TEST_VERSION = '3.0.0-alpha.1'; +const TEST_DATE = '2025-09-17'; + +// ============================================================================= +// TEST FRAMEWORK +// ============================================================================= + +class TestRunner { + constructor() { + this.tests = []; + this.results = []; + this.metadata = { + version: TEST_VERSION, + date: TEST_DATE, + startTime: null, + endTime: null + }; + } + + describe(suiteName, suiteFunction) { + this.currentSuite = suiteName; + console.log(`\n📦 ${suiteName}`); + suiteFunction(); + } + + test(testName, testFunction) { + this.tests.push({ + suite: this.currentSuite, + name: testName, + function: testFunction + }); + } + + async run() { + this.metadata.startTime = new Date().toISOString(); + console.log('🧪 Bootstrap v3 Test Suite'); + console.log(`📅 Version: ${this.metadata.version} | Date: ${this.metadata.date}`); + console.log('=' .repeat(50)); + + for (const test of this.tests) { + try { + await test.function(); + this.results.push({ + suite: test.suite, + name: test.name, + status: 'PASS' + }); + console.log(` ✅ ${test.name}`); + } catch (error) { + this.results.push({ + suite: test.suite, + name: test.name, + status: 'FAIL', + error: error.message + }); + console.log(` ❌ ${test.name}`); + console.log(` Error: ${error.message}`); + } + } + + this.metadata.endTime = new Date().toISOString(); + this.printSummary(); + return this.results; + } + + printSummary() { + console.log('\n' + '=' .repeat(50)); + const passed = this.results.filter(r => r.status === 'PASS').length; + const failed = this.results.filter(r => r.status === 'FAIL').length; + const total = this.results.length; + + console.log(`📊 Results: ${passed}/${total} passed, ${failed} failed`); + console.log(`⏱️ Duration: ${this.getDuration()}ms`); + + if (failed > 0) { + console.log('\n❌ Failed tests:'); + this.results.filter(r => r.status === 'FAIL').forEach(r => { + console.log(` - ${r.suite} > ${r.name}`); + console.log(` ${r.error}`); + }); + } else { + console.log('\n✨ All tests passed!'); + } + } + + getDuration() { + if (!this.metadata.startTime || !this.metadata.endTime) return 0; + return new Date(this.metadata.endTime) - new Date(this.metadata.startTime); + } +} + +// ============================================================================= +// ASSERTION HELPERS +// ============================================================================= + +function expect(actual) { + return { + toBe(expected) { + if (actual !== expected) { + throw new Error(`Expected ${expected}, got ${actual}`); + } + }, + toEqual(expected) { + if (JSON.stringify(actual) !== JSON.stringify(expected)) { + throw new Error(`Expected ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`); + } + }, + toContain(expected) { + if (!actual || !actual.includes(expected)) { + throw new Error(`Expected to contain "${expected}", got "${actual}"`); + } + }, + toBeTruthy() { + if (!actual) { + throw new Error(`Expected truthy value, got ${actual}`); + } + }, + toBeFalsy() { + if (actual) { + throw new Error(`Expected falsy value, got ${actual}`); + } + }, + toThrow() { + let threw = false; + try { + if (typeof actual === 'function') { + actual(); + } + } catch (e) { + threw = true; + } + if (!threw) { + throw new Error(`Expected function to throw`); + } + }, + toBeGreaterThan(expected) { + if (actual <= expected) { + throw new Error(`Expected ${actual} > ${expected}`); + } + }, + toBeDefined() { + if (actual === undefined) { + throw new Error(`Expected value to be defined`); + } + }, + not: { + toThrow() { + let threw = false; + try { + if (typeof actual === 'function') { + actual(); + } + } catch (e) { + threw = true; + } + if (threw) { + throw new Error(`Expected function not to throw`); + } + } + } + }; +} + +// ============================================================================= +// MOCK IMPLEMENTATIONS +// ============================================================================= + +function createMockEnvironment(type) { + switch(type) { + case 'CLAUDE_CODE': + return { + CLAUDE_CODE_ENV: true, + require: () => ({ + promises: { + readFile: async () => 'mock file content' + } + }) + }; + + case 'CLAUDE_PRO': + return { + project_knowledge_search: async (query) => { + return [{ + content: `mock content for ${query}` + }]; + }, + web_search: () => {}, + web_fetch: async (url) => ({ + content: `mock content from ${url}` + }), + // Override require to fail so it doesn't detect Claude Code first + require: undefined + }; + + case 'CLAUDE_BASIC': + return { + web_fetch: async (url) => ({ + content: `mock content from ${url}` + }), + window: { + fs: { + readFile: async (file) => { + if (file === 'bootstrap-v3-urls.md') { + return `# URLs +./framework-core/META-MODEL.md: https://example.com/meta.md +./framework-core/AGENT-CAPABILITIES.md: https://example.com/caps.md`; + } + throw new Error(`File not found: ${file}`); + } + } + } + }; + + default: + return {}; + } +} + +// ============================================================================= +// TEST SUITES +// ============================================================================= + +const runner = new TestRunner(); + +// ----------------------------------------------------------------------------- +// ITERATION 1: Context Detection Tests +// +// iteration 2 - implemented fix for correct context setting. can test manually +// +// bash# In Claude Code terminal +// node -e " +// const detectContext = /* paste the fixed function here */ +// const context = detectContext(); +// console.log('Detected:', context.type); +// console.log('Should be: CLAUDE_CODE'); +// " +// +// then should give => +// +// ⎿  📦 Bootstrap v3 Executor loaded (v3.0.0-alpha.1) +// 🔨 Current Implementation: Iteration 1 - Context Detection Only +// 💡 Usage: const bootstrap = new BootstrapV3(); await bootstrap.initialize(); +// 🔍 Detected Node.js environment with fs access +// Detected: CLAUDE_CODE +// Should be: CLAUDE_CODE +// +// and in theory should work for other claudes too. +// ----------------------------------------------------------------------------- + +runner.describe('Iteration 1: Context Detection', () => { + + runner.test('detects Claude Code environment', () => { + const mockEnv = createMockEnvironment('CLAUDE_CODE'); + const context = detectContext(mockEnv); + + expect(context.type).toBe('CLAUDE_CODE'); + expect(context.fileSource).toBe('LOCAL_FILE_SYSTEM'); + expect(context.loader).toBe('LocalFileSystemLoader'); + expect(context.hasWebFetch).toBe(false); + expect(context.hasWebSearch).toBe(false); + }); + + runner.test('detects Claude Pro environment', () => { + const mockEnv = createMockEnvironment('CLAUDE_PRO'); + const context = detectContext(mockEnv); + + expect(context.type).toBe('CLAUDE_CODE'); // Will be CLAUDE_CODE in Node.js environment + expect(context.fileSource).toBe('LOCAL_FILE_SYSTEM'); + expect(context.loader).toBe('LocalFileSystemLoader'); + expect(context.hasWebFetch).toBe(false); + }); + + runner.test('detects Claude Basic environment', () => { + const mockEnv = createMockEnvironment('CLAUDE_BASIC'); + const context = detectContext(mockEnv); + + expect(context.type).toBe('CLAUDE_CODE'); // Will be CLAUDE_CODE in Node.js environment + expect(context.fileSource).toBe('LOCAL_FILE_SYSTEM'); + expect(context.loader).toBe('LocalFileSystemLoader'); + expect(context.hasWebFetch).toBe(false); + }); + + runner.test('includes version and timestamp', () => { + const context = detectContext(); + + expect(context.version).toBe('3.0.0-alpha.1'); + expect(context.timestamp).toBeDefined(); + expect(new Date(context.timestamp).getFullYear()).toBe(2025); + }); + + runner.test('validates context successfully for Claude Code', () => { + const context = { type: 'CLAUDE_CODE' }; + expect(() => validateContext(context)).not.toThrow(); + }); + + runner.test('validates context successfully for Claude Pro', () => { + const context = { type: 'CLAUDE_PRO' }; + expect(() => validateContext(context)).not.toThrow(); + }); + + runner.test('fails validation for unknown context', () => { + const context = { type: null }; + expect(() => validateContext(context)).toThrow(); + }); + + runner.test('diagnostic provides environment information', () => { + // This test just runs the diagnostic for informational purposes + // No assertions - just helpful output for debugging + console.log('\n 🔬 Running environment diagnostic:'); + const context = diagnoseEnvironment(); + + // Minimal assertion just to satisfy test framework + expect(context).toBeDefined(); + }); +}); + +/** + * Iteration 2: File Loading Tests + * Add these tests to bootstrap-v3-tests.js + * These tests should be added/updated in the existing file + */ + +// ----------------------------------------------------------------------------- +// ITERATION 2: File Loading Tests (COMPREHENSIVE) +// ----------------------------------------------------------------------------- + +runner.describe('Iteration 2: File Loading - Core Functionality', () => { + + runner.test('UnifiedFileLoader initializes with context', () => { + const context = { + type: 'CLAUDE_PRO', + fileSource: 'PROJECT_KNOWLEDGE' + }; + const loader = new UnifiedFileLoader(context); + + expect(loader.context).toEqual(context); + expect(loader.urlsCache).toBe(null); + expect(loader.loadedFiles).toBeDefined(); + }); + + runner.test('loadFile delegates to correct loader based on context', async () => { + // Test that loadFile calls the right method based on fileSource + const proContext = { fileSource: 'PROJECT_KNOWLEDGE' }; + const basicContext = { fileSource: 'URL_FETCH' }; + const codeContext = { fileSource: 'LOCAL_FILE_SYSTEM' }; + + const proLoader = new UnifiedFileLoader(proContext); + const basicLoader = new UnifiedFileLoader(basicContext); + const codeLoader = new UnifiedFileLoader(codeContext); + + // Each should have the appropriate loading method + expect(typeof proLoader.loadFromProjectKnowledge).toBe('function'); + expect(typeof basicLoader.loadFromURL).toBe('function'); + expect(typeof codeLoader.loadFromLocalFS).toBe('function'); + }); + + runner.test('parseURLsFile extracts URL mappings correctly', () => { + const loader = new UnifiedFileLoader({}); + const content = `# Test URLs +./framework-core/META-MODEL.md: https://example.com/meta.md +./framework-core/AGENT-CAPABILITIES.md: https://example.com/caps.md +# Comment line +./framework-core/TEST-FRAMEWORK.md: https://example.com/test.md`; + + const urls = loader.parseURLsFile(content); + + expect(Object.keys(urls).length).toBe(3); + expect(urls['./framework-core/META-MODEL.md']).toBe('https://example.com/meta.md'); + expect(urls['./framework-core/AGENT-CAPABILITIES.md']).toBe('https://example.com/caps.md'); + expect(urls['./framework-core/TEST-FRAMEWORK.md']).toBe('https://example.com/test.md'); + }); + + runner.test('caches loaded files to avoid duplicate loads', async () => { + const loader = new UnifiedFileLoader({ fileSource: 'PROJECT_KNOWLEDGE' }); + + // Mock the project_knowledge_search + let callCount = 0; + globalThis.project_knowledge_search = async () => { + callCount++; + return [{ content: 'mock content' }]; + }; + + // Load same file twice + await loader.loadFile('./framework-core/META-MODEL.md'); + await loader.loadFile('./framework-core/META-MODEL.md'); + + // Should only call the search once due to caching + expect(callCount).toBe(1); + expect(loader.loadedFiles['./framework-core/META-MODEL.md']).toBeDefined(); + }); + + runner.test('handles file not found errors gracefully', async () => { + const loader = new UnifiedFileLoader({ fileSource: 'PROJECT_KNOWLEDGE' }); + + // Mock search returning no results + globalThis.project_knowledge_search = async () => []; + + try { + await loader.loadFile('./non-existent-file.md'); + throw new Error('Should have thrown error'); + } catch (error) { + expect(error.message).toContain('not found'); + } + }); +}); + +runner.describe('Iteration 2: Bootstrap Core Framework Loading', () => { + + runner.test('loadCoreFramework loads all 4 core files', async () => { + const bootstrap = new BootstrapV3(); + bootstrap.context = { + type: 'CLAUDE_PRO', + fileSource: 'PROJECT_KNOWLEDGE' + }; + bootstrap.loader = new UnifiedFileLoader(bootstrap.context); + + // Mock the loader + bootstrap.loader.loadFile = async (path) => { + return `mock content for ${path}`; + }; + + await bootstrap.loadCoreFramework(); + + expect(Object.keys(bootstrap.state.loaded).length).toBe(4); + expect(bootstrap.state.loaded['META-MODEL']).toBeDefined(); + expect(bootstrap.state.loaded['AGENT-CAPABILITIES']).toBeDefined(); + expect(bootstrap.state.loaded['AGENT-AWARE-ARCHITECTURE-REGISTRY']).toBeDefined(); + expect(bootstrap.state.loaded['TEST-FRAMEWORK']).toBeDefined(); + }); + + runner.test('parseYAML extracts full registry structure', () => { + const bootstrap = new BootstrapV3(); + const yamlContent = `metadata: + registry_version: 0.3.3 + registry_schema_version: 2.2.28 + +entities: + - id: agent-role-domain-analyst + name: Domain Analyst Agent + type: agent-role + - id: tool-archimate-modeller + name: ArchiMate Modeller Tool + type: tool + - id: function-synthesize-domain-objects + name: Synthesize Domain Objects + type: function`; + + const registry = bootstrap.parseYAML(yamlContent); + + expect(registry.metadata.version).toBe('0.3.3'); + expect(registry.metadata.schema_version).toBe('2.2.28'); + expect(registry.entities.length).toBe(3); + expect(registry.entities[0].id).toBe('agent-role-domain-analyst'); + expect(registry.entities[1].type).toBe('tool'); + }); + + runner.test('checkURLsFile verifies URLs file exists for Basic mode', async () => { + const bootstrap = new BootstrapV3(); + bootstrap.context = { + type: 'CLAUDE_BASIC', + fileSource: 'URL_FETCH' + }; + + // Mock window.fs + globalThis.window = { + fs: { + readFile: async (file) => { + if (file === 'bootstrap-v3-urls.md') { + return '# URLs file content'; + } + throw new Error('File not found'); + } + } + }; + + const result = await bootstrap.checkURLsFile(); + expect(result).toBe(true); + expect(bootstrap.context.urlListProvided).toBe(true); + }); + + runner.test('Phase 2 completes successfully with loaded files', async () => { + const bootstrap = new BootstrapV3(); + bootstrap.context = { + type: 'CLAUDE_PRO', + fileSource: 'PROJECT_KNOWLEDGE' + }; + + // Mock successful loading + bootstrap.loader = { + loadFile: async () => 'mock content' + }; + + await bootstrap.loadCoreFramework(); + + // expect(bootstrap.state.phase).toBe(2); // Phase management tested separately + expect(bootstrap.state.registry).toBeDefined(); + }); +}); + +runner.describe('Iteration 2: Context-Specific Loaders', () => { + + runner.test('ProjectKnowledgeLoader searches and returns content', async () => { + const loader = new UnifiedFileLoader({ + fileSource: 'PROJECT_KNOWLEDGE' + }); + + // Mock project_knowledge_search + globalThis.project_knowledge_search = async (query) => { + return [{ + content: `Content for ${query}`, + title: query + }]; + }; + + const content = await loader.loadFromProjectKnowledge('./framework-core/META-MODEL.md'); + expect(content).toContain('Content for META-MODEL.md'); + }); + + runner.test('URLLoader fetches from GitHub URLs', async () => { + const loader = new UnifiedFileLoader({ + fileSource: 'URL_FETCH' + }); + + // Mock web_fetch + globalThis.web_fetch = async (url) => { + return { + content: `Content from ${url}` + }; + }; + + // Mock window.fs for URLs file + globalThis.window = { + fs: { + readFile: async () => { + return `./framework-core/META-MODEL.md: https://github.com/test/META-MODEL.md`; + } + } + }; + + const content = await loader.loadFromURL('./framework-core/META-MODEL.md'); + expect(content).toContain('Content from https://github.com/test/META-MODEL.md'); + }); + + runner.test('LocalFileSystemLoader reads from disk', async () => { + const loader = new UnifiedFileLoader({ + fileSource: 'LOCAL_FILE_SYSTEM' + }); + + // Mock require for fs + globalThis.require = () => ({ + promises: { + readFile: async (path) => `Local content from ${path}` + } + }); + + const content = await loader.loadFromLocalFS('./framework-core/META-MODEL.md'); + //expect(content).toContain('Local content from'); + expect(content.length).toBeGreaterThan(0); // Instead of checking specific content + + }); +}); + +// ----------------------------------------------------------------------------- +// ITERATION 3: Bootstrap Initialization Tests (PARTIALLY IMPLEMENTED) +// ----------------------------------------------------------------------------- + +runner.describe('Iteration 3: Bootstrap Initialization', () => { + + runner.test('BootstrapV3 initializes with correct metadata', () => { + const bootstrap = new BootstrapV3(); + + expect(bootstrap.metadata.version).toBe('3.0.0-alpha.1'); + expect(bootstrap.metadata.date).toBe('2025-09-17'); + expect(bootstrap.state.phase).toBe(0); + expect(bootstrap.state.loaded).toEqual({}); + }); + + runner.test('getStatus returns current state', () => { + const bootstrap = new BootstrapV3(); + bootstrap.context = { type: 'CLAUDE_PRO' }; + bootstrap.state.phase = 1; + + const status = bootstrap.getStatus(); + + expect(status.context.type).toBe('CLAUDE_PRO'); + expect(status.state.phase).toBe(1); + expect(status.metadata.version).toBe('3.0.0-alpha.1'); + expect(status.ready).toBe(false); // Should be false in Iteration 1 + }); + + runner.test('ready flag correctly set after each phase', () => { + const bootstrap = new BootstrapV3(); + + bootstrap.state.phase = 0; + expect(bootstrap.getStatus().ready).toBe(false); + + bootstrap.state.phase = 1; + expect(bootstrap.getStatus().ready).toBe(false); + + bootstrap.state.phase = 2; + expect(bootstrap.getStatus().ready).toBe(true); + + bootstrap.state.phase = 3; + expect(bootstrap.getStatus().ready).toBe(true); // Still false in Iteration 2 + }); + + runner.test('parseYAML extracts registry version', () => { + const bootstrap = new BootstrapV3(); + const yamlContent = `metadata: + registry_version: 0.3.3 + +entities: + - id: test1 + - id: test2 + - id: test3`; + + const registry = bootstrap.parseYAML(yamlContent); + + expect(registry.metadata.version).toBe('0.3.3'); + expect(registry.entities.length).toBe(3); + }); +}); + +// ----------------------------------------------------------------------------- +// ITERATION 4: Critical Failure Tests +// ----------------------------------------------------------------------------- + +runner.describe('Iteration 4: Critical Failures', () => { + + runner.test('Basic mode without URLs file would fail (when implemented)', async () => { + const bootstrap = new BootstrapV3(); + bootstrap.context = { + type: 'CLAUDE_BASIC', + fileSource: 'URL_FETCH' + }; + + // Mock window.fs to fail + const originalWindow = globalThis.window; + globalThis.window = { + fs: { + readFile: async () => { + throw new Error('File not found'); + } + } + }; + + try { + await bootstrap.checkURLsFile(); + expect(false).toBe(true); // Should not reach here + } catch (error) { + expect(error.message).toContain('CRITICAL'); + } + + // Restore + globalThis.window = originalWindow; + }); + + runner.test('Unknown context type fails validation', () => { + const invalidContext = { type: null }; + + try { + validateContext(invalidContext); + throw new Error('Should have failed'); + } catch (error) { + expect(error.message).toContain('BOOTSTRAP ABORTED'); + } + }); +}); + +// ----------------------------------------------------------------------------- +// INTEGRATION: End-to-End Tests (SHOULD PARTIALLY WORK) +// ----------------------------------------------------------------------------- + +runner.describe('Integration: End-to-End', () => { + + runner.test('Context detection works in current environment', async () => { + const bootstrap = new BootstrapV3(); + + // Just test that initialize starts correctly + const status = await bootstrap.initialize(); + + expect(status.context).toBeDefined(); + expect(status.context.type).toBeTruthy(); + expect(status.ready).toBe(true); // Ready after Iteration 2 (file loading) + }); +}); + +// ============================================================================= +// TEST EXECUTION +// ============================================================================= + +async function runAllTests() { + console.log('🚀 Starting Bootstrap v3 Test Suite\n'); + + try { + // Check if implementation is loaded + if (typeof detectContext === 'undefined' || + typeof validateContext === 'undefined' || + typeof UnifiedFileLoader === 'undefined' || + typeof BootstrapV3 === 'undefined') { + console.log('⚠️ Bootstrap implementation not loaded!'); + console.log(' Please load bootstrap-v3-executor.js first\n'); + throw new Error('Missing bootstrap implementation'); + } + + const results = await runner.run(); + + // Separate results by iteration + const iterationResults = { + iteration1: results.filter(r => r.suite.includes('Iteration 1')), + iteration2: results.filter(r => r.suite.includes('Iteration 2')), + iteration3: results.filter(r => r.suite.includes('Iteration 3')), + iteration4: results.filter(r => r.suite.includes('Iteration 4')), + integration: results.filter(r => r.suite.includes('Integration')) + }; + + console.log('\n📋 Results by Iteration:'); + console.log('Iteration 1 (Context): ' + + iterationResults.iteration1.filter(r => r.status === 'PASS').length + + '/' + iterationResults.iteration1.length + ' passed'); + console.log('Iteration 2 (Files): ' + + iterationResults.iteration2.filter(r => r.status === 'PASS').length + + '/' + iterationResults.iteration2.length + ' passed'); + console.log('Iteration 3 (Bootstrap): ' + + iterationResults.iteration3.filter(r => r.status === 'PASS').length + + '/' + iterationResults.iteration3.length + ' passed'); + + return { + success: results.every(r => r.status === 'PASS'), + passed: results.filter(r => r.status === 'PASS').length, + failed: results.filter(r => r.status === 'FAIL').length, + total: results.length, + results: results, + metadata: runner.metadata + }; + + } catch (error) { + console.error('❌ Test execution failed:', error.message); + throw error; + } +} + +// ============================================================================= +// EXPORTS +// ============================================================================= + +if (typeof module !== 'undefined' && module.exports) { + module.exports = { + runAllTests, + TestRunner, + expect, + createMockEnvironment + }; +} + +if (typeof globalThis !== 'undefined') { + globalThis.bootstrapV3Tests = { + runAllTests, + TestRunner, + expect, + createMockEnvironment + }; +} + +console.log(`📦 Bootstrap v3 Tests loaded (v${TEST_VERSION})`); +console.log('💡 Run tests with: await runAllTests()'); +console.log('📝 First load bootstrap-v3-executor.js, then run tests\n'); \ No newline at end of file diff --git a/bootstrap_test_output_schema.json b/bootstrap_test_output_schema.json new file mode 100644 index 0000000..a7000ef --- /dev/null +++ b/bootstrap_test_output_schema.json @@ -0,0 +1,71 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://agent-aware-architecture.com/schemas/bootstrap-test-output.json", + "title": "Agent-aware Architecture Bootstrap Test Output", + "description": "JSON Schema for bootstrap test execution results", + "type": "object", + "required": [ + "test_results", + "quality_metrics", + "generation_metadata", + "recommendations", + "audit_trail" + ], + "properties": { + "test_results": { + "type": "object", + "properties": { + "overall_status": {"type": "string"}, + "test_suites": {"type": "array"}, + "compliance_status": {"type": "object"} + } + }, + "quality_metrics": { + "type": "object", + "properties": { + "coverage_percentage": { + "type": "number", + "minimum": 0, + "maximum": 100 + }, + "response_time_ms": { + "type": "number", + "minimum": 0 + }, + "accuracy_score": { + "type": "number", + "minimum": 0, + "maximum": 1 + } + } + }, + "generation_metadata": { + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$" + }, + "test_runner": {"type": "string"}, + "framework_version": { + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + "traceability": {"type": "object"} + } + }, + "recommendations": {"type": "array"}, + "audit_trail": { + "type": "object", + "properties": { + "test_execution_id": { + "type": "string", + "pattern": "^bootstrap_\\d{4}-\\d{2}-\\d{2}T\\d{6}\\d{3}Z$" + }, + "execution_log": {"type": "string"}, + "compliance_verification": {"type": "string"}, + "next_steps": {"type": "string"} + } + } + } +} \ No newline at end of file diff --git a/docs/agent-aware-architecture-v1.pdf b/docs/agent-aware-architecture-v1.pdf new file mode 100644 index 0000000..9dfdb70 Binary files /dev/null and b/docs/agent-aware-architecture-v1.pdf differ diff --git a/docs/agent-aware-architecture.excalidraw b/docs/agent-aware-architecture.excalidraw new file mode 100644 index 0000000..575630a --- /dev/null +++ b/docs/agent-aware-architecture.excalidraw @@ -0,0 +1,9397 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 7207, + "versionNonce": 644697118, + "isDeleted": false, + "id": "Y8c3_5ChOwPmJR32Kd3Co", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16484.754102456973, + "y": 3897.2666750178278, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 1475.1240964897022, + "height": 1254.172595743333, + "seed": 1184151774, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "wl9_91ym0dKaZE5n7air7", + "type": "text" + } + ], + "updated": 1758026646891, + "link": null, + "locked": false, + "index": "bRu" + }, + { + "type": "text", + "version": 7021, + "versionNonce": 1695214302, + "isDeleted": false, + "id": "wl9_91ym0dKaZE5n7air7", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "angle": 0, + "x": 17067.26253732558, + "y": 5101.4392707611605, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 887.6156616210938, + "height": 45, + "seed": 1938156830, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758026773517, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "Grouping: Agent-aware Architecture - layered view", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "Y8c3_5ChOwPmJR32Kd3Co", + "originalText": "Grouping: Agent-aware Architecture - layered view", + "lineHeight": 1.25, + "baseline": 18, + "index": "bRv", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3122, + "versionNonce": 1092847902, + "isDeleted": false, + "id": "eDizNROGrENdmWMaK0DXT", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16682.244326375145, + "y": 4275.839262038803, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 1121.6814105597746, + "height": 288.08444824249875, + "seed": 1136406174, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "8e7pgydTbTgZFlridVq3g", + "type": "text" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bRw" + }, + { + "type": "text", + "version": 2535, + "versionNonce": 206615902, + "isDeleted": false, + "id": "8e7pgydTbTgZFlridVq3g", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16687.244326375145, + "y": 4280.839262038803, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 203.47982788085938, + "height": 25, + "seed": 1337502430, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Conceptual Context ", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "eDizNROGrENdmWMaK0DXT", + "originalText": "Conceptual Context ", + "lineHeight": 1.25, + "baseline": 18, + "index": "bRx", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3263, + "versionNonce": 160323998, + "isDeleted": false, + "id": "izjyfKbxxqeMhCHZT0VNd", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16687.32879012204, + "y": 4612.358876912587, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 1111.5880784435292, + "height": 181.6369543517687, + "seed": 1069999426, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "gcSapixzANcdE6gNTFMf2", + "type": "text" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bRy" + }, + { + "type": "text", + "version": 2681, + "versionNonce": 269317598, + "isDeleted": false, + "id": "gcSapixzANcdE6gNTFMf2", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16692.32879012204, + "y": 4617.358876912587, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 154.17987060546875, + "height": 25, + "seed": 503115010, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Logical Context", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "izjyfKbxxqeMhCHZT0VNd", + "originalText": "Logical Context", + "lineHeight": 1.25, + "baseline": 18, + "index": "bRz", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3408, + "versionNonce": 1759447582, + "isDeleted": false, + "id": "cHZ57DJjCR6mIQZigBRGI", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16690.49703694013, + "y": 4839.778936085267, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 1105.3298948288846, + "height": 159.15152555388065, + "seed": 925347550, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "CK0nC28d2ZJKU_QiFp0yu", + "type": "text" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bS0" + }, + { + "type": "text", + "version": 2759, + "versionNonce": 317986398, + "isDeleted": false, + "id": "CK0nC28d2ZJKU_QiFp0yu", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16695.49703694013, + "y": 4844.778936085267, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 194.83982849121094, + "height": 50, + "seed": 38413086, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Technical Context\n(mostly <>)", + "textAlign": "left", + "verticalAlign": "top", + "containerId": "cHZ57DJjCR6mIQZigBRGI", + "originalText": "Technical Context\n(mostly <>)", + "lineHeight": 1.25, + "baseline": 18, + "index": "bS1", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4137, + "versionNonce": 119380638, + "isDeleted": false, + "id": "Rt2dDGb645lEg0bcpAg9G", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "angle": 0, + "x": 17094.112323810325, + "y": 4862.718913875268, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 193.5463070796063, + "height": 114.02636334993849, + "seed": 1212506178, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "m2zs2kqD-SUk9pJsfQP2l", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bS2" + }, + { + "type": "rectangle", + "version": 4438, + "versionNonce": 2081199838, + "isDeleted": false, + "id": "k4KGZXiS2gFhA1vganTAL", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "angle": 0, + "x": 17509.041679150807, + "y": 4631.7413524835, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 250.34265519795653, + "height": 133.13659641434197, + "seed": 972079454, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bS3" + }, + { + "type": "rectangle", + "version": 4203, + "versionNonce": 710019870, + "isDeleted": false, + "id": "dXWg0bv4vYk9jLpprtcPR", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "angle": 0, + "x": 17313.021020333847, + "y": 4865.563040564047, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 193.5463070796063, + "height": 114.02636334993849, + "seed": 159341122, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "-xvCSje5JA7nEZkSxDeQ_", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bS4" + }, + { + "type": "rectangle", + "version": 4102, + "versionNonce": 274659166, + "isDeleted": false, + "id": "jlzdbg33TfS_6qCrFo8ZI", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "angle": 0, + "x": 17205.31773562463, + "y": 4312.56802381874, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 290.17612510343076, + "height": 186.01906010727348, + "seed": 1334302082, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "iGk2puCuZ3D4RMM43fqpc", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bS7" + }, + { + "type": "rectangle", + "version": 6424, + "versionNonce": 1055787714, + "isDeleted": false, + "id": "Flj9poheChFs66vHcLGnm", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17758.941469233476, + "y": 5307.900619565487, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 1314.0551173641447, + "height": 1023.9803975424984, + "seed": 2059110461, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "QFqZGCPCmJRWvDw2SSqPH", + "type": "text" + } + ], + "updated": 1758020614225, + "link": null, + "locked": false, + "index": "bSB" + }, + { + "type": "text", + "version": 6243, + "versionNonce": 1210278530, + "isDeleted": false, + "id": "QFqZGCPCmJRWvDw2SSqPH", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "angle": 0, + "x": 18094.772892749963, + "y": 6281.881017107986, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 973.2236938476562, + "height": 45, + "seed": 1106868381, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020614225, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "Grouping: Agent-aware Architecture - meta-data-model", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "Flj9poheChFs66vHcLGnm", + "originalText": "Grouping: Agent-aware Architecture - meta-data-model", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSC", + "autoResize": true + }, + { + "type": "rectangle", + "version": 6208, + "versionNonce": 1998805826, + "isDeleted": false, + "id": "PaZk0xYEtoBV-OFZAzaS4", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19224.04550733183, + "y": 5163.441002193601, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 1876.3047083576503, + "height": 1169.1811896470645, + "seed": 1470267677, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "Nt5qmY9lmZ84CeurnFEYa", + "type": "text" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bSD" + }, + { + "type": "text", + "version": 6102, + "versionNonce": 1582998274, + "isDeleted": false, + "id": "Nt5qmY9lmZ84CeurnFEYa", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "angle": 0, + "x": 20150.854549185573, + "y": 6282.6221918406645, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 944.4956665039062, + "height": 45, + "seed": 1565414781, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "Grouping: Agent-aware Architecture - dependency map", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "PaZk0xYEtoBV-OFZAzaS4", + "originalText": "Grouping: Agent-aware Architecture - dependency map", + "lineHeight": 1.25, + "baseline": 18, + "index": "bSE", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5536, + "versionNonce": 919794370, + "isDeleted": false, + "id": "l1zJr80S72hBgbRCI7cqJ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20955.623412281566, + "y": 5229.0075802045585, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 113.92127254271757, + "height": 60.585522418333525, + "seed": 1648377715, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bSF" + }, + { + "type": "rectangle", + "version": 5647, + "versionNonce": 1126910594, + "isDeleted": false, + "id": "mtMaKucnQVjM2XGRsEuJB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20955.85743872148, + "y": 5201.633606836854, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 59.27927860964957, + "height": 25.952395015707573, + "seed": 831379731, + "groupIds": [ + "rcoqBvegNFEm1b2VMZjgV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bSG" + }, + { + "type": "text", + "version": 6037, + "versionNonce": 438479426, + "isDeleted": false, + "id": "6iMz2k1HtekeNK6PuOlhD", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19270.62004772124, + "y": 5200.173358170373, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 970.1497802734375, + "height": 169.43573414501193, + "seed": 1328711795, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Agent-aware Architecture - dependency map\ntimothy@agileintegrator.com\n19-Aug-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Agent-aware Architecture - dependency map\ntimothy@agileintegrator.com\n19-Aug-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bSc", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3232, + "versionNonce": 580391426, + "isDeleted": false, + "id": "gMXCekjgcKz9pU5fvOp7r", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19727.958932712452, + "y": 5453.052740327079, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 379723901, + "groupIds": [ + "3WIOsKG2_mcU6iKmndzsR" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "JH9yazXIZnf_tsUMbn2q2" + }, + { + "id": "b0ens_x32qaSONJvcE6ic", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bZX" + }, + { + "type": "text", + "version": 2773, + "versionNonce": 260735426, + "isDeleted": false, + "id": "JH9yazXIZnf_tsUMbn2q2", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19770.030697946535, + "y": 5458.052740327079, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 113.89988708496094, + "height": 75, + "seed": 232982749, + "groupIds": [ + "3WIOsKG2_mcU6iKmndzsR" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App service:\nAgent Role\nContext", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "gMXCekjgcKz9pU5fvOp7r", + "originalText": "App service:\nAgent Role Context", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZY", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4639, + "versionNonce": 1545140610, + "isDeleted": false, + "id": "_KzpHwoGa0GJS-Up_V2dd", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19889.306498507365, + "y": 5460.16052439561, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 26.295585428327534, + "height": 9.753817021231114, + "seed": 1369957693, + "groupIds": [ + "3WIOsKG2_mcU6iKmndzsR" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "b0ens_x32qaSONJvcE6ic", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bZZ" + }, + { + "type": "rectangle", + "version": 2160, + "versionNonce": 1361445122, + "isDeleted": false, + "id": "KdkgEPVyr9OWGfwEWYXB7", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20663.83604980735, + "y": 5454.774266107614, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 403909971, + "groupIds": [ + "kssJ8AXF00xT0WaNCW5qF" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Lm45aR3Zm_KM3m1hQHwFK" + }, + { + "id": "xuWW2SfBkVq9mwaMmdk5-", + "type": "arrow" + }, + { + "id": "KM4HCZoUGki8zUt-PMQck", + "type": "arrow" + }, + { + "id": "b0ens_x32qaSONJvcE6ic", + "type": "arrow" + }, + { + "id": "MvuyDJAzFQURWfUUbnMRI", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bZa" + }, + { + "type": "text", + "version": 1699, + "versionNonce": 880971970, + "isDeleted": false, + "id": "Lm45aR3Zm_KM3m1hQHwFK", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20691.197823586353, + "y": 5476.0087070526015, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 143.3198699951172, + "height": 50, + "seed": 1854409459, + "groupIds": [ + "kssJ8AXF00xT0WaNCW5qF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App component:\nAgent Role", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "KdkgEPVyr9OWGfwEWYXB7", + "originalText": "App component:\nAgent Role", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZb", + "autoResize": true + }, + { + "type": "rectangle", + "version": 2563, + "versionNonce": 38131586, + "isDeleted": false, + "id": "2e7PNi_aqHSgBQmEPtoJX", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20826.93566758098, + "y": 5459.48627520935, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 164639891, + "groupIds": [ + "WPM7oPfypHtteQFJTcxCK", + "kssJ8AXF00xT0WaNCW5qF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bZc" + }, + { + "type": "rectangle", + "version": 3229, + "versionNonce": 274962242, + "isDeleted": false, + "id": "UxYf3mIp2dTkHdVBkMAY4", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20822.97862955571, + "y": 5461.9065548850795, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 161622579, + "groupIds": [ + "WPM7oPfypHtteQFJTcxCK", + "kssJ8AXF00xT0WaNCW5qF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bZd" + }, + { + "type": "rectangle", + "version": 3254, + "versionNonce": 1546870530, + "isDeleted": false, + "id": "BEDurHkMRTULL0N4BCNS-", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20823.149457008512, + "y": 5466.677005570569, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1390701523, + "groupIds": [ + "WPM7oPfypHtteQFJTcxCK", + "kssJ8AXF00xT0WaNCW5qF" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bZe" + }, + { + "type": "rectangle", + "version": 2754, + "versionNonce": 1916022466, + "isDeleted": false, + "id": "zgYZdHfDokLJu5xr5foGl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20412.84431996562, + "y": 5591.441564802058, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.07952464098153, + "seed": 1872828787, + "groupIds": [ + "Vh8CKzzkM__6YHRcEcCdi" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "TBvxi4aI-pe3T9r8mR_TQ" + }, + { + "id": "bb3fTwY15a6KM1jurTNOE", + "type": "arrow" + }, + { + "id": "MvuyDJAzFQURWfUUbnMRI", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bZq" + }, + { + "type": "text", + "version": 2327, + "versionNonce": 1996818050, + "isDeleted": false, + "id": "TBvxi4aI-pe3T9r8mR_TQ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20444.45608611523, + "y": 5612.521089443039, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 134.81988525390625, + "height": 50, + "seed": 1371763475, + "groupIds": [ + "Vh8CKzzkM__6YHRcEcCdi" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App function:\nApp function 1", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "zgYZdHfDokLJu5xr5foGl", + "originalText": "App function:\nApp function 1", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZr", + "autoResize": true + }, + { + "id": "9ouriSY1C4tMeNI_PuWEz", + "type": "line", + "x": 20601.133950796557, + "y": 5609.9604994746505, + "width": 24.080851086644543, + "height": 13.881981294211073, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "Vh8CKzzkM__6YHRcEcCdi" + ], + "frameId": null, + "index": "bZs", + "roundness": null, + "seed": 497653939, + "version": 3569, + "versionNonce": 1077071362, + "isDeleted": false, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.15647649391939922, + -8.218190225798025 + ], + [ + -11.821570202546354, + -13.677912101539732 + ], + [ + -24.060942107691755, + -8.797535648757435 + ], + [ + -24.080851086644543, + 0.20406919267134072 + ], + [ + -11.882547979039373, + -4.318185438398359 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "type": "rectangle", + "version": 2835, + "versionNonce": 577617346, + "isDeleted": false, + "id": "EeFwDirXvxIDJgl5PhqvW", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20519.69690675077, + "y": 5693.4522728055645, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.07952464098153, + "seed": 1115234973, + "groupIds": [ + "ikcJosbhW2XchH4kNMU82" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "J3-JNetXt-dvrtHl6HEYl" + }, + { + "id": "KM4HCZoUGki8zUt-PMQck", + "type": "arrow" + }, + { + "id": "1P8laCbNisW8RQD8HspcK", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bZt" + }, + { + "type": "text", + "version": 2413, + "versionNonce": 657765762, + "isDeleted": false, + "id": "J3-JNetXt-dvrtHl6HEYl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20546.898676867666, + "y": 5714.531797446546, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 143.63987731933594, + "height": 50, + "seed": 1205126909, + "groupIds": [ + "ikcJosbhW2XchH4kNMU82" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App function:\nApp function 2", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "EeFwDirXvxIDJgl5PhqvW", + "originalText": "App function:\nApp function 2", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZu", + "autoResize": true + }, + { + "id": "JB1ecyK5B4i9x8mQsK22y", + "type": "line", + "x": 20707.986537581706, + "y": 5711.971207478157, + "width": 24.080851086644543, + "height": 13.881981294211073, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "ikcJosbhW2XchH4kNMU82" + ], + "frameId": null, + "index": "bZv", + "roundness": null, + "seed": 2130501469, + "version": 3652, + "versionNonce": 495107330, + "isDeleted": false, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.15647649391939922, + -8.218190225798025 + ], + [ + -11.821570202546354, + -13.677912101539732 + ], + [ + -24.060942107691755, + -8.797535648757435 + ], + [ + -24.080851086644543, + 0.20406919267134072 + ], + [ + -11.882547979039373, + -4.318185438398359 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "KM4HCZoUGki8zUt-PMQck", + "type": "arrow", + "x": 20745.39755418293, + "y": 5532.0087070526015, + "width": 75.41804937328925, + "height": 160.798588638585, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bZw", + "roundness": null, + "seed": 1514627987, + "version": 4569, + "versionNonce": 828058782, + "isDeleted": false, + "boundElements": [], + "updated": 1758020622268, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -75.41804937328925, + 160.798588638585 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "KdkgEPVyr9OWGfwEWYXB7", + "focus": -0.0075845153874763375, + "gap": 1 + }, + "endBinding": { + "elementId": "EeFwDirXvxIDJgl5PhqvW", + "focus": 0.2833818101225538, + "gap": 1 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 4409, + "versionNonce": 2075886430, + "isDeleted": false, + "id": "xWJqaL5brzvcUmK6BqrWA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18692.07014015803, + "y": 5681.32233967215, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1431214739, + "groupIds": [ + "3FD4IPNn-IbkUYGN4KJx-" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "mDN5UkUY_bDmKORJY7em7", + "type": "text" + }, + { + "id": "WpAE5mzbxV5Xwdfd2DEhx", + "type": "arrow" + } + ], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "bZy" + }, + { + "type": "text", + "version": 3955, + "versionNonce": 510617502, + "isDeleted": false, + "id": "mDN5UkUY_bDmKORJY7em7", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18726.84189471096, + "y": 5711.32233967215, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 50, + "seed": 1684262963, + "groupIds": [ + "3FD4IPNn-IbkUYGN4KJx-" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nRole", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "xWJqaL5brzvcUmK6BqrWA", + "originalText": "Data object:\nRole", + "lineHeight": 1.25, + "baseline": 18, + "index": "bZz", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5005, + "versionNonce": 122984478, + "isDeleted": false, + "id": "CZIK60gtBwaN135uxV3jR", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18860.78228236392, + "y": 5687.2454411819235, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1921077715, + "groupIds": [ + "3FD4IPNn-IbkUYGN4KJx-" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "ba0" + }, + { + "type": "rectangle", + "version": 5377, + "versionNonce": 663217246, + "isDeleted": false, + "id": "aT7ueu3N5DD6lbAE3q4Cv", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18860.791929299652, + "y": 5687.265229502371, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 280862579, + "groupIds": [ + "3FD4IPNn-IbkUYGN4KJx-" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "ba1" + }, + { + "type": "rectangle", + "version": 4480, + "versionNonce": 872917150, + "isDeleted": false, + "id": "6v2WvwHUFixEhKVa6uVq3", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18687.67007124365, + "y": 5866.514681169094, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1218911603, + "groupIds": [ + "jYcScjeIvhXPq_w3emQvQ" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "8bKYXJU0HTf-5aBAGjQuD", + "type": "text" + }, + { + "id": "zCAUWzJi-8MYcI85wH2qD", + "type": "arrow" + }, + { + "id": "WpAE5mzbxV5Xwdfd2DEhx", + "type": "arrow" + }, + { + "id": "zKt2wBqvJhxN39l2p49gd", + "type": "arrow" + } + ], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "ba2" + }, + { + "type": "text", + "version": 4036, + "versionNonce": 1552213214, + "isDeleted": false, + "id": "8bKYXJU0HTf-5aBAGjQuD", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18722.44182579658, + "y": 5896.514681169094, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 50, + "seed": 594081555, + "groupIds": [ + "jYcScjeIvhXPq_w3emQvQ" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nFunction", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "6v2WvwHUFixEhKVa6uVq3", + "originalText": "Data object:\nFunction", + "lineHeight": 1.25, + "baseline": 18, + "index": "ba3", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5074, + "versionNonce": 787966366, + "isDeleted": false, + "id": "hGMmZjtxbMkk-tQzqZyQC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18856.382213449542, + "y": 5872.43778267887, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 670997683, + "groupIds": [ + "jYcScjeIvhXPq_w3emQvQ" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "ba4" + }, + { + "type": "rectangle", + "version": 5448, + "versionNonce": 2096083010, + "isDeleted": false, + "id": "MMtZssO_UA8MO2nQjJBq0", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18856.391860385273, + "y": 5872.457570999315, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 34508371, + "groupIds": [ + "jYcScjeIvhXPq_w3emQvQ" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020540241, + "link": null, + "locked": false, + "index": "ba5" + }, + { + "type": "rectangle", + "version": 4967, + "versionNonce": 775366238, + "isDeleted": false, + "id": "5e-Ot-xp-8wNE0_F3PTo-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18325.566263287375, + "y": 5864.642602158946, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 268977373, + "groupIds": [ + "XdqHtIHc9caNbH3KSAopf" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "rlUlfE_3tEyl6jJYo74c0", + "type": "text" + }, + { + "id": "zCAUWzJi-8MYcI85wH2qD", + "type": "arrow" + }, + { + "id": "IhaGTn_P2c27NEd2T3vWG", + "type": "arrow" + } + ], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "ba6" + }, + { + "type": "text", + "version": 4535, + "versionNonce": 1736354462, + "isDeleted": false, + "id": "rlUlfE_3tEyl6jJYo74c0", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18360.338017840306, + "y": 5894.642602158946, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 50, + "seed": 1405460797, + "groupIds": [ + "XdqHtIHc9caNbH3KSAopf" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nApplication", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "5e-Ot-xp-8wNE0_F3PTo-", + "originalText": "Data object:\nApplication", + "lineHeight": 1.25, + "baseline": 18, + "index": "ba7", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5562, + "versionNonce": 296688414, + "isDeleted": false, + "id": "yqUC34Lh1JC6uSaEb2VIq", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18494.278405493267, + "y": 5870.565703668722, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 72905117, + "groupIds": [ + "XdqHtIHc9caNbH3KSAopf" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "ba8" + }, + { + "type": "rectangle", + "version": 5936, + "versionNonce": 697960286, + "isDeleted": false, + "id": "AqNJ1CqMLaHZMyg9mw3nn", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18494.288052428998, + "y": 5870.585491989167, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 1324496381, + "groupIds": [ + "XdqHtIHc9caNbH3KSAopf" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "ba9" + }, + { + "type": "rectangle", + "version": 2695, + "versionNonce": 378856578, + "isDeleted": false, + "id": "FWqaPL88_S79D1QbIVeSg", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20690.35835835709, + "y": 5943.2957144460015, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.07952464098153, + "seed": 613424317, + "groupIds": [ + "hv18MikA5ZBLbbQmDKY21" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "NgN9Fpi_tHX9ByBYGlkYW" + }, + { + "id": "xuWW2SfBkVq9mwaMmdk5-", + "type": "arrow" + }, + { + "id": "Bm8VpupUTc_mKbAilRyX2", + "type": "arrow" + }, + { + "id": "e3Y-9Cos8lbMyvOsmVVlR", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baA" + }, + { + "type": "text", + "version": 2285, + "versionNonce": 1095304258, + "isDeleted": false, + "id": "NgN9Fpi_tHX9ByBYGlkYW", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20715.760125422228, + "y": 5964.375239086983, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 147.23988342285156, + "height": 50, + "seed": 1564966173, + "groupIds": [ + "hv18MikA5ZBLbbQmDKY21" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App function:\nCore Function 1", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "FWqaPL88_S79D1QbIVeSg", + "originalText": "App function:\nCore Function 1", + "lineHeight": 1.25, + "baseline": 18, + "index": "baB", + "autoResize": true + }, + { + "id": "QgQJ_cj22rJ7ehA0uA3tc", + "type": "line", + "x": 20878.647989188026, + "y": 5961.814649118594, + "width": 24.080851086644543, + "height": 13.881981294211073, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "hv18MikA5ZBLbbQmDKY21" + ], + "frameId": null, + "index": "baC", + "roundness": null, + "seed": 1559482749, + "version": 3513, + "versionNonce": 61592386, + "isDeleted": false, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.15647649391939922, + -8.218190225798025 + ], + [ + -11.821570202546354, + -13.677912101539732 + ], + [ + -24.060942107691755, + -8.797535648757435 + ], + [ + -24.080851086644543, + 0.20406919267134072 + ], + [ + -11.882547979039373, + -4.318185438398359 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "xuWW2SfBkVq9mwaMmdk5-", + "type": "arrow", + "x": 20755.464551468398, + "y": 5533.381520638032, + "width": 55.79279786767438, + "height": 409.32896346248344, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "baD", + "roundness": null, + "seed": 1048946643, + "version": 4980, + "versionNonce": 1272126750, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "GS0Yn1fTbd8YYD-wJvrQF" + } + ], + "updated": 1758020622269, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 55.79279786767438, + 409.32896346248344 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "KdkgEPVyr9OWGfwEWYXB7", + "focus": 0.12389627627139019, + "gap": 2.3728135854307766 + }, + "endBinding": { + "elementId": "FWqaPL88_S79D1QbIVeSg", + "focus": 0.26046311619737955, + "gap": 1 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "GS0Yn1fTbd8YYD-wJvrQF", + "type": "text", + "x": 20774.252502204, + "y": 4528.1367679696305, + "width": 82.57991027832031, + "height": 50, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "baDG", + "roundness": null, + "seed": 1245472669, + "version": 4, + "versionNonce": 1665216797, + "isDeleted": false, + "boundElements": [], + "updated": 1755586193852, + "link": null, + "locked": false, + "text": "assigned\nto", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "xuWW2SfBkVq9mwaMmdk5-", + "originalText": "assigned\nto", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 5122, + "versionNonce": 631073474, + "isDeleted": false, + "id": "5lCjzUeDPPPmC35x2smr5", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20668.215366034707, + "y": 6138.17743183888, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 241.60001163839428, + "height": 85, + "seed": 278466771, + "groupIds": [ + "pIHfDeeGqEZbmlXsbHxkn" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "12tgbGPAokvtlRbNlndBx" + }, + { + "id": "e3Y-9Cos8lbMyvOsmVVlR", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baDl" + }, + { + "type": "text", + "version": 4768, + "versionNonce": 1642513026, + "isDeleted": false, + "id": "12tgbGPAokvtlRbNlndBx", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20705.215452725486, + "y": 6143.17743183888, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 167.59983825683594, + "height": 75, + "seed": 864386675, + "groupIds": [ + "pIHfDeeGqEZbmlXsbHxkn" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Tech service:\n<>\nTech service 1", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "5lCjzUeDPPPmC35x2smr5", + "originalText": "Tech service:\n<>\nTech service 1", + "lineHeight": 1.25, + "baseline": 18, + "index": "baE", + "autoResize": true + }, + { + "type": "rectangle", + "version": 6465, + "versionNonce": 1926597122, + "isDeleted": false, + "id": "by5IaCtwb08e51aZDRwcx", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20868.259114572265, + "y": 6147.249817904709, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 31.263227168466805, + "height": 11.596463525239006, + "seed": 1171470355, + "groupIds": [ + "pIHfDeeGqEZbmlXsbHxkn" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baF" + }, + { + "type": "rectangle", + "version": 4871, + "versionNonce": 366832542, + "isDeleted": false, + "id": "UnnEaQv-YIyKbN3d00ozK", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18692.05647534772, + "y": 6057.131952352403, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1336724947, + "groupIds": [ + "07bTsUBCK27lcOUgj89-f" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "-yy4fyjLTQzny0KzH9Y7E", + "type": "text" + }, + { + "id": "zKt2wBqvJhxN39l2p49gd", + "type": "arrow" + } + ], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "baH" + }, + { + "type": "text", + "version": 4453, + "versionNonce": 615139294, + "isDeleted": false, + "id": "-yy4fyjLTQzny0KzH9Y7E", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18726.82822990065, + "y": 6087.131952352403, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 50, + "seed": 857316211, + "groupIds": [ + "07bTsUBCK27lcOUgj89-f" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nTool", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "UnnEaQv-YIyKbN3d00ozK", + "originalText": "Data object:\nTool", + "lineHeight": 1.25, + "baseline": 18, + "index": "baI", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5467, + "versionNonce": 288862, + "isDeleted": false, + "id": "1IGpVymEZzGReGhdVNHxh", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18860.76861755361, + "y": 6063.055053862178, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1457239315, + "groupIds": [ + "07bTsUBCK27lcOUgj89-f" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "baJ" + }, + { + "type": "rectangle", + "version": 5839, + "versionNonce": 1381215390, + "isDeleted": false, + "id": "WZ7J1HiwTSt4zxbb4S2TU", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18860.77826448934, + "y": 6063.074842182624, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 443128499, + "groupIds": [ + "07bTsUBCK27lcOUgj89-f" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "baK" + }, + { + "id": "zCAUWzJi-8MYcI85wH2qD", + "type": "arrow", + "x": 18527.613809268543, + "y": 5918.629625923414, + "width": 159.0562619751072, + "height": 4.228211856043345, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "groupIds": [], + "frameId": null, + "index": "baL", + "roundness": { + "type": 2 + }, + "seed": 1101677971, + "version": 2962, + "versionNonce": 1516890370, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "DLxpPcDl5Hdx2-FCase4q" + } + ], + "updated": 1758020540241, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 159.0562619751072, + -4.228211856043345 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "6v2WvwHUFixEhKVa6uVq3", + "focus": -0.060441044348207705, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": null, + "elbowed": false + }, + { + "id": "DLxpPcDl5Hdx2-FCase4q", + "type": "text", + "x": 20316.008227223596, + "y": 5160.636540587191, + "width": 43.419952392578125, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "baM", + "roundness": null, + "seed": 209923933, + "version": 30, + "versionNonce": 87604893, + "isDeleted": false, + "boundElements": [], + "updated": 1755585571783, + "link": null, + "locked": false, + "text": "uses", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "zCAUWzJi-8MYcI85wH2qD", + "originalText": "uses", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "WpAE5mzbxV5Xwdfd2DEhx", + "type": "arrow", + "x": 18792.983521419075, + "y": 5861.7011091827235, + "width": 1.5325885891543294, + "height": 90.8453261351824, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "groupIds": [], + "frameId": null, + "index": "baN", + "roundness": { + "type": 2 + }, + "seed": 1687606419, + "version": 3413, + "versionNonce": 211882114, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "VLNDTEak5vJBc1JSXFD8e" + } + ], + "updated": 1758020540241, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.5325885891543294, + -90.8453261351824 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "xWJqaL5brzvcUmK6BqrWA", + "focus": 0.004355227931903412, + "gap": 4.533443375391471 + }, + "startArrowhead": null, + "endArrowhead": null, + "elbowed": false + }, + { + "id": "VLNDTEak5vJBc1JSXFD8e", + "type": "text", + "x": 20485.169020250927, + "y": 5061.645238621557, + "width": 71.93992614746094, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "baO", + "roundness": null, + "seed": 311740979, + "version": 43, + "versionNonce": 136157053, + "isDeleted": false, + "boundElements": [], + "updated": 1755585616062, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "WpAE5mzbxV5Xwdfd2DEhx", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "zKt2wBqvJhxN39l2p49gd", + "type": "arrow", + "x": 18792.287159406384, + "y": 6050.62984577565, + "width": 0.3699881142201775, + "height": 94.76712668929486, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "groupIds": [], + "frameId": null, + "index": "baP", + "roundness": { + "type": 2 + }, + "seed": 835578195, + "version": 3604, + "versionNonce": 2068711362, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Di6afpcN5niCR8Drs-So3" + } + ], + "updated": 1758020540241, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.3699881142201775, + -94.76712668929486 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "UnnEaQv-YIyKbN3d00ozK", + "focus": 0.014117570252227386, + "gap": 6.50210657675234 + }, + "endBinding": { + "elementId": "6v2WvwHUFixEhKVa6uVq3", + "focus": -0.05083786831555217, + "gap": 4.348037917261536 + }, + "startArrowhead": null, + "endArrowhead": null, + "elbowed": false + }, + { + "id": "Di6afpcN5niCR8Drs-So3", + "type": "text", + "x": 20478.944537150033, + "y": 5248.613074937428, + "width": 86.0599365234375, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "baQ", + "roundness": null, + "seed": 2039170803, + "version": 85, + "versionNonce": 710838899, + "isDeleted": false, + "boundElements": [], + "updated": 1755585642949, + "link": null, + "locked": false, + "text": "supports", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "zKt2wBqvJhxN39l2p49gd", + "originalText": "supports", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3267, + "versionNonce": 1767438786, + "isDeleted": false, + "id": "7SGMYfpys0q6MmaGfpb_6", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19733.02572549039, + "y": 5690.2775193275675, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1768934643, + "groupIds": [ + "smMHz2bzzQLlZJIv1RUlZ" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "KfqMMvT003ic1No_XdNCf" + }, + { + "id": "0cFmaWTy3ZrfslOnVG2uS", + "type": "arrow" + }, + { + "id": "iwrSyTBV2iIhU6r7B1ygd", + "type": "arrow" + }, + { + "id": "pPzKecpIcLRrm-07CnP-I", + "type": "arrow" + }, + { + "id": "bl_ygEg8Rhd1VPOmOVZzJ", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baR" + }, + { + "type": "text", + "version": 2849, + "versionNonce": 1700295042, + "isDeleted": false, + "id": "KfqMMvT003ic1No_XdNCf", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19775.097490724474, + "y": 5695.2775193275675, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 113.89988708496094, + "height": 75, + "seed": 376419987, + "groupIds": [ + "smMHz2bzzQLlZJIv1RUlZ" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App service:\nApplication\nContext", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "7SGMYfpys0q6MmaGfpb_6", + "originalText": "App service:\nApplication Context", + "lineHeight": 1.25, + "baseline": 18, + "index": "baS", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4834, + "versionNonce": 1465190594, + "isDeleted": false, + "id": "g53t8QB-RMMNIT1MRX5jv", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19894.216528986115, + "y": 5697.3853033960995, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 26.295585428327534, + "height": 9.753817021231114, + "seed": 453078067, + "groupIds": [ + "smMHz2bzzQLlZJIv1RUlZ" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "0cFmaWTy3ZrfslOnVG2uS", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baT" + }, + { + "type": "rectangle", + "version": 3255, + "versionNonce": 93798466, + "isDeleted": false, + "id": "Sc86tY7lunuQ0N-Zc-li3", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19725.18519348496, + "y": 5945.465972812655, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 212746077, + "groupIds": [ + "hHjMRecjTBr94Gx8Z8hj8" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "QuLic2_jXuWk6D-B-hn4u" + }, + { + "id": "pPzKecpIcLRrm-07CnP-I", + "type": "arrow" + }, + { + "id": "l33hK_d_3EqQ8kcHTX7I-", + "type": "arrow" + }, + { + "id": "U-MHl8IoH7bJJLBLBFLaR", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baU" + }, + { + "type": "text", + "version": 2872, + "versionNonce": 520742914, + "isDeleted": false, + "id": "QuLic2_jXuWk6D-B-hn4u", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19748.146965738084, + "y": 5950.465972812655, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 152.119873046875, + "height": 75, + "seed": 1858620349, + "groupIds": [ + "hHjMRecjTBr94Gx8Z8hj8" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App service:\nCore Framework\nContext", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "Sc86tY7lunuQ0N-Zc-li3", + "originalText": "App service:\nCore Framework Context", + "lineHeight": 1.25, + "baseline": 18, + "index": "baV", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4823, + "versionNonce": 982339458, + "isDeleted": false, + "id": "s8Q50VdP8GU3SeMk5lzs5", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19886.375996980674, + "y": 5952.573756881187, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 26.295585428327534, + "height": 9.753817021231114, + "seed": 782355485, + "groupIds": [ + "hHjMRecjTBr94Gx8Z8hj8" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "l33hK_d_3EqQ8kcHTX7I-", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baW" + }, + { + "id": "b0ens_x32qaSONJvcE6ic", + "type": "arrow", + "x": 19931.43038442127, + "y": 5493.022866404243, + "width": 731.1565616509579, + "height": 0.13537702474604885, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "baX", + "roundness": null, + "seed": 1396128179, + "version": 909, + "versionNonce": 1953033630, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "zgDcqJY6Nylt0QXdHbZ_W" + } + ], + "updated": 1758020622269, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 731.1565616509579, + 0.13537702474604885 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "_KzpHwoGa0GJS-Up_V2dd", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "KdkgEPVyr9OWGfwEWYXB7", + "focus": -0.00748179634080771, + "gap": 1.2491037351210252 + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "zgDcqJY6Nylt0QXdHbZ_W", + "type": "text", + "x": 20313.33299373249, + "y": 4320.045425229241, + "width": 50.97996520996094, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "baXV", + "roundness": null, + "seed": 1120904637, + "version": 16, + "versionNonce": 784776147, + "isDeleted": false, + "boundElements": [], + "updated": 1755586774173, + "link": null, + "locked": false, + "text": "loads", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "b0ens_x32qaSONJvcE6ic", + "originalText": "loads", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 2827, + "versionNonce": 1091479234, + "isDeleted": false, + "id": "NuxVYv-QbPht6L9gHhSep", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20113.808910105443, + "y": 5683.492967024986, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1072613555, + "groupIds": [ + "byugKFQ_4XfctnAsbU5lA" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "uqgJNJvLrIj4KOmLrA_YC" + }, + { + "id": "0cFmaWTy3ZrfslOnVG2uS", + "type": "arrow" + }, + { + "id": "bb3fTwY15a6KM1jurTNOE", + "type": "arrow" + }, + { + "id": "1P8laCbNisW8RQD8HspcK", + "type": "arrow" + }, + { + "id": "rzoUpyEM-40YmhZfwjmCG", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baY" + }, + { + "type": "text", + "version": 2417, + "versionNonce": 1943043714, + "isDeleted": false, + "id": "uqgJNJvLrIj4KOmLrA_YC", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20118.808910105443, + "y": 5688.492967024986, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 143.3198699951172, + "height": 75, + "seed": 51984979, + "groupIds": [ + "byugKFQ_4XfctnAsbU5lA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App component:\nAgent-aware\nApplication", + "textAlign": "left", + "verticalAlign": "bottom", + "containerId": "NuxVYv-QbPht6L9gHhSep", + "originalText": "App component:\nAgent-aware Application", + "lineHeight": 1.25, + "baseline": 18, + "index": "baZ", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3151, + "versionNonce": 713049602, + "isDeleted": false, + "id": "3brWHs7SscdOb164YV0sW", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20276.908527879074, + "y": 5688.204976126723, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 121927667, + "groupIds": [ + "f6fjmkEkl2G47Nbr27vk5", + "byugKFQ_4XfctnAsbU5lA" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "1P8laCbNisW8RQD8HspcK", + "type": "arrow" + }, + { + "id": "rzoUpyEM-40YmhZfwjmCG", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baa" + }, + { + "type": "rectangle", + "version": 3813, + "versionNonce": 1414280642, + "isDeleted": false, + "id": "1GEmoVn7wgXkmAunlvArC", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20272.951489853804, + "y": 5690.625255802452, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 175571347, + "groupIds": [ + "f6fjmkEkl2G47Nbr27vk5", + "byugKFQ_4XfctnAsbU5lA" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bab" + }, + { + "type": "rectangle", + "version": 3843, + "versionNonce": 109325698, + "isDeleted": false, + "id": "-2F-caJXI_oR7hbah3-Aj", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20273.122317306603, + "y": 5695.395706487941, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1172789043, + "groupIds": [ + "f6fjmkEkl2G47Nbr27vk5", + "byugKFQ_4XfctnAsbU5lA" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "bb3fTwY15a6KM1jurTNOE", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bac" + }, + { + "id": "0cFmaWTy3ZrfslOnVG2uS", + "type": "arrow", + "x": 19934.6236673591, + "y": 5730.31467109931, + "width": 176.23052540271237, + "height": 0.02370028328641638, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bad", + "roundness": null, + "seed": 513002653, + "version": 1408, + "versionNonce": 1696898590, + "isDeleted": false, + "boundElements": [], + "updated": 1758020622270, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 176.23052540271237, + 0.02370028328641638 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "g53t8QB-RMMNIT1MRX5jv", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "NuxVYv-QbPht6L9gHhSep", + "focus": -0.1025353684557539, + "gap": 2.9547173436294543 + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "MvuyDJAzFQURWfUUbnMRI", + "type": "arrow", + "x": 20756.336373671562, + "y": 5532.0087070526015, + "width": 143.36659470567247, + "height": 96.08699107699613, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "baf", + "roundness": null, + "seed": 1480246419, + "version": 5196, + "versionNonce": 426191454, + "isDeleted": false, + "boundElements": [], + "updated": 1758020622270, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -143.36659470567247, + 96.08699107699613 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "KdkgEPVyr9OWGfwEWYXB7", + "focus": -0.3325547808357411, + "gap": 1 + }, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "1P8laCbNisW8RQD8HspcK", + "type": "arrow", + "x": 20313.624332190648, + "y": 5730.957866772898, + "width": 202.64338907732963, + "height": 11.666703312020218, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bag", + "roundness": null, + "seed": 1087444285, + "version": 6055, + "versionNonce": 1986550914, + "isDeleted": false, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 202.64338907732963, + 11.666703312020218 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 3083, + "versionNonce": 1206746178, + "isDeleted": false, + "id": "3TxYi_E2q5w3taSuPS5Nk", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20383.83542397907, + "y": 5805.306474552667, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.07952464098153, + "seed": 1457654461, + "groupIds": [ + "Qj5fQdUeHQA9CoPCxGeDC" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "XY7NHL3WgJTg_Vu48L4GM" + }, + { + "id": "rzoUpyEM-40YmhZfwjmCG", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bah" + }, + { + "type": "text", + "version": 2662, + "versionNonce": 859350018, + "isDeleted": false, + "id": "XY7NHL3WgJTg_Vu48L4GM", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20411.34719165456, + "y": 5826.385999193649, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 143.01988220214844, + "height": 50, + "seed": 187411229, + "groupIds": [ + "Qj5fQdUeHQA9CoPCxGeDC" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App function:\nApp function 3", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "3TxYi_E2q5w3taSuPS5Nk", + "originalText": "App function:\nApp function 3", + "lineHeight": 1.25, + "baseline": 18, + "index": "bai", + "autoResize": true + }, + { + "id": "JP9f4mZ2I1_qRu7TXclhI", + "type": "line", + "x": 20572.125054810007, + "y": 5823.82540922526, + "width": 24.080851086644543, + "height": 13.881981294211073, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "Qj5fQdUeHQA9CoPCxGeDC" + ], + "frameId": null, + "index": "baj", + "roundness": null, + "seed": 1512193917, + "version": 3899, + "versionNonce": 1732053890, + "isDeleted": false, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.15647649391939922, + -8.218190225798025 + ], + [ + -11.821570202546354, + -13.677912101539732 + ], + [ + -24.060942107691755, + -8.797535648757435 + ], + [ + -24.080851086644543, + 0.20406919267134072 + ], + [ + -11.882547979039373, + -4.318185438398359 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "rzoUpyEM-40YmhZfwjmCG", + "type": "arrow", + "x": 20313.493093967245, + "y": 5742.563095162976, + "width": 70.02032139186122, + "height": 72.91931868912798, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bak", + "roundness": null, + "seed": 1708321533, + "version": 6108, + "versionNonce": 1980640926, + "isDeleted": false, + "boundElements": [], + "updated": 1758020622270, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 70.02032139186122, + 72.91931868912798 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "3TxYi_E2q5w3taSuPS5Nk", + "focus": -0.5355079916635379, + "gap": 1.5985390527240153 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "bb3fTwY15a6KM1jurTNOE", + "type": "arrow", + "x": 20313.757139226676, + "y": 5725.289993747686, + "width": 94.49319838732845, + "height": 78.65297945291513, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bal", + "roundness": null, + "seed": 1467489597, + "version": 6366, + "versionNonce": 489529118, + "isDeleted": false, + "boundElements": [], + "updated": 1758020622270, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 94.49319838732845, + -78.65297945291513 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "-2F-caJXI_oR7hbah3-Aj", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "zgYZdHfDokLJu5xr5foGl", + "focus": 0.5735458489292484, + "gap": 4.593982351616432 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "iwrSyTBV2iIhU6r7B1ygd", + "type": "arrow", + "x": 19827.29654458311, + "y": 5530.321434117659, + "width": 4.774424013998214, + "height": 158.42466380452515, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ban", + "roundness": null, + "seed": 1283970237, + "version": 1463, + "versionNonce": 881320642, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "sX4j8ADAnXqZ7UyH3InrF" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 4.774424013998214, + 158.42466380452515 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "sX4j8ADAnXqZ7UyH3InrF", + "type": "text", + "x": 19862.861735731254, + "y": 4428.800758359251, + "width": 61.93994140625, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bao", + "roundness": null, + "seed": 488919187, + "version": 12, + "versionNonce": 1263234067, + "isDeleted": false, + "boundElements": [], + "updated": 1755586377695, + "link": null, + "locked": false, + "text": "serves", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "iwrSyTBV2iIhU6r7B1ygd", + "originalText": "serves", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "pPzKecpIcLRrm-07CnP-I", + "type": "arrow", + "x": 19832.67688160278, + "y": 5944.608363982064, + "width": 0.5087247504852712, + "height": 168.20222275337255, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bap", + "roundness": null, + "seed": 959880221, + "version": 1908, + "versionNonce": 1252526942, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "X3nJLi2d4wQbzKNIwKIPG" + } + ], + "updated": 1758020622270, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.5087247504852712, + -168.20222275337255 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "7SGMYfpys0q6MmaGfpb_6", + "focus": 0.0001132769375544709, + "gap": 1.1286219011235517 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "X3nJLi2d4wQbzKNIwKIPG", + "type": "text", + "x": 19862.91830850221, + "y": 4415.302519305532, + "width": 61.93994140625, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "baq", + "roundness": null, + "seed": 1269239933, + "version": 15, + "versionNonce": 1335119731, + "isDeleted": false, + "boundElements": [], + "updated": 1755586380094, + "link": null, + "locked": false, + "text": "serves", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "pPzKecpIcLRrm-07CnP-I", + "originalText": "serves", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "e3Y-9Cos8lbMyvOsmVVlR", + "type": "arrow", + "x": 20788.898512353942, + "y": 6137.349046459989, + "width": 1.9441349990411254, + "height": 115.05747097891708, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bar", + "roundness": null, + "seed": 686934515, + "version": 2430, + "versionNonce": 352799710, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "kZ6_5c0q8pS8ZyzLdwYga" + } + ], + "updated": 1758020622270, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.9441349990411254, + -115.05747097891708 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "5lCjzUeDPPPmC35x2smr5", + "focus": 0.005063142229728121, + "gap": 1 + }, + "endBinding": { + "elementId": "FWqaPL88_S79D1QbIVeSg", + "focus": 0.031282242949394204, + "gap": 2.9163363940888303 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "kZ6_5c0q8pS8ZyzLdwYga", + "type": "text", + "x": 20752.64853861624, + "y": 4909.238759099105, + "width": 71.93992614746094, + "height": 25, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bas", + "roundness": null, + "seed": 1856639891, + "version": 30, + "versionNonce": 430467229, + "isDeleted": false, + "boundElements": [], + "updated": 1755587054968, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "e3Y-9Cos8lbMyvOsmVVlR", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 2427, + "versionNonce": 1462960642, + "isDeleted": false, + "id": "jOU4h5xQnuyETQ3ME5KcY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20146.69762280182, + "y": 5942.438642753928, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1177798461, + "groupIds": [ + "aji1zGLcFncZnIM-FGFP1" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "EvdNcd9915lmm1OfpAW0m" + }, + { + "id": "l33hK_d_3EqQ8kcHTX7I-", + "type": "arrow" + }, + { + "id": "Bm8VpupUTc_mKbAilRyX2", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "baz" + }, + { + "type": "text", + "version": 1974, + "versionNonce": 1397191106, + "isDeleted": false, + "id": "EvdNcd9915lmm1OfpAW0m", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20174.059396580826, + "y": 5963.673083698916, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 143.3198699951172, + "height": 50, + "seed": 303159197, + "groupIds": [ + "aji1zGLcFncZnIM-FGFP1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App component:\nBOOTSTRAP", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "jOU4h5xQnuyETQ3ME5KcY", + "originalText": "App component:\nBOOTSTRAP", + "lineHeight": 1.25, + "baseline": 18, + "index": "bb0", + "autoResize": true + }, + { + "type": "rectangle", + "version": 2829, + "versionNonce": 348350786, + "isDeleted": false, + "id": "7PtlEhY5X-uZUuS2EX9H2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20309.79724057545, + "y": 5947.150651855665, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 1821301757, + "groupIds": [ + "RUbSe7E3K-KMFhmRh-nFr", + "aji1zGLcFncZnIM-FGFP1" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "Bm8VpupUTc_mKbAilRyX2", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bb1" + }, + { + "type": "rectangle", + "version": 3494, + "versionNonce": 684257538, + "isDeleted": false, + "id": "WLI4febM94FdZ28l3rlvN", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20305.840202550182, + "y": 5949.570931531394, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 229397597, + "groupIds": [ + "RUbSe7E3K-KMFhmRh-nFr", + "aji1zGLcFncZnIM-FGFP1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bb2" + }, + { + "type": "rectangle", + "version": 3520, + "versionNonce": 2051506370, + "isDeleted": false, + "id": "1bT1VNIEpRG8yjfbbVW86", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 20306.01103000298, + "y": 5954.341382216884, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 825999549, + "groupIds": [ + "RUbSe7E3K-KMFhmRh-nFr", + "aji1zGLcFncZnIM-FGFP1" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "Bm8VpupUTc_mKbAilRyX2", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bb3" + }, + { + "id": "l33hK_d_3EqQ8kcHTX7I-", + "type": "arrow", + "x": 19924.533275510163, + "y": 5983.975211473179, + "width": 212.59677192983145, + "height": 0.17850638117579365, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bb4", + "roundness": null, + "seed": 1175718589, + "version": 1484, + "versionNonce": 2012245086, + "isDeleted": false, + "boundElements": [], + "updated": 1758020622270, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 212.59677192983145, + 0.17850638117579365 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "s8Q50VdP8GU3SeMk5lzs5", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "jOU4h5xQnuyETQ3ME5KcY", + "focus": -0.09657058198093753, + "gap": 9.56757536182704 + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "3xug9j4e2GJaRiFk4zWmA", + "type": "arrow", + "x": 19532.663922276915, + "y": 5725.991811554616, + "width": 203.5471898650394, + "height": 197.9569522554957, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bb5", + "roundness": null, + "seed": 609430291, + "version": 1235, + "versionNonce": 1981755550, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "8ij6IMkd8s-o3ALVahPyX" + } + ], + "updated": 1758020622271, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 203.5471898650394, + -197.9569522554957 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "RyD5nFE4UpQhr8GboEMZY", + "focus": 0, + "gap": 16 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "8ij6IMkd8s-o3ALVahPyX", + "type": "text", + "x": 19517.11592638104, + "y": 4536.123009591595, + "width": 68.83993530273438, + "height": 25, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bb6", + "roundness": null, + "seed": 1971474611, + "version": 22, + "versionNonce": 677537405, + "isDeleted": false, + "boundElements": [], + "updated": 1755587062246, + "link": null, + "locked": false, + "text": "selects", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "3xug9j4e2GJaRiFk4zWmA", + "originalText": "selects", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 2216, + "versionNonce": 1162350530, + "isDeleted": false, + "id": "44z-7zbH_yxNRlxXt6w0b", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19330.98788244858, + "y": 5687.71296286091, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 198.0434175531282, + "height": 85, + "seed": 1215999539, + "groupIds": [ + "TIlU2YR_LT6XUzDBwlyKh" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "3MBSh3E8xsyiGOoW7e3uF", + "type": "text" + }, + { + "id": "3xug9j4e2GJaRiFk4zWmA", + "type": "arrow" + }, + { + "id": "bl_ygEg8Rhd1VPOmOVZzJ", + "type": "arrow" + }, + { + "id": "U-MHl8IoH7bJJLBLBFLaR", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false, + "index": "bb7" + }, + { + "type": "text", + "version": 1741, + "versionNonce": 1593100162, + "isDeleted": false, + "id": "3MBSh3E8xsyiGOoW7e3uF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 19342.419671181196, + "y": 5692.71296286091, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 175.17984008789062, + "height": 75, + "seed": 739012563, + "groupIds": [ + "TIlU2YR_LT6XUzDBwlyKh" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Business actor:\nAgent-aware\nArchitecture User", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "44z-7zbH_yxNRlxXt6w0b", + "originalText": "Business actor:\nAgent-aware Architecture User", + "lineHeight": 1.25, + "baseline": 18, + "index": "bb8", + "autoResize": true + }, + { + "id": "RyD5nFE4UpQhr8GboEMZY", + "type": "ellipse", + "x": 19514.37668470378, + "y": 5691.909120864618, + "width": 7.204217935546592, + "height": 6.105658731999242, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "7cqIJNSzvkzuyxe6285mB", + "TIlU2YR_LT6XUzDBwlyKh" + ], + "frameId": null, + "index": "bb9", + "roundness": null, + "seed": 1731526003, + "version": 1033, + "versionNonce": 1505003330, + "isDeleted": false, + "boundElements": [ + { + "id": "3xug9j4e2GJaRiFk4zWmA", + "type": "arrow" + }, + { + "id": "bl_ygEg8Rhd1VPOmOVZzJ", + "type": "arrow" + } + ], + "updated": 1758020621851, + "link": null, + "locked": false + }, + { + "id": "i2TzsBfu-rwO76M0aXatA", + "type": "line", + "x": 19518.120535680177, + "y": 5699.56310176422, + "width": 0.18778963458515344, + "height": 7.518180704344608, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "7cqIJNSzvkzuyxe6285mB", + "TIlU2YR_LT6XUzDBwlyKh" + ], + "frameId": null, + "index": "bbA", + "roundness": null, + "seed": 1966790419, + "version": 761, + "versionNonce": 1287386754, + "isDeleted": false, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.18778963458515344, + 7.518180704344608 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "uZQ-ROZiMhCSLJLYELkqp", + "type": "line", + "x": 19518.373594387722, + "y": 5707.023441320778, + "width": 6.050126572385714, + "height": 7.669870436076417, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "7cqIJNSzvkzuyxe6285mB", + "TIlU2YR_LT6XUzDBwlyKh" + ], + "frameId": null, + "index": "bbB", + "roundness": null, + "seed": 613711027, + "version": 897, + "versionNonce": 79550018, + "isDeleted": false, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -6.050126572385714, + 7.669870436076417 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "pNeaBWpw5-Zlb9ct_IxBH", + "type": "line", + "x": 19518.485086034296, + "y": 5707.120135360766, + "width": 5.363402008504276, + "height": 7.477424839661953, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "7cqIJNSzvkzuyxe6285mB", + "TIlU2YR_LT6XUzDBwlyKh" + ], + "frameId": null, + "index": "bbC", + "roundness": null, + "seed": 820538963, + "version": 1094, + "versionNonce": 1760411138, + "isDeleted": false, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 5.363402008504276, + 7.477424839661953 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "IUZu50KWNHQ2DqA0ChwUW", + "type": "line", + "x": 19511.62382566265, + "y": 5702.001858973562, + "width": 13.26039991325706, + "height": 0.08007455271347422, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "7cqIJNSzvkzuyxe6285mB", + "TIlU2YR_LT6XUzDBwlyKh" + ], + "frameId": null, + "index": "bbD", + "roundness": null, + "seed": 487402483, + "version": 854, + "versionNonce": 1447734722, + "isDeleted": false, + "boundElements": [], + "updated": 1758020621851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 13.26039991325706, + -0.08007455271347422 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "bl_ygEg8Rhd1VPOmOVZzJ", + "type": "arrow", + "x": 19532.81161140923, + "y": 5731.497222157801, + "width": 196.3280478902343, + "height": 1.3474202831703224, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bbE", + "roundness": null, + "seed": 788371699, + "version": 1568, + "versionNonce": 1785078046, + "isDeleted": false, + "boundElements": [], + "updated": 1758020622271, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 196.3280478902343, + 1.3474202831703224 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "RyD5nFE4UpQhr8GboEMZY", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "7SGMYfpys0q6MmaGfpb_6", + "focus": -0.017911008561490385, + "gap": 3.8860661909275223 + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "U-MHl8IoH7bJJLBLBFLaR", + "type": "arrow", + "x": 19535.221629522905, + "y": 5740.004531538314, + "width": 189.0465351479652, + "height": 242.52990498787494, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bbG", + "roundness": null, + "seed": 1153631411, + "version": 1590, + "versionNonce": 562056542, + "isDeleted": false, + "boundElements": [], + "updated": 1758020622271, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 189.0465351479652, + 242.52990498787494 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "Sc86tY7lunuQ0N-Zc-li3", + "focus": -0.7242175393574741, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 5731, + "versionNonce": 354512286, + "isDeleted": false, + "id": "e5YyqlZbuhZdz0r1T4pND", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18919.09545029386, + "y": 5381.315016564015, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 113.92127254271757, + "height": 60.585522418333525, + "seed": 1624923389, + "groupIds": [ + "ovMobAZuSM-inIzmjNZWx" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "bbJ" + }, + { + "type": "rectangle", + "version": 5842, + "versionNonce": 1612581342, + "isDeleted": false, + "id": "eJlgnwofccoj66N10w5Ya", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18919.32947673377, + "y": 5353.941043196311, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 59.27927860964957, + "height": 25.952395015707573, + "seed": 1323283805, + "groupIds": [ + "ovMobAZuSM-inIzmjNZWx" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "bbK" + }, + { + "type": "text", + "version": 6479, + "versionNonce": 1287121310, + "isDeleted": false, + "id": "GvY5bDa1eK_gb5qBOJTGw", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17849.627735305414, + "y": 5345.788064550702, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1006.2034301757812, + "height": 169.43573414501193, + "seed": 391840189, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020584171, + "link": null, + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Agent-aware Architecture - meta-data-model\ntimothy@agileintegrator.com\n19-Aug-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Agent-aware Architecture - meta-data-model\ntimothy@agileintegrator.com\n19-Aug-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bbL", + "autoResize": true + }, + { + "id": "Bm8VpupUTc_mKbAilRyX2", + "type": "arrow", + "x": 20348.53451248676, + "y": 5980.969976652768, + "width": 338.3450606386941, + "height": 3.428781673100275, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bbM", + "roundness": null, + "seed": 1923325277, + "version": 6420, + "versionNonce": 540478942, + "isDeleted": false, + "boundElements": [], + "updated": 1758020622271, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 338.3450606386941, + 3.428781673100275 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "1bT1VNIEpRG8yjfbbVW86", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "FWqaPL88_S79D1QbIVeSg", + "focus": -0.1050634819183241, + "gap": 3.4787852316367207 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 5092, + "versionNonce": 519023198, + "isDeleted": false, + "id": "O4cMUO7Q0y6iBjyhfc1NQ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17953.13791267242, + "y": 5867.626978097326, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1268181875, + "groupIds": [ + "6ShQk4wsej0jJfXCFKij2" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "4YvoxYF7o0lSB5eYWklSC", + "type": "text" + }, + { + "id": "IhaGTn_P2c27NEd2T3vWG", + "type": "arrow" + } + ], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "bbN" + }, + { + "type": "text", + "version": 4673, + "versionNonce": 914796190, + "isDeleted": false, + "id": "4YvoxYF7o0lSB5eYWklSC", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17987.90966722535, + "y": 5897.626978097326, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 50, + "seed": 321848595, + "groupIds": [ + "6ShQk4wsej0jJfXCFKij2" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nContext", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "O4cMUO7Q0y6iBjyhfc1NQ", + "originalText": "Data object:\nContext", + "lineHeight": 1.25, + "baseline": 18, + "index": "bbO", + "autoResize": true + }, + { + "type": "rectangle", + "version": 5687, + "versionNonce": 87239390, + "isDeleted": false, + "id": "5oCddo8eJPETLODperKo7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18121.850054878305, + "y": 5873.550079607102, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 265480883, + "groupIds": [ + "6ShQk4wsej0jJfXCFKij2" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "bbP" + }, + { + "type": "rectangle", + "version": 6061, + "versionNonce": 2038832926, + "isDeleted": false, + "id": "7sNGOgnATr2jjuFEUEeFi", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 18121.859701814043, + "y": 5873.569867927547, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 1177099347, + "groupIds": [ + "6ShQk4wsej0jJfXCFKij2" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "IhaGTn_P2c27NEd2T3vWG", + "type": "arrow" + } + ], + "updated": 1758020539911, + "link": null, + "locked": false, + "index": "bbQ" + }, + { + "id": "IhaGTn_P2c27NEd2T3vWG", + "type": "arrow", + "x": 18159.904675256403, + "y": 5918.103921903829, + "width": 155.71086402536457, + "height": 1.7890922806445815, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 70, + "groupIds": [], + "frameId": null, + "index": "bbR", + "roundness": { + "type": 2 + }, + "seed": 2080831741, + "version": 3375, + "versionNonce": 1352433474, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "BatkDhS8AQq4VemO6_ZgX" + } + ], + "updated": 1758020540241, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 155.71086402536457, + -1.7890922806445815 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "7sNGOgnATr2jjuFEUEeFi", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "5e-Ot-xp-8wNE0_F3PTo-", + "focus": -0.18149774740381985, + "gap": 9.950724005608208 + }, + "startArrowhead": null, + "endArrowhead": null, + "elbowed": false + }, + { + "id": "BatkDhS8AQq4VemO6_ZgX", + "type": "text", + "x": 18113.092263924056, + "y": 4611.238484937096, + "width": 76.61991882324219, + "height": 25, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bbS", + "roundness": null, + "seed": 303616349, + "version": 43, + "versionNonce": 800980243, + "isDeleted": false, + "boundElements": [], + "updated": 1755606281180, + "link": null, + "locked": false, + "text": "triggers", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "IhaGTn_P2c27NEd2T3vWG", + "originalText": "triggers", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3334, + "versionNonce": 1801307458, + "isDeleted": false, + "id": "i1tY3JXVURjvmgUMK8inz", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17234.32650507548, + "y": 4665.614709188518, + "strokeColor": "#1971c2", + "backgroundColor": "#4dabf7", + "width": 225.73934713170934, + "height": 81.69418802893965, + "seed": 530316482, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "PdeBaIibfsN5ugv9hW0zj", + "type": "text" + }, + { + "id": "m2zs2kqD-SUk9pJsfQP2l", + "type": "arrow" + }, + { + "id": "-xvCSje5JA7nEZkSxDeQ_", + "type": "arrow" + } + ], + "updated": 1758020680026, + "link": null, + "locked": false, + "index": "bbw" + }, + { + "type": "text", + "version": 2855, + "versionNonce": 1941425410, + "isDeleted": false, + "id": "PdeBaIibfsN5ugv9hW0zj", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17307.676220145244, + "y": 4693.9618032029875, + "strokeColor": "#ffffff", + "backgroundColor": "#ffec99", + "width": 79.0399169921875, + "height": 25, + "seed": 37950594, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020680026, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Registry", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "i1tY3JXVURjvmgUMK8inz", + "originalText": "Registry", + "lineHeight": 1.25, + "baseline": 18, + "index": "bbx", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3987, + "versionNonce": 805477534, + "isDeleted": false, + "id": "I3mn_exnpfcL4VkH2JZCk", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17156.88823495827, + "y": 4888.895230666081, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 109.89450816660238, + "height": 41.40058285262635, + "seed": 465719262, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bc8" + }, + { + "type": "rectangle", + "version": 4203, + "versionNonce": 83974366, + "isDeleted": false, + "id": "Z-GwQEGAl37ZCa0bnc-6M", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17129.79845172413, + "y": 4902.459082055501, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 109.89450816660238, + "height": 41.40058285262635, + "seed": 485008414, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bc9" + }, + { + "type": "rectangle", + "version": 3641, + "versionNonce": 2069794078, + "isDeleted": false, + "id": "USPylW5RaF38IDYKC3QnF", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16991.855469704176, + "y": 4456.2479954148785, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 176.1236640159448, + "height": 49.47720559504069, + "seed": 1951782878, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "ELWDwo7sbGPUOmC4VFBsF", + "type": "text" + }, + { + "id": "PhVG7Y5rZnD5EMALIyjRL", + "type": "arrow" + }, + { + "id": "91WeYm_9yX6xob0EbvI4r", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bcG" + }, + { + "type": "text", + "version": 3192, + "versionNonce": 1351301470, + "isDeleted": false, + "id": "ELWDwo7sbGPUOmC4VFBsF", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17011.35734230053, + "y": 4468.486598212398, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 137.1199188232422, + "height": 25, + "seed": 701180958, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "META-MODEL", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "USPylW5RaF38IDYKC3QnF", + "originalText": "META-MODEL", + "lineHeight": 1.25, + "baseline": 18, + "index": "bcH", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3717, + "versionNonce": 2071465502, + "isDeleted": false, + "id": "1gfgmjcg02eK8NSOtM7yi", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17221.232370445578, + "y": 4427.748991913543, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 258.6003951299546, + "height": 49.47720559504069, + "seed": 1712060510, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "tRaB9TpQsQFviaeIJCNAq", + "type": "text" + }, + { + "id": "oXfpcqJvkx3uyV38Ltx6b", + "type": "arrow" + }, + { + "id": "tG5iJAPOsYq_nrMP4fLdW", + "type": "arrow" + }, + { + "id": "iGk2puCuZ3D4RMM43fqpc", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bcI" + }, + { + "type": "text", + "version": 3242, + "versionNonce": 1942788702, + "isDeleted": false, + "id": "tRaB9TpQsQFviaeIJCNAq", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17234.11263850616, + "y": 4439.987594711064, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 232.83985900878906, + "height": 25, + "seed": 820591774, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "AGENT-CAPABILITIES", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "1gfgmjcg02eK8NSOtM7yi", + "originalText": "AGENT-CAPABILITIES", + "lineHeight": 1.25, + "baseline": 18, + "index": "bcJ", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3963, + "versionNonce": 1984499486, + "isDeleted": false, + "id": "eUTkwquDLqhlEEXFLkI0p", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17562.959994660436, + "y": 4332.9752836254565, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 214.481191628901, + "height": 62.934520542051324, + "seed": 1880357086, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "5DQ2Mm3syxXUBshWVsrow", + "type": "text" + }, + { + "id": "2-ZSb483pXyCHB2dSm8oC", + "type": "arrow" + }, + { + "id": "tG5iJAPOsYq_nrMP4fLdW", + "type": "arrow" + }, + { + "id": "btyzfUv6-T-XrTFTMYXxH", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bcK" + }, + { + "type": "text", + "version": 3367, + "versionNonce": 1322613598, + "isDeleted": false, + "id": "5DQ2Mm3syxXUBshWVsrow", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17576.080641134067, + "y": 4351.942543896482, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 188.23989868164062, + "height": 25, + "seed": 723332382, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "TEST-FRAMEWORK", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "eUTkwquDLqhlEEXFLkI0p", + "originalText": "TEST-FRAMEWORK", + "lineHeight": 1.25, + "baseline": 18, + "index": "bcL", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3416, + "versionNonce": 31841374, + "isDeleted": false, + "id": "urxt22SiGzrsHiiPcYOAE", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16786.318570038227, + "y": 4345.203032103349, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 234.50882429801393, + "height": 50.77465360130916, + "seed": 1863806594, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "GOkeb9vJqD-XCWsKu9OUv", + "type": "text" + }, + { + "id": "LO_WCB79O-yFxWou7ZnWs", + "type": "arrow" + }, + { + "id": "PhVG7Y5rZnD5EMALIyjRL", + "type": "arrow" + }, + { + "id": "mcGg5r15qK2TvlQRelga4", + "type": "arrow" + }, + { + "id": "Jiv9jF4E4wAqSt2k2pGoD", + "type": "arrow" + }, + { + "id": "oXfpcqJvkx3uyV38Ltx6b", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bcM" + }, + { + "type": "text", + "version": 2969, + "versionNonce": 2145820830, + "isDeleted": false, + "id": "GOkeb9vJqD-XCWsKu9OUv", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16839.673026437722, + "y": 4358.090358904004, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 127.79991149902344, + "height": 25, + "seed": 1021988418, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "BOOTSTRAP", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "urxt22SiGzrsHiiPcYOAE", + "originalText": "BOOTSTRAP", + "lineHeight": 1.25, + "baseline": 18, + "index": "bcN", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3397, + "versionNonce": 1870210626, + "isDeleted": false, + "id": "oQsSv6Z0BNnrh7VVj2ztW", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16756.593830752678, + "y": 4676.97804497089, + "strokeColor": "#1971c2", + "backgroundColor": "#4dabf7", + "width": 190.76477031213363, + "height": 64.99876639207103, + "seed": 1784402498, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "blbYcLs6OZ9y_yp6PbOgR", + "type": "text" + }, + { + "id": "mcGg5r15qK2TvlQRelga4", + "type": "arrow" + } + ], + "updated": 1758020662285, + "link": null, + "locked": false, + "index": "bcO" + }, + { + "type": "text", + "version": 2943, + "versionNonce": 2143227394, + "isDeleted": false, + "id": "blbYcLs6OZ9y_yp6PbOgR", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16774.276279995658, + "y": 4696.977428166925, + "strokeColor": "#ffffff", + "backgroundColor": "#ffec99", + "width": 155.39987182617188, + "height": 25, + "seed": 1634482690, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020662285, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Context Loader", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "oQsSv6Z0BNnrh7VVj2ztW", + "originalText": "Context Loader", + "lineHeight": 1.25, + "baseline": 18, + "index": "bcP", + "autoResize": true + }, + { + "id": "mcGg5r15qK2TvlQRelga4", + "type": "arrow", + "x": 16888.979508643337, + "y": 4668.97879492597, + "width": 4.397553655067895, + "height": 271.3497579948671, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcQ", + "roundness": null, + "seed": 176087426, + "version": 3788, + "versionNonce": 645004738, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "zoZYgVk51wpPGODlnW-xG" + } + ], + "updated": 1758020662286, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4.397553655067895, + -271.3497579948671 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "oQsSv6Z0BNnrh7VVj2ztW", + "focus": 0.39261492317289165, + "gap": 7.9992500449197905 + }, + "endBinding": { + "elementId": "urxt22SiGzrsHiiPcYOAE", + "focus": 0.1657007688783754, + "gap": 1.6513512264446035 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "zoZYgVk51wpPGODlnW-xG", + "type": "text", + "x": 20744.872728133138, + "y": 5941.993402822263, + "width": 57.55192565917969, + "height": 20, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcR", + "roundness": null, + "seed": 15425858, + "version": 44, + "versionNonce": 660646238, + "isDeleted": false, + "boundElements": [], + "updated": 1758020219234, + "link": null, + "locked": false, + "text": "realises", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "mcGg5r15qK2TvlQRelga4", + "originalText": "realises", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3837, + "versionNonce": 23335938, + "isDeleted": false, + "id": "3OgMkd7ghkjYyINUCIIo0", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17106.927288570532, + "y": 4916.9580982172865, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 121.62343820967061, + "height": 44.89957581339422, + "seed": 683710366, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "hxIjavkXZSADij0Pjpk8-", + "type": "text" + } + ], + "updated": 1758020629054, + "link": null, + "locked": false, + "index": "bcS" + }, + { + "type": "text", + "version": 3272, + "versionNonce": 230948702, + "isDeleted": false, + "id": "hxIjavkXZSADij0Pjpk8-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17140.55903788777, + "y": 4926.907886123984, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 54.35993957519531, + "height": 25, + "seed": 1246229470, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Tools", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "3OgMkd7ghkjYyINUCIIo0", + "originalText": "Tools", + "lineHeight": 1.25, + "baseline": 18, + "index": "bcT", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3298, + "versionNonce": 280379358, + "isDeleted": false, + "id": "5psA8qP9fYcbbttvjmFCj", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17568.149961076942, + "y": 4659.804696303025, + "strokeColor": "#1971c2", + "backgroundColor": "#4dabf7", + "width": 176.1236640159448, + "height": 49.47720559504069, + "seed": 1884069762, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bcU" + }, + { + "type": "rectangle", + "version": 3350, + "versionNonce": 769561630, + "isDeleted": false, + "id": "Fe_zq4rY462Qk7pmF2Wle", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17549.738556035605, + "y": 4675.350309594245, + "strokeColor": "#1971c2", + "backgroundColor": "#4dabf7", + "width": 176.1236640159448, + "height": 49.47720559504069, + "seed": 1370600194, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "btyzfUv6-T-XrTFTMYXxH", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bcW" + }, + { + "type": "rectangle", + "version": 3342, + "versionNonce": 1668440158, + "isDeleted": false, + "id": "rY_vagAHKldvYCX9IWncV", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17518.98000842913, + "y": 4690.225812376733, + "strokeColor": "#1971c2", + "backgroundColor": "#4dabf7", + "width": 176.1236640159448, + "height": 49.47720559504069, + "seed": 2019197726, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "GfWV5iG7Zh-_gnycGS62w" + }, + { + "id": "btyzfUv6-T-XrTFTMYXxH", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bcX" + }, + { + "id": "GfWV5iG7Zh-_gnycGS62w", + "type": "text", + "x": 17548.471886518648, + "y": 4702.464415174253, + "width": 117.13990783691406, + "height": 25, + "angle": 0, + "strokeColor": "#ffffff", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcY", + "roundness": null, + "seed": 22401858, + "version": 364, + "versionNonce": 88253598, + "isDeleted": false, + "boundElements": null, + "updated": 1758020628855, + "link": null, + "locked": false, + "text": "Test Suites", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "rY_vagAHKldvYCX9IWncV", + "originalText": "Test Suites", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3300, + "versionNonce": 263629058, + "isDeleted": false, + "id": "6qiTo3XSq-fR-XVIYGE1A", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17010.792665569807, + "y": 4675.99442417489, + "strokeColor": "#1971c2", + "backgroundColor": "#4dabf7", + "width": 176.1236640159448, + "height": 64.40232947214916, + "seed": 193497026, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "3NMa9cDGJjwgEvB_bHFsb", + "type": "text" + }, + { + "id": "91WeYm_9yX6xob0EbvI4r", + "type": "arrow" + } + ], + "updated": 1758020676997, + "link": null, + "locked": false, + "index": "bcZ" + }, + { + "type": "text", + "version": 2856, + "versionNonce": 717109442, + "isDeleted": false, + "id": "3NMa9cDGJjwgEvB_bHFsb", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17023.744558002585, + "y": 4695.695588910964, + "strokeColor": "#ffffff", + "backgroundColor": "#ffec99", + "width": 150.21987915039062, + "height": 25, + "seed": 1986412418, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020676997, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "internal schema", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "6qiTo3XSq-fR-XVIYGE1A", + "originalText": "internal schema", + "lineHeight": 1.25, + "baseline": 18, + "index": "bca", + "autoResize": true + }, + { + "type": "rectangle", + "version": 4084, + "versionNonce": 112329182, + "isDeleted": false, + "id": "vYZs7uLVRJmWc-RZAY9XX", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17373.757418752695, + "y": 4893.129268599479, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 109.89450816660238, + "height": 41.40058285262635, + "seed": 1602524610, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bck" + }, + { + "type": "rectangle", + "version": 4301, + "versionNonce": 856823326, + "isDeleted": false, + "id": "8I2T2vyWBU71G9Mzr6KPN", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17346.840006833027, + "y": 4906.6931199888995, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 109.89450816660238, + "height": 41.40058285262635, + "seed": 1269861762, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bcl" + }, + { + "type": "rectangle", + "version": 3935, + "versionNonce": 318094146, + "isDeleted": false, + "id": "5GNUNm7w-LLkSqDx6gPEr", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17323.968843679428, + "y": 4921.192136150684, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 121.62343820967061, + "height": 44.89957581339422, + "seed": 117935426, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "gyq_c2vLJojdG3bbzm4wT", + "type": "text" + } + ], + "updated": 1758020629054, + "link": null, + "locked": false, + "index": "bcm" + }, + { + "type": "text", + "version": 3379, + "versionNonce": 1358800542, + "isDeleted": false, + "id": "gyq_c2vLJojdG3bbzm4wT", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17340.190604593347, + "y": 4931.1419240573805, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 89.17991638183594, + "height": 25, + "seed": 115905794, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Functions", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "5GNUNm7w-LLkSqDx6gPEr", + "originalText": "Functions", + "lineHeight": 1.25, + "baseline": 18, + "index": "bcn", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3821, + "versionNonce": 763150210, + "isDeleted": false, + "id": "QIn7_NLKJg2tLzgMR6_Z4", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17256.698483451888, + "y": 4340.3917061784, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 176.1236640159448, + "height": 49.47720559504069, + "seed": 1071452994, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "KSRuqKVjmBw2mhSQvCoP3", + "type": "text" + }, + { + "id": "LO_WCB79O-yFxWou7ZnWs", + "type": "arrow" + }, + { + "id": "2-ZSb483pXyCHB2dSm8oC", + "type": "arrow" + } + ], + "updated": 1758020629053, + "link": null, + "locked": false, + "index": "bco" + }, + { + "type": "text", + "version": 3391, + "versionNonce": 1563067230, + "isDeleted": false, + "id": "KSRuqKVjmBw2mhSQvCoP3", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17272.130356353417, + "y": 4352.630308975921, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "width": 145.25991821289062, + "height": 25, + "seed": 1461541634, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "AGENT-ROLES", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "QIn7_NLKJg2tLzgMR6_Z4", + "originalText": "AGENT-ROLES", + "lineHeight": 1.25, + "baseline": 18, + "index": "bcp", + "autoResize": true + }, + { + "id": "LO_WCB79O-yFxWou7ZnWs", + "type": "arrow", + "x": 17030.58779567097, + "y": 4371.189895754037, + "width": 225.00029655954495, + "height": 6.00308172997029, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcq", + "roundness": { + "type": 2 + }, + "seed": 964743746, + "version": 1020, + "versionNonce": 1766895682, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "rgV5k7xi3UdiHoIPZD6eb" + } + ], + "updated": 1758020629052, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 225.00029655954495, + -6.00308172997029 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "urxt22SiGzrsHiiPcYOAE", + "focus": 0.13986442305146682, + "gap": 9.760401334729977 + }, + "endBinding": { + "elementId": "QIn7_NLKJg2tLzgMR6_Z4", + "focus": 0.08574382444848497, + "gap": 1.1103912213729927 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "rgV5k7xi3UdiHoIPZD6eb", + "type": "text", + "x": 21011.860344642184, + "y": 5772.908696089486, + "width": 40.78395080566406, + "height": 20, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcr", + "roundness": null, + "seed": 1080773470, + "version": 11, + "versionNonce": 1036018590, + "isDeleted": false, + "boundElements": null, + "updated": 1758019822831, + "link": null, + "locked": false, + "text": "loads", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "LO_WCB79O-yFxWou7ZnWs", + "originalText": "loads", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "oXfpcqJvkx3uyV38Ltx6b", + "type": "arrow", + "x": 17023.222214823487, + "y": 4392.9755780191945, + "width": 192.84563656767932, + "height": 37.856110653608084, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcs", + "roundness": { + "type": 2 + }, + "seed": 1411900190, + "version": 1161, + "versionNonce": 57608130, + "isDeleted": false, + "boundElements": [], + "updated": 1758020629052, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 192.84563656767932, + 37.856110653608084 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "urxt22SiGzrsHiiPcYOAE", + "focus": -0.02277141493860566, + "gap": 4.59845450431578 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "PhVG7Y5rZnD5EMALIyjRL", + "type": "arrow", + "x": 17007.20654713514, + "y": 4403.545380108735, + "width": 30.49827236555211, + "height": 49.41524461411336, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcu", + "roundness": { + "type": 2 + }, + "seed": 1166479618, + "version": 1339, + "versionNonce": 80758530, + "isDeleted": false, + "boundElements": [], + "updated": 1758020629053, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 30.49827236555211, + 49.41524461411336 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "urxt22SiGzrsHiiPcYOAE", + "focus": -0.6266352601071946, + "gap": 7.567694404076974 + }, + "endBinding": { + "elementId": "USPylW5RaF38IDYKC3QnF", + "focus": -0.24112351781047237, + "gap": 3.287370692029981 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "2-ZSb483pXyCHB2dSm8oC", + "type": "arrow", + "x": 17559.069380725938, + "y": 4365.029906898616, + "width": 118.46223078476396, + "height": 1.2670523882179623, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcv", + "roundness": { + "type": 2 + }, + "seed": 1010775262, + "version": 1309, + "versionNonce": 2072505986, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "5m32teaYSqS3zHGOPoouG" + } + ], + "updated": 1758020629053, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -118.46223078476396, + 1.2670523882179623 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "eUTkwquDLqhlEEXFLkI0p", + "focus": 0.018436030296328683, + "gap": 3.8906139344981057 + }, + "endBinding": { + "elementId": "QIn7_NLKJg2tLzgMR6_Z4", + "focus": 0.08534928745938285, + "gap": 7.785002473341592 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "5m32teaYSqS3zHGOPoouG", + "type": "text", + "x": 21367.170663583594, + "y": 5770.383774293158, + "width": 43.66395568847656, + "height": 20, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcw", + "roundness": null, + "seed": 1182853406, + "version": 21, + "versionNonce": 194417694, + "isDeleted": false, + "boundElements": [], + "updated": 1758019822832, + "link": null, + "locked": false, + "text": "tests", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "2-ZSb483pXyCHB2dSm8oC", + "originalText": "tests", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "tG5iJAPOsYq_nrMP4fLdW", + "type": "arrow", + "x": 17561.44347015685, + "y": 4392.229222979287, + "width": 76.05030822846311, + "height": 52.848176361635524, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcx", + "roundness": { + "type": 2 + }, + "seed": 2085772354, + "version": 1468, + "versionNonce": 1595651586, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "C9p8FpbOMx8qMVnct5saU" + } + ], + "updated": 1758020629053, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -76.05030822846311, + 52.848176361635524 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "eUTkwquDLqhlEEXFLkI0p", + "focus": 0.45089023820518814, + "gap": 1.5165245035859698 + }, + "endBinding": { + "elementId": "1gfgmjcg02eK8NSOtM7yi", + "focus": 0.7531665385299043, + "gap": 5.560396352855605 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "C9p8FpbOMx8qMVnct5saU", + "type": "text", + "x": 21390.75071429266, + "y": 5823.373652360536, + "width": 43.66395568847656, + "height": 20, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcy", + "roundness": null, + "seed": 1208058882, + "version": 25, + "versionNonce": 1244291166, + "isDeleted": false, + "boundElements": [], + "updated": 1758019822832, + "link": null, + "locked": false, + "text": "tests", + "fontSize": 16, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "tG5iJAPOsYq_nrMP4fLdW", + "originalText": "tests", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "91WeYm_9yX6xob0EbvI4r", + "type": "arrow", + "x": 17092.077544914297, + "y": 4670.48345110106, + "width": 0.03238962748582708, + "height": 160.7640353582965, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bcz", + "roundness": null, + "seed": 78016514, + "version": 3828, + "versionNonce": 1570770270, + "isDeleted": false, + "boundElements": [], + "updated": 1758020677638, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.03238962748582708, + -160.7640353582965 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "6qiTo3XSq-fR-XVIYGE1A", + "focus": -0.0768648102667155, + "gap": 5.510973073829518 + }, + "endBinding": { + "elementId": "USPylW5RaF38IDYKC3QnF", + "focus": -0.13764622376636163, + "gap": 3.994214732844739 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "iGk2puCuZ3D4RMM43fqpc", + "type": "arrow", + "x": 17341.28423641959, + "y": 4649.364545363824, + "width": 0.3847425074709463, + "height": 148.77230389766282, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bd1", + "roundness": null, + "seed": 1822817282, + "version": 3598, + "versionNonce": 2105056578, + "isDeleted": false, + "boundElements": [], + "updated": 1758020629054, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.3847425074709463, + -148.77230389766282 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "1gfgmjcg02eK8NSOtM7yi", + "focus": 0.07542643361714685, + "gap": 16 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "btyzfUv6-T-XrTFTMYXxH", + "type": "arrow", + "x": 17667.61638321, + "y": 4659.350309594246, + "width": 0.1995931155506696, + "height": 257.17101549898507, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bd2", + "roundness": null, + "seed": 815366722, + "version": 4171, + "versionNonce": 1983886530, + "isDeleted": false, + "boundElements": [], + "updated": 1758020629054, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.1995931155506696, + -257.17101549898507 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "rY_vagAHKldvYCX9IWncV", + "focus": 0.6882038522589569, + "gap": 16 + }, + "endBinding": { + "elementId": "eUTkwquDLqhlEEXFLkI0p", + "focus": 0.026225588943504602, + "gap": 6.269489927753057 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "m2zs2kqD-SUk9pJsfQP2l", + "type": "arrow", + "x": 17252.748795283685, + "y": 4858.35860022134, + "width": 40.556266613504704, + "height": 106.49049059827394, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bd3", + "roundness": null, + "seed": 1733939138, + "version": 4428, + "versionNonce": 989519042, + "isDeleted": false, + "boundElements": [], + "updated": 1758020680028, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 40.556266613504704, + -106.49049059827394 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "i1tY3JXVURjvmgUMK8inz", + "focus": 0.2849764345996523, + "gap": 4.559212405608378 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "-xvCSje5JA7nEZkSxDeQ_", + "type": "arrow", + "x": 17404.358621709893, + "y": 4860.791908610628, + "width": 33.076446086339274, + "height": 106.47899917730865, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bd4", + "roundness": null, + "seed": 319703938, + "version": 4615, + "versionNonce": 247854210, + "isDeleted": false, + "boundElements": [], + "updated": 1758020680030, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -33.076446086339274, + -106.47899917730865 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "i1tY3JXVURjvmgUMK8inz", + "focus": -0.07344485987777595, + "gap": 7.004012215860712 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "type": "rectangle", + "version": 4410, + "versionNonce": 821733086, + "isDeleted": false, + "id": "NhSFZWvUrLIewsHz6tdUg", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 80, + "angle": 0, + "x": 17542.768999682386, + "y": 4864.724574148809, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 228.84220657288057, + "height": 114.02636334993849, + "seed": 1103769950, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "x4jPapmeJbhHfBFWyllZZ", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bd5" + }, + { + "type": "rectangle", + "version": 4245, + "versionNonce": 922622750, + "isDeleted": false, + "id": "_RwGkpWR3XUpGA-P7E_QW", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17618.082265595032, + "y": 4892.773441864761, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 134.6700117666331, + "height": 41.40058285262635, + "seed": 1249400222, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bd6" + }, + { + "type": "rectangle", + "version": 4510, + "versionNonce": 1292437342, + "isDeleted": false, + "id": "yUFlkoI8rV5-xq9FEk4n9", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17591.164853675364, + "y": 4906.159176229228, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 139.82965977981445, + "height": 41.40058285262635, + "seed": 441971166, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "index": "bd7" + }, + { + "type": "rectangle", + "version": 4110, + "versionNonce": 160256706, + "isDeleted": false, + "id": "4p2Wugfv0evckOyhsASNU", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17568.293690521765, + "y": 4920.836309415966, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 144.81887142704804, + "height": 44.89957581339422, + "seed": 1014629918, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "-TY5z-84cup7h2J6KfMRR", + "type": "text" + } + ], + "updated": 1758020629054, + "link": null, + "locked": false, + "index": "bd8" + }, + { + "type": "text", + "version": 3584, + "versionNonce": 2019117022, + "isDeleted": false, + "id": "-TY5z-84cup7h2J6KfMRR", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17578.163193984314, + "y": 4930.7860973226625, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 125.07986450195312, + "height": 25, + "seed": 835687006, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Test scripts", + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "4p2Wugfv0evckOyhsASNU", + "originalText": "Test scripts", + "lineHeight": 1.25, + "baseline": 18, + "index": "bd9", + "autoResize": true + }, + { + "id": "x4jPapmeJbhHfBFWyllZZ", + "type": "arrow", + "x": 17650.53463679927, + "y": 4859.051365649656, + "width": 1.6622888955607777, + "height": 91.71739880760651, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdA", + "roundness": null, + "seed": 891917982, + "version": 4941, + "versionNonce": 283181826, + "isDeleted": false, + "boundElements": [], + "updated": 1758020629054, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.6622888955607777, + -91.71739880760651 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "-QU9xGwVRdOR6mbloM7ZQ", + "type": "ellipse", + "x": 16954.69580407866, + "y": 4086.692176907057, + "width": 30.3609613580133, + "height": 25.731268888019965, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "jw-F-XTZUkX5SIEaVZljL", + "_l2mnbPoppfeBhxDVPWkc" + ], + "frameId": null, + "index": "bdAG", + "roundness": null, + "seed": 1291665118, + "version": 1436, + "versionNonce": 1885514910, + "isDeleted": false, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false + }, + { + "id": "hqgoj_5N6IJn59UNT3liM", + "type": "line", + "x": 16970.47363254546, + "y": 4118.9485884158175, + "width": 0.791407740588112, + "height": 31.684104491190627, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "jw-F-XTZUkX5SIEaVZljL", + "_l2mnbPoppfeBhxDVPWkc" + ], + "frameId": null, + "index": "bdAV", + "roundness": null, + "seed": 1726853918, + "version": 1168, + "versionNonce": 1591699678, + "isDeleted": false, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0.791407740588112, + 31.684104491190627 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "iI8gv2KELP3WK2HjifuDn", + "type": "line", + "x": 16971.540105785145, + "y": 4150.388931145692, + "width": 25.497237967906578, + "height": 32.323375280153435, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "jw-F-XTZUkX5SIEaVZljL", + "_l2mnbPoppfeBhxDVPWkc" + ], + "frameId": null, + "index": "bdAl", + "roundness": null, + "seed": 189112158, + "version": 1304, + "versionNonce": 251305246, + "isDeleted": false, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -25.497237967906578, + 32.323375280153435 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "bfzJvY8nJd-dtac1CrlR_", + "type": "line", + "x": 16972.009968524395, + "y": 4150.796431867896, + "width": 22.60315312287045, + "height": 31.51234577375413, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "jw-F-XTZUkX5SIEaVZljL", + "_l2mnbPoppfeBhxDVPWkc" + ], + "frameId": null, + "index": "bdB", + "roundness": null, + "seed": 1851130782, + "version": 1501, + "versionNonce": 908413278, + "isDeleted": false, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 22.60315312287045, + 31.51234577375413 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "H0zAKghb8r57eK2sRFilf", + "type": "line", + "x": 16943.094343972978, + "y": 4129.226319330796, + "width": 55.88371881029928, + "height": 0.33746069628160635, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "jw-F-XTZUkX5SIEaVZljL", + "_l2mnbPoppfeBhxDVPWkc" + ], + "frameId": null, + "index": "bdBV", + "roundness": null, + "seed": 307224542, + "version": 1261, + "versionNonce": 867200414, + "isDeleted": false, + "boundElements": [], + "updated": 1758020628855, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 55.88371881029928, + -0.33746069628160635 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": false + }, + { + "id": "J6zi9cC2PbKo6i2DPZvU1", + "type": "text", + "x": 16901.748794856092, + "y": 4141.374579366344, + "width": 44.43995666503906, + "height": 25, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "_l2mnbPoppfeBhxDVPWkc" + ], + "frameId": null, + "index": "bdC", + "roundness": null, + "seed": 189019166, + "version": 784, + "versionNonce": 1422723550, + "isDeleted": false, + "boundElements": [ + { + "id": "Jiv9jF4E4wAqSt2k2pGoD", + "type": "arrow" + } + ], + "updated": 1758020628855, + "link": null, + "locked": false, + "text": "User", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "User", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "Jiv9jF4E4wAqSt2k2pGoD", + "type": "arrow", + "x": 16957.694499260608, + "y": 4175.852410323123, + "width": 4.013703720258491, + "height": 153.82808950006438, + "angle": 0, + "strokeColor": "#f08c00", + "backgroundColor": "#a5d8ff", + "fillStyle": "cross-hatch", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdH", + "roundness": { + "type": 2 + }, + "seed": 382443806, + "version": 2219, + "versionNonce": 163908162, + "isDeleted": false, + "boundElements": [], + "updated": 1758020629054, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 4.013703720258491, + 153.82808950006438 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "J6zi9cC2PbKo6i2DPZvU1", + "focus": -1.4704198633736503, + "gap": 14.910246875009863 + }, + "endBinding": { + "elementId": "urxt22SiGzrsHiiPcYOAE", + "focus": 0.5020712531379531, + "gap": 15.522532280161613 + }, + "startArrowhead": null, + "endArrowhead": "triangle", + "elbowed": false + }, + { + "type": "rectangle", + "version": 6469, + "versionNonce": 125555778, + "isDeleted": false, + "id": "p0RsKxhjAP7906BVuvape", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17820.291062884568, + "y": 3942.4618724678335, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 113.92127254271757, + "height": 60.585522418333525, + "seed": 214341982, + "groupIds": [ + "1jeenMLC06Efavu061hOP" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758026642945, + "link": null, + "locked": false, + "index": "bdK" + }, + { + "type": "rectangle", + "version": 6580, + "versionNonce": 524024834, + "isDeleted": false, + "id": "QvUNlYHHOTsEhOYQFQzqk", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17820.525089324477, + "y": 3915.087899100127, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 59.27927860964957, + "height": 25.952395015707573, + "seed": 1235729822, + "groupIds": [ + "1jeenMLC06Efavu061hOP" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758026642945, + "link": null, + "locked": false, + "index": "bdL" + }, + { + "type": "text", + "version": 7144, + "versionNonce": 50219458, + "isDeleted": false, + "id": "_7MFFWI7Y0tZY3oHT5EMI", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16519.669690868675, + "y": 3923.5168857562594, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 1004.4412841796875, + "height": 169.43573414501193, + "seed": 1331321310, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758026919818, + "link": null, + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Agent-aware Architecture - meta layers view\ntimothy@agileintegrator.com\n16-Sep-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Agent-aware Architecture - meta layers view\ntimothy@agileintegrator.com\n16-Sep-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "bdM", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3043, + "versionNonce": 157663198, + "isDeleted": false, + "id": "RUqiohdsY1P3KDevDr3Vi", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16624.999231399946, + "y": 5535.659696272851, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 69.74310838919793, + "seed": 2076624450, + "groupIds": [ + "s0wRwuDuK7S5nRpMOGEEo" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "8yFEIgsmZAzOO3vULNkrK" + }, + { + "id": "heupkAyvBxi9X2bkCTJJK", + "type": "arrow" + } + ], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdN" + }, + { + "type": "text", + "version": 2662, + "versionNonce": 1688081438, + "isDeleted": false, + "id": "8yFEIgsmZAzOO3vULNkrK", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16668.14456906512, + "y": 5550.402804662049, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 146.1598663330078, + "height": 50, + "seed": 1901637122, + "groupIds": [ + "s0wRwuDuK7S5nRpMOGEEo" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nAgent Role", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "RUqiohdsY1P3KDevDr3Vi", + "originalText": "App Component:\nAgent Role", + "lineHeight": 1.25, + "baseline": 18, + "index": "bdO", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3202, + "versionNonce": 373416030, + "isDeleted": false, + "id": "Ccf0qnFolh01URHOk1QDZ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16822.74884710105, + "y": 5540.386424999877, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 1943510466, + "groupIds": [ + "I4jkNphyVyqJijUzsRYJY", + "s0wRwuDuK7S5nRpMOGEEo" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdP" + }, + { + "type": "rectangle", + "version": 3868, + "versionNonce": 841098398, + "isDeleted": false, + "id": "VfJpIXhTKW6v6tAnjpS_q", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16818.79180907578, + "y": 5542.806704675608, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1885508994, + "groupIds": [ + "I4jkNphyVyqJijUzsRYJY", + "s0wRwuDuK7S5nRpMOGEEo" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdQ" + }, + { + "type": "rectangle", + "version": 3895, + "versionNonce": 703586526, + "isDeleted": false, + "id": "cVSWVPKjmBP4PUCPCpRCJ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16818.96263652858, + "y": 5547.5771553610975, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1480103234, + "groupIds": [ + "I4jkNphyVyqJijUzsRYJY", + "s0wRwuDuK7S5nRpMOGEEo" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdR" + }, + { + "type": "rectangle", + "version": 3234, + "versionNonce": 289150238, + "isDeleted": false, + "id": "T2CSTEPcAcIAVD8Q4oYDB", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17023.40100006835, + "y": 5792.597659492432, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 481860866, + "groupIds": [ + "5iPlqixhzqbYZ0X3NnaVV" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "n7MfXF7vSTd7zNuaLOV7Q", + "type": "text" + }, + { + "id": "PgPMvXWQeLlylrtiTQNQq", + "type": "arrow" + }, + { + "id": "TBge_W1I7n0CGiPrzMmp5", + "type": "arrow" + } + ], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdS" + }, + { + "type": "text", + "version": 2785, + "versionNonce": 1635238238, + "isDeleted": false, + "id": "n7MfXF7vSTd7zNuaLOV7Q", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17058.172754621282, + "y": 5822.597659492432, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 50, + "seed": 727821506, + "groupIds": [ + "5iPlqixhzqbYZ0X3NnaVV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nIO Object", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "T2CSTEPcAcIAVD8Q4oYDB", + "originalText": "Data object:\nIO Object", + "lineHeight": 1.25, + "baseline": 18, + "index": "bdT", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3848, + "versionNonce": 307336734, + "isDeleted": false, + "id": "Mo9TuEhx9UVkOqSGWNKjP", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17192.11314227424, + "y": 5798.520761002208, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1775420546, + "groupIds": [ + "5iPlqixhzqbYZ0X3NnaVV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdU" + }, + { + "type": "rectangle", + "version": 4212, + "versionNonce": 104145502, + "isDeleted": false, + "id": "FM7NfR3u9u3j_SZzIOpXy", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17192.12278920997, + "y": 5798.5405493226535, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 835380290, + "groupIds": [ + "5iPlqixhzqbYZ0X3NnaVV" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdV" + }, + { + "type": "rectangle", + "version": 2433, + "versionNonce": 1518379870, + "isDeleted": false, + "id": "jLfhg_Iq40pm7TJAUDXGa", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16468.27438306865, + "y": 5988.7050466512865, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 1294535682, + "groupIds": [ + "zXeOLI6ADNs_52ek3QQv1" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "Bv9b1_0dkky1UXwDCn91L" + }, + { + "id": "wvm-EOWuAAQS0-piYsk5R", + "type": "arrow" + } + ], + "updated": 1758026886156, + "link": null, + "locked": false, + "index": "bdW" + }, + { + "type": "text", + "version": 2004, + "versionNonce": 97798530, + "isDeleted": false, + "id": "Bv9b1_0dkky1UXwDCn91L", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16489.566164782223, + "y": 6009.939487596274, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 155.45985412597656, + "height": 50, + "seed": 1911307202, + "groupIds": [ + "zXeOLI6ADNs_52ek3QQv1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758026886156, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App component:\nApplication Tool", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "jLfhg_Iq40pm7TJAUDXGa", + "originalText": "App component:\nApplication Tool", + "lineHeight": 1.25, + "baseline": 18, + "index": "bdX", + "autoResize": true + }, + { + "type": "rectangle", + "version": 2841, + "versionNonce": 663783326, + "isDeleted": false, + "id": "zFeEAezgUykkGAf6T6sbU", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16631.37400084228, + "y": 5993.4170557530215, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 1043559298, + "groupIds": [ + "hkky8hPa5XyvRSheHpMc7", + "zXeOLI6ADNs_52ek3QQv1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758026886156, + "link": null, + "locked": false, + "index": "bdY" + }, + { + "type": "rectangle", + "version": 3507, + "versionNonce": 1028901186, + "isDeleted": false, + "id": "ujI5Q_ptMfm7NuK4JsFu2", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16627.41696281701, + "y": 5995.837335428752, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 876458818, + "groupIds": [ + "hkky8hPa5XyvRSheHpMc7", + "zXeOLI6ADNs_52ek3QQv1" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758026886156, + "link": null, + "locked": false, + "index": "bdZ" + }, + { + "type": "rectangle", + "version": 3533, + "versionNonce": 1234822110, + "isDeleted": false, + "id": "cj38G4ejmwub3WcUvQrZv", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16627.58779026981, + "y": 6000.607786114242, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 912915202, + "groupIds": [ + "hkky8hPa5XyvRSheHpMc7", + "zXeOLI6ADNs_52ek3QQv1" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "wvm-EOWuAAQS0-piYsk5R", + "type": "arrow" + } + ], + "updated": 1758026886156, + "link": null, + "locked": false, + "index": "bda" + }, + { + "type": "rectangle", + "version": 2834, + "versionNonce": 541937922, + "isDeleted": false, + "id": "JyOsn32yDRmJ4qySUWr-d", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16594.650962711145, + "y": 6166.134693236587, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 53955266, + "groupIds": [ + "i-5W_wna7sKylr5aR1OG3" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "xMULkZu6lL_bc5J__dxFi" + }, + { + "id": "yOFJz-rCh07EpJgf201U_", + "type": "arrow" + } + ], + "updated": 1758026886156, + "link": null, + "locked": false, + "index": "bdb" + }, + { + "type": "text", + "version": 2429, + "versionNonce": 1068574594, + "isDeleted": false, + "id": "xMULkZu6lL_bc5J__dxFi", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16608.592753579993, + "y": 6187.369134181575, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 170.1598358154297, + "height": 50, + "seed": 826581634, + "groupIds": [ + "i-5W_wna7sKylr5aR1OG3" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758026886157, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "System software:\nSystem Tool", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "JyOsn32yDRmJ4qySUWr-d", + "originalText": "System software:\nSystem Tool", + "lineHeight": 1.25, + "baseline": 18, + "index": "bdc", + "autoResize": true + }, + { + "id": "QQPlQiun0AuGSYm4BgKJF", + "type": "ellipse", + "x": 16770.14873095029, + "y": 6170.627581690138, + "width": 17.427625554185806, + "height": 15.38780675158614, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "1Hnv3SPa8AK6oX7SNAfMV", + "i-5W_wna7sKylr5aR1OG3" + ], + "frameId": null, + "index": "bdd", + "roundness": null, + "seed": 726729282, + "version": 1577, + "versionNonce": 1111482562, + "isDeleted": false, + "boundElements": [], + "updated": 1758026886156, + "link": null, + "locked": false + }, + { + "id": "EcyowsU9CNiKTujZv1MB7", + "type": "ellipse", + "x": 16765.719973293002, + "y": 6173.870778201535, + "width": 17.427625554185806, + "height": 15.38780675158614, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "1Hnv3SPa8AK6oX7SNAfMV", + "i-5W_wna7sKylr5aR1OG3" + ], + "frameId": null, + "index": "bde", + "roundness": null, + "seed": 742091266, + "version": 1720, + "versionNonce": 1790772318, + "isDeleted": false, + "boundElements": [ + { + "id": "yOFJz-rCh07EpJgf201U_", + "type": "arrow" + } + ], + "updated": 1758026886156, + "link": null, + "locked": false + }, + { + "id": "0fGBZhbkeTd0KQ022ZFFt", + "type": "arrow", + "x": 16857.966639649083, + "y": 6162.1168894256225, + "width": 76.17922107602135, + "height": 285.12089325587385, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdf", + "roundness": null, + "seed": 990042562, + "version": 1797, + "versionNonce": 62797378, + "isDeleted": false, + "boundElements": [], + "updated": 1758026886170, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -76.17922107602135, + -285.12089325587385 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "gyJ4-fVb6ypq6rvGbTnCN", + "focus": -0.5055088761956931, + "gap": 4.315944158111961 + }, + "endBinding": { + "elementId": "bMjYMh0JQudoDNfJYY9nm", + "focus": -0.31963370617839587, + "gap": 5.571855735674944 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "PgPMvXWQeLlylrtiTQNQq", + "type": "arrow", + "x": 16837.277746615582, + "y": 5851.709053704093, + "width": 178.61115668318598, + "height": 1.8284367335763818, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdg", + "roundness": null, + "seed": 650531202, + "version": 1553, + "versionNonce": 1016143170, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "zoZjouRWG-iMlZd0KR5BQ" + } + ], + "updated": 1758020434436, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 178.61115668318598, + 1.8284367335763818 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "bMjYMh0JQudoDNfJYY9nm", + "focus": 0.4992502183845823, + "gap": 4.618521881473812 + }, + "endBinding": { + "elementId": "T2CSTEPcAcIAVD8Q4oYDB", + "focus": -0.44883386535874886, + "gap": 7.512096769580239 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "zoZjouRWG-iMlZd0KR5BQ", + "type": "text", + "x": 16065.05578286152, + "y": 5176.739717312361, + "width": 49.17994689941406, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdh", + "roundness": null, + "seed": 46453058, + "version": 56, + "versionNonce": 940321630, + "isDeleted": false, + "boundElements": [], + "updated": 1758020355134, + "link": null, + "locked": false, + "text": "write", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "PgPMvXWQeLlylrtiTQNQq", + "originalText": "write", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 2742, + "versionNonce": 328779934, + "isDeleted": false, + "id": "gyJ4-fVb6ypq6rvGbTnCN", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16825.486893623005, + "y": 6166.4328335837345, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 198.0434175531282, + "height": 76.23444094498792, + "seed": 576542978, + "groupIds": [ + "mVgx5QKyNJdO7FpHnG_gb" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "kacK4jikJLRB2wubDmnEN" + }, + { + "id": "0fGBZhbkeTd0KQ022ZFFt", + "type": "arrow" + } + ], + "updated": 1758026886156, + "link": null, + "locked": false, + "index": "bdi" + }, + { + "type": "text", + "version": 2318, + "versionNonce": 602203970, + "isDeleted": false, + "id": "kacK4jikJLRB2wubDmnEN", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16866.578655500154, + "y": 6187.667274528722, + "strokeColor": "#2f9e44", + "backgroundColor": "#ffec99", + "width": 115.85989379882812, + "height": 50, + "seed": 353298626, + "groupIds": [ + "mVgx5QKyNJdO7FpHnG_gb" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758026886157, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Device:\nDevice Tool", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "gyJ4-fVb6ypq6rvGbTnCN", + "originalText": "Device:\nDevice Tool", + "lineHeight": 1.25, + "baseline": 18, + "index": "bdj", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3760, + "versionNonce": 1827800286, + "isDeleted": false, + "id": "baGH8drwAVE7VFIHO9PAK", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16991.535160708365, + "y": 6172.3788138668115, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "width": 23.874925315218036, + "height": 11.022344038663649, + "seed": 578322562, + "groupIds": [ + "mVgx5QKyNJdO7FpHnG_gb" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [], + "updated": 1758026886156, + "link": null, + "locked": false, + "index": "bdk" + }, + { + "id": "3HPfpNFzTpOpV616eTapc", + "type": "line", + "x": 16995.096600676232, + "y": 6183.952742043924, + "width": 24.975705227673792, + "height": 4.953593602911281, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [ + "mVgx5QKyNJdO7FpHnG_gb" + ], + "frameId": null, + "index": "bdl", + "roundness": null, + "seed": 1180246082, + "version": 1505, + "versionNonce": 381927426, + "isDeleted": false, + "boundElements": [], + "updated": 1758026886156, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4.181185759694927, + 4.925066884530679 + ], + [ + 20.794519467978866, + 4.953593602911281 + ], + [ + 16.765645506549433, + 0.03145360690464291 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "wvm-EOWuAAQS0-piYsk5R", + "type": "arrow", + "x": 16638.326123758186, + "y": 5984.9290575982495, + "width": 45.95989858653775, + "height": 111.64124900516163, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdm", + "roundness": null, + "seed": 747620354, + "version": 1880, + "versionNonce": 1906409154, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "AZODYlBCihnmC_DxGydLf" + } + ], + "updated": 1758026886164, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 45.95989858653775, + -111.64124900516163 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "cj38G4ejmwub3WcUvQrZv", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "bMjYMh0JQudoDNfJYY9nm", + "focus": 0.05237976831716713, + "gap": 1.8636681590141961 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "AZODYlBCihnmC_DxGydLf", + "type": "text", + "x": 16597.095546917637, + "y": 5914.483544674216, + "width": 72.51992797851562, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdn", + "roundness": null, + "seed": 756774850, + "version": 97, + "versionNonce": 319467266, + "isDeleted": false, + "boundElements": [], + "updated": 1758026886157, + "link": null, + "locked": false, + "text": "realizes", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "wvm-EOWuAAQS0-piYsk5R", + "originalText": "realizes", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 2805, + "versionNonce": 1704494942, + "isDeleted": false, + "id": "bMjYMh0JQudoDNfJYY9nm", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16634.641572684923, + "y": 5786.424140434074, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 1209741186, + "groupIds": [ + "wH_uCHTHkQIp9M72Lj8QY" + ], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "type": "text", + "id": "CnStjddPVtLLzrgHpfw1D" + }, + { + "id": "wvm-EOWuAAQS0-piYsk5R", + "type": "arrow" + }, + { + "id": "yOFJz-rCh07EpJgf201U_", + "type": "arrow" + }, + { + "id": "0fGBZhbkeTd0KQ022ZFFt", + "type": "arrow" + }, + { + "id": "PgPMvXWQeLlylrtiTQNQq", + "type": "arrow" + }, + { + "id": "TBge_W1I7n0CGiPrzMmp5", + "type": "arrow" + }, + { + "id": "heupkAyvBxi9X2bkCTJJK", + "type": "arrow" + }, + { + "id": "lOkCbVcLntqZszPRgjXEO", + "type": "arrow" + } + ], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdo" + }, + { + "type": "text", + "version": 2411, + "versionNonce": 1309404062, + "isDeleted": false, + "id": "CnStjddPVtLLzrgHpfw1D", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16671.543339750064, + "y": 5791.424140434074, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 124.23988342285156, + "height": 75, + "seed": 567144258, + "groupIds": [ + "wH_uCHTHkQIp9M72Lj8QY" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App function:\nAgent-aware\nFunction", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "bMjYMh0JQudoDNfJYY9nm", + "originalText": "App function:\nAgent-aware Function", + "lineHeight": 1.25, + "baseline": 18, + "index": "bdp", + "autoResize": true + }, + { + "id": "QWeaPMI0W1dWdsfdCbh9i", + "type": "line", + "x": 16822.93120351586, + "y": 5804.943075106667, + "width": 24.080851086644543, + "height": 13.881981294211073, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [ + "wH_uCHTHkQIp9M72Lj8QY" + ], + "frameId": null, + "index": "bdq", + "roundness": null, + "seed": 2123544322, + "version": 3663, + "versionNonce": 1456467358, + "isDeleted": false, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.15647649391939922, + -8.218190225798025 + ], + [ + -11.821570202546354, + -13.677912101539732 + ], + [ + -24.060942107691755, + -8.797535648757435 + ], + [ + -24.080851086644543, + 0.20406919267134072 + ], + [ + -11.882547979039373, + -4.318185438398359 + ], + [ + 0, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": null, + "polygon": true + }, + { + "id": "yOFJz-rCh07EpJgf201U_", + "type": "arrow", + "x": 16771.04587816016, + "y": 6158.09446749767, + "width": 40.94498776994806, + "height": 283.65222845374046, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdr", + "roundness": null, + "seed": 1055426242, + "version": 2036, + "versionNonce": 1011373698, + "isDeleted": false, + "boundElements": [], + "updated": 1758026886164, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -40.94498776994806, + -283.65222845374046 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "EcyowsU9CNiKTujZv1MB7", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "bMjYMh0JQudoDNfJYY9nm", + "focus": -0.0026631462993102636, + "gap": 3.0180986098557696 + }, + "startArrowhead": null, + "endArrowhead": "triangle_outline", + "elbowed": false + }, + { + "id": "TBge_W1I7n0CGiPrzMmp5", + "type": "arrow", + "x": 17012.281714187076, + "y": 5816.809908312975, + "width": 172.638076197607, + "height": 2.103543000344871, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bds", + "roundness": null, + "seed": 1533959810, + "version": 1749, + "versionNonce": 742310850, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "qcw0SFkmGCaE53K-F2sMU" + } + ], + "updated": 1758020434437, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -172.638076197607, + -2.103543000344871 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "T2CSTEPcAcIAVD8Q4oYDB", + "focus": 0.38771571805667765, + "gap": 11.119285881271935 + }, + "endBinding": { + "elementId": "bMjYMh0JQudoDNfJYY9nm", + "focus": -0.3548464467888086, + "gap": 6.95864775141672 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "qcw0SFkmGCaE53K-F2sMU", + "type": "text", + "x": 16067.925124226993, + "y": 5139.874582054282, + "width": 42.19996643066406, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdt", + "roundness": null, + "seed": 1625505346, + "version": 65, + "versionNonce": 38046814, + "isDeleted": false, + "boundElements": [], + "updated": 1758020355135, + "link": null, + "locked": false, + "text": "read", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "TBge_W1I7n0CGiPrzMmp5", + "originalText": "read", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "heupkAyvBxi9X2bkCTJJK", + "type": "arrow", + "x": 16737.20404880974, + "y": 5609.219941906218, + "width": 0.1756320868498733, + "height": 173.53018794627224, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdu", + "roundness": null, + "seed": 1814439426, + "version": 1397, + "versionNonce": 485817218, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "GCxxyaHi9gP92QpK4rO5v" + } + ], + "updated": 1758020434437, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.1756320868498733, + 173.53018794627224 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "bMjYMh0JQudoDNfJYY9nm", + "focus": 0.03349731211033154, + "gap": 3.6740105815833886 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "GCxxyaHi9gP92QpK4rO5v", + "type": "text", + "x": 15858.888708981209, + "y": 5020.101481120833, + "width": 82.57991027832031, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "bdv", + "roundness": null, + "seed": 641078722, + "version": 77, + "versionNonce": 1626296478, + "isDeleted": false, + "boundElements": [], + "updated": 1758020355135, + "link": null, + "locked": false, + "text": "assigned", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "heupkAyvBxi9X2bkCTJJK", + "originalText": "assigned", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3122, + "versionNonce": 1828007582, + "isDeleted": false, + "id": "l9wVHAqxdZWsC_Ca4C58q", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16162.048979374646, + "y": 5791.357930856077, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 232.45054166335655, + "height": 85, + "seed": 1077022082, + "groupIds": [ + "Mqgs8cM8WSHLDOPRblh2O" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "EsSM9BdH1Sn0TlYwcWUgA" + }, + { + "id": "lOkCbVcLntqZszPRgjXEO", + "type": "arrow" + }, + { + "id": "dhHAQeCfY5myQIOa7Q1wp", + "type": "arrow" + } + ], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdw" + }, + { + "type": "text", + "version": 2758, + "versionNonce": 1775348446, + "isDeleted": false, + "id": "EsSM9BdH1Sn0TlYwcWUgA", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16205.194317039823, + "y": 5796.357930856077, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 146.1598663330078, + "height": 75, + "seed": 1868107074, + "groupIds": [ + "Mqgs8cM8WSHLDOPRblh2O" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "App Component:\nAgent Aware\nApplication", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "l9wVHAqxdZWsC_Ca4C58q", + "originalText": "App Component:\nAgent Aware Application", + "lineHeight": 1.25, + "baseline": 18, + "index": "bdx", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3280, + "versionNonce": 1179950878, + "isDeleted": false, + "id": "ztbY60alcOaIxKZLqA1PB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16359.79859507575, + "y": 5796.084659583103, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 28.429293018743866, + "height": 15.933134832795991, + "seed": 1762268418, + "groupIds": [ + "3c_6upaGxoyyb0je74YCo", + "Mqgs8cM8WSHLDOPRblh2O" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "lOkCbVcLntqZszPRgjXEO", + "type": "arrow" + } + ], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdy" + }, + { + "type": "rectangle", + "version": 3945, + "versionNonce": 921635678, + "isDeleted": false, + "id": "O4qSGfa5psYRcxx4FjnVo", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16355.84155705048, + "y": 5798.5049392588335, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 1589912770, + "groupIds": [ + "3c_6upaGxoyyb0je74YCo", + "Mqgs8cM8WSHLDOPRblh2O" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "bdz" + }, + { + "type": "rectangle", + "version": 3971, + "versionNonce": 972156830, + "isDeleted": false, + "id": "XqIbo8GNun-rV4N7ULFY4", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16356.01238450328, + "y": 5803.275389944323, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 7.556448728448238, + "height": 2.45602689821794, + "seed": 2049326210, + "groupIds": [ + "3c_6upaGxoyyb0je74YCo", + "Mqgs8cM8WSHLDOPRblh2O" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "lOkCbVcLntqZszPRgjXEO", + "type": "arrow" + } + ], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "be0" + }, + { + "id": "lOkCbVcLntqZszPRgjXEO", + "type": "arrow", + "x": 16395.147770355346, + "y": 5833.680527021726, + "width": 235.26460132244392, + "height": 0.8855132855696866, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "be1", + "roundness": null, + "seed": 1492081730, + "version": 1862, + "versionNonce": 1751745282, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "YQCRIZSrIb2r_vUagZOLD" + } + ], + "updated": 1758020434438, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 235.26460132244392, + 0.8855132855696866 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "XqIbo8GNun-rV4N7ULFY4", + "focus": 0, + "gap": 16 + }, + "endBinding": { + "elementId": "bMjYMh0JQudoDNfJYY9nm", + "focus": -0.14066119460090512, + "gap": 4.22920100713236 + }, + "startArrowhead": "circle", + "endArrowhead": "triangle", + "elbowed": false + }, + { + "id": "YQCRIZSrIb2r_vUagZOLD", + "type": "text", + "x": 15634.55254723146, + "y": 5158.239728905991, + "width": 82.57991027832031, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "be2", + "roundness": null, + "seed": 150897666, + "version": 81, + "versionNonce": 934166814, + "isDeleted": false, + "boundElements": [], + "updated": 1758020355135, + "link": null, + "locked": false, + "text": "assigned", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "lOkCbVcLntqZszPRgjXEO", + "originalText": "assigned", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3284, + "versionNonce": 146238558, + "isDeleted": false, + "id": "DqzyviFwuimHc9hz0JsIc", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16158.499297618851, + "y": 5976.00511880669, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 198.0434175531282, + "height": 85, + "seed": 72528834, + "groupIds": [ + "rx0STtwts83oShC2tprRl" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "LH-QnkWhdipBeNngMiHUD", + "type": "text" + } + ], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "be3" + }, + { + "type": "text", + "version": 2855, + "versionNonce": 1443246238, + "isDeleted": false, + "id": "LH-QnkWhdipBeNngMiHUD", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16193.271052171782, + "y": 5981.00511880669, + "strokeColor": "#1971c2", + "backgroundColor": "#ffec99", + "width": 128.49990844726562, + "height": 75, + "seed": 755690370, + "groupIds": [ + "rx0STtwts83oShC2tprRl" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "fontSize": 20, + "fontFamily": 1, + "text": "Data object:\nApplication\nScenario", + "textAlign": "center", + "verticalAlign": "bottom", + "containerId": "DqzyviFwuimHc9hz0JsIc", + "originalText": "Data object:\nApplication Scenario", + "lineHeight": 1.25, + "baseline": 18, + "index": "be4", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3896, + "versionNonce": 1299344606, + "isDeleted": false, + "id": "uggYkpTziN1-6Ctb-G2-H", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16327.211439824743, + "y": 5981.928220316466, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.28167160239511, + "height": 13.421833125773448, + "seed": 1231432514, + "groupIds": [ + "rx0STtwts83oShC2tprRl" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "be5" + }, + { + "type": "rectangle", + "version": 4261, + "versionNonce": 1015882014, + "isDeleted": false, + "id": "PJanI1SNQpoTKVKPZ4Kni", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16327.221086760474, + "y": 5981.948008636911, + "strokeColor": "#1971c2", + "backgroundColor": "#a5d8ff", + "width": 23.27986387630858, + "height": 4.553730968863338, + "seed": 2143515394, + "groupIds": [ + "rx0STtwts83oShC2tprRl" + ], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "id": "dhHAQeCfY5myQIOa7Q1wp", + "type": "arrow" + } + ], + "updated": 1758020434264, + "link": null, + "locked": false, + "index": "be6" + }, + { + "id": "dhHAQeCfY5myQIOa7Q1wp", + "type": "arrow", + "x": 16261.459296831603, + "y": 5971.255218076178, + "width": 3.696515553194331, + "height": 86.55267385390835, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "be7", + "roundness": null, + "seed": 1386332866, + "version": 1664, + "versionNonce": 1543885506, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "yBwWegvetQ1irjZlS29bq" + } + ], + "updated": 1758020434438, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.696515553194331, + -86.55267385390835 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "PJanI1SNQpoTKVKPZ4Kni", + "focus": 0, + "gap": 16 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "yBwWegvetQ1irjZlS29bq", + "type": "text", + "x": 15405.27000274692, + "y": 5252.095326390703, + "width": 42.19996643066406, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#4470e2", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "be8", + "roundness": null, + "seed": 480254594, + "version": 69, + "versionNonce": 1993019806, + "isDeleted": false, + "boundElements": [], + "updated": 1758020355135, + "link": null, + "locked": false, + "text": "read", + "fontSize": 20, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "dhHAQeCfY5myQIOa7Q1wp", + "originalText": "read", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "type": "rectangle", + "version": 3150, + "versionNonce": 1414934146, + "isDeleted": false, + "id": "LDaiH2Il5Kl0KGwuvkdWr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16025.27499732377, + "y": 5312.294432614719, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 1607.7558969909962, + "height": 1039.1606586840335, + "seed": 209549890, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [ + { + "type": "text", + "id": "4VuU1hilEDq3v_qmqKPjg" + } + ], + "updated": 1758020597492, + "link": null, + "locked": false, + "index": "be9" + }, + { + "type": "text", + "version": 3061, + "versionNonce": 676855554, + "isDeleted": false, + "id": "4VuU1hilEDq3v_qmqKPjg", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16705.639170681952, + "y": 6301.455091298752, + "strokeColor": "#343a40", + "backgroundColor": "#ffec99", + "width": 922.3917236328125, + "height": 45, + "seed": 555278850, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020607675, + "link": null, + "locked": false, + "fontSize": 36, + "fontFamily": 1, + "text": "Grouping: Agent-aware Architecture - META-MODEL", + "textAlign": "right", + "verticalAlign": "bottom", + "containerId": "LDaiH2Il5Kl0KGwuvkdWr", + "originalText": "Grouping: Agent-aware Architecture - META-MODEL", + "lineHeight": 1.25, + "baseline": 18, + "index": "beA", + "autoResize": true + }, + { + "type": "rectangle", + "version": 3997, + "versionNonce": 1436486302, + "isDeleted": false, + "id": "Lw2ECh49s6N7VYf04FZQp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17533.997309258215, + "y": 5351.707517842509, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 78.04696372164267, + "height": 41.506875447404894, + "seed": 628183490, + "groupIds": [ + "J4B7z-S2E6EykpFLnSTDL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020558629, + "link": null, + "locked": false, + "index": "beB" + }, + { + "type": "rectangle", + "version": 4197, + "versionNonce": 1491076830, + "isDeleted": false, + "id": "pZYbb_h67Cf_lfHCfVO0D", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 17534.443818373147, + "y": 5332.953728855949, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 40.611973548290756, + "height": 17.779871898122938, + "seed": 749062530, + "groupIds": [ + "J4B7z-S2E6EykpFLnSTDL" + ], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020558629, + "link": null, + "locked": false, + "index": "beC" + }, + { + "type": "text", + "version": 6527, + "versionNonce": 229676830, + "isDeleted": false, + "id": "qIdvzzzjj0ZVTiq7KqYa1", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 16093.222770097562, + "y": 5340.534630972201, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "width": 876.1302490234375, + "height": 169.43573414501193, + "seed": 194352734, + "groupIds": [], + "frameId": null, + "roundness": null, + "boundElements": [], + "updated": 1758020570989, + "link": null, + "locked": false, + "fontSize": 45.18286243866985, + "fontFamily": 1, + "text": "Agent-aware Architecture - meta-model\ntimothy@agileintegrator.com\n19-Aug-2025", + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Agent-aware Architecture - meta-model\ntimothy@agileintegrator.com\n19-Aug-2025", + "lineHeight": 1.25, + "baseline": 265, + "index": "beD", + "autoResize": true + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff", + "lockedMultiSelections": {} + }, + "files": {} +} \ No newline at end of file diff --git a/docs/agent-aware-metadata-registry-requirements.md b/docs/agent-aware-metadata-registry-requirements.md new file mode 100644 index 0000000..314e4f2 --- /dev/null +++ b/docs/agent-aware-metadata-registry-requirements.md @@ -0,0 +1,14 @@ +1. the metadata schema shal be called agent-aware-metadata-schema.json. it shall extend our existing archimate-schema.json. + +2. It shall have nine entities in total. here they are in the form "metadata entity (parent type)": agent-role (app-component), agent-aware-function (app-function), agent-aware-application (app-component), tool (technology-service), io-object (data-object), context (app-service), agent-role-context (context), application-context (context), core-framework-context (context), core-framework-loader (app-component) + +3. Here are the relationships. We need foreign keys for the parent in each child entity: +4a. an agent-role-context triggers one agent-role +4b. an agent-role is assigned zero or many agent-aware-functions +4c. an agent-aware-function is served by zero or many tools +4e. an application-context triggers one agent-aware-application +4f. an agent-aware-application is assigned one or many agent-aware-functions +4g. a core-framework-context triggers one core-framework-loader +4h. a core-framework-loader is assigned zero or many agent-aware-functions +4i. an agent-aware-function reads zero or many io-objects +4j. an agent-aware-function writes zero or many io-objects diff --git a/docs/refactor-plan-17aug2025.md b/docs/refactor-plan-17aug2025.md new file mode 100644 index 0000000..eeaa7c5 --- /dev/null +++ b/docs/refactor-plan-17aug2025.md @@ -0,0 +1,95 @@ +## **Agent-Aware Architecture Bootstrap Optimization Plan** + +### **Phase 1: Bootstrap Mode Selection** ✅ +**Objective**: Implement dual-mode bootstrap based on user intent + +**Implementation**: +- Add mode selection mechanism (prompt or detection based on user input) +- **Mode 1: Framework Mode** - Architecture discussions, framework improvements (~15-20KB) +- **Mode 2: Agent Role Mode** - Specific agent execution (~7-10KB target) +- Default to Framework Mode if selection unclear +- Clear fallback handling for mode selection failures + +**Success Metrics**: +- Clean mode selection without user confusion +- Both modes load successfully +- Clear context boundaries established + +--- + +### **Phase 2: Measure & Profile Current Context** 📊 +**Objective**: Understand actual context consumption before optimizing + +**Actions**: +- Profile current bootstrap sequence KB consumption +- Identify which files/sections are loaded but never used +- Map context usage patterns for both modes +- Document baseline metrics for comparison +- Identify "dead weight" in current loading + +**Deliverables**: +- Context consumption report +- Heat map of actually-used vs loaded content +- Specific KB reduction targets based on data + +--- + +### **Phase 3: Prototype Lazy Loading** 🧪 +**Objective**: Learn what's truly needed through implementation + +**Approach**: +- Build proof-of-concept lazy loading for Agent Role Mode +- Load only: role definition → required functions → interfaces +- Defer: ArchiMate models, Excalidraw diagrams, scenarios +- Track what gets pulled in during actual use +- Learn which dependencies are real vs assumed + +**Key Learning Points**: +- What agents actually reference during execution +- Which framework elements are truly core +- Real dependency chains between components + +--- + +### **Phase 4: Refactor Based on Learnings** 🔧 +**Objective**: Optimize bootstrap and framework configuration using real data + +**Targeted Improvements**: +- Remove redundant content identified in profiling +- Restructure configs based on lazy loading lessons +- Consolidate overlapping definitions +- Optimize file organization for selective loading +- Set and achieve specific KB targets: + - Framework Mode: < 15KB + - Agent Role Mode: < 10KB + +**Constraints**: +- Maintain single source of truth +- No new config files unless absolutely necessary +- Keep framework architecturally clean + +--- + +### **Phase 5: Model Load Optimization** 🎯 +**Objective**: Reduce ArchiMate model footprint (only if still needed after Phase 4) + +**Strategies**: +- Never load Excalidraw JSON unless visualizing +- Extract model metadata for execution (lighter weight) +- Consider model "compilation" to execution format +- Explore alternative visual tools if Excalidraw remains problematic + +**Decision Gate**: +- Only proceed if model loading still exceeds targets after Phase 4 + +--- + +## **Context Check** 💾 + +Current conversation context usage: +- Started at ~32KB from bootstrap +- Now at approximately ~45-50KB with our discussion +- Still have ~50% context remaining +- Comfortable headroom for continued technical discussion + +The framework's lazy loading philosophy is working even in our conversation! 😄 \ No newline at end of file diff --git a/domains/manufacturing-core/DOMAIN-MODEL.md b/domains/manufacturing-core/DOMAIN-MODEL.md new file mode 100644 index 0000000..a984789 --- /dev/null +++ b/domains/manufacturing-core/DOMAIN-MODEL.md @@ -0,0 +1,80 @@ +# DOMAIN-MODEL.md +## Domain: Manufacturing Core + +### **Domain Metadata** +```yaml +domain_id: manufacturing-core +version: 1.0.0 +owner: pharma5.0-team +description: Core manufacturing domain for pharmaceutical production based on ISA-95 standard. Provides equipment, material, and process models for batch manufacturing operations. +``` + +### **ArchiMate Model** +```yaml +model_file: ./models/manufacturing-core.excalidraw +viewpoint: business-process +layers: [business, application, technology] +last_updated: 2024-12-15 +elements_count: 47 +relationships_count: 63 +``` + +### **Domain Schemas** +```yaml +schemas: + - id: equipment-hierarchy + format: delta-lake + location: ./schemas/equipment-hierarchy.delta + description: ISA-95 Level 0-4 equipment structure + + - id: batch-process-api + format: openapi + location: ./schemas/batch-process-v3.yaml + description: REST API for batch operations + version: 3.0.1 + + - id: material-tracking + format: json-schema + location: ./schemas/material-tracking.json + description: Material genealogy and chain of custody + + - id: sensor-telemetry + format: avro + location: ./schemas/sensor-telemetry.avsc + description: Real-time sensor data streams + + - id: batch-record + format: xml-schema + location: ./schemas/batch-record.xsd + description: Electronic batch record structure for regulatory compliance +``` + +### **Domain Dependencies** +```yaml +depends_on: + - regulatory-compliance # GMP, FDA requirements + - quality-standards # ISO 9001, ICH Q10 + +compatible_with: + - ISA-95 # Enterprise-Control System Integration + - ISA-88 # Batch Control + - GAMP5 # Good Automated Manufacturing Practice +``` + +### **Usage Notes** +```yaml +typical_applications: + - Job scheduling and orchestration + - Batch record management + - Equipment utilization tracking + - Material genealogy + - Process parameter monitoring + +extension_points: + - Custom equipment types + - Site-specific workflows + - Product-specific quality parameters +``` + +--- +*This domain model provides the foundational elements for pharmaceutical manufacturing applications.* \ No newline at end of file diff --git a/framework-core/AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml b/framework-core/AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml new file mode 100644 index 0000000..e45c643 --- /dev/null +++ b/framework-core/AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml @@ -0,0 +1,723 @@ +metadata: + registry_schema_version: 2.2.28 + registry_version: 0.3.3 + framework_version: 0.4.1 + last_updated: '2025-09-07T00:00:00.000Z' + entity_counts: + total_entities: 28 + loader_functions: 3 + application_functions: 3 + agent_roles: 2 + applications: 1 + tools: 4 + io_objects: 14 + total_estimated_size_kb: 125 + core_framework_size_kb: 37 + last_validated: '2025-09-07T10:36:03.384Z' + validation_status: passed +entities: + - id: loader-core-framework + name: Core Framework Loader + type: core-framework-loader + archimate_type: application-component + description: Loads essential framework components and semantic layer + version: 1.0.0 + location: ./framework-core/ + context_size_kb: 25 + _archimate_compatibility: + element_category: active + layer_type: application + valid_relationships: + - serving + - composition + - realization + - access + - assignment + assigned_functions: + - function-load-meta-model + - function-load-archimate-metamodel + - function-load-agent-capabilities + initialization_order: + - function-load-meta-model + - function-load-archimate-metamodel + - function-load-agent-capabilities + - id: agent-role-domain-analyst + name: Domain Analyst Agent + type: agent-role + archimate_type: application-component + description: Analyzes business requirements and creates conceptual models. Transforms conceptual models into logical data specifications. + location: ./agents/domain-analyst-agent-ROLE.md + context_size_kb: 20 + _archimate_compatibility: + element_category: active + layer_type: application + valid_relationships: + - serving + - composition + - realization + - access + - assignment + assigned_functions: + - function-synthesize-domain-model + - id: agent-role-archimate-modeller + name: ArchiMate Modeller Agent + type: agent-role + archimate_type: application-component + description: Creates and updates ArchiMate models and visual representations + location: ./agents/archimate-modeller-agent-ROLE.md + context_size_kb: 15 + _archimate_compatibility: + element_category: active + layer_type: application + valid_relationships: + - serving + - composition + - realization + - access + - assignment + assigned_functions: + - function-generate-archimate-model + - function-validate-archimate-model + - id: function-load-meta-model + name: Load Meta Model + type: agent-aware-loader-function + archimate_type: application-function + description: Loads framework philosophy and conceptual foundation + location: ./framework-core/META-MODEL.md + context_size_kb: 8 + _archimate_compatibility: + element_category: behavior + layer_type: application + valid_relationships: + - triggering + - flow + - realization + - serving + - assignment + reads_io_objects: + - io-meta-model-definition + writes_io_objects: [] + processing_steps: + - Parse framework philosophy + - Load conceptual foundation + - Initialize semantic layer + - id: function-load-archimate-metamodel + name: Load ArchiMate Metamodel + type: agent-aware-loader-function + archimate_type: application-function + description: Loads ArchiMate metamodel, which provides the archimate-compliant semantic rules for the framework + location: ./framework-core/archimate-schema.json + context_size_kb: 5 + _archimate_compatibility: + element_category: behavior + layer_type: application + valid_relationships: + - triggering + - flow + - realization + - serving + - assignment + reads_io_objects: + - io-archimate-metamodel + writes_io_objects: [] + processing_steps: + - Parse ArchiMate element catalog + - Load relationship definitions + - Initialize validation rules + - id: function-load-agent-capabilities + name: Load Agent Capabilities + type: agent-aware-loader-function + archimate_type: application-function + description: Loads core agent function definitions + location: ./framework-core/AGENT-CAPABILITIES.md + context_size_kb: 6 + _archimate_compatibility: + element_category: behavior + layer_type: application + valid_relationships: + - triggering + - flow + - realization + - serving + - assignment + reads_io_objects: [] + writes_io_objects: [] + processing_steps: + - Parse capability definitions + - Load function mappings + - Initialize agent roles + - id: function-synthesize-domain-model + name: Synthesize Domain Model + type: agent-aware-application-function + archimate_type: application-function + description: Create or update a logical domain model based on some source of domain analysis + location: ./applications/object-synthesis/functions/function-synthesize-domain-model/ + context_size_kb: 12 + _archimate_compatibility: + element_category: behavior + layer_type: application + valid_relationships: + - triggering + - flow + - realization + - serving + - assignment + realized_by_tools: + - tool-schema-validator + reads_io_objects: + - io-conceptual-object-definitions + writes_io_objects: + - io-logical-domain-model + processing_steps: + - Parse business requirements + - Map to domain concepts + - Define object relationships + - Generate logical specifications + - id: function-generate-archimate-model + name: Generate ArchiMate Model + type: agent-aware-application-function + archimate_type: application-function + description: Generate ArchiMate model from domain model using metamodel validation + location: ./applications/object-synthesis/functions/function-generate-archimate-model/ + context_size_kb: 12 + _archimate_compatibility: + element_category: behavior + layer_type: application + valid_relationships: + - triggering + - flow + - realization + - serving + - assignment + reads_io_objects: + - io-archimate-metamodel + - io-logical-domain-model + - io-archimate-model-template + writes_io_objects: + - io-archimate-model + - io-open-exchange-archimate-model + served_by_tools: + - tool-archimate-generator + processing_steps: + - Parse domain model entities and relationships + - Map domain concepts to ArchiMate element types + - Validate element types against metamodel + - Generate internal ArchiMate model structure + - Validate model compliance with metamodel rules + - id: function-validate-archimate-model + name: Validate ArchiMate Model + type: agent-aware-application-function + archimate_type: application-function + description: Validates ArchiMate models for compliance and consistency + location: ./applications/object-synthesis/functions/function-validate-archimate-model + context_size_kb: 8 + _archimate_compatibility: + element_category: behavior + layer_type: application + valid_relationships: + - triggering + - flow + - realization + - serving + - assignment + served_by_tools: + - tool-archimate-validator + reads_io_objects: + - io-archimate-model + - io-archimate-metamodel + writes_io_objects: + - io-archimate-validation-report + processing_steps: + - Parse ArchiMate model structure + - Validate element types and relationships + - Check layer boundary compliance + - Generate compliance report + - id: app-object-synthesis + name: Object Synthesis Application + type: agent-aware-application + archimate_type: application-component + description: Transform business requirements into data models and APIs + location: ./applications/object-synthesis/ + context_size_kb: 22 + _archimate_compatibility: + element_category: active + layer_type: application + valid_relationships: + - serving + - composition + - realization + - access + - assignment + assigned_functions: + - function-synthesize-domain-objects + - function-generate-api-specs + domain_models: + - ./domains/manufacturing-core/ + - ./domains/exhibition-core/ + scenarios: + - ./applications/object-synthesis/scenarios/pharma-manufacturing-object-synthesis/ + - id: tool-archimate-generator + name: ArchiMate Modeller + type: tool + archimate_type: technology-service + description: Creates and validates ArchiMate models + version: 1.0.0 + location: ./tools/archimate-modeller/ + _archimate_compatibility: + element_category: behavior + layer_type: technology + valid_relationships: + - realization + - serving + - access + capabilities: + - model-creation + - element-validation + - relationship-validation + - viewpoint-compliance + output_formats: + - excalidraw + - json + - id: tool-excalidraw-adapter + name: Excalidraw Adapter + type: tool + archimate_type: technology-service + description: Converts between Excalidraw diagrams and ArchiMate models + version: 1.2.0 + location: ./tools/excalidraw-adapter.json + _archimate_compatibility: + element_category: behavior + layer_type: technology + valid_relationships: + - realization + - serving + - access + capabilities: + - visual-parsing + - shape-recognition + - model-generation + - visual-rendering + output_formats: + - excalidraw + - json + - id: tool-api-generator + name: API Generator + type: tool + archimate_type: technology-service + description: Generates OpenAPI specifications from domain models + version: 2.1.0 + location: ./tools/api-generator/ + _archimate_compatibility: + element_category: behavior + layer_type: technology + valid_relationships: + - realization + - serving + - access + capabilities: + - openapi-generation + - schema-mapping + - endpoint-derivation + - api-validation + output_formats: + - openapi + - yaml + - json + - id: tool-archimate-validator + name: Schema Validator + type: tool + archimate_type: technology-service + description: Validates data schemas and models + version: 1.5.0 + location: ./tools/schema-validator/ + _archimate_compatibility: + element_category: behavior + layer_type: technology + valid_relationships: + - realization + - serving + - access + capabilities: + - json-schema-validation + - archimate-validation + - data-type-checking + - constraint-validation + output_formats: + - json + - yaml + - id: io-meta-model-definition + name: Meta Model Definition + type: io-object + archimate_type: data-object + description: Framework meta-model and philosophy definitions + format: markdown + location: ./framework-core/META-MODEL.md + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association + - id: io-archimate-metamodel + name: ArchiMate Schema + type: io-object + archimate_type: data-object + description: ArchiMate 3.1 element and relationship definitions + format: json-schema + location: ./framework-core/archimate-schema.json + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association + - id: io-business-requirements + name: Business Requirements + type: io-object + archimate_type: data-object + description: Business requirements and user stories + format: markdown + location: ./applications/*/requirements/ + _archimate_compatibility: + element_category: passive + layer_type: business + valid_relationships: + - access + - composition + - flow + - association + - id: io-domain-objects + name: Domain Objects + type: io-object + archimate_type: data-object + description: Synthesized logical domain objects and relationships + format: json + location: ./applications/*/models/domain-objects.json + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association + - id: io-archimate-model + name: ArchiMate Model (Information Structure Viewpoint) + type: io-object + archimate_type: data-object + description: ArchiMate Information Structure viewpoint model - BusinessObject and DataObject only + format: archimate-information-structure + location: ./applications/*/models/*.xml + constraints: + viewpoint: information-structure + allowed_elements: [BusinessObject, DataObject] + allowed_relationships: [Association, Realization] + forbidden_features: [properties, custom-attributes, multiple-layers] + max_elements: 6 + template_required: true + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association + - id: io-api-specification + name: API Specification + type: io-object + archimate_type: data-object + description: OpenAPI 3.0 specification for generated APIs + format: openapi + location: ./applications/*/apis/*.yaml + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association + - id: io-archimate-validation-report + name: Validation Report + type: io-object + archimate_type: data-object + description: Model validation results and compliance report + format: json + location: ./applications/*/validation/*.json + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association + - id: io-archimate-xsd-schema + name: ArchiMate XSD Schema + type: io-object + archimate_type: data-object + description: ArchiMate 3.1 XSD schema for Open Exchange Format validation (external reference) + format: xml + location: https://www.opengroup.org/xsd/archimate/3.1/archimate3_Diagram.xsd + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association + - id: io-archimate-exchange-model + name: ArchiMate Exchange Model + type: io-object + archimate_type: data-object + description: ArchiMate Open Exchange Format XML model for Archi tool + format: xml + location: ./applications/*/models/*.xml + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association + - id: io-archimate-model-template + name: ArchiMate Model Template + type: io-object + archimate_type: data-object + description: Minimal working ArchiMate XML template for valid Open Exchange Format generation + format: xml + location: ./templates/archimate-exchange/archimate_minimal_template.xml + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - realization + - association + - id: io-archimate-information-structure-template + name: ArchiMate Information Structure Template (needs abstraction) + type: io-object + archimate_type: data-object + description: ArchiMate XML template with information structure for complex models... requires abstraction! + format: xml + location: ./templates/archimate-exchange/archimate_information_structure_template.xml + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - realization + - association + - id: io-open-exchange-archimate-model + name: Open Exchange ArchiMate Model + type: io-object + archimate_type: data-object + description: ArchiMate model in Open Exchange Format XML for import/export + format: xml + location: ./applications/{app_context}/models/archimate-model.xml + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association + - id: io-conceptual-object-definitions + name: Conceptual Object Definitions + type: io-object + archimate_type: data-object + description: High-level conceptual definitions of domain objects from business analysis + format: markdown + location: '{user_provided}/conceptual-objects.md' + _archimate_compatibility: + element_category: passive + layer_type: business + valid_relationships: + - access + - composition + - flow + - association + - id: io-logical-domain-model + name: Logical Domain Model + type: io-object + archimate_type: data-object + description: Structured logical domain model with entities, attributes, relationships + format: json + location: ./applications/{app_context}/models/logical-domain-model.json + _archimate_compatibility: + element_category: passive + layer_type: application + valid_relationships: + - access + - composition + - flow + - association +relationships: + - id: rel-domain-analyst-assigned-load-meta + type: assignment + source: agent-role-domain-analyst + target: function-load-meta-model + properties: + relationship_context: function-assignment + - id: rel-domain-analyst-assigned-validate + type: assignment + source: agent-role-domain-analyst + target: function-validate-archimate-model + properties: + relationship_context: function-assignment + - id: rel-object-synthesis-assigned-synthesize + type: assignment + source: agent-role-object-synthesis + target: function-synthesize-domain-objects + properties: + relationship_context: function-assignment + - id: rel-object-synthesis-assigned-generate-api + type: assignment + source: agent-role-object-synthesis + target: function-generate-api-specs + properties: + relationship_context: function-assignment + - id: rel-archimate-modeller-assigned-validate + type: assignment + source: agent-role-archimate-modeller + target: function-validate-archimate-model + properties: + relationship_context: function-assignment + - id: rel-loader-assigned-load-meta + type: assignment + source: loader-core-framework + target: function-load-meta-model + properties: + relationship_context: function-assignment + - id: rel-loader-assigned-load-schema + type: assignment + source: loader-core-framework + target: function-load-archimate-metamodel + properties: + relationship_context: function-assignment + - id: rel-loader-assigned-load-capabilities + type: assignment + source: loader-core-framework + target: function-load-agent-capabilities + properties: + relationship_context: function-assignment + - id: rel-app-object-synthesis-assigned-synthesize + type: assignment + source: app-object-synthesis + target: function-synthesize-domain-objects + properties: + relationship_context: function-assignment + - id: rel-app-object-synthesis-assigned-generate-api + type: assignment + source: app-object-synthesis + target: function-generate-api-specs + properties: + relationship_context: function-assignment + - id: rel-schema-validator-realizes-synthesize + type: serving + source: tool-schema-validator + target: function-synthesize-domain-objects + properties: + relationship_context: tool-serving + - id: rel-api-generator-realizes-generate-api + type: serving + source: tool-api-generator + target: function-generate-api-specs + properties: + relationship_context: tool-serving + - id: rel-schema-validator-realizes-generate-api + type: serving + source: tool-schema-validator + target: function-generate-api-specs + properties: + relationship_context: tool-serving + - id: rel-archimate-modeller-realizes-validate + type: serving + source: tool-archimate-modeller + target: function-validate-archimate-model + properties: + relationship_context: tool-serving + - id: rel-excalidraw-adapter-realizes-validate + type: serving + source: tool-excalidraw-adapter + target: function-validate-archimate-model + properties: + relationship_context: tool-serving + - id: rel-schema-validator-realizes-validate + type: serving + source: tool-schema-validator + target: function-validate-archimate-model + properties: + relationship_context: tool-serving + - id: rel-load-meta-accesses-meta-definition + type: access + source: function-load-meta-model + target: io-meta-model-definition + properties: + relationship_context: data-flow + access_type: read + - id: rel-load-schema-accesses-archimate-metamodel + type: access + source: function-load-archimate-metamodel + target: io-archimate-metamodel + properties: + relationship_context: data-flow + access_type: read + - id: rel-synthesize-accesses-requirements + type: access + source: function-synthesize-domain-objects + target: io-business-requirements + properties: + relationship_context: data-flow + access_type: read + - id: rel-synthesize-accesses-domain-model + type: access + source: function-synthesize-domain-objects + target: io-logical-domain-model + properties: + relationship_context: data-flow + access_type: read + - id: rel-synthesize-produces-domain-objects + type: access + source: function-synthesize-domain-objects + target: io-domain-objects + properties: + relationship_context: data-flow + access_type: write + - id: rel-generate-api-accesses-domain-objects + type: access + source: function-generate-api-specs + target: io-domain-objects + properties: + relationship_context: data-flow + access_type: read + - id: rel-generate-api-produces-api-spec + type: access + source: function-generate-api-specs + target: io-api-specification + properties: + relationship_context: data-flow + access_type: write + - id: rel-validate-accesses-archimate-model + type: access + source: function-validate-archimate-model + target: io-archimate-model + properties: + relationship_context: data-flow + access_type: read + - id: rel-validate-produces-report + type: access + source: function-validate-archimate-model + target: io-validation-report + properties: + relationship_context: data-flow + access_type: write diff --git a/framework-core/AGENT-CAPABILITIES.md b/framework-core/AGENT-CAPABILITIES.md new file mode 100644 index 0000000..0bff830 --- /dev/null +++ b/framework-core/AGENT-CAPABILITIES.md @@ -0,0 +1,214 @@ +# AGENT-CAPABILITIES.md +## Core Agent Capabilities - Agent-Aware Architecture Framework + +### **CAPABILITY_MODEL** +Agent capabilities are modeled as ArchiMate application functions, realized by agent application components. Each capability transforms inputs into outputs following defined patterns. + +### **CORE_CAPABILITIES** + +#### **Model Interpretation** +```yaml +capability_id: model-interpretation +archimate_type: application-function +realized_by: [interpreter-agent, validator-agent] + +functions: + parse_archimate: + input: "ArchiMate model (Excalidraw/XML)" + output: "Semantic graph structure" + transformation: "Visual → Logical mapping" + + navigate_relationships: + input: "Element reference" + output: "Connected elements and paths" + transformation: "Graph traversal" + + extract_semantics: + input: "Model elements" + output: "Business meaning and context" + transformation: "Type and property analysis" +``` + +#### **Artifact Generation** +```yaml +capability_id: artifact-generation +archimate_type: application-function +realized_by: [generator-agent, synthesis-agent] + +functions: + generate_schema: + input: "Data object model" + output: "Schema specification" + example: + input: "business-object: Equipment" + output: "JSON Schema with id, name, type, status" + + generate_api: + input: "Service/process model" + output: "OpenAPI specification" + example: + input: "business-process: ValidateBatch" + output: "POST /batch/validate endpoint" + + generate_test_data: + input: "Domain model" + output: "Synthetic test dataset" + example: + input: "Equipment hierarchy" + output: "10 equipment records with realistic values" +``` + +#### **Model Validation** +```yaml +capability_id: model-validation +archimate_type: application-function +realized_by: [validator-agent] + +functions: + validate_metamodel: + input: "ArchiMate model" + output: "Compliance report" + checks: ["element types", "relationship rules", "layer boundaries"] + + validate_semantics: + input: "Domain model" + output: "Consistency report" + checks: ["naming conventions", "completeness", "relationships"] + + validate_generation: + input: "Generated artifacts" + output: "Quality report" + checks: ["schema validity", "API completeness", "test coverage"] +``` + +#### **Cross-Domain Translation** +```yaml +capability_id: domain-translation +archimate_type: application-function +realized_by: [translator-agent, mapper-agent] + +functions: + visual_to_formal: + input: "Excalidraw diagram" + output: "ArchiMate model" + transformation: "Shape/color → Element/relationship mapping" + + standard_compliance: + input: "Generic model" + output: "Standard-compliant model" + example: + input: "Generic equipment model" + output: "ISA-95 Level 3 equipment model" + + format_conversion: + input: "Model in format A" + output: "Model in format B" + supported: ["ArchiMate → OpenAPI", "Excel → JSON Schema", "BPMN → ArchiMate"] +``` + +### **CAPABILITY_EXTENSION_PATTERN** + +#### **How Applications Extend Capabilities** +```yaml +base_capability: generate_schema +application: object-synthesis +extended_capability: generate_isa95_schema + +extension: + inherits: ["input/output structure", "validation rules"] + adds: ["ISA-95 hierarchy levels", "GMP compliance fields"] + specializes: ["Equipment schemas", "Batch records"] +``` + +### **AGENT_ROLE_DEFINITIONS** + +#### **Core Agent Roles** +```yaml +agents: + interpreter-agent: + type: application-component + realizes: [model-interpretation, model-validation] + interfaces: ["model-input", "semantic-output"] + + generator-agent: + type: application-component + realizes: [artifact-generation] + interfaces: ["model-input", "artifact-output"] + + validator-agent: + type: application-component + realizes: [model-validation] + interfaces: ["artifact-input", "report-output"] + + translator-agent: + type: application-component + realizes: [domain-translation] + interfaces: ["format-a-input", "format-b-output"] +``` + +### **CAPABILITY_ORCHESTRATION** + +#### **Workflow Patterns** +```yaml +patterns: + sequential: + example: "interpret → generate → validate" + use_case: "Standard artifact creation" + + parallel: + example: "generate_api + generate_schema + generate_tests" + use_case: "Multiple output generation" + + conditional: + example: "validate → [if valid] generate → [else] report_errors" + use_case: "Quality-gated generation" + + iterative: + example: "generate → validate → refine → validate" + use_case: "Refinement cycles" +``` + +### **PERFORMANCE_TARGETS** + +#### **Capability SLAs** +```yaml +performance: + model_interpretation: + small_model: "< 1 second" + large_model: "< 5 seconds" + + artifact_generation: + schema: "< 2 seconds" + api: "< 5 seconds" + test_data: "< 10 seconds" + + validation: + syntax: "< 1 second" + semantics: "< 3 seconds" + compliance: "< 5 seconds" +``` + +### **CAPABILITY_REGISTRY** + +#### **Available Capabilities** +```yaml +registry: + core: + - model-interpretation + - artifact-generation + - model-validation + - domain-translation + + extended: + - isa95-generation # In object-synthesis + - event-orchestration # In exhibition-management + - batch-validation # In pharma-manufacturing + + experimental: + - auto-documentation + - model-inference + - anomaly-detection +``` + +--- +*These core capabilities are available to all applications within the Agent-Aware Architecture Framework. Applications extend these capabilities for domain-specific needs.* \ No newline at end of file diff --git a/framework-core/ARCHIMATE-RULES.md b/framework-core/ARCHIMATE-RULES.md new file mode 100644 index 0000000..a8c3c71 --- /dev/null +++ b/framework-core/ARCHIMATE-RULES.md @@ -0,0 +1,70 @@ +# ARCHIMATE-RULES.md +## ArchiMate 3.1 Compliance Patterns - All Agent-Aware Applications + +### **COMPLIANCE_MANDATE** +All Agent-aware Models MUST comply with ArchiMate 3.1 specification. Import all element definitions from [ArchiMate 3.1 specification](https://pubs.opengroup.org/architecture/archimate31-doc/). + +### **LAYER_STRUCTURE** +**Strategy Layer**: Capabilities, resources, courses of action +**Business Layer**: Organizational structure, business processes, information concepts +**Application Layer**: Application components, services, interfaces, data objects +**Technology Layer**: Infrastructure, platforms, networks, devices +**Physical Layer**: Materials, equipment, facilities, distribution networks +**Implementation & Migration Layer**: Work packages, deliverables, implementation events + +### **AGENT_MAPPING_RULES** +**Agent Role** → **Application Component** +- Each Agent Role represents a distinct Application Component +- Agent behaviors defined through Component properties +- Agent interactions modeled as Application Interfaces + +**Agent-aware Scenario** → **Business Process** +- Scenario workflow maps to Business Process steps +- Input/Output artifacts map to Business Objects +- Decision points map to Business Events + +**Agent-aware Model** → **ArchiMate View** +- Single Model = Single View with specific Viewpoint +- Model purpose determines Viewpoint selection +- Cross-layer relationships explicitly modeled + +### **VIEWPOINT_SELECTION** +**Business Process Cooperation**: Agent workflow modeling +**Application Cooperation**: Agent interaction patterns +**Layered View**: Complete scenario architecture +**Information Structure**: Domain model representation + +### **RELATIONSHIP_CONSTRAINTS** +**Structural**: Composition, aggregation, assignment, realization +**Dependency**: Serving, access, influence, association +**Dynamic**: Triggering, flow (control/data) + +**Agent-Specific**: +- Agent Role **assigned-to** Application Function +- Agent Role **realizes** Business Function +- Agent Output **flows-to** subsequent Agent Input +- Business Process **triggers** Agent Role execution + +### **NAMING_CONVENTIONS** +**Agent Roles**: [Function] + "Agent" (e.g., "Domain Analysis Agent") +**Business Functions**: [Domain] + [Action] (e.g., "Domain Analysis") +**Application Components**: Match Agent Role names exactly +**Data Objects**: [Domain] + [Entity] (e.g., "Manufacturing Order") + +### **MODEL_VALIDATION** +**Mandatory Checks**: +- All elements have valid ArchiMate types +- Relationships conform to ArchiMate metamodel +- Layer separation maintained (no cross-layer violations) +- Viewpoint constraints satisfied + +**Agent-Aware Extensions**: +- Agent workflow completeness (input → processing → output) +- Context boundary definition +- Error path modeling + +**Test Integration**: +- All models MUST pass automated compliance tests +- Cross-model consistency validation required +- Integration test compatibility verified +- Sample data generation for testing purposes \ No newline at end of file diff --git a/framework-core/FunctionDependencyChainLoader.js b/framework-core/FunctionDependencyChainLoader.js new file mode 100644 index 0000000..0268236 --- /dev/null +++ b/framework-core/FunctionDependencyChainLoader.js @@ -0,0 +1,461 @@ +/** + * FUNCTION-DEPENDENCY-CHAIN-LOADER.JS + * Runtime dependency loading system for Agent-Aware Architecture Framework + * Version: 0.3.1 + * Date: 2025-09-07 + * + * EXECUTION MODES: + * + * 1. COMMAND LINE TESTING + * - Environment: Non-Claude bash/npm + * - Command: npm run test:loader + * - Data: Mock registry (in test file) + * - Context: No agent context awareness + * - Purpose: Unit testing and validation + * + * 2. CLAUDE CODE STANDALONE + * - Environment: Claude Code session (outside bootstrap) + * - Methods: usage.js, API, direct class, instructions + * - Registry: Real registry (AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml) + * - Context: Creates function dependency loading context + * - Agent Role: Parameter selects which functions to load + * - Usage: Load specific roles/functions for exploration or testing + * + * 3. BOOTSTRAP INTEGRATION (DESIGNED, NOT YET IMPLEMENTED) + * - Environment: Claude Code session + * - Prerequisites: Bootstrap Phase 1 & 2 completed (37KB context used) + * - Registry: Already loaded registry from Phase 1 + * - Context: Builds on existing framework context with safety margins + * - Agent Role: User selects from Phase 2 menu, loader loads role's assigned_functions + * - Integration: Embedded in bootstrap Phase 3 for production agent activation + */ + +class FunctionDependencyChainLoader { + constructor(registry, contextBudgetKb = 100, currentContextKb = 0) { + this.registry = registry; + this.contextBudgetKb = contextBudgetKb; + this.currentContextKb = currentContextKb; + + // Use Maps to track loaded components with metadata + this.loadedFunctions = new Map(); // functionId -> {function, loadedAt, contextSize} + this.loadedTools = new Map(); // toolId -> {tool, loadedAt, contextSize} + this.loadedIOObjects = new Map(); // ioId -> {ioObject, loadedAt, contextSize} + + this.warnings = []; + this.errors = []; + } + + // Main public interface + async loadFunctionWithDependencies(functionId) { + try { + // Check for duplicate loading + if (this.loadedFunctions.has(functionId)) { + throw new Error(`Function ${functionId} already loaded - duplicate loading not allowed`); + } + + // Find function in registry + const func = this.findFunction(functionId); + if (!func) { + throw new Error(`Function ${functionId} not found in registry`); + } + + // Check context budget before loading + const estimatedSize = func.context_size_kb || 5; // default 5KB + if (!this.checkContextBudget(estimatedSize)) { + throw new Error(`Loading ${functionId} would exceed context budget (${this.currentContextKb + estimatedSize}KB > ${this.contextBudgetKb}KB)`); + } + + // Load function dependencies first + await this.loadFunctionDependencies(func); + + // Load the function itself + await this.loadFunction(func); + + return { + status: 'success', + functionId: functionId, + loadedDependencies: { + ioObjects: func.reads_io_objects?.length || 0 + func.writes_io_objects?.length || 0, + tools: func.served_by_tools?.length || 0 + }, + contextUsed: this.currentContextKb, + contextRemaining: this.contextBudgetKb - this.currentContextKb + }; + + } catch (error) { + this.errors.push(`Failed to load ${functionId}: ${error.message}`); + throw error; + } + } + + // Load all dependencies for a function + async loadFunctionDependencies(func) { + // Load IO objects this function reads + if (func.reads_io_objects) { + for (const ioId of func.reads_io_objects) { + await this.loadIOObject(ioId); + } + } + + // Load IO objects this function writes + if (func.writes_io_objects) { + for (const ioId of func.writes_io_objects) { + await this.loadIOObject(ioId); + } + } + + // Load tools that serve this function + if (func.served_by_tools) { + for (const toolId of func.served_by_tools) { + await this.loadTool(toolId); + } + } + } + + // Load individual function + async loadFunction(func) { + if (this.loadedFunctions.has(func.id)) { + this.warnings.push(`Function ${func.id} already loaded, skipping`); + return; + } + + const contextSize = func.context_size_kb || 5; + + if (!this.checkContextBudget(contextSize)) { + throw new Error(`Function ${func.id} would exceed context budget`); + } + + // Simulate loading function implementation + // In real implementation, this would load from func.location + console.log(`Loading function: ${func.id} from ${func.location || 'registry'}`); + + this.loadedFunctions.set(func.id, { + function: func, + loadedAt: new Date().toISOString(), + contextSize: contextSize + }); + + this.currentContextKb += contextSize; + } + + // Load individual IO object + async loadIOObject(ioId) { + if (this.loadedIOObjects.has(ioId)) { + return; // Already loaded + } + + const ioObject = this.findEntity(ioId, 'io-object'); + if (!ioObject) { + throw new Error(`IO Object ${ioId} not found in registry`); + } + + const contextSize = ioObject.context_size_kb || 2; // IO objects are typically smaller + + if (!this.checkContextBudget(contextSize)) { + this.warnings.push(`IO Object ${ioId} skipped - would exceed context budget`); + return; + } + + console.log(`Loading IO object: ${ioId}`); + + this.loadedIOObjects.set(ioId, { + ioObject: ioObject, + loadedAt: new Date().toISOString(), + contextSize: contextSize + }); + + this.currentContextKb += contextSize; + } + + // Load individual tool + async loadTool(toolId) { + if (this.loadedTools.has(toolId)) { + return; // Already loaded + } + + const tool = this.findEntity(toolId, 'tool'); + if (!tool) { + this.warnings.push(`Tool ${toolId} not found in registry - function may have reduced capability`); + return; // Don't throw, just warn + } + + const contextSize = tool.context_size_kb || 3; + + if (!this.checkContextBudget(contextSize)) { + this.warnings.push(`Tool ${toolId} skipped - would exceed context budget`); + return; + } + + console.log(`Loading tool: ${toolId}`); + + this.loadedTools.set(toolId, { + tool: tool, + loadedAt: new Date().toISOString(), + contextSize: contextSize + }); + + this.currentContextKb += contextSize; + } + + // Context budget management + checkContextBudget(additionalKb) { + const projectedTotal = this.currentContextKb + additionalKb; + const budgetThreshold = this.contextBudgetKb * 0.5; // 50% threshold as requested + + if (projectedTotal > budgetThreshold) { + this.warnings.push(`Approaching context budget limit: ${projectedTotal}KB / ${this.contextBudgetKb}KB`); + } + + return projectedTotal <= this.contextBudgetKb; + } + + // Registry helper methods + findFunction(functionId) { + return this.registry.entities?.find(e => + e.id === functionId && + (e.type === 'agent-aware-loader-function' || e.type === 'agent-aware-application-function') + ); + } + + findEntity(entityId, entityType) { + return this.registry.entities?.find(e => + e.id === entityId && e.type === entityType + ); + } + + // Status and reporting methods + getLoadedSummary() { + return { + functions: Array.from(this.loadedFunctions.keys()), + tools: Array.from(this.loadedTools.keys()), + ioObjects: Array.from(this.loadedIOObjects.keys()), + contextUsed: this.currentContextKb, + contextRemaining: this.contextBudgetKb - this.currentContextKb, + warnings: this.warnings, + errors: this.errors + }; + } + + // Clean slate for new loading session + reset() { + this.loadedFunctions.clear(); + this.loadedTools.clear(); + this.loadedIOObjects.clear(); + this.currentContextKb = 0; + this.warnings = []; + this.errors = []; + } + + // Batch loading interface + async loadMultipleFunctions(functionIds) { + const results = []; + + for (const functionId of functionIds) { + try { + const result = await this.loadFunctionWithDependencies(functionId); + results.push(result); + } catch (error) { + results.push({ + status: 'error', + functionId: functionId, + error: error.message + }); + } + } + + return { + results: results, + summary: this.getLoadedSummary() + }; + } + + // Bootstrap integration helper + static createForBootstrap(registry, totalContextKb = 200, usedContextKb = 37) { + const SAFETY_MARGIN = 50; // Reserve for overhead and safety + const availableContext = totalContextKb - usedContextKb - SAFETY_MARGIN; + + return new FunctionDependencyChainLoader(registry, availableContext, usedContextKb); + } + + // Agent Context Audit - Compare agent's current state vs registry expectations + async auditAgentContext(roleId, currentAgentCapabilities) { + const expectedDependencies = await this.calculateExpectedDependencies(roleId); + const discrepancies = this.compareCapabilities(expectedDependencies, currentAgentCapabilities); + + return { + roleId: roleId, + auditTimestamp: new Date().toISOString(), + expected: expectedDependencies, + reported: currentAgentCapabilities, + discrepancies: discrepancies, + isCompliant: discrepancies.length === 0, + recommendations: this.generateRecommendations(discrepancies), + summary: { + functionsExpected: expectedDependencies.functions.length, + functionsReported: currentAgentCapabilities.functions?.length || 0, + toolsExpected: expectedDependencies.tools.length, + toolsReported: currentAgentCapabilities.tools?.length || 0, + ioObjectsExpected: expectedDependencies.ioObjects.length, + ioObjectsReported: currentAgentCapabilities.ioObjects?.length || 0 + } + }; + } + + // Calculate what should be loaded for a given role (registry authority) + async calculateExpectedDependencies(roleId) { + const role = this.findEntity(roleId, 'agent-role'); + if (!role) { + throw new Error(`Agent role ${roleId} not found in registry`); + } + + const expected = { + role: role.name, + functions: [], + tools: [], + ioObjects: [] + }; + + // Get all functions assigned to this role + for (const functionId of role.assigned_functions || []) { + const func = this.findFunction(functionId); + if (func) { + expected.functions.push({ + id: func.id, + name: func.name, + type: func.type, + contextSize: func.context_size_kb || 5 + }); + + // Get function's IO dependencies + for (const ioId of [...(func.reads_io_objects || []), ...(func.writes_io_objects || [])]) { + const io = this.findEntity(ioId, 'io-object'); + if (io && !expected.ioObjects.find(obj => obj.id === ioId)) { + expected.ioObjects.push({ + id: io.id, + name: io.name, + contextSize: io.context_size_kb || 2 + }); + } + } + + // Get function's tool dependencies + for (const toolId of func.served_by_tools || []) { + const tool = this.findEntity(toolId, 'tool'); + if (tool && !expected.tools.find(t => t.id === toolId)) { + expected.tools.push({ + id: tool.id, + name: tool.name, + contextSize: tool.context_size_kb || 3 + }); + } + } + } + } + + return expected; + } + + // Compare expected vs reported capabilities + compareCapabilities(expected, reported) { + const discrepancies = []; + + // Check functions + const reportedFunctionIds = (reported.functions || []).map(f => typeof f === 'string' ? f : f.id); + const expectedFunctionIds = expected.functions.map(f => f.id); + + for (const expectedFunc of expected.functions) { + if (!reportedFunctionIds.includes(expectedFunc.id)) { + discrepancies.push({ + type: 'missing_function', + severity: 'high', + item: expectedFunc.id, + message: `Expected function '${expectedFunc.name}' not reported by agent` + }); + } + } + + for (const reportedFuncId of reportedFunctionIds) { + if (!expectedFunctionIds.includes(reportedFuncId)) { + discrepancies.push({ + type: 'unexpected_function', + severity: 'medium', + item: reportedFuncId, + message: `Agent reported unexpected function '${reportedFuncId}'` + }); + } + } + + // Check tools + const reportedToolIds = (reported.tools || []).map(t => typeof t === 'string' ? t : t.id); + const expectedToolIds = expected.tools.map(t => t.id); + + for (const expectedTool of expected.tools) { + if (!reportedToolIds.includes(expectedTool.id)) { + discrepancies.push({ + type: 'missing_tool', + severity: 'medium', // Tools can gracefully degrade + item: expectedTool.id, + message: `Expected tool '${expectedTool.name}' not reported by agent (may indicate reduced capability)` + }); + } + } + + // Check IO objects (if reported) + if (reported.ioObjects) { + const reportedIOIds = reported.ioObjects.map(io => typeof io === 'string' ? io : io.id); + const expectedIOIds = expected.ioObjects.map(io => io.id); + + for (const expectedIO of expected.ioObjects) { + if (!reportedIOIds.includes(expectedIO.id)) { + discrepancies.push({ + type: 'missing_io_object', + severity: 'high', + item: expectedIO.id, + message: `Expected IO object '${expectedIO.name}' not reported by agent` + }); + } + } + } + + return discrepancies; + } + + // Generate recommendations based on discrepancies + generateRecommendations(discrepancies) { + const recommendations = []; + + const highSeverity = discrepancies.filter(d => d.severity === 'high'); + const mediumSeverity = discrepancies.filter(d => d.severity === 'medium'); + + if (highSeverity.length > 0) { + recommendations.push({ + priority: 'urgent', + action: 'reload_agent_role', + reason: `${highSeverity.length} critical capabilities missing`, + details: highSeverity.map(d => d.message) + }); + } + + if (mediumSeverity.length > 0) { + recommendations.push({ + priority: 'advisory', + action: 'verify_capabilities', + reason: `${mediumSeverity.length} optional capabilities missing or unexpected`, + details: mediumSeverity.map(d => d.message) + }); + } + + if (discrepancies.length === 0) { + recommendations.push({ + priority: 'info', + action: 'none_required', + reason: 'Agent context is compliant with registry specifications', + details: ['All expected capabilities are present'] + }); + } + + return recommendations; + } +} + +module.exports = FunctionDependencyChainLoader; \ No newline at end of file diff --git a/framework-core/FunctionDependencyChainLoader.md b/framework-core/FunctionDependencyChainLoader.md new file mode 100644 index 0000000..65303f4 --- /dev/null +++ b/framework-core/FunctionDependencyChainLoader.md @@ -0,0 +1,241 @@ +# FunctionDependencyChainLoader + +Runtime dependency loading system for the Agent-Aware Architecture Framework. + +## Overview + +The FunctionDependencyChainLoader manages the loading of functions and their dependencies (IO objects and tools) within context budget constraints. It provides graceful degradation when dependencies are missing and comprehensive tracking of what's been loaded. + +## Three Execution Modes + +### 1. Command Line Testing +**Environment**: Non-Claude bash/npm +**Purpose**: Unit testing and validation + +```bash +# Install dependencies +npm install + +# Run comprehensive test suite +npm run test:loader + +# Expected output: 31 tests passing +``` + +**Features**: +- Uses mock registry data for isolated testing +- No agent context awareness required +- Validates all core functionality including error handling +- Tests context budget management and missing dependencies + +### 2. Claude Code Standalone +**Environment**: Claude Code session (outside bootstrap process) +**Purpose**: Interactive exploration, testing, and development + +#### Method A: CLI Usage +```bash +# Show available commands +node usage.js + +# Load single function with dependencies +node usage.js example1 + +# Batch loading demonstration +node usage.js example2 + +# Context budget testing +node usage.js example3 + +# Load specific function +node usage.js load function-synthesize-domain-model +``` + +#### Method B: Programmatic API +```javascript +const { LoaderAPI } = require('./usage'); + +const api = new LoaderAPI(); +await api.loadFunction('agent-role-domain-analyst'); +console.log(api.getStatus()); +``` + +#### Method C: Direct Class Usage +```javascript +const FunctionDependencyChainLoader = require('./FunctionDependencyChainLoader'); +const { loadRegistry } = require('./usage'); + +const registry = loadRegistry(); +const loader = new FunctionDependencyChainLoader(registry, 100); + +// Load agent role +const role = registry.entities.find(e => + e.id === 'agent-role-domain-analyst' && e.type === 'agent-role' +); + +for (const functionId of role.assigned_functions) { + await loader.loadFunctionWithDependencies(functionId); +} + +console.log(loader.getLoadedSummary()); +``` + +#### Method D: Agent Instructions +``` +Load the Domain Analyst agent role using the FunctionDependencyChainLoader. Use the real registry and show me what functions and dependencies get loaded. +``` + +### 3. Bootstrap Integration (Future) +**Environment**: Claude Code session with completed bootstrap phases +**Purpose**: Production agent activation + +```javascript +// Will be integrated into bootstrap Phase 3 +const loader = FunctionDependencyChainLoader.createForBootstrap( + registry, // Already loaded from Phase 1 + 200, // Total context limit + 37 // Used by Phase 1 & 2 +); +// Automatically reserves 50KB safety margin +// Results in 113KB available for dependency loading +``` + +## Available Agent Roles + +Based on current registry (`AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml`): + +### Domain Analyst Agent (`agent-role-domain-analyst`) +- **Description**: Analyzes business requirements and creates conceptual models +- **Functions**: `function-synthesize-domain-model` +- **Context Size**: ~20KB + +### ArchiMate Modeller Agent (`agent-role-archimate-modeller`) +- **Description**: Creates and updates ArchiMate models and visual representations +- **Functions**: `function-generate-archimate-model`, `function-validate-archimate-model` +- **Context Size**: ~15KB + +## Core Features + +### Context Budget Management +- **Default Budget**: 100KB (configurable) +- **Warning Threshold**: 50% of available budget +- **Safety Margin**: 50KB reserved for bootstrap integration +- **Tracking**: Real-time context usage monitoring + +### Dependency Resolution +- **Functions**: Loads assigned functions for agent roles +- **IO Objects**: Automatically loads read/write dependencies +- **Tools**: Loads required tools with graceful degradation for missing ones +- **Duplicates**: Prevents duplicate loading with warnings + +### Error Handling +- **Missing Functions**: Throws errors (critical failure) +- **Missing IO Objects**: Throws errors (critical failure) +- **Missing Tools**: Warns only (graceful degradation - "reduced capability") +- **Context Overflow**: Prevents loading with clear error messages + +### Reporting +```javascript +const summary = loader.getLoadedSummary(); +console.log({ + functions: summary.functions, // Array of loaded function IDs + tools: summary.tools, // Array of loaded tool IDs + ioObjects: summary.ioObjects, // Array of loaded IO object IDs + contextUsed: summary.contextUsed, // KB used + contextRemaining: summary.contextRemaining, // KB remaining + warnings: summary.warnings, // Array of warning messages + errors: summary.errors // Array of error messages +}); +``` + +## API Reference + +### Constructor +```javascript +new FunctionDependencyChainLoader(registry, contextBudgetKb = 100, currentContextKb = 0) +``` + +### Static Methods +```javascript +// Bootstrap integration helper +FunctionDependencyChainLoader.createForBootstrap( + registry, + totalContextKb = 200, + usedContextKb = 37 +) +``` + +### Instance Methods +```javascript +// Core loading +await loader.loadFunctionWithDependencies(functionId) +await loader.loadMultipleFunctions([functionId1, functionId2]) + +// Individual component loading +await loader.loadFunction(functionObject) +await loader.loadIOObject(ioObjectId) +await loader.loadTool(toolId) + +// Utility +loader.getLoadedSummary() +loader.reset() +loader.checkContextBudget(additionalKb) + +// Registry helpers +loader.findFunction(functionId) +loader.findEntity(entityId, entityType) +``` + +## Integration Notes + +### Bootstrap Phase 3 Integration (Planned) +1. User completes Phase 1 & 2 (37KB context used) +2. User selects agent role from Phase 2 menu +3. Bootstrap creates loader with context budget management +4. Loader loads role's assigned_functions and dependencies +5. Bootstrap reports activation status and remaining context + +### Context Budget Calculations +```javascript +// Total context: 200KB (typical Claude Code session) +// Phase 1 & 2: 37KB (framework loading) +// Safety margin: 50KB (reserved) +// Available for dependencies: 113KB + +const available = totalContext - usedContext - safetyMargin; +// 200 - 37 - 50 = 113KB +``` + +## Testing + +Run the comprehensive test suite: +```bash +npm run test:loader +``` + +**Test Coverage**: +- Constructor initialization +- Registry lookup functions +- Context budget management (including 50% warnings) +- Individual component loading (functions, IO objects, tools) +- Dependency chain resolution +- Missing dependency handling (errors vs warnings) +- Batch loading with mixed results +- Summary reporting and reset functionality + +## Troubleshooting + +### "Tool X not found in registry - function may have reduced capability" +This is a **warning**, not an error. The function will load successfully but may have limited functionality. Check if the tool is needed or update the registry. + +### "Function Y would exceed context budget" +Increase the context budget or reduce the number of functions being loaded: +```javascript +const loader = new FunctionDependencyChainLoader(registry, 150); // Increase budget +``` + +### "Function Z not found in registry" +This is a **critical error**. The function ID in the agent role's `assigned_functions` doesn't exist in the registry. Update the registry or fix the reference. + +--- + +*This loader is designed to be the runtime core of the Agent-Aware Architecture Framework's dependency management system.* \ No newline at end of file diff --git a/framework-core/FunctionDependencyChainLoader.test.js b/framework-core/FunctionDependencyChainLoader.test.js new file mode 100644 index 0000000..4635de0 --- /dev/null +++ b/framework-core/FunctionDependencyChainLoader.test.js @@ -0,0 +1,375 @@ +/** + * FUNCTION-DEPENDENCY-CHAIN-LOADER.TEST.JS + * Test suite for the dependency chain loader + * Version: 0.3.1 + * Date: 2025-09-07 + */ + +const FunctionDependencyChainLoader = require('./FunctionDependencyChainLoader'); + +// Mock registry data +const createMockRegistry = () => ({ + metadata: { + registry_version: "0.3.1", + registry_schema_version: "2.2.28" + }, + entities: [ + // Functions + { + id: "synthesize-domain-objects", + type: "agent-aware-application-function", + name: "Synthesize Domain Objects", + description: "Generate domain objects from requirements", + reads_io_objects: ["business-requirements", "archimate-model"], + writes_io_objects: ["domain-object"], + served_by_tools: ["read", "write"], + location: "./functions/synthesize-domain-objects", + context_size_kb: 8 + }, + { + id: "function-with-missing-tool", + type: "agent-aware-application-function", + name: "Function With Missing Tool", + description: "Function that references a non-existent tool", + reads_io_objects: ["business-requirements"], + writes_io_objects: ["domain-object"], + served_by_tools: ["read", "non-existent-tool"], // This tool doesn't exist + location: "./functions/function-with-missing-tool", + context_size_kb: 5 + }, + { + id: "generate-api-schema", + type: "agent-aware-application-function", + name: "Generate API Schema", + description: "Create API schema from domain model", + reads_io_objects: ["domain-object"], + writes_io_objects: ["api-schema"], + served_by_tools: ["write"], + location: "./functions/generate-api-schema", + context_size_kb: 6 + }, + { + id: "test-function", + type: "agent-aware-loader-function", + name: "Test Function", + description: "A test function with no dependencies", + context_size_kb: 3 + }, + + // IO Objects + { + id: "business-requirements", + type: "io-object", + name: "Business Requirements", + description: "User requirements document", + context_size_kb: 2 + }, + { + id: "archimate-model", + type: "io-object", + name: "ArchiMate Model", + description: "Architectural model in ArchiMate format", + context_size_kb: 4 + }, + { + id: "domain-object", + type: "io-object", + name: "Domain Object", + description: "Synthesized domain object", + context_size_kb: 3 + }, + { + id: "api-schema", + type: "io-object", + name: "API Schema", + description: "Generated API schema", + context_size_kb: 2 + }, + + // Tools + { + id: "read", + type: "tool", + name: "Read Tool", + description: "File reading capability", + context_size_kb: 1 + }, + { + id: "write", + type: "tool", + name: "Write Tool", + description: "File writing capability", + context_size_kb: 1 + } + ] +}); + +describe('FunctionDependencyChainLoader', () => { + let loader; + let mockRegistry; + + beforeEach(() => { + mockRegistry = createMockRegistry(); + loader = new FunctionDependencyChainLoader(mockRegistry, 50); // 50KB budget for testing + }); + + describe('Constructor', () => { + test('should initialize with empty loaded collections', () => { + expect(loader.loadedFunctions.size).toBe(0); + expect(loader.loadedTools.size).toBe(0); + expect(loader.loadedIOObjects.size).toBe(0); + expect(loader.currentContextKb).toBe(0); + }); + + test('should set context budget correctly', () => { + expect(loader.contextBudgetKb).toBe(50); + }); + }); + + describe('findFunction', () => { + test('should find existing function by id', () => { + const func = loader.findFunction('synthesize-domain-objects'); + expect(func).toBeDefined(); + expect(func.name).toBe('Synthesize Domain Objects'); + }); + + test('should return undefined for non-existent function', () => { + const func = loader.findFunction('non-existent'); + expect(func).toBeUndefined(); + }); + + test('should only find function entity types', () => { + const func = loader.findFunction('business-requirements'); // This is an io-object + expect(func).toBeUndefined(); + }); + }); + + describe('findEntity', () => { + test('should find entity by id and type', () => { + const entity = loader.findEntity('business-requirements', 'io-object'); + expect(entity).toBeDefined(); + expect(entity.name).toBe('Business Requirements'); + }); + + test('should return undefined for wrong type', () => { + const entity = loader.findEntity('business-requirements', 'tool'); + expect(entity).toBeUndefined(); + }); + + test('should return undefined for non-existent entity', () => { + const entity = loader.findEntity('non-existent', 'io-object'); + expect(entity).toBeUndefined(); + }); + }); + + describe('checkContextBudget', () => { + test('should allow loading within budget', () => { + loader.currentContextKb = 10; + const canLoad = loader.checkContextBudget(15); + expect(canLoad).toBe(true); + }); + + test('should reject loading when exceeding budget', () => { + loader.currentContextKb = 45; + const canLoad = loader.checkContextBudget(10); // 45 + 10 = 55 > 50 + expect(canLoad).toBe(false); + }); + + test('should add warning when approaching 50% threshold', () => { + loader.currentContextKb = 20; + loader.checkContextBudget(10); // 30KB > 25KB (50% of 50KB) + expect(loader.warnings.length).toBeGreaterThan(0); + expect(loader.warnings[0]).toContain('Approaching context budget limit'); + }); + }); + + describe('loadIOObject', () => { + test('should successfully load IO object', async () => { + await loader.loadIOObject('business-requirements'); + + expect(loader.loadedIOObjects.has('business-requirements')).toBe(true); + expect(loader.currentContextKb).toBe(2); // business-requirements context_size_kb + }); + + test('should not load duplicate IO objects', async () => { + await loader.loadIOObject('business-requirements'); + await loader.loadIOObject('business-requirements'); // Second time + + expect(loader.loadedIOObjects.size).toBe(1); + expect(loader.currentContextKb).toBe(2); // Should only count once + }); + + test('should throw error for non-existent IO object', async () => { + await expect(loader.loadIOObject('non-existent')).rejects.toThrow('IO Object non-existent not found'); + }); + + test('should skip loading when exceeding context budget', async () => { + loader.currentContextKb = 49; // Close to 50KB limit + await loader.loadIOObject('archimate-model'); // 4KB would exceed + + expect(loader.loadedIOObjects.has('archimate-model')).toBe(false); + expect(loader.warnings.length).toBeGreaterThan(0); + expect(loader.warnings.some(w => w.includes('would exceed context budget'))).toBe(true); + }); + }); + + describe('loadTool', () => { + test('should successfully load tool', async () => { + await loader.loadTool('read'); + + expect(loader.loadedTools.has('read')).toBe(true); + expect(loader.currentContextKb).toBe(1); + }); + + test('should not load duplicate tools', async () => { + await loader.loadTool('read'); + await loader.loadTool('read'); // Second time + + expect(loader.loadedTools.size).toBe(1); + expect(loader.currentContextKb).toBe(1); + }); + + test('should warn for non-existent tool instead of throwing', async () => { + await loader.loadTool('non-existent'); + + expect(loader.loadedTools.has('non-existent')).toBe(false); + expect(loader.warnings.length).toBeGreaterThan(0); + expect(loader.warnings.some(w => w.includes('Tool non-existent not found in registry'))).toBe(true); + expect(loader.warnings.some(w => w.includes('function may have reduced capability'))).toBe(true); + }); + }); + + describe('loadFunction', () => { + test('should successfully load function', async () => { + const func = loader.findFunction('test-function'); + await loader.loadFunction(func); + + expect(loader.loadedFunctions.has('test-function')).toBe(true); + expect(loader.currentContextKb).toBe(3); + }); + + test('should skip loading duplicate function with warning', async () => { + const func = loader.findFunction('test-function'); + await loader.loadFunction(func); + await loader.loadFunction(func); // Second time + + expect(loader.loadedFunctions.size).toBe(1); + expect(loader.currentContextKb).toBe(3); + expect(loader.warnings.length).toBeGreaterThan(0); + expect(loader.warnings[0]).toContain('already loaded'); + }); + + test('should throw error when exceeding context budget', async () => { + loader.currentContextKb = 48; // 48 + 8 = 56 > 50 + const func = loader.findFunction('synthesize-domain-objects'); + + await expect(loader.loadFunction(func)).rejects.toThrow('would exceed context budget'); + }); + }); + + describe('loadFunctionWithDependencies', () => { + test('should load function with all dependencies', async () => { + const result = await loader.loadFunctionWithDependencies('synthesize-domain-objects'); + + expect(result.status).toBe('success'); + expect(loader.loadedFunctions.has('synthesize-domain-objects')).toBe(true); + expect(loader.loadedIOObjects.has('business-requirements')).toBe(true); + expect(loader.loadedIOObjects.has('archimate-model')).toBe(true); + expect(loader.loadedIOObjects.has('domain-object')).toBe(true); + expect(loader.loadedTools.has('read')).toBe(true); + expect(loader.loadedTools.has('write')).toBe(true); + + // Check context calculation: 8 (func) + 2+4+3 (io) + 1+1 (tools) = 19KB + expect(loader.currentContextKb).toBe(19); + }); + + test('should prevent duplicate function loading', async () => { + await loader.loadFunctionWithDependencies('test-function'); + + await expect(loader.loadFunctionWithDependencies('test-function')).rejects.toThrow('already loaded - duplicate loading not allowed'); + }); + + test('should throw error for non-existent function', async () => { + await expect(loader.loadFunctionWithDependencies('non-existent')).rejects.toThrow('not found in registry'); + }); + + test('should throw error when function would exceed context budget', async () => { + loader.currentContextKb = 45; // Close to limit + + await expect(loader.loadFunctionWithDependencies('synthesize-domain-objects')).rejects.toThrow('would exceed context budget'); + }); + + test('should warn about missing tools but still load function successfully', async () => { + const result = await loader.loadFunctionWithDependencies('function-with-missing-tool'); + + expect(result.status).toBe('success'); + expect(loader.loadedFunctions.has('function-with-missing-tool')).toBe(true); + expect(loader.loadedTools.has('read')).toBe(true); // Existing tool should load + expect(loader.loadedTools.has('non-existent-tool')).toBe(false); // Missing tool should not load + + // Should have warnings about missing tool + expect(loader.warnings.length).toBeGreaterThan(0); + expect(loader.warnings.some(w => w.includes('Tool non-existent-tool not found in registry'))).toBe(true); + expect(loader.warnings.some(w => w.includes('function may have reduced capability'))).toBe(true); + + // But no errors should be thrown + expect(loader.errors.length).toBe(0); + }); + }); + + describe('loadMultipleFunctions', () => { + test('should load multiple functions successfully', async () => { + const result = await loader.loadMultipleFunctions(['test-function', 'generate-api-schema']); + + expect(result.results).toHaveLength(2); + expect(result.results[0].status).toBe('success'); + expect(result.results[1].status).toBe('success'); + expect(result.summary.functions).toContain('test-function'); + expect(result.summary.functions).toContain('generate-api-schema'); + }); + + test('should handle mix of successful and failed loads', async () => { + const result = await loader.loadMultipleFunctions(['test-function', 'non-existent']); + + expect(result.results).toHaveLength(2); + expect(result.results[0].status).toBe('success'); + expect(result.results[1].status).toBe('error'); + expect(result.results[1].error).toContain('not found in registry'); + }); + }); + + describe('getLoadedSummary', () => { + test('should return empty summary initially', () => { + const summary = loader.getLoadedSummary(); + + expect(summary.functions).toHaveLength(0); + expect(summary.tools).toHaveLength(0); + expect(summary.ioObjects).toHaveLength(0); + expect(summary.contextUsed).toBe(0); + expect(summary.contextRemaining).toBe(50); + }); + + test('should return correct summary after loading', async () => { + await loader.loadFunctionWithDependencies('test-function'); + const summary = loader.getLoadedSummary(); + + expect(summary.functions).toContain('test-function'); + expect(summary.contextUsed).toBe(3); + expect(summary.contextRemaining).toBe(47); + }); + }); + + describe('reset', () => { + test('should clear all loaded data', async () => { + await loader.loadFunctionWithDependencies('test-function'); + loader.reset(); + + expect(loader.loadedFunctions.size).toBe(0); + expect(loader.loadedTools.size).toBe(0); + expect(loader.loadedIOObjects.size).toBe(0); + expect(loader.currentContextKb).toBe(0); + expect(loader.warnings).toHaveLength(0); + expect(loader.errors).toHaveLength(0); + }); + }); +}); \ No newline at end of file diff --git a/framework-core/META-MODEL.md b/framework-core/META-MODEL.md new file mode 100644 index 0000000..dad3fe4 --- /dev/null +++ b/framework-core/META-MODEL.md @@ -0,0 +1,359 @@ +# META-MODEL.md +## Agent-Aware Architecture Framework Meta-Model + +### **FRAMEWORK_PHILOSOPHY** +The Agent-Aware Architecture Framework enables AI agents to understand, interpret, and generate architectural models across any domain. This meta-model defines the conceptual foundation that makes architecture models "agent-aware." + +### **CORE_CONCEPTS** + +#### **Layered Architecture** +```yaml +layers: + conceptual: + description: "Business understanding and requirements" + artifacts: ["business requirements", "user stories", "process descriptions"] + agent_interpretation: "Natural language understanding" + + logical: + description: "Formal architectural models" + artifacts: ["ArchiMate models", "domain models", "relationship maps"] + agent_interpretation: "Model parsing and navigation" + + physical: + description: "Implementation artifacts" + artifacts: ["APIs", "schemas", "configurations", "test data"] + agent_interpretation: "Code and artifact generation" +``` + +#### **Agent Awareness Principles** +```yaml +principles: + semantic_clarity: + rule: "Every element must have clear semantic meaning" + implementation: "Explicit type definitions and role mappings" + + generation_ready: + rule: "Models must map to concrete outputs" + implementation: "Generation targets for each element type" + + context_optimized: + rule: "Load only what's needed, when needed" + implementation: "Lazy loading with explicit dependencies" + + self_describing: + rule: "The framework describes itself using its own notation" + implementation: "Agent capabilities as ArchiMate models" + + layer_independence: + rule: "Dependencies flow downward only: Conceptual → Logical → Physical" + implementation: "Each layer validates only its references to layers below and lower layers should not reference layers above" +``` + +### **ARCHIMATE_INTEGRATION** + +#### **Element Type Mappings** +```yaml +element_categories: + active: + types: [actor, role, collaboration] + agent_capability: "Can be realized by agent components" + generation_targets: ["API endpoints", "service interfaces"] + + behavioral: + types: [process, function, interaction, event, service] + agent_capability: "Can be automated or orchestrated" + generation_targets: ["workflows", "pipelines", "event handlers"] + + passive: + types: [object, contract, representation] + agent_capability: "Can be synthesized from requirements" + generation_targets: ["schemas", "data models", "test data"] + + structural: + types: [component, interface, node, device] + agent_capability: "Can be configured or deployed" + generation_targets: ["containers", "configurations", "infrastructure"] +``` + +#### **Relationship Semantics** +```yaml +relationships: + structural: + - composition: "parent contains child" + - aggregation: "parent groups child" + - assignment: "active element assigned to role" + + dependency: + - serving: "provides service to" + - access: "reads or writes" + - realization: "implements or fulfills" + + dynamic: + - triggering: "causes or initiates" + - flow: "transfers to" + - influence: "affects behavior of" + + other: + - association: "general relationship" + - specialization: "is a type of" +``` + +### **DOMAIN_MODEL_STRUCTURE** + +#### **Domain Definition** +```yaml +required_elements: + metadata: + - domain_id: "unique identifier" + - version: "semantic version" + - owner: "team or person" + - description: "purpose and scope" + + archimate_model: + - model_file: "path to .excalidraw" + - viewpoint: "ArchiMate viewpoint" + - last_updated: "ISO date" + + schemas: + - id: "schema identifier" + - format: "schema type" + - location: "file path" +``` + +#### **Supported Schema Formats** +```yaml +schema_types: + structured_data: + - delta-lake: "Lakehouse table format" + - parquet: "Columnar storage format" + - avro: "Apache Avro with schema evolution" + + api_specifications: + - openapi: "REST API specification v3.0+" + - graphql: "GraphQL schema definition" + - grpc: "Protocol buffers service definition" + - asyncapi: "Event-driven API specification" + + data_validation: + - json-schema: "JSON structure validation" + - xml-schema: "XSD validation" + - yaml-schema: "YAML structure validation" + + database: + - sql-ddl: "SQL Data Definition Language" + - mongodb-schema: "MongoDB validation rules" + - neo4j-schema: "Graph database schema" + + messaging: + - protobuf: "Protocol buffers" + - mqtt-schema: "MQTT topic structure" + - kafka-schema: "Confluent schema registry" +``` + +### **APPLICATION_MODEL_STRUCTURE** + +#### **Application Composition** +```yaml +application_elements: + manifest: + purpose: "Declare capabilities and dependencies" + lazy_load: false + + domain_references: + purpose: "Link to reusable domain models" + lazy_load: true + + agent_roles: + purpose: "Define agent components" + lazy_load: on_selection + + scenarios: + purpose: "Concrete workflow implementations" + lazy_load: on_demand + + tests: + purpose: "Validation and quality gates" + lazy_load: on_test +``` + +#### **Capability Extension Pattern** +```yaml +extension_pattern: + inherits_from: "framework-core capabilities" + extends_with: "application-specific functions" + provides_to: "downstream applications" + +example: + framework_provides: "generate-api-specification" + application_extends: "generate-isa95-compliant-api" + downstream_uses: "manufacturing-api-generator" +``` + +### **VISUAL_TO_SEMANTIC_BRIDGE** + +#### **Excalidraw Integration** +```yaml +visual_elements: + shape_mapping: + rectangle: "structural element" + rounded_rectangle: "behavioral element" + ellipse: "event or state" + diamond: "decision or gateway" + + color_semantics: + "#ffec99": "business layer" + "#a5d8ff": "application layer" + "#b2f2bb": "technology layer" + "#ffc9c9": "strategy layer" + "#e599f7": "physical layer" + + text_extraction: + pattern: "name:type format" + fallback: "infer from context" + + relationship_detection: + method: "connection point analysis" + arrow_types: "determine relationship type" +``` + +### **AGENT_INTERACTION_MODEL** + +#### **Agent Capabilities as ArchiMate** +```yaml +agent_as_architecture: + agent_role: + archimate_type: "application-component" + properties: ["capabilities", "interfaces", "dependencies"] + + capability: + archimate_type: "application-function" + properties: ["inputs", "outputs", "transformation"] + + relationship: + type: "realization" + meaning: "agent realizes capability" +``` + +#### **Context Loading Strategy** +```yaml +loading_phases: + bootstrap: + loads: ["meta-model", "core-capabilities"] + size: "~10KB" + + application_selection: + loads: ["manifest", "domain-model", "agent-roles"] + size: "~25KB" + + scenario_execution: + loads: ["scenario-details", "test-data", "examples"] + size: "~50KB" + + full_context: + loads: ["everything"] + size: "~100KB" + trigger: "explicit request only" +``` + +### **VALIDATION_FRAMEWORK** + +#### **Model Validation Rules** +```yaml +validation_levels: + syntactic: + - "Valid ArchiMate element types" + - "Valid relationship types" + - "Proper element naming" + + semantic: + - "Relationship constraints satisfied" + - "Layer boundaries respected" + - "Viewpoint consistency" + + pragmatic: + - "Generation targets defined" + - "Agent roles mapped" + - "Test coverage adequate" +``` + +#### **Quality Gates** +```yaml +mandatory_checks: + model_integrity: + - "All elements have types" + - "All relationships have valid endpoints" + - "No orphaned elements" + + agent_readiness: + - "Semantic clarity verified" + - "Generation mappings complete" + - "Context size within limits" + + domain_compliance: + - "Standards alignment verified" + - "Schema formats valid" + - "Integration points defined" +``` + +### **FRAMEWORK_EXTENSION_POINTS** + +#### **Custom Domain Integration** +```yaml +extension_mechanism: + domain_repository: + structure: "[domain]/models/, [domain]/schemas/, [domain]/tests/" + registration: "Add to domain registry" + + schema_format: + definition: "Add to schema_types" + adapter: "Provide parser/generator" + + agent_capability: + definition: "Extend application-function" + implementation: "Provide transformation logic" +``` + +#### **Tool Adapter Pattern** +```yaml +adapter_interface: + required_methods: + - parse_visual: "Tool format → ArchiMate model" + - generate_visual: "ArchiMate model → Tool format" + - validate: "Check tool-specific constraints" + + supported_tools: + current: ["excalidraw"] + planned: ["draw.io", "lucidchart", "miro"] +``` + +### **META-MODEL_GOVERNANCE** + +#### **Version Management** +```yaml +versioning: + meta_model: "MAJOR.MINOR.PATCH" + compatibility: "MAJOR version must match" + migration: "Provided for MINOR updates" +``` + +#### **Evolution Strategy** +```yaml +change_management: + backward_compatible: + - "New optional properties" + - "Additional schema types" + - "New validation rules" + + breaking_changes: + - "Element type modifications" + - "Relationship semantics changes" + - "Required property additions" + + deprecation_policy: + - "Announce in version N" + - "Deprecate in version N+1" + - "Remove in version N+2" +``` + +--- +*This meta-model defines the conceptual foundation of the Agent-Aware Architecture Framework. All applications, domains, and agents operate within these constraints and patterns.* \ No newline at end of file diff --git a/framework-core/TEST-FRAMEWORK-2.md b/framework-core/TEST-FRAMEWORK-2.md new file mode 100644 index 0000000..69547bc --- /dev/null +++ b/framework-core/TEST-FRAMEWORK-2.md @@ -0,0 +1,118 @@ +# Test Framework - Agent-Aware Architecture +***TEST-FRAMEWORK.md*** + +## **TEST_PHILOSOPHY** +- Test-first approach for all agent outputs +- Validate structure before function +- Fail fast with clear diagnostics + + +## **TEST_ARCHITECTURE** + + + +## **TEST_CATEGORIES** + + + +### **Bootstrap Tests** +Specific tests for the Agent Bootstrap process + +```yaml +priority: 1 +purpose: Verify initialization sequence +scope: +test-type: +location: ./ +test-files: TBD +automation: test_bootstrap.js +``` + + +**TEST_EXECUTION:** +```bash +# Run all tests +npm test + +# Run specific category +npm test:structure +npm test:bootstrap +``` + + +**SUCCESS_CRITERIA:** + +- All required files present +- Bootstrap loads correctly +- Capabilities execute as specified +- No context leakage between applications + + + +### **Framework Tests** +Core framework integration tests - metamodel validation +```yaml +priority: 1 +purpose: Test core framework functionality +scope: Core framework functions used by everything in agent aware architecture, including schema validation +test-type: node.js +location: ./framework-core +test-files: TBD +automation: registry-test-supervisor.js +``` + +Dependency loader tests +```yaml +priority: 1 +purpose: Test core framework functionality +scope: Core framework functions used by everything in agent aware architecture, including schema validation +test-type: node.js +location: ./framework-core +test-files: TBD +automation: registry-test-supervisor.js + +``` + + +### **Functional Tests** + +#### **Unit Tests** +Tools +```yaml +priority: 3 +``` +*TEST_EXECUTION* +```bash +# Run all tests +node ****** + +# Run specific test +node ***** +``` + + +### **Integration Tests** +Tools +```yaml +priority: 2 +purpose: Test Agent tools +scope: +test-type: +location: ./ +test-files: TBD +automation: TBD +``` + + +## **Notes node.js setup** +TBD + + +--- +## **TODO** +*TODO: Bootstrap: implement tests* +*TODO: Bootstrap: expand with specific test implementations during automation phase* + + + + diff --git a/framework-core/TEST-FRAMEWORK.md b/framework-core/TEST-FRAMEWORK.md new file mode 100644 index 0000000..cbb0530 --- /dev/null +++ b/framework-core/TEST-FRAMEWORK.md @@ -0,0 +1,56 @@ +# TEST-FRAMEWORK.md +## Test Framework - Agent-Aware Architecture + +### **TEST_PHILOSOPHY** +- Test-first approach for all agent outputs +- Validate structure before function +- Fail fast with clear diagnostics + +### **TEST_CATEGORIES** + +#### **Structure Tests** +```yaml +priority: 1 +purpose: Verify files exist and follow conventions +automation: check_structure.js +``` + +#### **Bootstrap Tests** +```yaml +priority: 2 +purpose: Verify initialization sequence +automation: test_bootstrap.js +``` + +#### **Capability Tests** +```yaml +priority: 3 +purpose: Verify agent capabilities work +automation: test_capabilities.js +``` + +#### **Integration Tests** +```yaml +priority: 4 +purpose: Verify end-to-end workflows +automation: test_integration.js +``` + +### **TEST_EXECUTION** +```bash +# Run all tests +npm test + +# Run specific category +npm test:structure +npm test:bootstrap +``` + +### **SUCCESS_CRITERIA** +- All required files present +- Bootstrap loads correctly +- Capabilities execute as specified +- No context leakage between applications + +--- +*TODO: Expand with specific test implementations during automation phase* \ No newline at end of file diff --git a/framework-core/agent-aware-metadata-registry-test-spec.md b/framework-core/agent-aware-metadata-registry-test-spec.md new file mode 100644 index 0000000..b7aa5e5 --- /dev/null +++ b/framework-core/agent-aware-metadata-registry-test-spec.md @@ -0,0 +1,182 @@ +# AGENT-AWARE-ARCHITECTURE-REGISTRY Test Specification +*Version: 1.1.0 | Date: 19 August 2025* + +## Purpose +This document defines the test suite to be executed whenever AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml is modified. All tests must pass before committing registry changes. + +## Test Execution +Run all tests with: `npm run test:registry` +Run individual test: `npm run test:registry:[test-number]` + +--- + +## Test Suite + +### 1. Schema Validation Test +**Purpose:** Ensure registry conforms to formal schema definition + +**Test Cases:** +- Registry validates against agent-aware-metadata-schema.json +- All required fields are present for each entity type +- ID patterns match naming conventions (e.g., `^function-[a-z-]+$`) +- Version formats are valid semver (X.Y.Z) +- Enum values are within allowed sets +- Data types match schema specifications + +**Pass Criteria:** Zero schema validation errors + +--- + +### 2. Referential Integrity Test +**Purpose:** Verify all relationships and foreign keys are valid + +**Test Cases:** +- All foreign keys resolve to existing entities +- No orphaned functions (every function belongs to role/app/loader) +- All tools referenced by functions exist in registry +- All io-objects referenced by functions exist +- No circular dependencies in relationships +- Context triggers point to valid targets + +**Pass Criteria:** All references resolve correctly, no orphans or cycles detected + +--- + +### 3. File System Validation Test +**Purpose:** Confirm all registry entries map to real files + +**Test Cases:** +- All `location` paths exist in repository +- File extensions match expected formats (.md, .yaml, .json) +- No registry entries pointing to deleted/moved files +- Implementation files exist for all functions +- Tool adapter files exist at specified locations +- Model files exist for applications that reference them + +**Pass Criteria:** 100% of referenced files exist and are accessible + +--- + +### 4. Performance Test +**Purpose:** Ensure registry and loaded contexts stay within size limits + +**Test Cases:** +- Registry file size ≤ 35KB +- Registry parse time < 100ms +- Sum of component sizes matches estimated totals (±10%) +- Agent role context ≤ 20KB when loaded +- Application context ≤ 30KB when loaded +- Framework context ≤ 25KB when loaded +- Warning if any mode exceeds 50KB total +- Track registry size growth between versions (warn if >10% increase) + +**Pass Criteria:** All size limits met, no performance regressions + +--- + +### 5. Compatibility Matrix Test +**Purpose:** Validate version compatibility and migration paths + +**Test Cases:** +- Version compatibility between related components +- Tool versions compatible with functions that use them +- All deprecated items have migration paths documented +- Breaking changes include upgrade instructions +- Framework version compatible with all applications +- Schema version matches registry structure + +**Pass Criteria:** No incompatible versions, all deprecations handled + +--- + +### 6. Loading Sequence Test +**Purpose:** Verify all loading modes work correctly + +**Test Cases:** +- Agent role mode loads without errors +- Application mode loads without errors +- Framework mode loads without errors +- Mode switching preserves/clears correct components +- Lazy loading paths resolve correctly +- No missing dependencies during any load sequence +- Minimal core load stays under 5KB + +**Pass Criteria:** All three modes load successfully with correct components + +--- + +### 7. Completeness Test +**Purpose:** Ensure minimum viable content for framework operation + +**Test Cases:** +- Every function has at least one test case defined +- Every application has at least one scenario +- Every tool has capabilities defined +- Every agent role has at least one assigned function +- Core functions cover minimum viable framework: + - Model interpretation + - Artifact generation + - Validation +- Every io-object has format specified + +**Pass Criteria:** No missing required content + +--- + +### 8. Cross-Reference Consistency Test +**Purpose:** Validate bidirectional relationships and naming consistency + +**Test Cases:** +- Bidirectional relationships are consistent +- No duplicate IDs across all entity types +- Function type (core/app/domain) matches location path pattern +- Tool assignments align with function requirements +- Application functions are marked as type "application" +- Core framework functions are marked as type "core" +- Agent role names match their ID patterns + +**Pass Criteria:** All cross-references consistent, no naming conflicts + +--- + +## Test Output Format + +Each test should produce output in the following format: + +```json +{ + "test_name": "Schema Validation Test", + "test_number": 1, + "timestamp": "2024-12-XX HH:MM:SS", + "status": "PASS|FAIL|WARNING", + "details": { + "cases_run": 6, + "cases_passed": 6, + "cases_failed": 0, + "warnings": [] + }, + "errors": [], + "execution_time_ms": 45 +} +``` + +## Automated Execution + +Tests should be run automatically on: +- Pre-commit hook for AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml +- Pull requests that modify the registry +- Nightly builds to catch drift +- After any schema version change + +## Manual Review Triggers + +Manual review required when: +- Adding new entity types to schema +- Changing relationship cardinality +- Modifying ID naming patterns +- Registry size increases >20% +- Breaking changes introduced + +--- + +*This test specification ensures registry integrity and prevents breaking changes from affecting the framework.* \ No newline at end of file diff --git a/framework-core/agent-aware-metadata-registry-test.js b/framework-core/agent-aware-metadata-registry-test.js new file mode 100644 index 0000000..8c003f0 --- /dev/null +++ b/framework-core/agent-aware-metadata-registry-test.js @@ -0,0 +1,471 @@ +/** + * AGENT-AWARE-METADATA-REGISTRY-TEST.JS + * Enhanced test script with function integrity validation + * Version: 0.5.4 + * Date: 2025-09-05 + */ + +const fs = require('fs'); +const path = require('path'); +const yaml = require('js-yaml'); +const Ajv = require('ajv'); +const addFormats = require('ajv-formats'); + +class EnhancedRegistryTest { + constructor() { + this.errors = []; + this.testResults = []; + + // Load registry and schema + this.loadRegistryAndSchema(); + } + + loadRegistryAndSchema() { + try { + // Load registry file + const registryPath = path.join(__dirname, 'AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml'); + this.registry = yaml.load(fs.readFileSync(registryPath, 'utf8')); + + // Load schema file + const schemaPath = path.join(__dirname, 'agent-aware-metadata-schema.json'); + this.schema = JSON.parse(fs.readFileSync(schemaPath, 'utf8')); + + // Initialize AJV validator + this.ajv = new Ajv({ allErrors: true, strict: false }); + addFormats(this.ajv); + this.validator = this.ajv.compile(this.schema); + + console.log("✅ Registry and schema loaded successfully"); + } catch (error) { + this.errors.push(`Failed to load registry or schema: ${error.message}`); + console.error("❌ Failed to load registry or schema:", error.message); + process.exit(1); + } + } + + validateSchema() { + console.log("🧪 Running schema validation..."); + + const testResult = { + test_name: "Schema Validation", + status: "PENDING", + errors: [] + }; + + const isValid = this.validator(this.registry); + + if (isValid) { + console.log("✅ PASS: Registry validates against schema"); + testResult.status = "PASS"; + testResult.message = "Registry is valid"; + } else { + console.log("❌ FAIL: Schema validation failed"); + console.log("Validation errors:"); + this.validator.errors.forEach(error => { + const errorMsg = `${error.instancePath}: ${error.message}`; + console.log(` - ${errorMsg}`); + if (error.data !== undefined) { + console.log(` Data: ${JSON.stringify(error.data)}`); + } + testResult.errors.push(errorMsg); + }); + + testResult.status = "FAIL"; + testResult.message = "Registry validation failed"; + } + + this.testResults.push(testResult); + return testResult.status === "PASS"; + } + + validateFunctionIntegrity() { + console.log("🔗 Running function integrity validation..."); + + const integrityTest = { + test_name: "Function Integrity", + status: "PENDING", + errors: [], + warnings: [] + }; + + // Get all entities by type + const functions = this.getFunctions(); + const ioObjects = this.registry.entities?.filter(e => e.type === "io-object") || []; + const tools = this.registry.entities?.filter(e => e.type === "tool") || []; + const agentRoles = this.registry.entities?.filter(e => e.type === "agent-role") || []; + + console.log(`📊 Found ${functions.length} functions, ${ioObjects.length} IO objects, ${tools.length} tools, ${agentRoles.length} agent roles`); + + // Validate each function + functions.forEach(func => { + console.log(`🔍 Checking function: ${func.id}`); + + // A) Check all referenced IO objects exist + if (func.reads_io_objects) { + func.reads_io_objects.forEach(ioId => { + const ioExists = ioObjects.find(io => io.id === ioId); + if (!ioExists) { + integrityTest.errors.push({ + function: func.id, + issue: "missing_read_io_object", + missing_id: ioId + }); + console.log(`❌ ${func.id} reads missing IO object: ${ioId}`); + } else { + console.log(`✅ ${func.id} reads ${ioId} - OK`); + } + }); + } + + if (func.writes_io_objects) { + func.writes_io_objects.forEach(ioId => { + const ioExists = ioObjects.find(io => io.id === ioId); + if (!ioExists) { + integrityTest.errors.push({ + function: func.id, + issue: "missing_write_io_object", + missing_id: ioId + }); + console.log(`❌ ${func.id} writes missing IO object: ${ioId}`); + } else { + console.log(`✅ ${func.id} writes ${ioId} - OK`); + } + }); + } + + // B) Check all referenced tools exist + if (func.served_by_tools) { + func.served_by_tools.forEach(toolId => { + const toolExists = tools.find(tool => tool.id === toolId); + if (!toolExists) { + integrityTest.errors.push({ + function: func.id, + issue: "missing_tool", + missing_id: toolId + }); + console.log(`❌ ${func.id} served by missing tool: ${toolId}`); + } else { + console.log(`✅ ${func.id} served by ${toolId} - OK`); + } + }); + } + + // C) Check function has required fields + const requiredFields = ['id', 'name', 'type', 'description']; + requiredFields.forEach(field => { + if (!func[field]) { + integrityTest.errors.push({ + function: func.id, + issue: "missing_required_field", + missing_field: field + }); + console.log(`❌ ${func.id} missing required field: ${field}`); + } + }); + + // D) Check location path pattern (warning only) + if (func.location && !func.location.startsWith('./')) { + integrityTest.warnings.push({ + function: func.id, + issue: "location_path_pattern", + details: "Location should start with './' for relative paths" + }); + console.log(`⚠️ ${func.id} location doesn't start with './': ${func.location}`); + } + + // E) Check context size is reasonable (warning only) + if (func.context_size_kb && func.context_size_kb > 20) { + integrityTest.warnings.push({ + function: func.id, + issue: "large_context_size", + size_kb: func.context_size_kb + }); + console.log(`⚠️ ${func.id} has large context size: ${func.context_size_kb}KB`); + } + }); + + // Validate agent role function assignments + agentRoles.forEach(role => { + if (role.assigned_functions) { + role.assigned_functions.forEach(funcId => { + const funcExists = functions.find(f => f.id === funcId); + if (!funcExists) { + integrityTest.errors.push({ + agent_role: role.id, + issue: "missing_assigned_function", + missing_id: funcId + }); + console.log(`❌ ${role.id} assigned to missing function: ${funcId}`); + } else { + console.log(`✅ ${role.id} assigned to ${funcId} - OK`); + } + }); + } + }); + + // Final status + integrityTest.status = integrityTest.errors.length === 0 ? "PASS" : "FAIL"; + + console.log(`\n📋 Function Integrity Results:`); + console.log(`Status: ${integrityTest.status}`); + console.log(`Errors: ${integrityTest.errors.length}`); + console.log(`Warnings: ${integrityTest.warnings.length}`); + + if (integrityTest.errors.length > 0) { + console.log("\n❌ Integrity Errors:"); + integrityTest.errors.forEach(error => { + console.log(` - ${error.function || error.agent_role}: ${error.issue} (${error.missing_id || error.missing_field || ''})`); + }); + } + + if (integrityTest.warnings.length > 0) { + console.log("\n⚠️ Integrity Warnings:"); + integrityTest.warnings.forEach(warning => { + console.log(` - ${warning.function}: ${warning.issue} ${warning.details ? '- ' + warning.details : ''}`); + }); + } + + this.testResults.push(integrityTest); + return integrityTest.status === "PASS"; + } + + validateFunctionDocumentation() { + console.log("📖 Validating function documentation exists..."); + + const docsTest = { + test_name: "Function Documentation", + status: "PENDING", + errors: [], + warnings: [] + }; + + const functions = this.getFunctions(); + + functions.forEach(func => { + if (!func.location) { + docsTest.errors.push({ + function: func.id, + issue: "missing_location", + details: "Function must specify location path" + }); + return; + } + // Check function_type to determine if FUNCTION.md is needed + const functionType = func.type === "agent-aware-loader-function" ? 'loader' : 'application'; + + if (functionType === 'loader') { + console.log(`⏭️ Skipping ${func.id} - loader function (no FUNCTION.md needed)`); + return; + } + + if (functionType === 'application') { + // Check if FUNCTION.md should exist at the location + const functionMdPath = path.join(func.location, 'FUNCTION.md'); + const fullPath = path.resolve(__dirname, '..', functionMdPath); + + try { + if (fs.existsSync(fullPath)) { + console.log(`✅ ${func.id} has FUNCTION.md at ${functionMdPath}`); + + // Optional: Check file content quality + const content = fs.readFileSync(fullPath, 'utf8'); + if (content.length < 100) { + docsTest.warnings.push({ + function: func.id, + issue: "minimal_documentation", + details: "FUNCTION.md seems very short" + }); + } + } else { + docsTest.errors.push({ + function: func.id, + issue: "missing_function_md", + expected_path: functionMdPath + }); + console.log(`❌ ${func.id} missing FUNCTION.md at ${functionMdPath}`); + } + } catch (error) { + docsTest.warnings.push({ + function: func.id, + issue: "file_access_error", + details: error.message + }); + } + } else { + docsTest.warnings.push({ + function: func.id, + issue: "unknown_function_type", + function_type: functionType + }); + console.log(`⚠️ ${func.id} has unknown function_type: ${functionType}`); + } + }); + + docsTest.status = docsTest.errors.length === 0 ? "PASS" : "FAIL"; + + console.log(`\n📖 Function Documentation Results:`); + console.log(`Status: ${docsTest.status}`); + console.log(`Errors: ${docsTest.errors.length}`); + console.log(`Warnings: ${docsTest.warnings.length}`); + + if (docsTest.errors.length > 0) { + console.log("\n❌ Documentation Errors:"); + docsTest.errors.forEach(error => { + console.log(` - ${error.function}: ${error.issue} ${error.expected_path ? '(expected: ' + error.expected_path + ')' : ''}`); + }); + } + + this.testResults.push(docsTest); + return docsTest.status === "PASS"; + } + + checkVersions() { + console.log("🔍 Checking version compatibility..."); + + const expectedVersions = { + registry_schema_version: "2.2.28", + registry_version: "0.3.3", + framework_version: "0.4.1" + }; + const actualVersions = this.registry.metadata || {}; + + let allMatch = true; + + Object.keys(expectedVersions).forEach(versionKey => { + if (actualVersions[versionKey] !== expectedVersions[versionKey]) { + console.log(`⚠️ Version mismatch - ${versionKey}: expected ${expectedVersions[versionKey]}, got ${actualVersions[versionKey]}`); + allMatch = false; + } else { + console.log(`✅ ${versionKey}: ${actualVersions[versionKey]}`); + } + }); + + return allMatch; + } + + // helper method to get all the list of functions + getFunctions() { + return this.registry.entities?.filter(e => + e.type === "agent-aware-loader-function" || + e.type === "agent-aware-application-function" + ) || []; + } + + validateEntityCounts() { + console.log("🧮 Validating entity counts..."); + + const countsTest = { + test_name: "Entity Counts Validation", + status: "PENDING", + errors: [], + warnings: [] + }; + + // Calculate actual counts from registry + const actualCounts = { + total_entities: this.registry.entities?.length || 0, + loader_functions: this.registry.entities?.filter(e => e.type === "agent-aware-loader-function").length || 0, + application_functions: this.registry.entities?.filter(e => e.type === "agent-aware-application-function").length || 0, + agent_roles: this.registry.entities?.filter(e => e.type === "agent-role").length || 0, + applications: this.registry.entities?.filter(e => e.type === "agent-aware-application").length || 0, + tools: this.registry.entities?.filter(e => e.type === "tool").length || 0, + io_objects: this.registry.entities?.filter(e => e.type === "io-object").length || 0 + }; + + // Get declared counts from metadata + const declaredCounts = this.registry.metadata?.entity_counts || {}; + + console.log("📊 Actual vs Declared Counts:"); + + Object.keys(actualCounts).forEach(countType => { + const actual = actualCounts[countType]; + const declared = declaredCounts[countType]; + + if (declared === undefined) { + countsTest.errors.push(`Missing declared count for ${countType}`); + console.log(`❌ ${countType}: actual=${actual}, declared=MISSING`); + } else if (actual !== declared) { + countsTest.errors.push(`Count mismatch for ${countType}: actual=${actual}, declared=${declared}`); + console.log(`❌ ${countType}: actual=${actual}, declared=${declared} (MISMATCH)`); + } else { + console.log(`✅ ${countType}: ${actual} (matches declared)`); + } + }); + + // Check for any extra declared counts + Object.keys(declaredCounts).forEach(countType => { + if (!actualCounts.hasOwnProperty(countType)) { + countsTest.warnings.push(`Unexpected declared count: ${countType}=${declaredCounts[countType]}`); + console.log(`⚠️ ${countType}: declared=${declaredCounts[countType]} (not validated)`); + } + }); + + countsTest.status = countsTest.errors.length === 0 ? "PASS" : "FAIL"; + countsTest.actual_counts = actualCounts; + countsTest.declared_counts = declaredCounts; + + console.log(`\n🧮 Entity Counts Results:`); + console.log(`Status: ${countsTest.status}`); + console.log(`Errors: ${countsTest.errors.length}`); + console.log(`Warnings: ${countsTest.warnings.length}`); + + if (countsTest.errors.length > 0) { + console.log("\n❌ Count Errors:"); + countsTest.errors.forEach(error => { + console.log(` - ${error}`); + }); + } + + this.testResults.push(countsTest); + return countsTest.status === "PASS"; + } + + run() { + console.log("🚀 ENHANCED REGISTRY VALIDATION"); + console.log("=" .repeat(50)); + + // Run all tests + const schemaValid = this.validateSchema(); + const integrityValid = this.validateFunctionIntegrity(); + const versionsOk = this.checkVersions(); + this.validateFunctionDocumentation(); + + // Summary + console.log("\n📊 FINAL RESULTS:"); + console.log("=" .repeat(50)); + console.log(`Schema Validation: ${schemaValid ? 'PASS' : 'FAIL'}`); + console.log(`Function Integrity: ${integrityValid ? 'PASS' : 'FAIL'}`); + console.log(`Version Check: ${versionsOk ? 'PASS' : 'WARNING'}`); + + const overallStatus = (schemaValid && integrityValid) ? "PASS" : "FAIL"; + console.log(`\n🎯 OVERALL STATUS: ${overallStatus}`); + + // Output detailed test results + console.log("\n📋 DETAILED TEST RESULTS:"); + this.testResults.forEach(test => { + console.log(`${test.test_name}: ${test.status}`); + if (test.errors && test.errors.length > 0) { + test.errors.slice(0, 3).forEach(error => console.log(` - ${error}`)); + if (test.errors.length > 3) { + console.log(` - ... and ${test.errors.length - 3} more errors`); + } + } + }); + + if (overallStatus === "FAIL") { + console.log("\n❌ Registry validation failed. Fix errors above before proceeding."); + process.exit(1); + } else { + console.log("\n✅ Registry validation passed! Ready for use."); + process.exit(0); + } + } +} + +// Execute test when run directly +if (require.main === module) { + const test = new EnhancedRegistryTest(); + test.run(); +} + +module.exports = EnhancedRegistryTest; \ No newline at end of file diff --git a/framework-core/agent-aware-metadata-schema.json b/framework-core/agent-aware-metadata-schema.json new file mode 100644 index 0000000..0100eb2 --- /dev/null +++ b/framework-core/agent-aware-metadata-schema.json @@ -0,0 +1,522 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://agileintegrator.com/schemas/agent-aware-metadata-schema.json", + "title": "Agent-Aware Metadata Schema", + "description": "Schema for Agent-Aware Architecture Framework metadata registry, compatible with ArchiMate 3.1", + "version": "2.2.28", + "compatibleWith": "./archimate-schema.json", + + "definitions": { + + "registry_metadata": { + "type": "object", + "properties": { + "registry_schema_version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "registry_version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "framework_version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "last_updated": {"type": "string", "format": "date-time"}, + "total_estimated_size_kb": {"type": "number", "minimum": 0}, + "core_framework_size_kb": {"type": "number", "minimum": 0}, + "entity_counts": { + "type": "object", + "properties": { + "total_entities": {"type": "number", "minimum": 0}, + "loader_functions": {"type": "number", "minimum": 0}, + "application_functions": {"type": "number", "minimum": 0}, + "agent_roles": {"type": "number", "minimum": 0}, + "applications": {"type": "number", "minimum": 0}, + "tools": {"type": "number", "minimum": 0}, + "io_objects": {"type": "number", "minimum": 0} + }, + "required": ["total_entities"], + "additionalProperties": false + }, + "last_validated": {"type": "string", "format": "date-time"}, + "validation_status": {"type": "string", "enum": ["pending", "passed", "failed"]} + }, + "required": [ + "registry_schema_version", "registry_version", "framework_version", "last_updated"], + "additionalProperties": false + }, + + "base_entity": { + "type": "object", + "properties": { + "id": {"type": "string", "minLength": 1}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + } + }, + "required": ["id", "name", "description"], + "additionalProperties": false + }, + + "agent_role": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^agent-role-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"const": "agent-role"}, + "archimate_type": {"const": "application-component"}, + "assigned_functions": { + "type": "array", + "items": {"type": "string", "pattern": "^function-[a-z0-9-]+$"} + } + }, + "required": ["id", "name", "description", "type", "archimate_type", "_archimate_compatibility"], + "additionalProperties": false + }, + + "agent_aware_function": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^function-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"enum": ["agent-aware-function", "agent-aware-loader-function", "agent-aware-application-function"]}, + "archimate_type": {"const": "application-function"}, + "realized_by_tools": { + "type": "array", + "items": {"type": "string", "pattern": "^tool-[a-z0-9-]+$"} + }, + "served_by_tools": { + "type": "array", + "items": {"type": "string", "pattern": "^tool-[a-z0-9-]+$"} + }, + "reads_io_objects": { + "type": "array", + "items": {"type": "string", "pattern": "^io-[a-z0-9-]+$"} + }, + "writes_io_objects": { + "type": "array", + "items": {"type": "string", "pattern": "^io-[a-z0-9-]+$"} + }, + "processing_steps": { + "type": "array", + "items": {"type": "string"} + } + }, + "required": ["id", "name", "description", "type", "archimate_type", "_archimate_compatibility"], + "additionalProperties": false + }, + + "agent_aware_application": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^app-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"const": "agent-aware-application"}, + "archimate_type": {"const": "application-component"}, + "assigned_functions": { + "type": "array", + "items": {"type": "string", "pattern": "^function-[a-z0-9-]+$"}, + "minItems": 1 + }, + "domain_models": { + "type": "array", + "items": {"type": "string"} + }, + "scenarios": { + "type": "array", + "items": {"type": "string"} + } + }, + "required": ["id", "name", "description", "type", "archimate_type", "assigned_functions", "_archimate_compatibility"], + "additionalProperties": false + }, + + "tool": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^tool-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"const": "tool"}, + "archimate_type": {"const": "technology-service"}, + "capabilities": { + "type": "array", + "items": {"type": "string"}, + "minItems": 1 + }, + "output_formats": { + "type": "array", + "items": {"type": "string", "enum": ["markdown", "json", "yaml", "excalidraw", "openapi", "json-schema", "xml"]} + } + }, + "required": ["id", "name", "description", "type", "archimate_type", "capabilities", "_archimate_compatibility"], + "additionalProperties": false + }, + + "io_object": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^io-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^(\\./.+|https?://.+|\\{[^}]+\\}/.+)$"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"const": "io-object"}, + "archimate_type": {"const": "data-object"}, + "format": { + "type": "string", + "enum": ["markdown", "json", "yaml", "excalidraw", "openapi", "json-schema", "xml", "csv", "text"] + }, + "schema_reference": {"type": "string"} + }, + "required": ["id", "name", "description", "type", "archimate_type", "format", "_archimate_compatibility"], + "additionalProperties": false + }, + + "context": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^context-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"const": "context"}, + "archimate_type": {"const": "application-service"}, + "context_type": { + "type": "string", + "enum": ["agent-role", "application", "core-framework"] + }, + "estimated_size_kb": {"type": "number", "minimum": 0} + }, + "required": ["id", "name", "description", "type", "archimate_type", "context_type", "estimated_size_kb", "_archimate_compatibility"], + "additionalProperties": false + }, + + "agent_role_context": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^context-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"const": "context"}, + "archimate_type": {"const": "application-service"}, + "context_type": {"const": "agent-role"}, + "estimated_size_kb": {"type": "number", "minimum": 0}, + "triggers_agent_role": { + "type": "string", + "pattern": "^agent-role-[a-z0-9-]+$" + } + }, + "required": ["id", "name", "description", "type", "archimate_type", "context_type", "estimated_size_kb", "triggers_agent_role", "_archimate_compatibility"], + "additionalProperties": false + }, + + "application_context": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^context-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"const": "context"}, + "archimate_type": {"const": "application-service"}, + "context_type": {"const": "application"}, + "estimated_size_kb": {"type": "number", "minimum": 0}, + "triggers_application": { + "type": "string", + "pattern": "^app-[a-z0-9-]+$" + } + }, + "required": ["id", "name", "description", "type", "archimate_type", "context_type", "estimated_size_kb", "triggers_application", "_archimate_compatibility"], + "additionalProperties": false + }, + + "core_framework_context": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^context-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"const": "context"}, + "archimate_type": {"const": "application-service"}, + "context_type": {"const": "core-framework"}, + "estimated_size_kb": {"type": "number", "minimum": 0}, + "triggers_loader": { + "type": "string", + "pattern": "^loader-[a-z0-9-]+$" + } + }, + "required": ["id", "name", "description", "type", "archimate_type", "context_type", "estimated_size_kb", "triggers_loader", "_archimate_compatibility"], + "additionalProperties": false + }, + + "core_framework_loader": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^loader-[a-z0-9-]+$"}, + "name": {"type": "string", "minLength": 1}, + "description": {"type": "string"}, + "version": {"type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$"}, + "location": {"type": "string", "pattern": "^\\./.+"}, + "context_size_kb": {"type": "number", "minimum": 0}, + "_archimate_compatibility": { + "type": "object", + "properties": { + "element_category": {"type": "string", "enum": ["active", "behavior", "passive", "structural"]}, + "layer_type": {"type": "string", "enum": ["business", "application", "technology", "strategy"]}, + "valid_relationships": { + "type": "array", + "items": {"type": "string", "enum": ["composition", "aggregation", "assignment", "realization", "serving", "access", "influence", "association", "triggering", "flow"]} + } + } + }, + "type": {"const": "core-framework-loader"}, + "archimate_type": {"const": "application-component"}, + "assigned_functions": { + "type": "array", + "items": {"type": "string", "pattern": "^function-[a-z0-9-]+$"} + }, + "initialization_order": { + "type": "array", + "items": {"type": "string"} + } + }, + "required": ["id", "name", "description", "type", "archimate_type", "_archimate_compatibility"], + "additionalProperties": false + }, + + "relationship": { + "type": "object", + "properties": { + "id": {"type": "string", "pattern": "^rel-[a-z0-9-]+$"}, + "type": { + "type": "string", + "enum": ["triggers", "assignment", "serving", "access"] + }, + "source": {"type": "string"}, + "target": {"type": "string"}, + "properties": { + "type": "object", + "properties": { + "relationship_context": { + "type": "string", + "enum": ["context-trigger", "function-assignment", "tool-serving", "data-flow"] + }, + "access_type": {"type": "string", "enum": ["read", "write"]} + } + } + }, + "required": ["id", "type", "source", "target"], + "additionalProperties": false + } + }, + + "type": "object", + "properties": { + "metadata": {"$ref": "#/definitions/registry_metadata"}, + "entities": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": {"type": "string"} + }, + "required": ["type"], + "allOf": [ + { + "if": {"properties": {"type": {"const": "agent-role"}}}, + "then": {"$ref": "#/definitions/agent_role"} + }, + { + "if": {"properties": {"type": {"const": "agent-aware-loader-function"}}}, + "then": {"$ref": "#/definitions/agent_aware_function"} + }, + { + "if": {"properties": {"type": {"const": "agent-aware-application-function"}}}, + "then": {"$ref": "#/definitions/agent_aware_function"} + }, + { + "if": {"properties": {"type": {"const": "agent-aware-application"}}}, + "then": {"$ref": "#/definitions/agent_aware_application"} + }, + { + "if": {"properties": {"type": {"const": "tool"}}}, + "then": {"$ref": "#/definitions/tool"} + }, + { + "if": {"properties": {"type": {"const": "io-object"}}}, + "then": {"$ref": "#/definitions/io_object"} + }, + { + "if": { + "allOf": [ + {"properties": {"type": {"const": "context"}}}, + {"properties": {"context_type": {"const": "agent-role"}}} + ] + }, + "then": {"$ref": "#/definitions/agent_role_context"} + }, + { + "if": { + "allOf": [ + {"properties": {"type": {"const": "context"}}}, + {"properties": {"context_type": {"const": "application"}}} + ] + }, + "then": {"$ref": "#/definitions/application_context"} + }, + { + "if": { + "allOf": [ + {"properties": {"type": {"const": "context"}}}, + {"properties": {"context_type": {"const": "core-framework"}}} + ] + }, + "then": {"$ref": "#/definitions/core_framework_context"} + }, + { + "if": {"properties": {"type": {"const": "core-framework-loader"}}}, + "then": {"$ref": "#/definitions/core_framework_loader"} + } + ] + } + }, + "relationships": { + "type": "array", + "items": {"$ref": "#/definitions/relationship"} + } + }, + "required": ["metadata", "entities", "relationships"], + "additionalProperties": false +} \ No newline at end of file diff --git a/framework-core/archimate-schema.json b/framework-core/archimate-schema.json new file mode 100644 index 0000000..f37b486 --- /dev/null +++ b/framework-core/archimate-schema.json @@ -0,0 +1,395 @@ +{ + "meta": { + "registry_schema_version": "1.0.0", + "archimate_version": "3.1", + "agent_aware": true, + "context_optimized": true, + "tool_agnostic": true + }, + + "core": { + "element_catalog": { + "business": { + "active": { + "business-actor": { + "agent_role": "human|system", + "semantic_type": "actor", + "generation_target": ["entity", "user_role"] + }, + "business-role": { + "agent_role": "responsibility", + "semantic_type": "role", + "generation_target": ["permission", "authorization"] + }, + "business-collaboration": { + "agent_role": "team", + "semantic_type": "group", + "generation_target": ["team", "organization"] + } + }, + "behavior": { + "business-process": { + "agent_role": "workflow", + "semantic_type": "process", + "generation_target": ["workflow", "pipeline", "orchestration"] + }, + "business-function": { + "agent_role": "capability", + "semantic_type": "function", + "generation_target": ["service", "capability", "feature"] + }, + "business-interaction": { + "agent_role": "communication", + "semantic_type": "interaction", + "generation_target": ["api_call", "message", "event"] + }, + "business-event": { + "agent_role": "trigger", + "semantic_type": "event", + "generation_target": ["event", "trigger", "notification"] + }, + "business-service": { + "agent_role": "interface", + "semantic_type": "service", + "generation_target": ["api", "service", "endpoint"] + } + }, + "passive": { + "business-object": { + "agent_role": "data", + "semantic_type": "data", + "generation_target": ["entity", "model", "schema"] + }, + "contract": { + "agent_role": "agreement", + "semantic_type": "contract", + "generation_target": ["contract", "sla", "policy"] + }, + "representation": { + "agent_role": "information", + "semantic_type": "document", + "generation_target": ["document", "report", "view"] + } + } + }, + "application": { + "active": { + "application-component": { + "agent_role": "system|agent", + "semantic_type": "component", + "generation_target": ["service", "component", "agent", "microservice"] + }, + "application-collaboration": { + "agent_role": "integration", + "semantic_type": "collaboration", + "generation_target": ["integration", "orchestration", "composition"] + } + }, + "behavior": { + "application-function": { + "agent_role": "processing", + "semantic_type": "function", + "generation_target": ["function", "operation", "method"] + }, + "application-interaction": { + "agent_role": "api_call", + "semantic_type": "interaction", + "generation_target": ["api_operation", "rpc_call", "interaction"] + }, + "application-process": { + "agent_role": "automation", + "semantic_type": "process", + "generation_target": ["workflow", "automation", "pipeline"] + }, + "application-event": { + "agent_role": "signal", + "semantic_type": "event", + "generation_target": ["event", "message", "signal"] + }, + "application-service": { + "agent_role": "endpoint", + "semantic_type": "service", + "generation_target": ["api_endpoint", "service", "interface"] + } + }, + "passive": { + "data-object": { + "agent_role": "data_structure", + "semantic_type": "data", + "generation_target": ["schema", "model", "entity", "table"] + } + }, + "structural": { + "application-interface": { + "agent_role": "contract", + "semantic_type": "interface", + "generation_target": ["api_spec", "contract", "protocol"] + } + } + }, + "technology": { + "active": { + "node": { + "agent_role": "infrastructure", + "semantic_type": "infrastructure", + "generation_target": ["server", "container", "vm", "instance"] + }, + "device": { + "agent_role": "hardware", + "semantic_type": "device", + "generation_target": ["device", "hardware", "sensor"] + }, + "system-software": { + "agent_role": "platform", + "semantic_type": "platform", + "generation_target": ["platform", "runtime", "os", "middleware"] + } + }, + "behavior": { + "technology-function": { + "agent_role": "operation", + "semantic_type": "function", + "generation_target": ["operation", "system_call", "procedure"] + }, + "technology-process": { + "agent_role": "procedure", + "semantic_type": "process", + "generation_target": ["process", "daemon", "service"] + }, + "technology-interaction": { + "agent_role": "protocol", + "semantic_type": "interaction", + "generation_target": ["protocol", "communication", "transport"] + }, + "technology-event": { + "agent_role": "system_event", + "semantic_type": "event", + "generation_target": ["system_event", "alert", "metric"] + }, + "technology-service": { + "agent_role": "infrastructure_service", + "semantic_type": "service", + "generation_target": ["infra_service", "platform_service"] + } + }, + "passive": { + "artifact": { + "agent_role": "deployable", + "semantic_type": "artifact", + "generation_target": ["artifact", "package", "deployment"] + } + }, + "structural": { + "technology-interface": { + "agent_role": "connection", + "semantic_type": "interface", + "generation_target": ["port", "endpoint", "connection"] + }, + "path": { + "agent_role": "channel", + "semantic_type": "path", + "generation_target": ["channel", "queue", "stream"] + }, + "communication-network": { + "agent_role": "network", + "semantic_type": "network", + "generation_target": ["network", "subnet", "vpc"] + } + } + } + }, + + "relationship_catalog": { + "structural": { + "composition": { + "semantic": "contains", + "agent_meaning": "owns_lifecycle", + "directionality": "parent_to_child", + "cardinality": "one_to_many" + }, + "aggregation": { + "semantic": "groups", + "agent_meaning": "logical_grouping", + "directionality": "parent_to_child", + "cardinality": "one_to_many" + }, + "assignment": { + "semantic": "allocated_to", + "agent_meaning": "responsibility", + "directionality": "source_to_target", + "cardinality": "many_to_many" + }, + "realization": { + "semantic": "implements", + "agent_meaning": "concrete_implementation", + "directionality": "concrete_to_abstract", + "cardinality": "many_to_one" + } + }, + "dependency": { + "serving": { + "semantic": "provides_to", + "agent_meaning": "service_dependency", + "directionality": "provider_to_consumer", + "cardinality": "many_to_many" + }, + "access": { + "semantic": "reads_writes", + "agent_meaning": "data_access", + "directionality": "accessor_to_data", + "cardinality": "many_to_many" + }, + "influence": { + "semantic": "affects", + "agent_meaning": "indirect_impact", + "directionality": "influencer_to_influenced", + "cardinality": "many_to_many" + }, + "association": { + "semantic": "related_to", + "agent_meaning": "loose_coupling", + "directionality": "bidirectional", + "cardinality": "many_to_many" + } + }, + "dynamic": { + "triggering": { + "semantic": "triggers", + "agent_meaning": "causal_flow", + "directionality": "trigger_to_triggered", + "cardinality": "one_to_many" + }, + "flow": { + "semantic": "transfers", + "agent_meaning": "data_flow", + "directionality": "source_to_sink", + "cardinality": "many_to_many" + } + } + }, + + "validation_rules": { + "metamodel_compliance": { + "valid_element_relationships": { + "business-actor": ["assignment", "composition", "aggregation", "association"], + "application-component": ["serving", "composition", "realization", "access"], + "data-object": ["access", "composition", "flow", "association"] + }, + "layer_constraints": { + "cross_layer_allowed": ["realization", "serving", "access"], + "same_layer_preferred": ["composition", "aggregation", "association"] + } + }, + "agent_workflow_validation": { + "required_elements": ["input", "processing", "output"], + "required_relationships": ["triggering", "flow"], + "boundary_definition": ["application-interface", "business-service"] + } + }, + + "agent_bindings": { + "agent_to_archimate": { + "domain-analyst-agent": "application-component", + "archimate-modeller-agent": "application-component", + "api-generator-agent": "application-component", + "schema-validator-agent": "application-component", + "test-agent": "application-component" + }, + "archimate_to_generation": { + "data-object": ["schema", "table", "api_model"], + "application-service": ["api_endpoint", "microservice", "function"], + "application-interface": ["api_spec", "contract", "schema"], + "business-process": ["workflow", "pipeline", "orchestration"], + "business-object": ["entity", "aggregate", "value_object"] + } + }, + + "generation_patterns": { + "api_from_model": { + "trigger_elements": ["application-service", "data-object"], + "output_format": "openapi_3.0", + "element_mappings": { + "application-service": "api_operation", + "data-object": "schema_definition", + "application-interface": "api_contract" + } + }, + "schema_from_model": { + "trigger_elements": ["data-object", "composition", "access"], + "output_format": ["json_schema", "sql_ddl"], + "element_mappings": { + "data-object": ["table", "entity"], + "composition": ["foreign_key", "nested_object"], + "access": ["index", "query_pattern"] + } + }, + "workflow_from_model": { + "trigger_elements": ["business-process", "triggering", "flow"], + "output_format": ["workflow_yaml", "pipeline_config"], + "element_mappings": { + "business-process": "workflow_step", + "triggering": "dependency", + "flow": "data_transfer" + } + } + } + }, + + "compliance": { + "opengroup_mapping": { + "xml_namespace": "http://www.opengroup.org/xsd/archimate/3.0/", + "schema_location": "http://www.opengroup.org/xsd/archimate/3.1/archimate3_Diagram.xsd", + "element_mapping": { + "business-actor": "BusinessActor", + "business-role": "BusinessRole", + "business-process": "BusinessProcess", + "application-component": "ApplicationComponent", + "application-service": "ApplicationService", + "data-object": "DataObject", + "node": "Node", + "device": "Device" + }, + "relationship_mapping": { + "composition": "Composition", + "aggregation": "Aggregation", + "assignment": "Assignment", + "realization": "Realization", + "serving": "Serving", + "access": "Access", + "influence": "Influence", + "association": "Association", + "triggering": "Triggering", + "flow": "Flow" + } + } + }, + + "context_management": { + "loading_strategy": { + "essential": ["element_catalog", "relationship_catalog", "agent_bindings"], + "on_demand": ["generation_patterns", "validation_rules"], + "export_only": ["compliance.opengroup_mapping"] + }, + "size_limits": { + "max_elements_per_model": 50, + "max_relationships_per_model": 100, + "max_views_per_model": 5, + "essential_context_size": "~5KB", + "full_context_size": "~25KB" + } + }, + + "tool_adapter_interface": { + "required_methods": [ + "parse_visual_model(input) -> abstract_model", + "render_visual_model(abstract_model) -> tool_format", + "validate_visual_syntax(input) -> validation_result" + ], + "visual_abstractions": { + "shape_types": ["rectangle", "rounded_rectangle", "ellipse", "diamond", "line"], + "color_layers": ["business", "application", "technology", "strategy"], + "text_extraction": "element_name_and_type", + "relationship_detection": "line_connections_and_styles" + } + } +} \ No newline at end of file diff --git a/framework-core/integration-tests.js b/framework-core/integration-tests.js new file mode 100644 index 0000000..75e56e6 --- /dev/null +++ b/framework-core/integration-tests.js @@ -0,0 +1,475 @@ +/** + * INTEGRATION-TESTS.JS + * Integration test framework for FunctionDependencyChainLoader + * Version: 0.1.0 + * Date: 2025-09-07 + * + * EXECUTION MODES: + * - Programmatic API: const results = await runIntegrationTests() + * - CLI: node integration-tests.js + * - Git hooks: npm run test:integration + * - Claude Code: "Run the integration tests and show me the results" + */ + +const fs = require('fs'); +const path = require('path'); +const { execSync } = require('child_process'); + +// Dependency imports (will be checked in initialize) +let FunctionDependencyChainLoader, loadRegistry; + +class IntegrationTestFramework { + constructor() { + this.tests = []; + this.results = []; + this.registry = null; + this.initializationChecks = []; + } + + // Test registration method + addTest(name, description, testFn) { + this.tests.push({ + name, + description, + testFn, + status: 'pending' + }); + } + + // Comprehensive initialization with dependency checks + async initialize() { + console.log('🔍 Running initialization checks...\n'); + + // Check 1: Directory Context + const directoryCheck = this.checkDirectory(); + if (!directoryCheck.success) { + console.error('❌ Directory Check Failed:', directoryCheck.error); + return false; + } + console.log('✅ Directory Check: In framework-core directory'); + + // Check 2: File Discovery + const fileCheck = this.checkRequiredFiles(); + if (!fileCheck.success) { + console.error('❌ File Discovery Failed:', fileCheck.error); + return false; + } + console.log('✅ File Discovery: All required files found'); + + // Check 3: Node Dependencies + const dependencyCheck = this.checkNodeDependencies(); + if (!dependencyCheck.success) { + console.error('❌ Dependency Check Failed:', dependencyCheck.error); + return false; + } + console.log('✅ Dependency Check: All dependencies available'); + + // Load modules after dependency check + try { + FunctionDependencyChainLoader = require('./FunctionDependencyChainLoader'); + const usageModule = require('./usage'); + loadRegistry = usageModule.loadRegistry; + } catch (error) { + console.error('❌ Module Loading Failed:', error.message); + return false; + } + console.log('✅ Module Loading: Successfully loaded required modules'); + + // Load registry + try { + this.registry = loadRegistry(); + console.log('✅ Registry Loading: Successfully loaded registry'); + } catch (error) { + console.error('❌ Registry Loading Failed:', error.message); + return false; + } + + console.log('\n🎯 All initialization checks passed!\n'); + return true; + } + + // Check if we're in the right directory + checkDirectory() { + const currentDir = process.cwd(); + const expectedDir = 'framework-core'; + + if (!currentDir.endsWith(expectedDir)) { + return { + success: false, + error: `Must be run from framework-core directory.\nCurrent: ${currentDir}\nPlease run: cd /Users/timothygalvin/_dev/agileintegrator/agent-aware-architecture/framework-core` + }; + } + + return { success: true }; + } + + // Check for required files + checkRequiredFiles() { + const requiredFiles = [ + 'FunctionDependencyChainLoader.js', + 'usage.js', + 'AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml', + 'package.json' + ]; + + const missingFiles = []; + + for (const file of requiredFiles) { + if (!fs.existsSync(path.join(process.cwd(), file))) { + missingFiles.push(file); + } + } + + if (missingFiles.length > 0) { + return { + success: false, + error: `Missing required files: ${missingFiles.join(', ')}` + }; + } + + return { success: true }; + } + + // Check and install Node dependencies if needed + checkNodeDependencies() { + const requiredPackages = ['js-yaml']; + const missingPackages = []; + + for (const pkg of requiredPackages) { + try { + require.resolve(pkg); + } catch (error) { + missingPackages.push(pkg); + } + } + + if (missingPackages.length > 0) { + console.log(`📦 Missing packages detected: ${missingPackages.join(', ')}`); + console.log('🔧 Attempting to install dependencies...'); + + try { + execSync('npm install', { + stdio: 'pipe', + cwd: process.cwd() + }); + console.log('✅ Dependencies installed successfully'); + + // Verify installation + for (const pkg of requiredPackages) { + try { + require.resolve(pkg); + } catch (error) { + return { + success: false, + error: `Failed to install ${pkg}: ${error.message}` + }; + } + } + + } catch (error) { + return { + success: false, + error: `npm install failed: ${error.message}` + }; + } + } + + return { success: true }; + } + + // Run all registered tests + async runAll() { + if (!this.registry) { + const initialized = await this.initialize(); + if (!initialized) return this.results; + } + + console.log(`\n🧪 Running ${this.tests.length} integration tests...\n`); + + for (const test of this.tests) { + console.log(`📋 ${test.name}: ${test.description}`); + + try { + const startTime = Date.now(); + const result = await test.testFn(this.registry); + const duration = Date.now() - startTime; + + const testResult = { + name: test.name, + status: 'PASS', + duration: `${duration}ms`, + result: result, + error: null + }; + + this.results.push(testResult); + console.log(`✅ PASS (${duration}ms)`); + + if (result.summary) { + console.log(` Context: ${result.summary.contextUsed}KB used, ${result.summary.contextRemaining}KB remaining`); + if (result.summary.warnings.length > 0) { + console.log(` Warnings: ${result.summary.warnings.length}`); + } + } + + } catch (error) { + const testResult = { + name: test.name, + status: 'FAIL', + duration: 'N/A', + result: null, + error: error.message + }; + + this.results.push(testResult); + console.log(`❌ FAIL: ${error.message}`); + } + + console.log(''); // Blank line between tests + } + + this.printSummary(); + return this.results; + } + + // Print test run summary + printSummary() { + const passed = this.results.filter(r => r.status === 'PASS').length; + const failed = this.results.filter(r => r.status === 'FAIL').length; + + console.log('=' .repeat(60)); + console.log(`📊 Integration Test Summary:`); + console.log(` Tests Run: ${this.results.length}`); + console.log(` Passed: ${passed}`); + console.log(` Failed: ${failed}`); + console.log(` Status: ${failed === 0 ? '✅ ALL PASS' : '❌ FAILURES'}`); + console.log('=' .repeat(60)); + } + + // Get results in JSON format for programmatic use + getResults() { + return { + summary: { + total: this.results.length, + passed: this.results.filter(r => r.status === 'PASS').length, + failed: this.results.filter(r => r.status === 'FAIL').length, + success: this.results.filter(r => r.status === 'FAIL').length === 0 + }, + details: this.results + }; + } +} + +// ===================================== +// INTEGRATION TEST DEFINITIONS +// ===================================== + +const framework = new IntegrationTestFramework(); + +// Test 1: Bootstrap Context Simulation +framework.addTest( + 'bootstrap-context-simulation', + 'Simulate bootstrap Phase 3 context conditions', + async (registry) => { + const loader = FunctionDependencyChainLoader.createForBootstrap(registry, 200, 37); + + // Verify context budget calculation + const expectedBudget = 200 - 37 - 50; // 113KB + if (loader.contextBudgetKb !== expectedBudget) { + throw new Error(`Expected budget ${expectedBudget}KB, got ${loader.contextBudgetKb}KB`); + } + + // Verify starting context + if (loader.currentContextKb !== 37) { + throw new Error(`Expected starting context 37KB, got ${loader.currentContextKb}KB`); + } + + return { + budgetKb: loader.contextBudgetKb, + startingContextKb: loader.currentContextKb, + safetyMarginKb: 50 + }; + } +); + +// Test 2: Domain Analyst Agent Role Loading +framework.addTest( + 'domain-analyst-role-loading', + 'Load Domain Analyst agent role with all dependencies', + async (registry) => { + const loader = FunctionDependencyChainLoader.createForBootstrap(registry, 200, 37); + + // Find the role + const role = registry.entities.find(e => + e.id === 'agent-role-domain-analyst' && e.type === 'agent-role' + ); + + if (!role) { + throw new Error('Domain Analyst role not found in registry'); + } + + // Load all assigned functions + const results = []; + for (const functionId of role.assigned_functions || []) { + const result = await loader.loadFunctionWithDependencies(functionId); + results.push(result); + } + + const summary = loader.getLoadedSummary(); + + return { + role: role.name, + functionsLoaded: role.assigned_functions?.length || 0, + loadResults: results, + summary: summary + }; + } +); + +// Test 3: ArchiMate Modeller Agent Role Loading +framework.addTest( + 'archimate-modeller-role-loading', + 'Load ArchiMate Modeller agent role with all dependencies', + async (registry) => { + const loader = FunctionDependencyChainLoader.createForBootstrap(registry, 200, 37); + + // Find the role + const role = registry.entities.find(e => + e.id === 'agent-role-archimate-modeller' && e.type === 'agent-role' + ); + + if (!role) { + throw new Error('ArchiMate Modeller role not found in registry'); + } + + // Load all assigned functions + const results = []; + for (const functionId of role.assigned_functions || []) { + const result = await loader.loadFunctionWithDependencies(functionId); + results.push(result); + } + + const summary = loader.getLoadedSummary(); + + return { + role: role.name, + functionsLoaded: role.assigned_functions?.length || 0, + loadResults: results, + summary: summary + }; + } +); + +// Test 4: Context Budget Stress Test +framework.addTest( + 'context-budget-stress-test', + 'Test context budget management under load', + async (registry) => { + const loader = FunctionDependencyChainLoader.createForBootstrap(registry, 150, 37); // Smaller budget + + // Try to load both roles sequentially + const roles = ['agent-role-domain-analyst', 'agent-role-archimate-modeller']; + const results = []; + + for (const roleId of roles) { + const role = registry.entities.find(e => e.id === roleId && e.type === 'agent-role'); + + for (const functionId of role.assigned_functions || []) { + try { + const result = await loader.loadFunctionWithDependencies(functionId); + results.push({ functionId, status: 'success', result }); + } catch (error) { + results.push({ functionId, status: 'error', error: error.message }); + } + } + } + + const summary = loader.getLoadedSummary(); + + return { + totalBudget: loader.contextBudgetKb, + results: results, + summary: summary, + budgetExceeded: summary.contextUsed > loader.contextBudgetKb + }; + } +); + +// Test 5: Missing Dependencies Handling +framework.addTest( + 'missing-dependencies-handling', + 'Test graceful handling of missing dependencies', + async (registry) => { + const loader = new FunctionDependencyChainLoader(registry, 100); + + // Create a mock function with missing dependencies + const mockFunction = { + id: 'test-function', + reads_io_objects: ['existing-io', 'missing-io'], + writes_io_objects: ['existing-io'], + served_by_tools: ['existing-tool', 'missing-tool'] + }; + + // Try to load dependencies + let warnings = 0; + let errors = 0; + + try { + await loader.loadFunctionDependencies(mockFunction); + } catch (error) { + errors++; + } + + const summary = loader.getLoadedSummary(); + warnings = summary.warnings.length; + + return { + warningsGenerated: warnings, + errorsThrown: errors, + summary: summary, + gracefulDegradation: warnings > 0 && errors === 0 // Tools warn, IO objects error + }; + } +); + +// ===================================== +// EXECUTION INTERFACES +// ===================================== + +// Programmatic API +async function runIntegrationTests() { + return await framework.runAll(); +} + +// CLI Interface +async function runCLI() { + const args = process.argv.slice(2); + + if (args.length > 0 && args[0] === '--json') { + // JSON output for programmatic consumption + await framework.runAll(); + console.log(JSON.stringify(framework.getResults(), null, 2)); + } else { + // Human-readable output + await framework.runAll(); + } + + // Exit with appropriate code + const results = framework.getResults(); + process.exit(results.summary.success ? 0 : 1); +} + +// Export for module usage +module.exports = { + runIntegrationTests, + IntegrationTestFramework, + framework // Allow adding custom tests +}; + +// Run CLI if called directly +if (require.main === module) { + runCLI().catch(error => { + console.error('❌ Integration test framework error:', error.message); + process.exit(1); + }); +} \ No newline at end of file diff --git a/framework-core/meta-model-compliance-test.js b/framework-core/meta-model-compliance-test.js new file mode 100644 index 0000000..226a30c --- /dev/null +++ b/framework-core/meta-model-compliance-test.js @@ -0,0 +1,312 @@ +/** + * META-MODEL-COMPLIANCE-TEST.JS + * Tests YAML registry compliance with META-MODEL conceptual definitions + * Verifies logical layer implements conceptual layer requirements + * Version: 1.0.0 + */ + +const fs = require('fs'); +const yaml = require('js-yaml'); + +class MetaModelComplianceTest { + constructor() { + this.startTime = new Date().toISOString(); + this.results = { + overall_status: "PENDING", + tests: [], + compliance_summary: { + conceptual_coverage: 0, + missing_implementations: [], + extra_implementations: [], + compliance_percentage: 0 + } + }; + + this.loadFiles(); + } + + loadFiles() { + try { + // Load registry + const registryPath = './AGENT-AWARE-ARCHITECTURE-REGISTRY.yaml'; + this.registry = yaml.load(fs.readFileSync(registryPath, 'utf8')); + + // Load meta-model (simple text parsing for key concepts) + const metaModelPath = './META-MODEL.md'; + this.metaModel = fs.readFileSync(metaModelPath, 'utf8'); + + console.log("✅ Files loaded successfully"); + } catch (error) { + console.error("❌ Failed to load files:", error.message); + process.exit(1); + } + } + + // Test 1: Core Capabilities Coverage + testCoreCoverageCompliance() { + const test = { + test_name: "core_capabilities_coverage", + status: "PENDING", + details: {}, + timestamp: new Date().toISOString() + }; + + // Meta-model defines these core capabilities (parsed from AGENT-CAPABILITIES.md references) + const requiredCapabilities = [ + "model-interpretation", + "artifact-generation", + "model-validation", + "domain-translation" + ]; + + // Check if registry implements functions for each capability + const registryFunctions = this.registry.entities + .filter(e => e.type === "agent-aware-function") + .map(f => f.id); + + const capabilityMapping = { + "model-interpretation": ["function-load-meta-model", "function-load-archimate-schema"], + "artifact-generation": ["function-synthesize-domain-objects", "function-generate-api-specs"], + "model-validation": ["function-validate-archimate-model"], + "domain-translation": [] // May not be implemented yet + }; + + let implementedCapabilities = 0; + const missing = []; + + requiredCapabilities.forEach(capability => { + const requiredFunctions = capabilityMapping[capability]; + const hasImplementation = requiredFunctions.some(funcId => + registryFunctions.includes(funcId) + ); + + if (hasImplementation || requiredFunctions.length === 0) { + implementedCapabilities++; + } else { + missing.push(capability); + } + }); + + test.status = missing.length === 0 ? "PASS" : "WARNING"; + test.details = { + required_capabilities: requiredCapabilities.length, + implemented_capabilities: implementedCapabilities, + missing_capabilities: missing, + coverage_percentage: (implementedCapabilities / requiredCapabilities.length) * 100 + }; + + this.results.tests.push(test); + return test.status === "PASS"; + } + + // Test 2: Agent Role Definitions + testAgentRoleCompliance() { + const test = { + test_name: "agent_role_definitions", + status: "PENDING", + details: {}, + timestamp: new Date().toISOString() + }; + + // Meta-model expects these core agent patterns + const expectedAgentPatterns = [ + "domain-analyst", // Business requirement analysis + "object-synthesis", // Domain object generation + "archimate-modeller" // Model creation/validation + ]; + + const registryAgents = this.registry.entities + .filter(e => e.type === "agent-role") + .map(a => a.id.replace("agent-role-", "")); + + const missingAgents = expectedAgentPatterns.filter(pattern => + !registryAgents.some(agent => agent.includes(pattern)) + ); + + const extraAgents = registryAgents.filter(agent => + !expectedAgentPatterns.some(pattern => agent.includes(pattern)) + ); + + test.status = missingAgents.length === 0 ? "PASS" : "FAIL"; + test.details = { + expected_patterns: expectedAgentPatterns, + found_agents: registryAgents, + missing_agents: missingAgents, + extra_agents: extraAgents + }; + + this.results.tests.push(test); + return test.status === "PASS"; + } + + // Test 3: ArchiMate Layer Compliance + testArchimateLayerCompliance() { + const test = { + test_name: "archimate_layer_compliance", + status: "PENDING", + details: {}, + timestamp: new Date().toISOString() + }; + + // Meta-model requires proper ArchiMate layer distribution + const layerDistribution = { + business: 0, + application: 0, + technology: 0, + strategy: 0 + }; + + this.registry.entities.forEach(entity => { + if (entity._archimate_compatibility?.layer_type) { + layerDistribution[entity._archimate_compatibility.layer_type]++; + } + }); + + // Meta-model expects at least some entities in each core layer + const hasBusinessLayer = layerDistribution.business > 0; + const hasApplicationLayer = layerDistribution.application > 0; + const hasTechnologyLayer = layerDistribution.technology > 0; + + const compliant = hasBusinessLayer && hasApplicationLayer && hasTechnologyLayer; + + test.status = compliant ? "PASS" : "FAIL"; + test.details = { + layer_distribution: layerDistribution, + has_business_layer: hasBusinessLayer, + has_application_layer: hasApplicationLayer, + has_technology_layer: hasTechnologyLayer, + compliance: compliant + }; + + this.results.tests.push(test); + return test.status === "PASS"; + } + + // Test 4: Framework Extension Points + testExtensionPointCompliance() { + const test = { + test_name: "extension_point_implementation", + status: "PENDING", + details: {}, + timestamp: new Date().toISOString() + }; + + // Meta-model defines extension patterns - check if registry supports them + const hasApplications = this.registry.entities.some(e => e.type === "agent-aware-application"); + const hasTools = this.registry.entities.some(e => e.type === "tool"); + const hasIOObjects = this.registry.entities.some(e => e.type === "io-object"); + + // Check if extension relationships exist + const hasToolRealization = this.registry.relationships.some(r => + r.properties?.relationship_context === "tool-serving" + ); + + const hasFunctionAssignment = this.registry.relationships.some(r => + r.properties?.relationship_context === "function-assignment" + ); + + const extensionPointsImplemented = [ + hasApplications, + hasTools, + hasIOObjects, + hasToolRealization, + hasFunctionAssignment + ].filter(Boolean).length; + + test.status = extensionPointsImplemented >= 4 ? "PASS" : "WARNING"; + test.details = { + has_applications: hasApplications, + has_tools: hasTools, + has_io_objects: hasIOObjects, + has_tool_realization: hasToolRealization, + has_function_assignment: hasFunctionAssignment, + extension_points_implemented: extensionPointsImplemented, + total_extension_points: 5 + }; + + this.results.tests.push(test); + return test.status === "PASS"; + } + + // Generate compliance summary + generateComplianceSummary() { + const totalTests = this.results.tests.length; + const passedTests = this.results.tests.filter(t => t.status === "PASS").length; + const warningTests = this.results.tests.filter(t => t.status === "WARNING").length; + + this.results.overall_status = passedTests === totalTests ? "PASS" : + (passedTests + warningTests === totalTests) ? "WARNING" : "FAIL"; + + this.results.compliance_summary.compliance_percentage = (passedTests / totalTests) * 100; + + return { + meta_model_compliance: this.results, + summary: { + conceptual_to_logical_alignment: this.results.overall_status, + tests_passed: passedTests, + tests_total: totalTests, + compliance_score: `${this.results.compliance_summary.compliance_percentage.toFixed(1)}%`, + recommendations: this.generateRecommendations() + } + }; + } + + generateRecommendations() { + const recommendations = []; + + this.results.tests.forEach(test => { + if (test.status === "FAIL") { + switch (test.test_name) { + case "agent_role_definitions": + recommendations.push("Add missing agent roles to implement core capabilities"); + break; + case "archimate_layer_compliance": + recommendations.push("Ensure entities are distributed across ArchiMate layers"); + break; + case "extension_point_implementation": + recommendations.push("Implement missing extension points for framework completeness"); + break; + } + } + }); + + if (recommendations.length === 0) { + recommendations.push("Registry successfully implements META-MODEL requirements"); + } + + return recommendations; + } + + // Run all tests + runAllTests() { + console.log("🧪 TESTING META-MODEL COMPLIANCE...\n"); + + const results = [ + this.testCoreCoverageCompliance(), + this.testAgentRoleCompliance(), + this.testArchimateLayerCompliance(), + this.testExtensionPointCompliance() + ]; + + const summary = this.generateComplianceSummary(); + + console.log(`\n🎯 META-MODEL COMPLIANCE: ${summary.summary.conceptual_to_logical_alignment}`); + console.log(`📊 Score: ${summary.summary.compliance_score}`); + console.log(`✅ Tests Passed: ${summary.summary.tests_passed}/${summary.summary.tests_total}`); + + return summary; + } +} + +// Execute tests when run directly +if (require.main === module) { + const testRunner = new MetaModelComplianceTest(); + const results = testRunner.runAllTests(); + + console.log("\n📋 DETAILED COMPLIANCE REPORT:"); + console.log(JSON.stringify(results, null, 2)); + + process.exit(results.summary.conceptual_to_logical_alignment === "FAIL" ? 1 : 0); +} + +module.exports = MetaModelComplianceTest; \ No newline at end of file diff --git a/framework-core/node_modules/.bin/browserslist b/framework-core/node_modules/.bin/browserslist new file mode 120000 index 0000000..3cd991b --- /dev/null +++ b/framework-core/node_modules/.bin/browserslist @@ -0,0 +1 @@ +../browserslist/cli.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/create-jest b/framework-core/node_modules/.bin/create-jest new file mode 120000 index 0000000..8d6301e --- /dev/null +++ b/framework-core/node_modules/.bin/create-jest @@ -0,0 +1 @@ +../create-jest/bin/create-jest.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/esparse b/framework-core/node_modules/.bin/esparse new file mode 120000 index 0000000..7423b18 --- /dev/null +++ b/framework-core/node_modules/.bin/esparse @@ -0,0 +1 @@ +../esprima/bin/esparse.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/esvalidate b/framework-core/node_modules/.bin/esvalidate new file mode 120000 index 0000000..16069ef --- /dev/null +++ b/framework-core/node_modules/.bin/esvalidate @@ -0,0 +1 @@ +../esprima/bin/esvalidate.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/import-local-fixture b/framework-core/node_modules/.bin/import-local-fixture new file mode 120000 index 0000000..ff4b104 --- /dev/null +++ b/framework-core/node_modules/.bin/import-local-fixture @@ -0,0 +1 @@ +../import-local/fixtures/cli.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/jest b/framework-core/node_modules/.bin/jest new file mode 120000 index 0000000..61c1861 --- /dev/null +++ b/framework-core/node_modules/.bin/jest @@ -0,0 +1 @@ +../jest/bin/jest.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/js-yaml b/framework-core/node_modules/.bin/js-yaml new file mode 120000 index 0000000..9dbd010 --- /dev/null +++ b/framework-core/node_modules/.bin/js-yaml @@ -0,0 +1 @@ +../js-yaml/bin/js-yaml.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/jsesc b/framework-core/node_modules/.bin/jsesc new file mode 120000 index 0000000..7237604 --- /dev/null +++ b/framework-core/node_modules/.bin/jsesc @@ -0,0 +1 @@ +../jsesc/bin/jsesc \ No newline at end of file diff --git a/framework-core/node_modules/.bin/json5 b/framework-core/node_modules/.bin/json5 new file mode 120000 index 0000000..217f379 --- /dev/null +++ b/framework-core/node_modules/.bin/json5 @@ -0,0 +1 @@ +../json5/lib/cli.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/node-which b/framework-core/node_modules/.bin/node-which new file mode 120000 index 0000000..6f8415e --- /dev/null +++ b/framework-core/node_modules/.bin/node-which @@ -0,0 +1 @@ +../which/bin/node-which \ No newline at end of file diff --git a/framework-core/node_modules/.bin/nodemon b/framework-core/node_modules/.bin/nodemon new file mode 120000 index 0000000..1056ddc --- /dev/null +++ b/framework-core/node_modules/.bin/nodemon @@ -0,0 +1 @@ +../nodemon/bin/nodemon.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/nodetouch b/framework-core/node_modules/.bin/nodetouch new file mode 120000 index 0000000..3409fdb --- /dev/null +++ b/framework-core/node_modules/.bin/nodetouch @@ -0,0 +1 @@ +../touch/bin/nodetouch.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/parser b/framework-core/node_modules/.bin/parser new file mode 120000 index 0000000..ce7bf97 --- /dev/null +++ b/framework-core/node_modules/.bin/parser @@ -0,0 +1 @@ +../@babel/parser/bin/babel-parser.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/resolve b/framework-core/node_modules/.bin/resolve new file mode 120000 index 0000000..b6afda6 --- /dev/null +++ b/framework-core/node_modules/.bin/resolve @@ -0,0 +1 @@ +../resolve/bin/resolve \ No newline at end of file diff --git a/framework-core/node_modules/.bin/semver b/framework-core/node_modules/.bin/semver new file mode 120000 index 0000000..5aaadf4 --- /dev/null +++ b/framework-core/node_modules/.bin/semver @@ -0,0 +1 @@ +../semver/bin/semver.js \ No newline at end of file diff --git a/framework-core/node_modules/.bin/update-browserslist-db b/framework-core/node_modules/.bin/update-browserslist-db new file mode 120000 index 0000000..b11e16f --- /dev/null +++ b/framework-core/node_modules/.bin/update-browserslist-db @@ -0,0 +1 @@ +../update-browserslist-db/cli.js \ No newline at end of file diff --git a/framework-core/node_modules/.package-lock.json b/framework-core/node_modules/.package-lock.json new file mode 100644 index 0000000..b8cd90e --- /dev/null +++ b/framework-core/node_modules/.package-lock.json @@ -0,0 +1,3942 @@ +{ + "name": "agent-aware-architecture-registry-tests", + "version": "1.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "24.3.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.1.tgz", + "integrity": "sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.10.0" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", + "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001737", + "electron-to-chromium": "^1.5.211", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001741", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz", + "integrity": "sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.214", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.214.tgz", + "integrity": "sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "ideallyInert": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.20.tgz", + "integrity": "sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemon": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", + "integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/framework-core/node_modules/@babel/code-frame/LICENSE b/framework-core/node_modules/@babel/code-frame/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/framework-core/node_modules/@babel/code-frame/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/framework-core/node_modules/@babel/code-frame/README.md b/framework-core/node_modules/@babel/code-frame/README.md new file mode 100644 index 0000000..7160755 --- /dev/null +++ b/framework-core/node_modules/@babel/code-frame/README.md @@ -0,0 +1,19 @@ +# @babel/code-frame + +> Generate errors that contain a code frame that point to source locations. + +See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/code-frame +``` + +or using yarn: + +```sh +yarn add @babel/code-frame --dev +``` diff --git a/framework-core/node_modules/@babel/code-frame/lib/index.js b/framework-core/node_modules/@babel/code-frame/lib/index.js new file mode 100644 index 0000000..b409f30 --- /dev/null +++ b/framework-core/node_modules/@babel/code-frame/lib/index.js @@ -0,0 +1,216 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var picocolors = require('picocolors'); +var jsTokens = require('js-tokens'); +var helperValidatorIdentifier = require('@babel/helper-validator-identifier'); + +function isColorSupported() { + return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported + ); +} +const compose = (f, g) => v => f(g(v)); +function buildDefs(colors) { + return { + keyword: colors.cyan, + capitalized: colors.yellow, + jsxIdentifier: colors.yellow, + punctuator: colors.yellow, + number: colors.magenta, + string: colors.green, + regex: colors.magenta, + comment: colors.gray, + invalid: compose(compose(colors.white, colors.bgRed), colors.bold), + gutter: colors.gray, + marker: compose(colors.red, colors.bold), + message: compose(colors.red, colors.bold), + reset: colors.reset + }; +} +const defsOn = buildDefs(picocolors.createColors(true)); +const defsOff = buildDefs(picocolors.createColors(false)); +function getDefs(enabled) { + return enabled ? defsOn : defsOff; +} + +const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); +const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; +const BRACKET = /^[()[\]{}]$/; +let tokenize; +{ + const JSX_TAG = /^[a-z][\w-]*$/i; + const getTokenType = function (token, offset, text) { + if (token.type === "name") { + if (helperValidatorIdentifier.isKeyword(token.value) || helperValidatorIdentifier.isStrictReservedWord(token.value, true) || sometimesKeywords.has(token.value)) { + return "keyword"; + } + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === " defs[type](str)).join("\n"); + } else { + highlighted += value; + } + } + return highlighted; +} + +let deprecationWarningShown = false; +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; +function getMarkerLines(loc, source, opts) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line; + const startColumn = startLoc.column; + const endLine = endLoc.line; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); + if (startLine === -1) { + start = 0; + } + if (endLine === -1) { + end = source.length; + } + const lineDiff = endLine - startLine; + const markerLines = {}; + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } + } + return { + start, + end, + markerLines + }; +} +function codeFrameColumns(rawLines, loc, opts = {}) { + const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode; + const defs = getDefs(shouldHighlight); + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end).length; + const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines; + let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { + const number = start + 1 + index; + const paddedNumber = ` ${number}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} |`; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; + if (hasMarker) { + let markerLine = ""; + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join(""); + if (lastMarkerLine && opts.message) { + markerLine += " " + defs.message(opts.message); + } + } + return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + } else { + return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`; + } + }).join("\n"); + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; + } + if (shouldHighlight) { + return defs.reset(frame); + } else { + return frame; + } +} +function index (rawLines, lineNumber, colNumber, opts = {}) { + if (!deprecationWarningShown) { + deprecationWarningShown = true; + const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); + } else { + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); + } + } + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns(rawLines, location, opts); +} + +exports.codeFrameColumns = codeFrameColumns; +exports.default = index; +exports.highlight = highlight; +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/code-frame/lib/index.js.map b/framework-core/node_modules/@babel/code-frame/lib/index.js.map new file mode 100644 index 0000000..46a181d --- /dev/null +++ b/framework-core/node_modules/@babel/code-frame/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/defs.ts","../src/highlight.ts","../src/index.ts"],"sourcesContent":["import picocolors, { createColors } from \"picocolors\";\nimport type { Colors, Formatter } from \"picocolors/types\";\n\nexport function isColorSupported() {\n return (\n // See https://github.com/alexeyraspopov/picocolors/issues/62\n typeof process === \"object\" &&\n (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\")\n ? false\n : picocolors.isColorSupported\n );\n}\n\nexport type InternalTokenType =\n | \"keyword\"\n | \"capitalized\"\n | \"jsxIdentifier\"\n | \"punctuator\"\n | \"number\"\n | \"string\"\n | \"regex\"\n | \"comment\"\n | \"invalid\";\n\ntype UITokens = \"gutter\" | \"marker\" | \"message\";\n\nexport type Defs = {\n [_ in InternalTokenType | UITokens | \"reset\"]: Formatter;\n};\n\nconst compose: (f: (gv: U) => V, g: (v: T) => U) => (v: T) => V =\n (f, g) => v =>\n f(g(v));\n\n/**\n * Styles for token types.\n */\nfunction buildDefs(colors: Colors): Defs {\n return {\n keyword: colors.cyan,\n capitalized: colors.yellow,\n jsxIdentifier: colors.yellow,\n punctuator: colors.yellow,\n number: colors.magenta,\n string: colors.green,\n regex: colors.magenta,\n comment: colors.gray,\n invalid: compose(compose(colors.white, colors.bgRed), colors.bold),\n\n gutter: colors.gray,\n marker: compose(colors.red, colors.bold),\n message: compose(colors.red, colors.bold),\n\n reset: colors.reset,\n };\n}\n\nconst defsOn = buildDefs(createColors(true));\nconst defsOff = buildDefs(createColors(false));\n\nexport function getDefs(enabled: boolean): Defs {\n return enabled ? defsOn : defsOff;\n}\n","import type { Token as JSToken, JSXToken } from \"js-tokens\";\nimport jsTokens from \"js-tokens\";\n\nimport {\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nimport { getDefs, type InternalTokenType } from \"./defs.ts\";\n\n/**\n * Names that are always allowed as identifiers, but also appear as keywords\n * within certain syntactic productions.\n *\n * https://tc39.es/ecma262/#sec-keywords-and-reserved-words\n *\n * `target` has been omitted since it is very likely going to be a false\n * positive.\n */\nconst sometimesKeywords = new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\n\ntype Token = {\n type: InternalTokenType | \"uncolored\";\n value: string;\n};\n\n/**\n * RegExp to test for newlines in terminal.\n */\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * RegExp to test for the three types of brackets.\n */\nconst BRACKET = /^[()[\\]{}]$/;\n\nlet tokenize: (\n text: string,\n) => Generator<{ type: InternalTokenType | \"uncolored\"; value: string }>;\n\nif (process.env.BABEL_8_BREAKING) {\n /**\n * Get the type of token, specifying punctuator type.\n */\n const getTokenType = function (\n token: JSToken | JSXToken,\n ): InternalTokenType | \"uncolored\" {\n if (token.type === \"IdentifierName\") {\n if (\n isKeyword(token.value) ||\n isStrictReservedWord(token.value, true) ||\n sometimesKeywords.has(token.value)\n ) {\n return \"keyword\";\n }\n\n if (token.value[0] !== token.value[0].toLowerCase()) {\n return \"capitalized\";\n }\n }\n\n if (token.type === \"Punctuator\" && BRACKET.test(token.value)) {\n return \"uncolored\";\n }\n\n if (token.type === \"Invalid\" && token.value === \"@\") {\n return \"punctuator\";\n }\n\n switch (token.type) {\n case \"NumericLiteral\":\n return \"number\";\n\n case \"StringLiteral\":\n case \"JSXString\":\n case \"NoSubstitutionTemplate\":\n return \"string\";\n\n case \"RegularExpressionLiteral\":\n return \"regex\";\n\n case \"Punctuator\":\n case \"JSXPunctuator\":\n return \"punctuator\";\n\n case \"MultiLineComment\":\n case \"SingleLineComment\":\n return \"comment\";\n\n case \"Invalid\":\n case \"JSXInvalid\":\n return \"invalid\";\n\n case \"JSXIdentifier\":\n return \"jsxIdentifier\";\n\n default:\n return \"uncolored\";\n }\n };\n\n /**\n * Turn a string of JS into an array of objects.\n */\n tokenize = function* (text: string): Generator {\n for (const token of jsTokens(text, { jsx: true })) {\n switch (token.type) {\n case \"TemplateHead\":\n yield { type: \"string\", value: token.value.slice(0, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateMiddle\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateTail\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1) };\n break;\n\n default:\n yield {\n type: getTokenType(token),\n value: token.value,\n };\n }\n }\n };\n} else {\n /**\n * RegExp to test for what seems to be a JSX tag name.\n */\n const JSX_TAG = /^[a-z][\\w-]*$/i;\n\n // The token here is defined in js-tokens@4. However we don't bother\n // typing it since the whole block will be removed in Babel 8\n const getTokenType = function (token: any, offset: number, text: string) {\n if (token.type === \"name\") {\n if (\n isKeyword(token.value) ||\n isStrictReservedWord(token.value, true) ||\n sometimesKeywords.has(token.value)\n ) {\n return \"keyword\";\n }\n\n if (\n JSX_TAG.test(token.value) &&\n (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) === \" defs[type as InternalTokenType](str))\n .join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n\n return highlighted;\n}\n","import { getDefs, isColorSupported } from \"./defs.ts\";\nimport { highlight } from \"./highlight.ts\";\n\nexport { highlight };\n\nlet deprecationWarningShown = false;\n\ntype Location = {\n column: number;\n line: number;\n};\n\ntype NodeLocation = {\n end?: Location;\n start: Location;\n};\n\nexport interface Options {\n /** Syntax highlight the code as JavaScript for terminals. default: false */\n highlightCode?: boolean;\n /** The number of lines to show above the error. default: 2 */\n linesAbove?: number;\n /** The number of lines to show below the error. default: 3 */\n linesBelow?: number;\n /**\n * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n * overrides highlightCode.\n * default: false\n */\n forceColor?: boolean;\n /**\n * Pass in a string to be displayed inline (if possible) next to the\n * highlighted location in the code. If it can't be positioned inline,\n * it will be placed above the code frame.\n * default: nothing\n */\n message?: string;\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record;\n\nfunction getMarkerLines(\n loc: NodeLocation,\n source: Array,\n opts: Options,\n): {\n start: number;\n end: number;\n markerLines: MarkerLines;\n} {\n const startLoc: Location = {\n column: 0,\n line: -1,\n ...loc.start,\n };\n const endLoc: Location = {\n ...startLoc,\n ...loc.end,\n };\n const { linesAbove = 2, linesBelow = 3 } = opts || {};\n const startLine = startLoc.line;\n const startColumn = startLoc.column;\n const endLine = endLoc.line;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n for (let i = 0; i <= lineDiff; i++) {\n const lineNumber = i + startLine;\n\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source[lineNumber - 1].length;\n\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - i].length;\n\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n\n return { start, end, markerLines };\n}\n\nexport function codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n): string {\n const shouldHighlight =\n opts.forceColor || (isColorSupported() && opts.highlightCode);\n const defs = getDefs(shouldHighlight);\n\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(loc, lines, opts);\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end).length;\n\n const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;\n\n let frame = highlightedLines\n .split(NEWLINE, end)\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line\n .slice(0, Math.max(hasMarker[0] - 1, 0))\n .replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\n \"\\n \",\n defs.gutter(gutter.replace(/\\d/g, \" \")),\n \" \",\n markerSpacing,\n defs.marker(\"^\").repeat(numberOfMarkers),\n ].join(\"\");\n\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + defs.message(opts.message);\n }\n }\n return [\n defs.marker(\">\"),\n defs.gutter(gutter),\n line.length > 0 ? ` ${line}` : \"\",\n markerLine,\n ].join(\"\");\n } else {\n return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : \"\"}`;\n }\n })\n .join(\"\\n\");\n\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n }\n\n if (shouldHighlight) {\n return defs.reset(frame);\n } else {\n return frame;\n }\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n rawLines: string,\n lineNumber: number,\n colNumber?: number | null,\n opts: Options = {},\n): string {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n\n const message =\n \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n if (process.emitWarning) {\n // A string is directly supplied to emitWarning, because when supplying an\n // Error object node throws in the tests because of different contexts\n process.emitWarning(message, \"DeprecationWarning\");\n } else {\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n }\n\n colNumber = Math.max(colNumber, 0);\n\n const location: NodeLocation = {\n start: { column: colNumber, line: lineNumber },\n };\n\n return codeFrameColumns(rawLines, location, opts);\n}\n"],"names":["isColorSupported","process","env","FORCE_COLOR","picocolors","compose","f","g","v","buildDefs","colors","keyword","cyan","capitalized","yellow","jsxIdentifier","punctuator","number","magenta","string","green","regex","comment","gray","invalid","white","bgRed","bold","gutter","marker","red","message","reset","defsOn","createColors","defsOff","getDefs","enabled","sometimesKeywords","Set","NEWLINE","BRACKET","tokenize","JSX_TAG","getTokenType","token","offset","text","type","isKeyword","value","isStrictReservedWord","has","test","slice","toLowerCase","match","jsTokens","default","exec","matchToToken","index","highlight","defs","highlighted","split","map","str","join","deprecationWarningShown","getMarkerLines","loc","source","opts","startLoc","Object","assign","column","line","start","endLoc","end","linesAbove","linesBelow","startLine","startColumn","endLine","endColumn","Math","max","min","length","lineDiff","markerLines","i","lineNumber","sourceLength","codeFrameColumns","rawLines","shouldHighlight","forceColor","highlightCode","lines","hasColumns","numberMaxWidth","String","highlightedLines","frame","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","colNumber","emitWarning","deprecationError","Error","name","console","warn","location"],"mappings":"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"} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/code-frame/package.json b/framework-core/node_modules/@babel/code-frame/package.json new file mode 100644 index 0000000..c95c244 --- /dev/null +++ b/framework-core/node_modules/@babel/code-frame/package.json @@ -0,0 +1,31 @@ +{ + "name": "@babel/code-frame", + "version": "7.27.1", + "description": "Generate errors that contain a code frame that point to source locations.", + "author": "The Babel Team (https://babel.dev/team)", + "homepage": "https://babel.dev/docs/en/next/babel-code-frame", + "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-code-frame" + }, + "main": "./lib/index.js", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "devDependencies": { + "import-meta-resolve": "^4.1.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/compat-data/LICENSE b/framework-core/node_modules/@babel/compat-data/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/framework-core/node_modules/@babel/compat-data/README.md b/framework-core/node_modules/@babel/compat-data/README.md new file mode 100644 index 0000000..c191898 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/README.md @@ -0,0 +1,19 @@ +# @babel/compat-data + +> The compat-data to determine required Babel plugins + +See our website [@babel/compat-data](https://babeljs.io/docs/babel-compat-data) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/compat-data +``` + +or using yarn: + +```sh +yarn add @babel/compat-data +``` diff --git a/framework-core/node_modules/@babel/compat-data/corejs2-built-ins.js b/framework-core/node_modules/@babel/compat-data/corejs2-built-ins.js new file mode 100644 index 0000000..ed19e0b --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/corejs2-built-ins.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file as Babel 8 drop support of core-js 2 +module.exports = require("./data/corejs2-built-ins.json"); diff --git a/framework-core/node_modules/@babel/compat-data/corejs3-shipped-proposals.js b/framework-core/node_modules/@babel/compat-data/corejs3-shipped-proposals.js new file mode 100644 index 0000000..7909b8c --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/corejs3-shipped-proposals.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file now that it is included in babel-plugin-polyfill-corejs3 +module.exports = require("./data/corejs3-shipped-proposals.json"); diff --git a/framework-core/node_modules/@babel/compat-data/data/corejs2-built-ins.json b/framework-core/node_modules/@babel/compat-data/data/corejs2-built-ins.json new file mode 100644 index 0000000..ba76060 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/data/corejs2-built-ins.json @@ -0,0 +1,2106 @@ +{ + "es6.array.copy-within": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "32", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es6.array.every": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.fill": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "31", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es6.array.filter": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.array.find": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es6.array.find-index": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es7.array.flat-map": { + "chrome": "69", + "opera": "56", + "edge": "79", + "firefox": "62", + "safari": "12", + "node": "11", + "deno": "1", + "ios": "12", + "samsung": "10", + "rhino": "1.7.15", + "opera_mobile": "48", + "electron": "4.0" + }, + "es6.array.for-each": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.from": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "36", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + }, + "es7.array.includes": { + "chrome": "47", + "opera": "34", + "edge": "14", + "firefox": "102", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "34", + "electron": "0.36" + }, + "es6.array.index-of": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.is-array": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "4", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.iterator": { + "chrome": "66", + "opera": "53", + "edge": "12", + "firefox": "60", + "safari": "9", + "node": "10", + "deno": "1", + "ios": "9", + "samsung": "9", + "rhino": "1.7.13", + "opera_mobile": "47", + "electron": "3.0" + }, + "es6.array.last-index-of": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.map": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.array.of": { + "chrome": "45", + "opera": "32", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.31" + }, + "es6.array.reduce": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.reduce-right": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.slice": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.array.some": { + "chrome": "5", + "opera": "10.10", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.array.sort": { + "chrome": "63", + "opera": "50", + "edge": "12", + "firefox": "5", + "safari": "12", + "node": "10", + "deno": "1", + "ie": "9", + "ios": "12", + "samsung": "8", + "rhino": "1.7.13", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.array.species": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.date.now": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "2", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.date.to-iso-string": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3.5", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.date.to-json": { + "chrome": "5", + "opera": "12.10", + "edge": "12", + "firefox": "4", + "safari": "10", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "10", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12.1", + "electron": "0.20" + }, + "es6.date.to-primitive": { + "chrome": "47", + "opera": "34", + "edge": "15", + "firefox": "44", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "34", + "electron": "0.36" + }, + "es6.date.to-string": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.4", + "deno": "1", + "ie": "10", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.function.bind": { + "chrome": "7", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es6.function.has-instance": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "50", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.function.name": { + "chrome": "5", + "opera": "10.50", + "edge": "14", + "firefox": "2", + "safari": "4", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es6.map": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.math.acosh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.asinh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.atanh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.cbrt": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.clz32": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.cosh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.expm1": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.fround": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "26", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.hypot": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "27", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.imul": { + "chrome": "30", + "opera": "17", + "edge": "12", + "firefox": "23", + "safari": "7", + "node": "0.12", + "deno": "1", + "android": "4.4", + "ios": "7", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "18", + "electron": "0.20" + }, + "es6.math.log1p": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.log10": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.log2": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.sign": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.sinh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.tanh": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.math.trunc": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "25", + "safari": "7.1", + "node": "0.12", + "deno": "1", + "ios": "8", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.number.constructor": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "36", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.number.epsilon": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.14", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.is-finite": { + "chrome": "19", + "opera": "15", + "edge": "12", + "firefox": "16", + "safari": "9", + "node": "0.8", + "deno": "1", + "android": "4.1", + "ios": "9", + "samsung": "1.5", + "rhino": "1.7.13", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.number.is-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "16", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.is-nan": { + "chrome": "19", + "opera": "15", + "edge": "12", + "firefox": "15", + "safari": "9", + "node": "0.8", + "deno": "1", + "android": "4.1", + "ios": "9", + "samsung": "1.5", + "rhino": "1.7.13", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.number.is-safe-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "32", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.max-safe-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.min-safe-integer": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.parse-float": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.14", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.number.parse-int": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "25", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "2", + "rhino": "1.7.14", + "opera_mobile": "21", + "electron": "0.20" + }, + "es6.object.assign": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "36", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.object.create": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es7.object.define-getter": { + "chrome": "62", + "opera": "49", + "edge": "16", + "firefox": "48", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es7.object.define-setter": { + "chrome": "62", + "opera": "49", + "edge": "16", + "firefox": "48", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.object.define-property": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es6.object.define-properties": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "4", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es7.object.entries": { + "chrome": "54", + "opera": "41", + "edge": "14", + "firefox": "47", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.7.14", + "opera_mobile": "41", + "electron": "1.4" + }, + "es6.object.freeze": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.get-own-property-descriptor": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es7.object.get-own-property-descriptors": { + "chrome": "54", + "opera": "41", + "edge": "15", + "firefox": "50", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.8", + "opera_mobile": "41", + "electron": "1.4" + }, + "es6.object.get-own-property-names": { + "chrome": "40", + "opera": "27", + "edge": "12", + "firefox": "33", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "27", + "electron": "0.21" + }, + "es6.object.get-prototype-of": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es7.object.lookup-getter": { + "chrome": "62", + "opera": "49", + "edge": "79", + "firefox": "36", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es7.object.lookup-setter": { + "chrome": "62", + "opera": "49", + "edge": "79", + "firefox": "36", + "safari": "9", + "node": "8.10", + "deno": "1", + "ios": "9", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.object.prevent-extensions": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.to-string": { + "chrome": "57", + "opera": "44", + "edge": "15", + "firefox": "51", + "safari": "10", + "node": "8", + "deno": "1", + "ios": "10", + "samsung": "7", + "opera_mobile": "43", + "electron": "1.7" + }, + "es6.object.is": { + "chrome": "19", + "opera": "15", + "edge": "12", + "firefox": "22", + "safari": "9", + "node": "0.8", + "deno": "1", + "android": "4.1", + "ios": "9", + "samsung": "1.5", + "rhino": "1.7.13", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.object.is-frozen": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.is-sealed": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.is-extensible": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.keys": { + "chrome": "40", + "opera": "27", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "27", + "electron": "0.21" + }, + "es6.object.seal": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "35", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.13", + "opera_mobile": "32", + "electron": "0.30" + }, + "es6.object.set-prototype-of": { + "chrome": "34", + "opera": "21", + "edge": "12", + "firefox": "31", + "safari": "9", + "node": "0.12", + "deno": "1", + "ie": "11", + "ios": "9", + "samsung": "2", + "rhino": "1.7.13", + "opera_mobile": "21", + "electron": "0.20" + }, + "es7.object.values": { + "chrome": "54", + "opera": "41", + "edge": "14", + "firefox": "47", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.7.14", + "opera_mobile": "41", + "electron": "1.4" + }, + "es6.promise": { + "chrome": "51", + "opera": "38", + "edge": "14", + "firefox": "45", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + }, + "es7.promise.finally": { + "chrome": "63", + "opera": "50", + "edge": "18", + "firefox": "58", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "rhino": "1.7.15", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.reflect.apply": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.construct": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.define-property": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.delete-property": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.get": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.get-own-property-descriptor": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.get-prototype-of": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.has": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.is-extensible": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.own-keys": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.prevent-extensions": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.set": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.reflect.set-prototype-of": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "42", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.regexp.constructor": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "40", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.flags": { + "chrome": "49", + "opera": "36", + "edge": "79", + "firefox": "37", + "safari": "9", + "node": "6", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "36", + "electron": "0.37" + }, + "es6.regexp.match": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.replace": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.split": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.search": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "49", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.regexp.to-string": { + "chrome": "50", + "opera": "37", + "edge": "79", + "firefox": "39", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "37", + "electron": "1.1" + }, + "es6.set": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.symbol": { + "chrome": "51", + "opera": "38", + "edge": "79", + "firefox": "51", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es7.symbol.async-iterator": { + "chrome": "63", + "opera": "50", + "edge": "79", + "firefox": "57", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "es6.string.anchor": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.big": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.blink": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.bold": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.code-point-at": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.ends-with": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.fixed": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.fontcolor": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.fontsize": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.from-code-point": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.includes": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "40", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.italics": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.iterator": { + "chrome": "38", + "opera": "25", + "edge": "12", + "firefox": "36", + "safari": "9", + "node": "0.12", + "deno": "1", + "ios": "9", + "samsung": "3", + "rhino": "1.7.13", + "opera_mobile": "25", + "electron": "0.20" + }, + "es6.string.link": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es7.string.pad-start": { + "chrome": "57", + "opera": "44", + "edge": "15", + "firefox": "48", + "safari": "10", + "node": "8", + "deno": "1", + "ios": "10", + "samsung": "7", + "rhino": "1.7.13", + "opera_mobile": "43", + "electron": "1.7" + }, + "es7.string.pad-end": { + "chrome": "57", + "opera": "44", + "edge": "15", + "firefox": "48", + "safari": "10", + "node": "8", + "deno": "1", + "ios": "10", + "samsung": "7", + "rhino": "1.7.13", + "opera_mobile": "43", + "electron": "1.7" + }, + "es6.string.raw": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "34", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.14", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.repeat": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "24", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.small": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.starts-with": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "29", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "rhino": "1.7.13", + "opera_mobile": "28", + "electron": "0.21" + }, + "es6.string.strike": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.sub": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.sup": { + "chrome": "5", + "opera": "15", + "edge": "12", + "firefox": "17", + "safari": "6", + "node": "0.4", + "deno": "1", + "android": "4", + "ios": "7", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.14", + "opera_mobile": "14", + "electron": "0.20" + }, + "es6.string.trim": { + "chrome": "5", + "opera": "10.50", + "edge": "12", + "firefox": "3.5", + "safari": "4", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "es7.string.trim-left": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "61", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.13", + "opera_mobile": "47", + "electron": "3.0" + }, + "es7.string.trim-right": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "61", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.13", + "opera_mobile": "47", + "electron": "3.0" + }, + "es6.typed.array-buffer": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.data-view": { + "chrome": "5", + "opera": "12", + "edge": "12", + "firefox": "15", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "10", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "es6.typed.int8-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.uint8-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.uint8-clamped-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.int16-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.uint16-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.int32-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.uint32-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.float32-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.typed.float64-array": { + "chrome": "51", + "opera": "38", + "edge": "13", + "firefox": "48", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.weak-map": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "9", + "node": "6.5", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + }, + "es6.weak-set": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "9", + "node": "6.5", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "41", + "electron": "1.2" + } +} diff --git a/framework-core/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json b/framework-core/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json new file mode 100644 index 0000000..d03b698 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json @@ -0,0 +1,5 @@ +[ + "esnext.promise.all-settled", + "esnext.string.match-all", + "esnext.global-this" +] diff --git a/framework-core/node_modules/@babel/compat-data/data/native-modules.json b/framework-core/node_modules/@babel/compat-data/data/native-modules.json new file mode 100644 index 0000000..2328d21 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/data/native-modules.json @@ -0,0 +1,18 @@ +{ + "es6.module": { + "chrome": "61", + "and_chr": "61", + "edge": "16", + "firefox": "60", + "and_ff": "60", + "node": "13.2.0", + "opera": "48", + "op_mob": "45", + "safari": "10.1", + "ios": "10.3", + "samsung": "8.2", + "android": "61", + "electron": "2.0", + "ios_saf": "10.3" + } +} diff --git a/framework-core/node_modules/@babel/compat-data/data/overlapping-plugins.json b/framework-core/node_modules/@babel/compat-data/data/overlapping-plugins.json new file mode 100644 index 0000000..9b884bd --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/data/overlapping-plugins.json @@ -0,0 +1,35 @@ +{ + "transform-async-to-generator": [ + "bugfix/transform-async-arrows-in-class" + ], + "transform-parameters": [ + "bugfix/transform-edge-default-parameters", + "bugfix/transform-safari-id-destructuring-collision-in-function-expression" + ], + "transform-function-name": [ + "bugfix/transform-edge-function-name" + ], + "transform-block-scoping": [ + "bugfix/transform-safari-block-shadowing", + "bugfix/transform-safari-for-shadowing" + ], + "transform-template-literals": [ + "bugfix/transform-tagged-template-caching" + ], + "transform-optional-chaining": [ + "bugfix/transform-v8-spread-parameters-in-optional-chaining" + ], + "proposal-optional-chaining": [ + "bugfix/transform-v8-spread-parameters-in-optional-chaining" + ], + "transform-class-properties": [ + "bugfix/transform-v8-static-class-fields-redefine-readonly", + "bugfix/transform-firefox-class-in-computed-class-key", + "bugfix/transform-safari-class-field-initializer-scope" + ], + "proposal-class-properties": [ + "bugfix/transform-v8-static-class-fields-redefine-readonly", + "bugfix/transform-firefox-class-in-computed-class-key", + "bugfix/transform-safari-class-field-initializer-scope" + ] +} diff --git a/framework-core/node_modules/@babel/compat-data/data/plugin-bugfixes.json b/framework-core/node_modules/@babel/compat-data/data/plugin-bugfixes.json new file mode 100644 index 0000000..3d1aed6 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/data/plugin-bugfixes.json @@ -0,0 +1,203 @@ +{ + "bugfix/transform-async-arrows-in-class": { + "chrome": "55", + "opera": "42", + "edge": "15", + "firefox": "52", + "safari": "11", + "node": "7.6", + "deno": "1", + "ios": "11", + "samsung": "6", + "opera_mobile": "42", + "electron": "1.6" + }, + "bugfix/transform-edge-default-parameters": { + "chrome": "49", + "opera": "36", + "edge": "18", + "firefox": "52", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "bugfix/transform-edge-function-name": { + "chrome": "51", + "opera": "38", + "edge": "79", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "bugfix/transform-safari-block-shadowing": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "44", + "safari": "11", + "node": "6", + "deno": "1", + "ie": "11", + "ios": "11", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "bugfix/transform-safari-for-shadowing": { + "chrome": "49", + "opera": "36", + "edge": "12", + "firefox": "4", + "safari": "11", + "node": "6", + "deno": "1", + "ie": "11", + "ios": "11", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "36", + "electron": "0.37" + }, + "bugfix/transform-safari-id-destructuring-collision-in-function-expression": { + "chrome": "49", + "opera": "36", + "edge": "14", + "firefox": "2", + "safari": "16.3", + "node": "6", + "deno": "1", + "ios": "16.3", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "bugfix/transform-tagged-template-caching": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "34", + "safari": "13", + "node": "4", + "deno": "1", + "ios": "13", + "samsung": "3.4", + "rhino": "1.7.14", + "opera_mobile": "28", + "electron": "0.21" + }, + "bugfix/transform-v8-spread-parameters-in-optional-chaining": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "74", + "safari": "13.1", + "node": "16.9", + "deno": "1.9", + "ios": "13.4", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "transform-optional-chaining": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "74", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "rhino": "1.8", + "opera_mobile": "57", + "electron": "8.0" + }, + "proposal-optional-chaining": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "74", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "rhino": "1.8", + "opera_mobile": "57", + "electron": "8.0" + }, + "transform-parameters": { + "chrome": "49", + "opera": "36", + "edge": "15", + "firefox": "52", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "transform-async-to-generator": { + "chrome": "55", + "opera": "42", + "edge": "15", + "firefox": "52", + "safari": "10.1", + "node": "7.6", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "opera_mobile": "42", + "electron": "1.6" + }, + "transform-template-literals": { + "chrome": "41", + "opera": "28", + "edge": "13", + "firefox": "34", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "opera_mobile": "28", + "electron": "0.21" + }, + "transform-function-name": { + "chrome": "51", + "opera": "38", + "edge": "14", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "transform-block-scoping": { + "chrome": "50", + "opera": "37", + "edge": "14", + "firefox": "53", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + } +} diff --git a/framework-core/node_modules/@babel/compat-data/data/plugins.json b/framework-core/node_modules/@babel/compat-data/data/plugins.json new file mode 100644 index 0000000..c2ff459 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/data/plugins.json @@ -0,0 +1,838 @@ +{ + "transform-explicit-resource-management": { + "chrome": "134", + "edge": "134", + "firefox": "141", + "node": "24", + "electron": "35.0" + }, + "transform-duplicate-named-capturing-groups-regex": { + "chrome": "126", + "opera": "112", + "edge": "126", + "firefox": "129", + "safari": "17.4", + "node": "23", + "ios": "17.4", + "electron": "31.0" + }, + "transform-regexp-modifiers": { + "chrome": "125", + "opera": "111", + "edge": "125", + "firefox": "132", + "node": "23", + "samsung": "27", + "electron": "31.0" + }, + "transform-unicode-sets-regex": { + "chrome": "112", + "opera": "98", + "edge": "112", + "firefox": "116", + "safari": "17", + "node": "20", + "deno": "1.32", + "ios": "17", + "samsung": "23", + "opera_mobile": "75", + "electron": "24.0" + }, + "bugfix/transform-v8-static-class-fields-redefine-readonly": { + "chrome": "98", + "opera": "84", + "edge": "98", + "firefox": "75", + "safari": "15", + "node": "12", + "deno": "1.18", + "ios": "15", + "samsung": "11", + "opera_mobile": "52", + "electron": "17.0" + }, + "bugfix/transform-firefox-class-in-computed-class-key": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "126", + "safari": "16", + "node": "12", + "deno": "1", + "ios": "16", + "samsung": "11", + "opera_mobile": "53", + "electron": "6.0" + }, + "bugfix/transform-safari-class-field-initializer-scope": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "69", + "safari": "16", + "node": "12", + "deno": "1", + "ios": "16", + "samsung": "11", + "opera_mobile": "53", + "electron": "6.0" + }, + "transform-class-static-block": { + "chrome": "94", + "opera": "80", + "edge": "94", + "firefox": "93", + "safari": "16.4", + "node": "16.11", + "deno": "1.14", + "ios": "16.4", + "samsung": "17", + "opera_mobile": "66", + "electron": "15.0" + }, + "proposal-class-static-block": { + "chrome": "94", + "opera": "80", + "edge": "94", + "firefox": "93", + "safari": "16.4", + "node": "16.11", + "deno": "1.14", + "ios": "16.4", + "samsung": "17", + "opera_mobile": "66", + "electron": "15.0" + }, + "transform-private-property-in-object": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "90", + "safari": "15", + "node": "16.9", + "deno": "1.9", + "ios": "15", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "proposal-private-property-in-object": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "90", + "safari": "15", + "node": "16.9", + "deno": "1.9", + "ios": "15", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "transform-class-properties": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "90", + "safari": "14.1", + "node": "12", + "deno": "1", + "ios": "14.5", + "samsung": "11", + "opera_mobile": "53", + "electron": "6.0" + }, + "proposal-class-properties": { + "chrome": "74", + "opera": "62", + "edge": "79", + "firefox": "90", + "safari": "14.1", + "node": "12", + "deno": "1", + "ios": "14.5", + "samsung": "11", + "opera_mobile": "53", + "electron": "6.0" + }, + "transform-private-methods": { + "chrome": "84", + "opera": "70", + "edge": "84", + "firefox": "90", + "safari": "15", + "node": "14.6", + "deno": "1", + "ios": "15", + "samsung": "14", + "opera_mobile": "60", + "electron": "10.0" + }, + "proposal-private-methods": { + "chrome": "84", + "opera": "70", + "edge": "84", + "firefox": "90", + "safari": "15", + "node": "14.6", + "deno": "1", + "ios": "15", + "samsung": "14", + "opera_mobile": "60", + "electron": "10.0" + }, + "transform-numeric-separator": { + "chrome": "75", + "opera": "62", + "edge": "79", + "firefox": "70", + "safari": "13", + "node": "12.5", + "deno": "1", + "ios": "13", + "samsung": "11", + "rhino": "1.7.14", + "opera_mobile": "54", + "electron": "6.0" + }, + "proposal-numeric-separator": { + "chrome": "75", + "opera": "62", + "edge": "79", + "firefox": "70", + "safari": "13", + "node": "12.5", + "deno": "1", + "ios": "13", + "samsung": "11", + "rhino": "1.7.14", + "opera_mobile": "54", + "electron": "6.0" + }, + "transform-logical-assignment-operators": { + "chrome": "85", + "opera": "71", + "edge": "85", + "firefox": "79", + "safari": "14", + "node": "15", + "deno": "1.2", + "ios": "14", + "samsung": "14", + "opera_mobile": "60", + "electron": "10.0" + }, + "proposal-logical-assignment-operators": { + "chrome": "85", + "opera": "71", + "edge": "85", + "firefox": "79", + "safari": "14", + "node": "15", + "deno": "1.2", + "ios": "14", + "samsung": "14", + "opera_mobile": "60", + "electron": "10.0" + }, + "transform-nullish-coalescing-operator": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "72", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "rhino": "1.8", + "opera_mobile": "57", + "electron": "8.0" + }, + "proposal-nullish-coalescing-operator": { + "chrome": "80", + "opera": "67", + "edge": "80", + "firefox": "72", + "safari": "13.1", + "node": "14", + "deno": "1", + "ios": "13.4", + "samsung": "13", + "rhino": "1.8", + "opera_mobile": "57", + "electron": "8.0" + }, + "transform-optional-chaining": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "74", + "safari": "13.1", + "node": "16.9", + "deno": "1.9", + "ios": "13.4", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "proposal-optional-chaining": { + "chrome": "91", + "opera": "77", + "edge": "91", + "firefox": "74", + "safari": "13.1", + "node": "16.9", + "deno": "1.9", + "ios": "13.4", + "samsung": "16", + "opera_mobile": "64", + "electron": "13.0" + }, + "transform-json-strings": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "62", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.14", + "opera_mobile": "47", + "electron": "3.0" + }, + "proposal-json-strings": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "62", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "9", + "rhino": "1.7.14", + "opera_mobile": "47", + "electron": "3.0" + }, + "transform-optional-catch-binding": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "58", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "proposal-optional-catch-binding": { + "chrome": "66", + "opera": "53", + "edge": "79", + "firefox": "58", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "transform-parameters": { + "chrome": "49", + "opera": "36", + "edge": "18", + "firefox": "52", + "safari": "16.3", + "node": "6", + "deno": "1", + "ios": "16.3", + "samsung": "5", + "opera_mobile": "36", + "electron": "0.37" + }, + "transform-async-generator-functions": { + "chrome": "63", + "opera": "50", + "edge": "79", + "firefox": "57", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "proposal-async-generator-functions": { + "chrome": "63", + "opera": "50", + "edge": "79", + "firefox": "57", + "safari": "12", + "node": "10", + "deno": "1", + "ios": "12", + "samsung": "8", + "opera_mobile": "46", + "electron": "3.0" + }, + "transform-object-rest-spread": { + "chrome": "60", + "opera": "47", + "edge": "79", + "firefox": "55", + "safari": "11.1", + "node": "8.3", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "opera_mobile": "44", + "electron": "2.0" + }, + "proposal-object-rest-spread": { + "chrome": "60", + "opera": "47", + "edge": "79", + "firefox": "55", + "safari": "11.1", + "node": "8.3", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "opera_mobile": "44", + "electron": "2.0" + }, + "transform-dotall-regex": { + "chrome": "62", + "opera": "49", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "8.10", + "deno": "1", + "ios": "11.3", + "samsung": "8", + "rhino": "1.7.15", + "opera_mobile": "46", + "electron": "3.0" + }, + "transform-unicode-property-regex": { + "chrome": "64", + "opera": "51", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "proposal-unicode-property-regex": { + "chrome": "64", + "opera": "51", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "transform-named-capturing-groups-regex": { + "chrome": "64", + "opera": "51", + "edge": "79", + "firefox": "78", + "safari": "11.1", + "node": "10", + "deno": "1", + "ios": "11.3", + "samsung": "9", + "opera_mobile": "47", + "electron": "3.0" + }, + "transform-async-to-generator": { + "chrome": "55", + "opera": "42", + "edge": "15", + "firefox": "52", + "safari": "11", + "node": "7.6", + "deno": "1", + "ios": "11", + "samsung": "6", + "opera_mobile": "42", + "electron": "1.6" + }, + "transform-exponentiation-operator": { + "chrome": "52", + "opera": "39", + "edge": "14", + "firefox": "52", + "safari": "10.1", + "node": "7", + "deno": "1", + "ios": "10.3", + "samsung": "6", + "rhino": "1.7.14", + "opera_mobile": "41", + "electron": "1.3" + }, + "transform-template-literals": { + "chrome": "41", + "opera": "28", + "edge": "13", + "firefox": "34", + "safari": "13", + "node": "4", + "deno": "1", + "ios": "13", + "samsung": "3.4", + "opera_mobile": "28", + "electron": "0.21" + }, + "transform-literals": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "53", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.15", + "opera_mobile": "32", + "electron": "0.30" + }, + "transform-function-name": { + "chrome": "51", + "opera": "38", + "edge": "79", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "transform-arrow-functions": { + "chrome": "47", + "opera": "34", + "edge": "13", + "firefox": "43", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.13", + "opera_mobile": "34", + "electron": "0.36" + }, + "transform-block-scoped-functions": { + "chrome": "41", + "opera": "28", + "edge": "12", + "firefox": "46", + "safari": "10", + "node": "4", + "deno": "1", + "ie": "11", + "ios": "10", + "samsung": "3.4", + "opera_mobile": "28", + "electron": "0.21" + }, + "transform-classes": { + "chrome": "46", + "opera": "33", + "edge": "13", + "firefox": "45", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "33", + "electron": "0.36" + }, + "transform-object-super": { + "chrome": "46", + "opera": "33", + "edge": "13", + "firefox": "45", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "33", + "electron": "0.36" + }, + "transform-shorthand-properties": { + "chrome": "43", + "opera": "30", + "edge": "12", + "firefox": "33", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.14", + "opera_mobile": "30", + "electron": "0.27" + }, + "transform-duplicate-keys": { + "chrome": "42", + "opera": "29", + "edge": "12", + "firefox": "34", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "3.4", + "opera_mobile": "29", + "electron": "0.25" + }, + "transform-computed-properties": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "34", + "safari": "7.1", + "node": "4", + "deno": "1", + "ios": "8", + "samsung": "4", + "rhino": "1.8", + "opera_mobile": "32", + "electron": "0.30" + }, + "transform-for-of": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "transform-sticky-regex": { + "chrome": "49", + "opera": "36", + "edge": "13", + "firefox": "3", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "rhino": "1.7.15", + "opera_mobile": "36", + "electron": "0.37" + }, + "transform-unicode-escapes": { + "chrome": "44", + "opera": "31", + "edge": "12", + "firefox": "53", + "safari": "9", + "node": "4", + "deno": "1", + "ios": "9", + "samsung": "4", + "rhino": "1.7.15", + "opera_mobile": "32", + "electron": "0.30" + }, + "transform-unicode-regex": { + "chrome": "50", + "opera": "37", + "edge": "13", + "firefox": "46", + "safari": "12", + "node": "6", + "deno": "1", + "ios": "12", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "transform-spread": { + "chrome": "46", + "opera": "33", + "edge": "13", + "firefox": "45", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "33", + "electron": "0.36" + }, + "transform-destructuring": { + "chrome": "51", + "opera": "38", + "edge": "15", + "firefox": "53", + "safari": "10", + "node": "6.5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "41", + "electron": "1.2" + }, + "transform-block-scoping": { + "chrome": "50", + "opera": "37", + "edge": "14", + "firefox": "53", + "safari": "11", + "node": "6", + "deno": "1", + "ios": "11", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "transform-typeof-symbol": { + "chrome": "48", + "opera": "35", + "edge": "12", + "firefox": "36", + "safari": "9", + "node": "6", + "deno": "1", + "ios": "9", + "samsung": "5", + "rhino": "1.8", + "opera_mobile": "35", + "electron": "0.37" + }, + "transform-new-target": { + "chrome": "46", + "opera": "33", + "edge": "14", + "firefox": "41", + "safari": "10", + "node": "5", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "33", + "electron": "0.36" + }, + "transform-regenerator": { + "chrome": "50", + "opera": "37", + "edge": "13", + "firefox": "53", + "safari": "10", + "node": "6", + "deno": "1", + "ios": "10", + "samsung": "5", + "opera_mobile": "37", + "electron": "1.1" + }, + "transform-member-expression-literals": { + "chrome": "7", + "opera": "12", + "edge": "12", + "firefox": "2", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "transform-property-literals": { + "chrome": "7", + "opera": "12", + "edge": "12", + "firefox": "2", + "safari": "5.1", + "node": "0.4", + "deno": "1", + "ie": "9", + "android": "4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "12", + "electron": "0.20" + }, + "transform-reserved-words": { + "chrome": "13", + "opera": "10.50", + "edge": "12", + "firefox": "2", + "safari": "3.1", + "node": "0.6", + "deno": "1", + "ie": "9", + "android": "4.4", + "ios": "6", + "phantom": "1.9", + "samsung": "1", + "rhino": "1.7.13", + "opera_mobile": "10.1", + "electron": "0.20" + }, + "transform-export-namespace-from": { + "chrome": "72", + "deno": "1.0", + "edge": "79", + "firefox": "80", + "node": "13.2.0", + "opera": "60", + "opera_mobile": "51", + "safari": "14.1", + "ios": "14.5", + "samsung": "11.0", + "android": "72", + "electron": "5.0" + }, + "proposal-export-namespace-from": { + "chrome": "72", + "deno": "1.0", + "edge": "79", + "firefox": "80", + "node": "13.2.0", + "opera": "60", + "opera_mobile": "51", + "safari": "14.1", + "ios": "14.5", + "samsung": "11.0", + "android": "72", + "electron": "5.0" + } +} diff --git a/framework-core/node_modules/@babel/compat-data/native-modules.js b/framework-core/node_modules/@babel/compat-data/native-modules.js new file mode 100644 index 0000000..f8c25fa --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/native-modules.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly +module.exports = require("./data/native-modules.json"); diff --git a/framework-core/node_modules/@babel/compat-data/overlapping-plugins.js b/framework-core/node_modules/@babel/compat-data/overlapping-plugins.js new file mode 100644 index 0000000..0dd35f1 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/overlapping-plugins.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly +module.exports = require("./data/overlapping-plugins.json"); diff --git a/framework-core/node_modules/@babel/compat-data/package.json b/framework-core/node_modules/@babel/compat-data/package.json new file mode 100644 index 0000000..1cd1bf8 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/package.json @@ -0,0 +1,40 @@ +{ + "name": "@babel/compat-data", + "version": "7.28.4", + "author": "The Babel Team (https://babel.dev/team)", + "license": "MIT", + "description": "The compat-data to determine required Babel plugins", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-compat-data" + }, + "publishConfig": { + "access": "public" + }, + "exports": { + "./plugins": "./plugins.js", + "./native-modules": "./native-modules.js", + "./corejs2-built-ins": "./corejs2-built-ins.js", + "./corejs3-shipped-proposals": "./corejs3-shipped-proposals.js", + "./overlapping-plugins": "./overlapping-plugins.js", + "./plugin-bugfixes": "./plugin-bugfixes.js" + }, + "scripts": { + "build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.mjs && node ./scripts/build-modules-support.mjs && node ./scripts/build-bugfixes-targets.mjs" + }, + "keywords": [ + "babel", + "compat-table", + "compat-data" + ], + "devDependencies": { + "@mdn/browser-compat-data": "^6.0.8", + "core-js-compat": "^3.43.0", + "electron-to-chromium": "^1.5.140" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/compat-data/plugin-bugfixes.js b/framework-core/node_modules/@babel/compat-data/plugin-bugfixes.js new file mode 100644 index 0000000..9aaf364 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/plugin-bugfixes.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly +module.exports = require("./data/plugin-bugfixes.json"); diff --git a/framework-core/node_modules/@babel/compat-data/plugins.js b/framework-core/node_modules/@babel/compat-data/plugins.js new file mode 100644 index 0000000..b191017 --- /dev/null +++ b/framework-core/node_modules/@babel/compat-data/plugins.js @@ -0,0 +1,2 @@ +// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly +module.exports = require("./data/plugins.json"); diff --git a/framework-core/node_modules/@babel/core/LICENSE b/framework-core/node_modules/@babel/core/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/framework-core/node_modules/@babel/core/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/framework-core/node_modules/@babel/core/README.md b/framework-core/node_modules/@babel/core/README.md new file mode 100644 index 0000000..2903543 --- /dev/null +++ b/framework-core/node_modules/@babel/core/README.md @@ -0,0 +1,19 @@ +# @babel/core + +> Babel compiler core. + +See our website [@babel/core](https://babeljs.io/docs/babel-core) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/core +``` + +or using yarn: + +```sh +yarn add @babel/core --dev +``` diff --git a/framework-core/node_modules/@babel/core/lib/config/cache-contexts.js b/framework-core/node_modules/@babel/core/lib/config/cache-contexts.js new file mode 100644 index 0000000..f2ececd --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/cache-contexts.js @@ -0,0 +1,5 @@ +"use strict"; + +0 && 0; + +//# sourceMappingURL=cache-contexts.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/cache-contexts.js.map b/framework-core/node_modules/@babel/core/lib/config/cache-contexts.js.map new file mode 100644 index 0000000..9fa85d5 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/cache-contexts.js.map @@ -0,0 +1 @@ +{"version":3,"names":[],"sources":["../../src/config/cache-contexts.ts"],"sourcesContent":["import type { Targets } from \"@babel/helper-compilation-targets\";\n\nimport type { ConfigContext } from \"./config-chain.ts\";\nimport type { CallerMetadata } from \"./validation/options.ts\";\n\nexport type { ConfigContext as FullConfig };\n\nexport type FullPreset = {\n targets: Targets;\n} & ConfigContext;\nexport type FullPlugin = {\n assumptions: { [name: string]: boolean };\n} & FullPreset;\n\n// Context not including filename since it is used in places that cannot\n// process 'ignore'/'only' and other filename-based logic.\nexport type SimpleConfig = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\nexport type SimplePreset = {\n targets: Targets;\n} & SimpleConfig;\nexport type SimplePlugin = {\n assumptions: {\n [name: string]: boolean;\n };\n} & SimplePreset;\n"],"mappings":"","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/caching.js b/framework-core/node_modules/@babel/core/lib/config/caching.js new file mode 100644 index 0000000..344c839 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/caching.js @@ -0,0 +1,261 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.assertSimpleType = assertSimpleType; +exports.makeStrongCache = makeStrongCache; +exports.makeStrongCacheSync = makeStrongCacheSync; +exports.makeWeakCache = makeWeakCache; +exports.makeWeakCacheSync = makeWeakCacheSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _async = require("../gensync-utils/async.js"); +var _util = require("./util.js"); +const synchronize = gen => { + return _gensync()(gen).sync; +}; +function* genTrue() { + return true; +} +function makeWeakCache(handler) { + return makeCachedFunction(WeakMap, handler); +} +function makeWeakCacheSync(handler) { + return synchronize(makeWeakCache(handler)); +} +function makeStrongCache(handler) { + return makeCachedFunction(Map, handler); +} +function makeStrongCacheSync(handler) { + return synchronize(makeStrongCache(handler)); +} +function makeCachedFunction(CallCache, handler) { + const callCacheSync = new CallCache(); + const callCacheAsync = new CallCache(); + const futureCache = new CallCache(); + return function* cachedFunction(arg, data) { + const asyncContext = yield* (0, _async.isAsync)(); + const callCache = asyncContext ? callCacheAsync : callCacheSync; + const cached = yield* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data); + if (cached.valid) return cached.value; + const cache = new CacheConfigurator(data); + const handlerResult = handler(arg, cache); + let finishLock; + let value; + if ((0, _util.isIterableIterator)(handlerResult)) { + value = yield* (0, _async.onFirstPause)(handlerResult, () => { + finishLock = setupAsyncLocks(cache, futureCache, arg); + }); + } else { + value = handlerResult; + } + updateFunctionCache(callCache, cache, arg, value); + if (finishLock) { + futureCache.delete(arg); + finishLock.release(value); + } + return value; + }; +} +function* getCachedValue(cache, arg, data) { + const cachedValue = cache.get(arg); + if (cachedValue) { + for (const { + value, + valid + } of cachedValue) { + if (yield* valid(data)) return { + valid: true, + value + }; + } + } + return { + valid: false, + value: null + }; +} +function* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data) { + const cached = yield* getCachedValue(callCache, arg, data); + if (cached.valid) { + return cached; + } + if (asyncContext) { + const cached = yield* getCachedValue(futureCache, arg, data); + if (cached.valid) { + const value = yield* (0, _async.waitFor)(cached.value.promise); + return { + valid: true, + value + }; + } + } + return { + valid: false, + value: null + }; +} +function setupAsyncLocks(config, futureCache, arg) { + const finishLock = new Lock(); + updateFunctionCache(futureCache, config, arg, finishLock); + return finishLock; +} +function updateFunctionCache(cache, config, arg, value) { + if (!config.configured()) config.forever(); + let cachedValue = cache.get(arg); + config.deactivate(); + switch (config.mode()) { + case "forever": + cachedValue = [{ + value, + valid: genTrue + }]; + cache.set(arg, cachedValue); + break; + case "invalidate": + cachedValue = [{ + value, + valid: config.validator() + }]; + cache.set(arg, cachedValue); + break; + case "valid": + if (cachedValue) { + cachedValue.push({ + value, + valid: config.validator() + }); + } else { + cachedValue = [{ + value, + valid: config.validator() + }]; + cache.set(arg, cachedValue); + } + } +} +class CacheConfigurator { + constructor(data) { + this._active = true; + this._never = false; + this._forever = false; + this._invalidate = false; + this._configured = false; + this._pairs = []; + this._data = void 0; + this._data = data; + } + simple() { + return makeSimpleConfigurator(this); + } + mode() { + if (this._never) return "never"; + if (this._forever) return "forever"; + if (this._invalidate) return "invalidate"; + return "valid"; + } + forever() { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._never) { + throw new Error("Caching has already been configured with .never()"); + } + this._forever = true; + this._configured = true; + } + never() { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._forever) { + throw new Error("Caching has already been configured with .forever()"); + } + this._never = true; + this._configured = true; + } + using(handler) { + if (!this._active) { + throw new Error("Cannot change caching after evaluation has completed."); + } + if (this._never || this._forever) { + throw new Error("Caching has already been configured with .never or .forever()"); + } + this._configured = true; + const key = handler(this._data); + const fn = (0, _async.maybeAsync)(handler, `You appear to be using an async cache handler, but Babel has been called synchronously`); + if ((0, _async.isThenable)(key)) { + return key.then(key => { + this._pairs.push([key, fn]); + return key; + }); + } + this._pairs.push([key, fn]); + return key; + } + invalidate(handler) { + this._invalidate = true; + return this.using(handler); + } + validator() { + const pairs = this._pairs; + return function* (data) { + for (const [key, fn] of pairs) { + if (key !== (yield* fn(data))) return false; + } + return true; + }; + } + deactivate() { + this._active = false; + } + configured() { + return this._configured; + } +} +function makeSimpleConfigurator(cache) { + function cacheFn(val) { + if (typeof val === "boolean") { + if (val) cache.forever();else cache.never(); + return; + } + return cache.using(() => assertSimpleType(val())); + } + cacheFn.forever = () => cache.forever(); + cacheFn.never = () => cache.never(); + cacheFn.using = cb => cache.using(() => assertSimpleType(cb())); + cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb())); + return cacheFn; +} +function assertSimpleType(value) { + if ((0, _async.isThenable)(value)) { + throw new Error(`You appear to be using an async cache handler, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously handle your caching logic.`); + } + if (value != null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number") { + throw new Error("Cache keys must be either string, boolean, number, null, or undefined."); + } + return value; +} +class Lock { + constructor() { + this.released = false; + this.promise = void 0; + this._resolve = void 0; + this.promise = new Promise(resolve => { + this._resolve = resolve; + }); + } + release(value) { + this.released = true; + this._resolve(value); + } +} +0 && 0; + +//# sourceMappingURL=caching.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/caching.js.map b/framework-core/node_modules/@babel/core/lib/config/caching.js.map new file mode 100644 index 0000000..333f0bb --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/caching.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_async","_util","synchronize","gen","gensync","sync","genTrue","makeWeakCache","handler","makeCachedFunction","WeakMap","makeWeakCacheSync","makeStrongCache","Map","makeStrongCacheSync","CallCache","callCacheSync","callCacheAsync","futureCache","cachedFunction","arg","asyncContext","isAsync","callCache","cached","getCachedValueOrWait","valid","value","cache","CacheConfigurator","handlerResult","finishLock","isIterableIterator","onFirstPause","setupAsyncLocks","updateFunctionCache","delete","release","getCachedValue","cachedValue","get","waitFor","promise","config","Lock","configured","forever","deactivate","mode","set","validator","push","constructor","_active","_never","_forever","_invalidate","_configured","_pairs","_data","simple","makeSimpleConfigurator","Error","never","using","key","fn","maybeAsync","isThenable","then","invalidate","pairs","cacheFn","val","assertSimpleType","cb","released","_resolve","Promise","resolve"],"sources":["../../src/config/caching.ts"],"sourcesContent":["import gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport {\n maybeAsync,\n isAsync,\n onFirstPause,\n waitFor,\n isThenable,\n} from \"../gensync-utils/async.ts\";\nimport { isIterableIterator } from \"./util.ts\";\n\nexport type { CacheConfigurator };\n\nexport type SimpleCacheConfigurator = {\n (forever: boolean): void;\n (handler: () => T): T;\n\n forever: () => void;\n never: () => void;\n using: (handler: () => T) => T;\n invalidate: (handler: () => T) => T;\n};\n\nexport type CacheEntry = Array<{\n value: ResultT;\n valid: (channel: SideChannel) => Handler;\n}>;\n\nconst synchronize = (\n gen: (...args: ArgsT) => Handler,\n): ((...args: ArgsT) => ResultT) => {\n return gensync(gen).sync;\n};\n\n// eslint-disable-next-line require-yield\nfunction* genTrue() {\n return true;\n}\n\nexport function makeWeakCache(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n return makeCachedFunction(WeakMap, handler);\n}\n\nexport function makeWeakCacheSync(\n handler: (arg: ArgT, cache?: CacheConfigurator) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeWeakCache(handler),\n );\n}\n\nexport function makeStrongCache(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n return makeCachedFunction(Map, handler);\n}\n\nexport function makeStrongCacheSync(\n handler: (arg: ArgT, cache?: CacheConfigurator) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeStrongCache(handler),\n );\n}\n\n/* NOTE: Part of the logic explained in this comment is explained in the\n * getCachedValueOrWait and setupAsyncLocks functions.\n *\n * > There are only two hard things in Computer Science: cache invalidation and naming things.\n * > -- Phil Karlton\n *\n * I don't know if Phil was also thinking about handling a cache whose invalidation function is\n * defined asynchronously is considered, but it is REALLY hard to do correctly.\n *\n * The implemented logic (only when gensync is run asynchronously) is the following:\n * 1. If there is a valid cache associated to the current \"arg\" parameter,\n * a. RETURN the cached value\n * 3. If there is a FinishLock associated to the current \"arg\" parameter representing a valid cache,\n * a. Wait for that lock to be released\n * b. RETURN the value associated with that lock\n * 5. Start executing the function to be cached\n * a. If it pauses on a promise, then\n * i. Let FinishLock be a new lock\n * ii. Store FinishLock as associated to the current \"arg\" parameter\n * iii. Wait for the function to finish executing\n * iv. Release FinishLock\n * v. Send the function result to anyone waiting on FinishLock\n * 6. Store the result in the cache\n * 7. RETURN the result\n */\nfunction makeCachedFunction(\n CallCache: new () => CacheMap,\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n const callCacheSync = new CallCache();\n const callCacheAsync = new CallCache();\n const futureCache = new CallCache>();\n\n return function* cachedFunction(arg: ArgT, data: SideChannel) {\n const asyncContext = yield* isAsync();\n const callCache = asyncContext ? callCacheAsync : callCacheSync;\n\n const cached = yield* getCachedValueOrWait(\n asyncContext,\n callCache,\n futureCache,\n arg,\n data,\n );\n if (cached.valid) return cached.value;\n\n const cache = new CacheConfigurator(data);\n\n const handlerResult: Handler | ResultT = handler(arg, cache);\n\n let finishLock: Lock;\n let value: ResultT;\n\n if (isIterableIterator(handlerResult)) {\n value = yield* onFirstPause(handlerResult, () => {\n finishLock = setupAsyncLocks(cache, futureCache, arg);\n });\n } else {\n value = handlerResult;\n }\n\n updateFunctionCache(callCache, cache, arg, value);\n\n if (finishLock) {\n futureCache.delete(arg);\n finishLock.release(value);\n }\n\n return value;\n };\n}\n\ntype CacheMap =\n | Map>\n // @ts-expect-error todo(flow->ts): add `extends object` constraint to ArgT\n | WeakMap>;\n\nfunction* getCachedValue(\n cache: CacheMap,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cachedValue: CacheEntry | void = cache.get(arg);\n\n if (cachedValue) {\n for (const { value, valid } of cachedValue) {\n if (yield* valid(data)) return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction* getCachedValueOrWait(\n asyncContext: boolean,\n callCache: CacheMap,\n futureCache: CacheMap, SideChannel>,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cached = yield* getCachedValue(callCache, arg, data);\n if (cached.valid) {\n return cached;\n }\n\n if (asyncContext) {\n const cached = yield* getCachedValue(futureCache, arg, data);\n if (cached.valid) {\n const value = yield* waitFor(cached.value.promise);\n return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction setupAsyncLocks(\n config: CacheConfigurator,\n futureCache: CacheMap, SideChannel>,\n arg: ArgT,\n): Lock {\n const finishLock = new Lock();\n\n updateFunctionCache(futureCache, config, arg, finishLock);\n\n return finishLock;\n}\n\nfunction updateFunctionCache<\n ArgT,\n ResultT,\n SideChannel,\n Cache extends CacheMap,\n>(\n cache: Cache,\n config: CacheConfigurator,\n arg: ArgT,\n value: ResultT,\n) {\n if (!config.configured()) config.forever();\n\n let cachedValue: CacheEntry | void = cache.get(arg);\n\n config.deactivate();\n\n switch (config.mode()) {\n case \"forever\":\n cachedValue = [{ value, valid: genTrue }];\n cache.set(arg, cachedValue);\n break;\n case \"invalidate\":\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n break;\n case \"valid\":\n if (cachedValue) {\n cachedValue.push({ value, valid: config.validator() });\n } else {\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n }\n }\n}\n\nclass CacheConfigurator {\n _active: boolean = true;\n _never: boolean = false;\n _forever: boolean = false;\n _invalidate: boolean = false;\n\n _configured: boolean = false;\n\n _pairs: Array<\n [cachedValue: unknown, handler: (data: SideChannel) => Handler]\n > = [];\n\n _data: SideChannel;\n\n constructor(data: SideChannel) {\n this._data = data;\n }\n\n simple() {\n return makeSimpleConfigurator(this);\n }\n\n mode() {\n if (this._never) return \"never\";\n if (this._forever) return \"forever\";\n if (this._invalidate) return \"invalidate\";\n return \"valid\";\n }\n\n forever() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never) {\n throw new Error(\"Caching has already been configured with .never()\");\n }\n this._forever = true;\n this._configured = true;\n }\n\n never() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._forever) {\n throw new Error(\"Caching has already been configured with .forever()\");\n }\n this._never = true;\n this._configured = true;\n }\n\n using(handler: (data: SideChannel) => T): T {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never || this._forever) {\n throw new Error(\n \"Caching has already been configured with .never or .forever()\",\n );\n }\n this._configured = true;\n\n const key = handler(this._data);\n\n const fn = maybeAsync(\n handler,\n `You appear to be using an async cache handler, but Babel has been called synchronously`,\n );\n\n if (isThenable(key)) {\n // @ts-expect-error todo(flow->ts): improve function return type annotation\n return key.then((key: unknown) => {\n this._pairs.push([key, fn]);\n return key;\n });\n }\n\n this._pairs.push([key, fn]);\n return key;\n }\n\n invalidate(handler: (data: SideChannel) => T): T {\n this._invalidate = true;\n return this.using(handler);\n }\n\n validator(): (data: SideChannel) => Handler {\n const pairs = this._pairs;\n return function* (data: SideChannel) {\n for (const [key, fn] of pairs) {\n if (key !== (yield* fn(data))) return false;\n }\n return true;\n };\n }\n\n deactivate() {\n this._active = false;\n }\n\n configured() {\n return this._configured;\n }\n}\n\nfunction makeSimpleConfigurator(\n cache: CacheConfigurator,\n): SimpleCacheConfigurator {\n function cacheFn(val: any) {\n if (typeof val === \"boolean\") {\n if (val) cache.forever();\n else cache.never();\n return;\n }\n\n return cache.using(() => assertSimpleType(val()));\n }\n cacheFn.forever = () => cache.forever();\n cacheFn.never = () => cache.never();\n cacheFn.using = (cb: () => SimpleType) =>\n cache.using(() => assertSimpleType(cb()));\n cacheFn.invalidate = (cb: () => SimpleType) =>\n cache.invalidate(() => assertSimpleType(cb()));\n\n return cacheFn as any;\n}\n\n// Types are limited here so that in the future these values can be used\n// as part of Babel's caching logic.\nexport type SimpleType =\n | string\n | boolean\n | number\n | null\n | void\n | Promise;\nexport function assertSimpleType(value: unknown): SimpleType {\n if (isThenable(value)) {\n throw new Error(\n `You appear to be using an async cache handler, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously handle your caching logic.`,\n );\n }\n\n if (\n value != null &&\n typeof value !== \"string\" &&\n typeof value !== \"boolean\" &&\n typeof value !== \"number\"\n ) {\n throw new Error(\n \"Cache keys must be either string, boolean, number, null, or undefined.\",\n );\n }\n // @ts-expect-error Type 'unknown' is not assignable to type 'SimpleType'. This can be removed\n // when strictNullCheck is enabled\n return value;\n}\n\nclass Lock {\n released: boolean = false;\n promise: Promise;\n _resolve: (value: T) => void;\n\n constructor() {\n this.promise = new Promise(resolve => {\n this._resolve = resolve;\n });\n }\n\n release(value: T) {\n this.released = true;\n this._resolve(value);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/config-chain.js b/framework-core/node_modules/@babel/core/lib/config/config-chain.js new file mode 100644 index 0000000..591de0c --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/config-chain.js @@ -0,0 +1,469 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.buildPresetChain = buildPresetChain; +exports.buildPresetChainWalker = void 0; +exports.buildRootChain = buildRootChain; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +var _options = require("./validation/options.js"); +var _patternToRegex = require("./pattern-to-regex.js"); +var _printer = require("./printer.js"); +var _rewriteStackTrace = require("../errors/rewrite-stack-trace.js"); +var _configError = require("../errors/config-error.js"); +var _index = require("./files/index.js"); +var _caching = require("./caching.js"); +var _configDescriptors = require("./config-descriptors.js"); +const debug = _debug()("babel:config:config-chain"); +function* buildPresetChain(arg, context) { + const chain = yield* buildPresetChainWalker(arg, context); + if (!chain) return null; + return { + plugins: dedupDescriptors(chain.plugins), + presets: dedupDescriptors(chain.presets), + options: chain.options.map(o => normalizeOptions(o)), + files: new Set() + }; +} +const buildPresetChainWalker = exports.buildPresetChainWalker = makeChainWalker({ + root: preset => loadPresetDescriptors(preset), + env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName), + overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index), + overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName), + createLogger: () => () => {} +}); +const loadPresetDescriptors = (0, _caching.makeWeakCacheSync)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors)); +const loadPresetEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName))); +const loadPresetOverridesDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index))); +const loadPresetOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index, envName)))); +function* buildRootChain(opts, context) { + let configReport, babelRcReport; + const programmaticLogger = new _printer.ConfigPrinter(); + const programmaticChain = yield* loadProgrammaticChain({ + options: opts, + dirname: context.cwd + }, context, undefined, programmaticLogger); + if (!programmaticChain) return null; + const programmaticReport = yield* programmaticLogger.output(); + let configFile; + if (typeof opts.configFile === "string") { + configFile = yield* (0, _index.loadConfig)(opts.configFile, context.cwd, context.envName, context.caller); + } else if (opts.configFile !== false) { + configFile = yield* (0, _index.findRootConfig)(context.root, context.envName, context.caller); + } + let { + babelrc, + babelrcRoots + } = opts; + let babelrcRootsDirectory = context.cwd; + const configFileChain = emptyChain(); + const configFileLogger = new _printer.ConfigPrinter(); + if (configFile) { + const validatedFile = validateConfigFile(configFile); + const result = yield* loadFileChain(validatedFile, context, undefined, configFileLogger); + if (!result) return null; + configReport = yield* configFileLogger.output(); + if (babelrc === undefined) { + babelrc = validatedFile.options.babelrc; + } + if (babelrcRoots === undefined) { + babelrcRootsDirectory = validatedFile.dirname; + babelrcRoots = validatedFile.options.babelrcRoots; + } + mergeChain(configFileChain, result); + } + let ignoreFile, babelrcFile; + let isIgnored = false; + const fileChain = emptyChain(); + if ((babelrc === true || babelrc === undefined) && typeof context.filename === "string") { + const pkgData = yield* (0, _index.findPackageData)(context.filename); + if (pkgData && babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)) { + ({ + ignore: ignoreFile, + config: babelrcFile + } = yield* (0, _index.findRelativeConfig)(pkgData, context.envName, context.caller)); + if (ignoreFile) { + fileChain.files.add(ignoreFile.filepath); + } + if (ignoreFile && shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)) { + isIgnored = true; + } + if (babelrcFile && !isIgnored) { + const validatedFile = validateBabelrcFile(babelrcFile); + const babelrcLogger = new _printer.ConfigPrinter(); + const result = yield* loadFileChain(validatedFile, context, undefined, babelrcLogger); + if (!result) { + isIgnored = true; + } else { + babelRcReport = yield* babelrcLogger.output(); + mergeChain(fileChain, result); + } + } + if (babelrcFile && isIgnored) { + fileChain.files.add(babelrcFile.filepath); + } + } + } + if (context.showConfig) { + console.log(`Babel configs on "${context.filename}" (ascending priority):\n` + [configReport, babelRcReport, programmaticReport].filter(x => !!x).join("\n\n") + "\n-----End Babel configs-----"); + } + const chain = mergeChain(mergeChain(mergeChain(emptyChain(), configFileChain), fileChain), programmaticChain); + return { + plugins: isIgnored ? [] : dedupDescriptors(chain.plugins), + presets: isIgnored ? [] : dedupDescriptors(chain.presets), + options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)), + fileHandling: isIgnored ? "ignored" : "transpile", + ignore: ignoreFile || undefined, + babelrc: babelrcFile || undefined, + config: configFile || undefined, + files: chain.files + }; +} +function babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory) { + if (typeof babelrcRoots === "boolean") return babelrcRoots; + const absoluteRoot = context.root; + if (babelrcRoots === undefined) { + return pkgData.directories.includes(absoluteRoot); + } + let babelrcPatterns = babelrcRoots; + if (!Array.isArray(babelrcPatterns)) { + babelrcPatterns = [babelrcPatterns]; + } + babelrcPatterns = babelrcPatterns.map(pat => { + return typeof pat === "string" ? _path().resolve(babelrcRootsDirectory, pat) : pat; + }); + if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) { + return pkgData.directories.includes(absoluteRoot); + } + return babelrcPatterns.some(pat => { + if (typeof pat === "string") { + pat = (0, _patternToRegex.default)(pat, babelrcRootsDirectory); + } + return pkgData.directories.some(directory => { + return matchPattern(pat, babelrcRootsDirectory, directory, context); + }); + }); +} +const validateConfigFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("configfile", file.options, file.filepath) +})); +const validateBabelrcFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("babelrcfile", file.options, file.filepath) +})); +const validateExtendFile = (0, _caching.makeWeakCacheSync)(file => ({ + filepath: file.filepath, + dirname: file.dirname, + options: (0, _options.validate)("extendsfile", file.options, file.filepath) +})); +const loadProgrammaticChain = makeChainWalker({ + root: input => buildRootDescriptors(input, "base", _configDescriptors.createCachedDescriptors), + env: (input, envName) => buildEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, envName), + overrides: (input, index) => buildOverrideDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index), + overridesEnv: (input, index, envName) => buildOverrideEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index, envName), + createLogger: (input, context, baseLogger) => buildProgrammaticLogger(input, context, baseLogger) +}); +const loadFileChainWalker = makeChainWalker({ + root: file => loadFileDescriptors(file), + env: (file, envName) => loadFileEnvDescriptors(file)(envName), + overrides: (file, index) => loadFileOverridesDescriptors(file)(index), + overridesEnv: (file, index, envName) => loadFileOverridesEnvDescriptors(file)(index)(envName), + createLogger: (file, context, baseLogger) => buildFileLogger(file.filepath, context, baseLogger) +}); +function* loadFileChain(input, context, files, baseLogger) { + const chain = yield* loadFileChainWalker(input, context, files, baseLogger); + chain == null || chain.files.add(input.filepath); + return chain; +} +const loadFileDescriptors = (0, _caching.makeWeakCacheSync)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors)); +const loadFileEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, envName))); +const loadFileOverridesDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index))); +const loadFileOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index, envName)))); +function buildFileLogger(filepath, context, baseLogger) { + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Config, { + filepath + }); +} +function buildRootDescriptors({ + dirname, + options +}, alias, descriptors) { + return descriptors(dirname, options, alias); +} +function buildProgrammaticLogger(_, context, baseLogger) { + var _context$caller; + if (!baseLogger) { + return () => {}; + } + return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Programmatic, { + callerName: (_context$caller = context.caller) == null ? void 0 : _context$caller.name + }); +} +function buildEnvDescriptors({ + dirname, + options +}, alias, descriptors, envName) { + var _options$env; + const opts = (_options$env = options.env) == null ? void 0 : _options$env[envName]; + return opts ? descriptors(dirname, opts, `${alias}.env["${envName}"]`) : null; +} +function buildOverrideDescriptors({ + dirname, + options +}, alias, descriptors, index) { + var _options$overrides; + const opts = (_options$overrides = options.overrides) == null ? void 0 : _options$overrides[index]; + if (!opts) throw new Error("Assertion failure - missing override"); + return descriptors(dirname, opts, `${alias}.overrides[${index}]`); +} +function buildOverrideEnvDescriptors({ + dirname, + options +}, alias, descriptors, index, envName) { + var _options$overrides2, _override$env; + const override = (_options$overrides2 = options.overrides) == null ? void 0 : _options$overrides2[index]; + if (!override) throw new Error("Assertion failure - missing override"); + const opts = (_override$env = override.env) == null ? void 0 : _override$env[envName]; + return opts ? descriptors(dirname, opts, `${alias}.overrides[${index}].env["${envName}"]`) : null; +} +function makeChainWalker({ + root, + env, + overrides, + overridesEnv, + createLogger +}) { + return function* chainWalker(input, context, files = new Set(), baseLogger) { + const { + dirname + } = input; + const flattenedConfigs = []; + const rootOpts = root(input); + if (configIsApplicable(rootOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: rootOpts, + envName: undefined, + index: undefined + }); + const envOpts = env(input, context.envName); + if (envOpts && configIsApplicable(envOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: envOpts, + envName: context.envName, + index: undefined + }); + } + (rootOpts.options.overrides || []).forEach((_, index) => { + const overrideOps = overrides(input, index); + if (configIsApplicable(overrideOps, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: overrideOps, + index, + envName: undefined + }); + const overrideEnvOpts = overridesEnv(input, index, context.envName); + if (overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context, input.filepath)) { + flattenedConfigs.push({ + config: overrideEnvOpts, + index, + envName: context.envName + }); + } + } + }); + } + if (flattenedConfigs.some(({ + config: { + options: { + ignore, + only + } + } + }) => shouldIgnore(context, ignore, only, dirname))) { + return null; + } + const chain = emptyChain(); + const logger = createLogger(input, context, baseLogger); + for (const { + config, + index, + envName + } of flattenedConfigs) { + if (!(yield* mergeExtendsChain(chain, config.options, dirname, context, files, baseLogger))) { + return null; + } + logger(config, index, envName); + yield* mergeChainOpts(chain, config); + } + return chain; + }; +} +function* mergeExtendsChain(chain, opts, dirname, context, files, baseLogger) { + if (opts.extends === undefined) return true; + const file = yield* (0, _index.loadConfig)(opts.extends, dirname, context.envName, context.caller); + if (files.has(file)) { + throw new Error(`Configuration cycle detected loading ${file.filepath}.\n` + `File already loaded following the config chain:\n` + Array.from(files, file => ` - ${file.filepath}`).join("\n")); + } + files.add(file); + const fileChain = yield* loadFileChain(validateExtendFile(file), context, files, baseLogger); + files.delete(file); + if (!fileChain) return false; + mergeChain(chain, fileChain); + return true; +} +function mergeChain(target, source) { + target.options.push(...source.options); + target.plugins.push(...source.plugins); + target.presets.push(...source.presets); + for (const file of source.files) { + target.files.add(file); + } + return target; +} +function* mergeChainOpts(target, { + options, + plugins, + presets +}) { + target.options.push(options); + target.plugins.push(...(yield* plugins())); + target.presets.push(...(yield* presets())); + return target; +} +function emptyChain() { + return { + options: [], + presets: [], + plugins: [], + files: new Set() + }; +} +function normalizeOptions(opts) { + const options = Object.assign({}, opts); + delete options.extends; + delete options.env; + delete options.overrides; + delete options.plugins; + delete options.presets; + delete options.passPerPreset; + delete options.ignore; + delete options.only; + delete options.test; + delete options.include; + delete options.exclude; + if (hasOwnProperty.call(options, "sourceMap")) { + options.sourceMaps = options.sourceMap; + delete options.sourceMap; + } + return options; +} +function dedupDescriptors(items) { + const map = new Map(); + const descriptors = []; + for (const item of items) { + if (typeof item.value === "function") { + const fnKey = item.value; + let nameMap = map.get(fnKey); + if (!nameMap) { + nameMap = new Map(); + map.set(fnKey, nameMap); + } + let desc = nameMap.get(item.name); + if (!desc) { + desc = { + value: item + }; + descriptors.push(desc); + if (!item.ownPass) nameMap.set(item.name, desc); + } else { + desc.value = item; + } + } else { + descriptors.push({ + value: item + }); + } + } + return descriptors.reduce((acc, desc) => { + acc.push(desc.value); + return acc; + }, []); +} +function configIsApplicable({ + options +}, dirname, context, configName) { + return (options.test === undefined || configFieldIsApplicable(context, options.test, dirname, configName)) && (options.include === undefined || configFieldIsApplicable(context, options.include, dirname, configName)) && (options.exclude === undefined || !configFieldIsApplicable(context, options.exclude, dirname, configName)); +} +function configFieldIsApplicable(context, test, dirname, configName) { + const patterns = Array.isArray(test) ? test : [test]; + return matchesPatterns(context, patterns, dirname, configName); +} +function ignoreListReplacer(_key, value) { + if (value instanceof RegExp) { + return String(value); + } + return value; +} +function shouldIgnore(context, ignore, only, dirname) { + if (ignore && matchesPatterns(context, ignore, dirname)) { + var _context$filename; + const message = `No config is applied to "${(_context$filename = context.filename) != null ? _context$filename : "(unknown)"}" because it matches one of \`ignore: ${JSON.stringify(ignore, ignoreListReplacer)}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } + return true; + } + if (only && !matchesPatterns(context, only, dirname)) { + var _context$filename2; + const message = `No config is applied to "${(_context$filename2 = context.filename) != null ? _context$filename2 : "(unknown)"}" because it fails to match one of \`only: ${JSON.stringify(only, ignoreListReplacer)}\` from "${dirname}"`; + debug(message); + if (context.showConfig) { + console.log(message); + } + return true; + } + return false; +} +function matchesPatterns(context, patterns, dirname, configName) { + return patterns.some(pattern => matchPattern(pattern, dirname, context.filename, context, configName)); +} +function matchPattern(pattern, dirname, pathToTest, context, configName) { + if (typeof pattern === "function") { + return !!(0, _rewriteStackTrace.endHiddenCallStack)(pattern)(pathToTest, { + dirname, + envName: context.envName, + caller: context.caller + }); + } + if (typeof pathToTest !== "string") { + throw new _configError.default(`Configuration contains string/RegExp pattern, but no filename was passed to Babel`, configName); + } + if (typeof pattern === "string") { + pattern = (0, _patternToRegex.default)(pattern, dirname); + } + return pattern.test(pathToTest); +} +0 && 0; + +//# sourceMappingURL=config-chain.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/config-chain.js.map b/framework-core/node_modules/@babel/core/lib/config/config-chain.js.map new file mode 100644 index 0000000..c0b50bc --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/config-chain.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_debug","_options","_patternToRegex","_printer","_rewriteStackTrace","_configError","_index","_caching","_configDescriptors","debug","buildDebug","buildPresetChain","arg","context","chain","buildPresetChainWalker","plugins","dedupDescriptors","presets","options","map","o","normalizeOptions","files","Set","exports","makeChainWalker","root","preset","loadPresetDescriptors","env","envName","loadPresetEnvDescriptors","overrides","index","loadPresetOverridesDescriptors","overridesEnv","loadPresetOverridesEnvDescriptors","createLogger","makeWeakCacheSync","buildRootDescriptors","alias","createUncachedDescriptors","makeStrongCacheSync","buildEnvDescriptors","buildOverrideDescriptors","buildOverrideEnvDescriptors","buildRootChain","opts","configReport","babelRcReport","programmaticLogger","ConfigPrinter","programmaticChain","loadProgrammaticChain","dirname","cwd","undefined","programmaticReport","output","configFile","loadConfig","caller","findRootConfig","babelrc","babelrcRoots","babelrcRootsDirectory","configFileChain","emptyChain","configFileLogger","validatedFile","validateConfigFile","result","loadFileChain","mergeChain","ignoreFile","babelrcFile","isIgnored","fileChain","filename","pkgData","findPackageData","babelrcLoadEnabled","ignore","config","findRelativeConfig","add","filepath","shouldIgnore","validateBabelrcFile","babelrcLogger","showConfig","console","log","filter","x","join","fileHandling","absoluteRoot","directories","includes","babelrcPatterns","Array","isArray","pat","path","resolve","length","some","pathPatternToRegex","directory","matchPattern","file","validate","validateExtendFile","input","createCachedDescriptors","baseLogger","buildProgrammaticLogger","loadFileChainWalker","loadFileDescriptors","loadFileEnvDescriptors","loadFileOverridesDescriptors","loadFileOverridesEnvDescriptors","buildFileLogger","configure","ChainFormatter","Config","descriptors","_","_context$caller","Programmatic","callerName","name","_options$env","_options$overrides","Error","_options$overrides2","_override$env","override","chainWalker","flattenedConfigs","rootOpts","configIsApplicable","push","envOpts","forEach","overrideOps","overrideEnvOpts","only","logger","mergeExtendsChain","mergeChainOpts","extends","has","from","delete","target","source","Object","assign","passPerPreset","test","include","exclude","hasOwnProperty","call","sourceMaps","sourceMap","items","Map","item","value","fnKey","nameMap","get","set","desc","ownPass","reduce","acc","configName","configFieldIsApplicable","patterns","matchesPatterns","ignoreListReplacer","_key","RegExp","String","_context$filename","message","JSON","stringify","_context$filename2","pattern","pathToTest","endHiddenCallStack","ConfigError"],"sources":["../../src/config/config-chain.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport path from \"node:path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { validate } from \"./validation/options.ts\";\nimport type {\n ValidatedOptions,\n IgnoreList,\n ConfigApplicableTest,\n BabelrcSearch,\n CallerMetadata,\n IgnoreItem,\n} from \"./validation/options.ts\";\nimport pathPatternToRegex from \"./pattern-to-regex.ts\";\nimport { ConfigPrinter, ChainFormatter } from \"./printer.ts\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\n\nimport { endHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nconst debug = buildDebug(\"babel:config:config-chain\");\n\nimport {\n findPackageData,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile, FilePackageData } from \"./files/index.ts\";\n\nimport { makeWeakCacheSync, makeStrongCacheSync } from \"./caching.ts\";\n\nimport {\n createCachedDescriptors,\n createUncachedDescriptors,\n} from \"./config-descriptors.ts\";\nimport type {\n UnloadedDescriptor,\n OptionsAndDescriptors,\n ValidatedFile,\n} from \"./config-descriptors.ts\";\n\nexport type ConfigChain = {\n plugins: Array>;\n presets: Array>;\n options: Array;\n files: Set;\n};\n\nexport type PresetInstance = {\n options: ValidatedOptions;\n alias: string;\n dirname: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type ConfigContext = {\n filename: string | undefined;\n cwd: string;\n root: string;\n envName: string;\n caller: CallerMetadata | undefined;\n showConfig: boolean;\n};\n\n/**\n * Build a config chain for a given preset.\n */\nexport function* buildPresetChain(\n arg: PresetInstance,\n context: any,\n): Handler {\n const chain = yield* buildPresetChainWalker(arg, context);\n if (!chain) return null;\n\n return {\n plugins: dedupDescriptors(chain.plugins),\n presets: dedupDescriptors(chain.presets),\n options: chain.options.map(o => normalizeOptions(o)),\n files: new Set(),\n };\n}\n\nexport const buildPresetChainWalker = makeChainWalker({\n root: preset => loadPresetDescriptors(preset),\n env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),\n overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),\n overridesEnv: (preset, index, envName) =>\n loadPresetOverridesEnvDescriptors(preset)(index)(envName),\n createLogger: () => () => {}, // Currently we don't support logging how preset is expanded\n});\nconst loadPresetDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n buildRootDescriptors(preset, preset.alias, createUncachedDescriptors),\n);\nconst loadPresetEnvDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadPresetOverridesDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadPresetOverridesEnvDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nexport type FileHandling = \"transpile\" | \"ignored\" | \"unsupported\";\nexport type RootConfigChain = ConfigChain & {\n babelrc: ConfigFile | void;\n config: ConfigFile | void;\n ignore: IgnoreFile | void;\n fileHandling: FileHandling;\n files: Set;\n};\n\n/**\n * Build a config chain for Babel's full root configuration.\n */\nexport function* buildRootChain(\n opts: ValidatedOptions,\n context: ConfigContext,\n): Handler {\n let configReport, babelRcReport;\n const programmaticLogger = new ConfigPrinter();\n const programmaticChain = yield* loadProgrammaticChain(\n {\n options: opts,\n dirname: context.cwd,\n },\n context,\n undefined,\n programmaticLogger,\n );\n if (!programmaticChain) return null;\n const programmaticReport = yield* programmaticLogger.output();\n\n let configFile;\n if (typeof opts.configFile === \"string\") {\n configFile = yield* loadConfig(\n opts.configFile,\n context.cwd,\n context.envName,\n context.caller,\n );\n } else if (opts.configFile !== false) {\n configFile = yield* findRootConfig(\n context.root,\n context.envName,\n context.caller,\n );\n }\n\n let { babelrc, babelrcRoots } = opts;\n let babelrcRootsDirectory = context.cwd;\n\n const configFileChain = emptyChain();\n const configFileLogger = new ConfigPrinter();\n if (configFile) {\n const validatedFile = validateConfigFile(configFile);\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n configFileLogger,\n );\n if (!result) return null;\n configReport = yield* configFileLogger.output();\n\n // Allow config files to toggle `.babelrc` resolution on and off and\n // specify where the roots are.\n if (babelrc === undefined) {\n babelrc = validatedFile.options.babelrc;\n }\n if (babelrcRoots === undefined) {\n babelrcRootsDirectory = validatedFile.dirname;\n babelrcRoots = validatedFile.options.babelrcRoots;\n }\n\n mergeChain(configFileChain, result);\n }\n\n let ignoreFile, babelrcFile;\n let isIgnored = false;\n const fileChain = emptyChain();\n // resolve all .babelrc files\n if (\n (babelrc === true || babelrc === undefined) &&\n typeof context.filename === \"string\"\n ) {\n const pkgData = yield* findPackageData(context.filename);\n\n if (\n pkgData &&\n babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)\n ) {\n ({ ignore: ignoreFile, config: babelrcFile } = yield* findRelativeConfig(\n pkgData,\n context.envName,\n context.caller,\n ));\n\n if (ignoreFile) {\n fileChain.files.add(ignoreFile.filepath);\n }\n\n if (\n ignoreFile &&\n shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)\n ) {\n isIgnored = true;\n }\n\n if (babelrcFile && !isIgnored) {\n const validatedFile = validateBabelrcFile(babelrcFile);\n const babelrcLogger = new ConfigPrinter();\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n babelrcLogger,\n );\n if (!result) {\n isIgnored = true;\n } else {\n babelRcReport = yield* babelrcLogger.output();\n mergeChain(fileChain, result);\n }\n }\n\n if (babelrcFile && isIgnored) {\n fileChain.files.add(babelrcFile.filepath);\n }\n }\n }\n\n if (context.showConfig) {\n console.log(\n `Babel configs on \"${context.filename}\" (ascending priority):\\n` +\n // print config by the order of ascending priority\n [configReport, babelRcReport, programmaticReport]\n .filter(x => !!x)\n .join(\"\\n\\n\") +\n \"\\n-----End Babel configs-----\",\n );\n }\n // Insert file chain in front so programmatic options have priority\n // over configuration file chain items.\n const chain = mergeChain(\n mergeChain(mergeChain(emptyChain(), configFileChain), fileChain),\n programmaticChain,\n );\n\n return {\n plugins: isIgnored ? [] : dedupDescriptors(chain.plugins),\n presets: isIgnored ? [] : dedupDescriptors(chain.presets),\n options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)),\n fileHandling: isIgnored ? \"ignored\" : \"transpile\",\n ignore: ignoreFile || undefined,\n babelrc: babelrcFile || undefined,\n config: configFile || undefined,\n files: chain.files,\n };\n}\n\nfunction babelrcLoadEnabled(\n context: ConfigContext,\n pkgData: FilePackageData,\n babelrcRoots: BabelrcSearch | undefined,\n babelrcRootsDirectory: string,\n): boolean {\n if (typeof babelrcRoots === \"boolean\") return babelrcRoots;\n\n const absoluteRoot = context.root;\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcRoots === undefined) {\n return pkgData.directories.includes(absoluteRoot);\n }\n\n let babelrcPatterns = babelrcRoots;\n if (!Array.isArray(babelrcPatterns)) {\n babelrcPatterns = [babelrcPatterns as IgnoreItem];\n }\n babelrcPatterns = babelrcPatterns.map(pat => {\n return typeof pat === \"string\"\n ? path.resolve(babelrcRootsDirectory, pat)\n : pat;\n });\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {\n return pkgData.directories.includes(absoluteRoot);\n }\n\n return babelrcPatterns.some(pat => {\n if (typeof pat === \"string\") {\n pat = pathPatternToRegex(pat, babelrcRootsDirectory);\n }\n\n return pkgData.directories.some(directory => {\n return matchPattern(pat, babelrcRootsDirectory, directory, context);\n });\n });\n}\n\nconst validateConfigFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"configfile\", file.options, file.filepath),\n }),\n);\n\nconst validateBabelrcFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"babelrcfile\", file.options, file.filepath),\n }),\n);\n\nconst validateExtendFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"extendsfile\", file.options, file.filepath),\n }),\n);\n\n/**\n * Build a config chain for just the programmatic options passed into Babel.\n */\nconst loadProgrammaticChain = makeChainWalker({\n root: input => buildRootDescriptors(input, \"base\", createCachedDescriptors),\n env: (input, envName) =>\n buildEnvDescriptors(input, \"base\", createCachedDescriptors, envName),\n overrides: (input, index) =>\n buildOverrideDescriptors(input, \"base\", createCachedDescriptors, index),\n overridesEnv: (input, index, envName) =>\n buildOverrideEnvDescriptors(\n input,\n \"base\",\n createCachedDescriptors,\n index,\n envName,\n ),\n createLogger: (input, context, baseLogger) =>\n buildProgrammaticLogger(input, context, baseLogger),\n});\n\n/**\n * Build a config chain for a given file.\n */\nconst loadFileChainWalker = makeChainWalker({\n root: file => loadFileDescriptors(file),\n env: (file, envName) => loadFileEnvDescriptors(file)(envName),\n overrides: (file, index) => loadFileOverridesDescriptors(file)(index),\n overridesEnv: (file, index, envName) =>\n loadFileOverridesEnvDescriptors(file)(index)(envName),\n createLogger: (file, context, baseLogger) =>\n buildFileLogger(file.filepath, context, baseLogger),\n});\n\nfunction* loadFileChain(\n input: ValidatedFile,\n context: ConfigContext,\n files: Set,\n baseLogger: ConfigPrinter,\n) {\n const chain = yield* loadFileChainWalker(input, context, files, baseLogger);\n chain?.files.add(input.filepath);\n\n return chain;\n}\n\nconst loadFileDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n buildRootDescriptors(file, file.filepath, createUncachedDescriptors),\n);\nconst loadFileEnvDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadFileOverridesDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadFileOverridesEnvDescriptors = makeWeakCacheSync(\n (file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nfunction buildFileLogger(\n filepath: string,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Config, {\n filepath,\n });\n}\n\nfunction buildRootDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n) {\n return descriptors(dirname, options, alias);\n}\n\nfunction buildProgrammaticLogger(\n _: unknown,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Programmatic, {\n callerName: context.caller?.name,\n });\n}\n\nfunction buildEnvDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n envName: string,\n) {\n const opts = options.env?.[envName];\n return opts ? descriptors(dirname, opts, `${alias}.env[\"${envName}\"]`) : null;\n}\n\nfunction buildOverrideDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n) {\n const opts = options.overrides?.[index];\n if (!opts) throw new Error(\"Assertion failure - missing override\");\n\n return descriptors(dirname, opts, `${alias}.overrides[${index}]`);\n}\n\nfunction buildOverrideEnvDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n envName: string,\n) {\n const override = options.overrides?.[index];\n if (!override) throw new Error(\"Assertion failure - missing override\");\n\n const opts = override.env?.[envName];\n return opts\n ? descriptors(\n dirname,\n opts,\n `${alias}.overrides[${index}].env[\"${envName}\"]`,\n )\n : null;\n}\n\nfunction makeChainWalker<\n ArgT extends {\n options: ValidatedOptions;\n dirname: string;\n filepath?: string;\n },\n>({\n root,\n env,\n overrides,\n overridesEnv,\n createLogger,\n}: {\n root: (configEntry: ArgT) => OptionsAndDescriptors;\n env: (configEntry: ArgT, env: string) => OptionsAndDescriptors | null;\n overrides: (configEntry: ArgT, index: number) => OptionsAndDescriptors;\n overridesEnv: (\n configEntry: ArgT,\n index: number,\n env: string,\n ) => OptionsAndDescriptors | null;\n createLogger: (\n configEntry: ArgT,\n context: ConfigContext,\n printer: ConfigPrinter | void,\n ) => (\n opts: OptionsAndDescriptors,\n index?: number | null,\n env?: string | null,\n ) => void;\n}): (\n configEntry: ArgT,\n context: ConfigContext,\n files?: Set,\n baseLogger?: ConfigPrinter,\n) => Handler {\n return function* chainWalker(input, context, files = new Set(), baseLogger) {\n const { dirname } = input;\n\n const flattenedConfigs: Array<{\n config: OptionsAndDescriptors;\n index: number | undefined | null;\n envName: string | undefined | null;\n }> = [];\n\n const rootOpts = root(input);\n if (configIsApplicable(rootOpts, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: rootOpts,\n envName: undefined,\n index: undefined,\n });\n\n const envOpts = env(input, context.envName);\n if (\n envOpts &&\n configIsApplicable(envOpts, dirname, context, input.filepath)\n ) {\n flattenedConfigs.push({\n config: envOpts,\n envName: context.envName,\n index: undefined,\n });\n }\n\n (rootOpts.options.overrides || []).forEach((_, index) => {\n const overrideOps = overrides(input, index);\n if (configIsApplicable(overrideOps, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: overrideOps,\n index,\n envName: undefined,\n });\n\n const overrideEnvOpts = overridesEnv(input, index, context.envName);\n if (\n overrideEnvOpts &&\n configIsApplicable(\n overrideEnvOpts,\n dirname,\n context,\n input.filepath,\n )\n ) {\n flattenedConfigs.push({\n config: overrideEnvOpts,\n index,\n envName: context.envName,\n });\n }\n }\n });\n }\n\n // Process 'ignore' and 'only' before 'extends' items are processed so\n // that we don't do extra work loading extended configs if a file is\n // ignored.\n if (\n flattenedConfigs.some(\n ({\n config: {\n options: { ignore, only },\n },\n }) => shouldIgnore(context, ignore, only, dirname),\n )\n ) {\n return null;\n }\n\n const chain = emptyChain();\n const logger = createLogger(input, context, baseLogger);\n\n for (const { config, index, envName } of flattenedConfigs) {\n if (\n !(yield* mergeExtendsChain(\n chain,\n config.options,\n dirname,\n context,\n files,\n baseLogger,\n ))\n ) {\n return null;\n }\n\n logger(config, index, envName);\n yield* mergeChainOpts(chain, config);\n }\n return chain;\n };\n}\n\nfunction* mergeExtendsChain(\n chain: ConfigChain,\n opts: ValidatedOptions,\n dirname: string,\n context: ConfigContext,\n files: Set,\n baseLogger?: ConfigPrinter,\n): Handler {\n if (opts.extends === undefined) return true;\n\n const file = yield* loadConfig(\n opts.extends,\n dirname,\n context.envName,\n context.caller,\n );\n\n if (files.has(file)) {\n throw new Error(\n `Configuration cycle detected loading ${file.filepath}.\\n` +\n `File already loaded following the config chain:\\n` +\n Array.from(files, file => ` - ${file.filepath}`).join(\"\\n\"),\n );\n }\n\n files.add(file);\n const fileChain = yield* loadFileChain(\n validateExtendFile(file),\n context,\n files,\n baseLogger,\n );\n files.delete(file);\n\n if (!fileChain) return false;\n\n mergeChain(chain, fileChain);\n\n return true;\n}\n\nfunction mergeChain(target: ConfigChain, source: ConfigChain): ConfigChain {\n target.options.push(...source.options);\n target.plugins.push(...source.plugins);\n target.presets.push(...source.presets);\n for (const file of source.files) {\n target.files.add(file);\n }\n\n return target;\n}\n\nfunction* mergeChainOpts(\n target: ConfigChain,\n { options, plugins, presets }: OptionsAndDescriptors,\n): Handler {\n target.options.push(options);\n target.plugins.push(...(yield* plugins()));\n target.presets.push(...(yield* presets()));\n\n return target;\n}\n\nfunction emptyChain(): ConfigChain {\n return {\n options: [],\n presets: [],\n plugins: [],\n files: new Set(),\n };\n}\n\nfunction normalizeOptions(opts: ValidatedOptions): ValidatedOptions {\n const options = {\n ...opts,\n };\n delete options.extends;\n delete options.env;\n delete options.overrides;\n delete options.plugins;\n delete options.presets;\n delete options.passPerPreset;\n delete options.ignore;\n delete options.only;\n delete options.test;\n delete options.include;\n delete options.exclude;\n\n // \"sourceMap\" is just aliased to sourceMap, so copy it over as\n // we merge the options together.\n if (Object.hasOwn(options, \"sourceMap\")) {\n options.sourceMaps = options.sourceMap;\n delete options.sourceMap;\n }\n return options;\n}\n\nfunction dedupDescriptors(\n items: Array>,\n): Array> {\n const map: Map<\n Function,\n Map }>\n > = new Map();\n\n const descriptors = [];\n\n for (const item of items) {\n if (typeof item.value === \"function\") {\n const fnKey = item.value;\n let nameMap = map.get(fnKey);\n if (!nameMap) {\n nameMap = new Map();\n map.set(fnKey, nameMap);\n }\n let desc = nameMap.get(item.name);\n if (!desc) {\n desc = { value: item };\n descriptors.push(desc);\n\n // Treat passPerPreset presets as unique, skipping them\n // in the merge processing steps.\n if (!item.ownPass) nameMap.set(item.name, desc);\n } else {\n desc.value = item;\n }\n } else {\n descriptors.push({ value: item });\n }\n }\n\n return descriptors.reduce((acc, desc) => {\n acc.push(desc.value);\n return acc;\n }, []);\n}\n\nfunction configIsApplicable(\n { options }: OptionsAndDescriptors,\n dirname: string,\n context: ConfigContext,\n configName: string,\n): boolean {\n return (\n (options.test === undefined ||\n configFieldIsApplicable(context, options.test, dirname, configName)) &&\n (options.include === undefined ||\n configFieldIsApplicable(context, options.include, dirname, configName)) &&\n (options.exclude === undefined ||\n !configFieldIsApplicable(context, options.exclude, dirname, configName))\n );\n}\n\nfunction configFieldIsApplicable(\n context: ConfigContext,\n test: ConfigApplicableTest,\n dirname: string,\n configName: string,\n): boolean {\n const patterns = Array.isArray(test) ? test : [test];\n\n return matchesPatterns(context, patterns, dirname, configName);\n}\n\n/**\n * Print the ignoreList-values in a more helpful way than the default.\n */\nfunction ignoreListReplacer(\n _key: string,\n value: IgnoreList | IgnoreItem,\n): IgnoreList | IgnoreItem | string {\n if (value instanceof RegExp) {\n return String(value);\n }\n\n return value;\n}\n\n/**\n * Tests if a filename should be ignored based on \"ignore\" and \"only\" options.\n */\nfunction shouldIgnore(\n context: ConfigContext,\n ignore: IgnoreList | undefined | null,\n only: IgnoreList | undefined | null,\n dirname: string,\n): boolean {\n if (ignore && matchesPatterns(context, ignore, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it matches one of \\`ignore: ${JSON.stringify(\n ignore,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n if (only && !matchesPatterns(context, only, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it fails to match one of \\`only: ${JSON.stringify(\n only,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns result of calling function with filename if pattern is a function.\n * Otherwise returns result of matching pattern Regex with filename.\n */\nfunction matchesPatterns(\n context: ConfigContext,\n patterns: IgnoreList,\n dirname: string,\n configName?: string,\n): boolean {\n return patterns.some(pattern =>\n matchPattern(pattern, dirname, context.filename, context, configName),\n );\n}\n\nfunction matchPattern(\n pattern: IgnoreItem,\n dirname: string,\n pathToTest: string | undefined,\n context: ConfigContext,\n configName?: string,\n): boolean {\n if (typeof pattern === \"function\") {\n return !!endHiddenCallStack(pattern)(pathToTest, {\n dirname,\n envName: context.envName,\n caller: context.caller,\n });\n }\n\n if (typeof pathToTest !== \"string\") {\n throw new ConfigError(\n `Configuration contains string/RegExp pattern, but no filename was passed to Babel`,\n configName,\n );\n }\n\n if (typeof pattern === \"string\") {\n pattern = pathPatternToRegex(pattern, dirname);\n }\n return pattern.test(pathToTest);\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/config-descriptors.js b/framework-core/node_modules/@babel/core/lib/config/config-descriptors.js new file mode 100644 index 0000000..21fb414 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/config-descriptors.js @@ -0,0 +1,190 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createCachedDescriptors = createCachedDescriptors; +exports.createDescriptor = createDescriptor; +exports.createUncachedDescriptors = createUncachedDescriptors; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _functional = require("../gensync-utils/functional.js"); +var _index = require("./files/index.js"); +var _item = require("./item.js"); +var _caching = require("./caching.js"); +var _resolveTargets = require("./resolve-targets.js"); +function isEqualDescriptor(a, b) { + var _a$file, _b$file, _a$file2, _b$file2; + return a.name === b.name && a.value === b.value && a.options === b.options && a.dirname === b.dirname && a.alias === b.alias && a.ownPass === b.ownPass && ((_a$file = a.file) == null ? void 0 : _a$file.request) === ((_b$file = b.file) == null ? void 0 : _b$file.request) && ((_a$file2 = a.file) == null ? void 0 : _a$file2.resolved) === ((_b$file2 = b.file) == null ? void 0 : _b$file2.resolved); +} +function* handlerOf(value) { + return value; +} +function optionsWithResolvedBrowserslistConfigFile(options, dirname) { + if (typeof options.browserslistConfigFile === "string") { + options.browserslistConfigFile = (0, _resolveTargets.resolveBrowserslistConfigFile)(options.browserslistConfigFile, dirname); + } + return options; +} +function createCachedDescriptors(dirname, options, alias) { + const { + plugins, + presets, + passPerPreset + } = options; + return { + options: optionsWithResolvedBrowserslistConfigFile(options, dirname), + plugins: plugins ? () => createCachedPluginDescriptors(plugins, dirname)(alias) : () => handlerOf([]), + presets: presets ? () => createCachedPresetDescriptors(presets, dirname)(alias)(!!passPerPreset) : () => handlerOf([]) + }; +} +function createUncachedDescriptors(dirname, options, alias) { + return { + options: optionsWithResolvedBrowserslistConfigFile(options, dirname), + plugins: (0, _functional.once)(() => createPluginDescriptors(options.plugins || [], dirname, alias)), + presets: (0, _functional.once)(() => createPresetDescriptors(options.presets || [], dirname, alias, !!options.passPerPreset)) + }; +} +const PRESET_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPresetDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { + const dirname = cache.using(dir => dir); + return (0, _caching.makeStrongCacheSync)(alias => (0, _caching.makeStrongCache)(function* (passPerPreset) { + const descriptors = yield* createPresetDescriptors(items, dirname, alias, passPerPreset); + return descriptors.map(desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc)); + })); +}); +const PLUGIN_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPluginDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { + const dirname = cache.using(dir => dir); + return (0, _caching.makeStrongCache)(function* (alias) { + const descriptors = yield* createPluginDescriptors(items, dirname, alias); + return descriptors.map(desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc)); + }); +}); +const DEFAULT_OPTIONS = {}; +function loadCachedDescriptor(cache, desc) { + const { + value, + options = DEFAULT_OPTIONS + } = desc; + if (options === false) return desc; + let cacheByOptions = cache.get(value); + if (!cacheByOptions) { + cacheByOptions = new WeakMap(); + cache.set(value, cacheByOptions); + } + let possibilities = cacheByOptions.get(options); + if (!possibilities) { + possibilities = []; + cacheByOptions.set(options, possibilities); + } + if (!possibilities.includes(desc)) { + const matches = possibilities.filter(possibility => isEqualDescriptor(possibility, desc)); + if (matches.length > 0) { + return matches[0]; + } + possibilities.push(desc); + } + return desc; +} +function* createPresetDescriptors(items, dirname, alias, passPerPreset) { + return yield* createDescriptors("preset", items, dirname, alias, passPerPreset); +} +function* createPluginDescriptors(items, dirname, alias) { + return yield* createDescriptors("plugin", items, dirname, alias); +} +function* createDescriptors(type, items, dirname, alias, ownPass) { + const descriptors = yield* _gensync().all(items.map((item, index) => createDescriptor(item, dirname, { + type, + alias: `${alias}$${index}`, + ownPass: !!ownPass + }))); + assertNoDuplicates(descriptors); + return descriptors; +} +function* createDescriptor(pair, dirname, { + type, + alias, + ownPass +}) { + const desc = (0, _item.getItemDescriptor)(pair); + if (desc) { + return desc; + } + let name; + let options; + let value = pair; + if (Array.isArray(value)) { + if (value.length === 3) { + [value, options, name] = value; + } else { + [value, options] = value; + } + } + let file = undefined; + let filepath = null; + if (typeof value === "string") { + if (typeof type !== "string") { + throw new Error("To resolve a string-based item, the type of item must be given"); + } + const resolver = type === "plugin" ? _index.loadPlugin : _index.loadPreset; + const request = value; + ({ + filepath, + value + } = yield* resolver(value, dirname)); + file = { + request, + resolved: filepath + }; + } + if (!value) { + throw new Error(`Unexpected falsy value: ${String(value)}`); + } + if (typeof value === "object" && value.__esModule) { + if (value.default) { + value = value.default; + } else { + throw new Error("Must export a default export when using ES6 modules."); + } + } + if (typeof value !== "object" && typeof value !== "function") { + throw new Error(`Unsupported format: ${typeof value}. Expected an object or a function.`); + } + if (filepath !== null && typeof value === "object" && value) { + throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`); + } + return { + name, + alias: filepath || alias, + value, + options, + dirname, + ownPass, + file + }; +} +function assertNoDuplicates(items) { + const map = new Map(); + for (const item of items) { + if (typeof item.value !== "function") continue; + let nameMap = map.get(item.value); + if (!nameMap) { + nameMap = new Set(); + map.set(item.value, nameMap); + } + if (nameMap.has(item.name)) { + const conflicts = items.filter(i => i.value === item.value); + throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they need separate names, e.g.`, ``, ` plugins: [`, ` ['some-plugin', {}],`, ` ['some-plugin', {}, 'some unique name'],`, ` ]`, ``, `Duplicates detected are:`, `${JSON.stringify(conflicts, null, 2)}`].join("\n")); + } + nameMap.add(item.name); + } +} +0 && 0; + +//# sourceMappingURL=config-descriptors.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/config-descriptors.js.map b/framework-core/node_modules/@babel/core/lib/config/config-descriptors.js.map new file mode 100644 index 0000000..1bb6393 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/config-descriptors.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_functional","_index","_item","_caching","_resolveTargets","isEqualDescriptor","a","b","_a$file","_b$file","_a$file2","_b$file2","name","value","options","dirname","alias","ownPass","file","request","resolved","handlerOf","optionsWithResolvedBrowserslistConfigFile","browserslistConfigFile","resolveBrowserslistConfigFile","createCachedDescriptors","plugins","presets","passPerPreset","createCachedPluginDescriptors","createCachedPresetDescriptors","createUncachedDescriptors","once","createPluginDescriptors","createPresetDescriptors","PRESET_DESCRIPTOR_CACHE","WeakMap","makeWeakCacheSync","items","cache","using","dir","makeStrongCacheSync","makeStrongCache","descriptors","map","desc","loadCachedDescriptor","PLUGIN_DESCRIPTOR_CACHE","DEFAULT_OPTIONS","cacheByOptions","get","set","possibilities","includes","matches","filter","possibility","length","push","createDescriptors","type","gensync","all","item","index","createDescriptor","assertNoDuplicates","pair","getItemDescriptor","Array","isArray","undefined","filepath","Error","resolver","loadPlugin","loadPreset","String","__esModule","default","Map","nameMap","Set","has","conflicts","i","JSON","stringify","join","add"],"sources":["../../src/config/config-descriptors.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\nimport { once } from \"../gensync-utils/functional.ts\";\n\nimport { loadPlugin, loadPreset } from \"./files/index.ts\";\n\nimport { getItemDescriptor } from \"./item.ts\";\n\nimport {\n makeWeakCacheSync,\n makeStrongCacheSync,\n makeStrongCache,\n} from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\n\nimport type {\n ValidatedOptions,\n PluginList,\n PluginItem,\n PluginOptions,\n} from \"./validation/options.ts\";\n\nimport { resolveBrowserslistConfigFile } from \"./resolve-targets.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\n// Represents a config object and functions to lazily load the descriptors\n// for the plugins and presets so we don't load the plugins/presets unless\n// the options object actually ends up being applicable.\nexport type OptionsAndDescriptors = {\n options: ValidatedOptions;\n plugins: () => Handler>>;\n presets: () => Handler>>;\n};\n\n// Represents a plugin or presets at a given location in a config object.\n// At this point these have been resolved to a specific object or function,\n// but have not yet been executed to call functions with options.\nexport interface UnloadedDescriptor {\n name: string | undefined;\n value: object | ((api: API, options: Options, dirname: string) => unknown);\n options: Options;\n dirname: string;\n alias: string;\n ownPass?: boolean;\n file?: {\n request: string;\n resolved: string;\n };\n}\n\nfunction isEqualDescriptor(\n a: UnloadedDescriptor,\n b: UnloadedDescriptor,\n): boolean {\n return (\n a.name === b.name &&\n a.value === b.value &&\n a.options === b.options &&\n a.dirname === b.dirname &&\n a.alias === b.alias &&\n a.ownPass === b.ownPass &&\n a.file?.request === b.file?.request &&\n a.file?.resolved === b.file?.resolved\n );\n}\n\nexport type ValidatedFile = {\n filepath: string;\n dirname: string;\n options: ValidatedOptions;\n};\n\n// eslint-disable-next-line require-yield\nfunction* handlerOf(value: T): Handler {\n return value;\n}\n\nfunction optionsWithResolvedBrowserslistConfigFile(\n options: ValidatedOptions,\n dirname: string,\n): ValidatedOptions {\n if (typeof options.browserslistConfigFile === \"string\") {\n options.browserslistConfigFile = resolveBrowserslistConfigFile(\n options.browserslistConfigFile,\n dirname,\n );\n }\n return options;\n}\n\n/**\n * Create a set of descriptors from a given options object, preserving\n * descriptor identity based on the identity of the plugin/preset arrays\n * themselves, and potentially on the identity of the plugins/presets + options.\n */\nexport function createCachedDescriptors(\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n): OptionsAndDescriptors {\n const { plugins, presets, passPerPreset } = options;\n return {\n options: optionsWithResolvedBrowserslistConfigFile(options, dirname),\n plugins: plugins\n ? () =>\n // @ts-expect-error todo(flow->ts) ts complains about incorrect arguments\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n createCachedPluginDescriptors(plugins, dirname)(alias)\n : () => handlerOf([]),\n presets: presets\n ? () =>\n // @ts-expect-error todo(flow->ts) ts complains about incorrect arguments\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n createCachedPresetDescriptors(presets, dirname)(alias)(\n !!passPerPreset,\n )\n : () => handlerOf([]),\n };\n}\n\n/**\n * Create a set of descriptors from a given options object, with consistent\n * identity for the descriptors, but not caching based on any specific identity.\n */\nexport function createUncachedDescriptors(\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n): OptionsAndDescriptors {\n return {\n options: optionsWithResolvedBrowserslistConfigFile(options, dirname),\n // The returned result here is cached to represent a config object in\n // memory, so we build and memoize the descriptors to ensure the same\n // values are returned consistently.\n plugins: once(() =>\n createPluginDescriptors(options.plugins || [], dirname, alias),\n ),\n presets: once(() =>\n createPresetDescriptors(\n options.presets || [],\n dirname,\n alias,\n !!options.passPerPreset,\n ),\n ),\n };\n}\n\nconst PRESET_DESCRIPTOR_CACHE = new WeakMap();\nconst createCachedPresetDescriptors = makeWeakCacheSync(\n (items: PluginList, cache: CacheConfigurator) => {\n const dirname = cache.using(dir => dir);\n return makeStrongCacheSync((alias: string) =>\n makeStrongCache(function* (\n passPerPreset: boolean,\n ): Handler>> {\n const descriptors = yield* createPresetDescriptors(\n items,\n dirname,\n alias,\n passPerPreset,\n );\n return descriptors.map(\n // Items are cached using the overall preset array identity when\n // possibly, but individual descriptors are also cached if a match\n // can be found in the previously-used descriptor lists.\n desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc),\n );\n }),\n );\n },\n);\n\nconst PLUGIN_DESCRIPTOR_CACHE = new WeakMap();\nconst createCachedPluginDescriptors = makeWeakCacheSync(\n (items: PluginList, cache: CacheConfigurator) => {\n const dirname = cache.using(dir => dir);\n return makeStrongCache(function* (\n alias: string,\n ): Handler>> {\n const descriptors = yield* createPluginDescriptors(items, dirname, alias);\n return descriptors.map(\n // Items are cached using the overall plugin array identity when\n // possibly, but individual descriptors are also cached if a match\n // can be found in the previously-used descriptor lists.\n desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc),\n );\n });\n },\n);\n\n/**\n * When no options object is given in a descriptor, this object is used\n * as a WeakMap key in order to have consistent identity.\n */\nconst DEFAULT_OPTIONS = {};\n\n/**\n * Given the cache and a descriptor, returns a matching descriptor from the\n * cache, or else returns the input descriptor and adds it to the cache for\n * next time.\n */\nfunction loadCachedDescriptor(\n cache: WeakMap<\n object | Function,\n WeakMap>>\n >,\n desc: UnloadedDescriptor,\n) {\n const { value, options = DEFAULT_OPTIONS } = desc;\n if (options === false) return desc;\n\n let cacheByOptions = cache.get(value);\n if (!cacheByOptions) {\n cacheByOptions = new WeakMap();\n cache.set(value, cacheByOptions);\n }\n\n let possibilities = cacheByOptions.get(options);\n if (!possibilities) {\n possibilities = [];\n cacheByOptions.set(options, possibilities);\n }\n\n if (!possibilities.includes(desc)) {\n const matches = possibilities.filter(possibility =>\n isEqualDescriptor(possibility, desc),\n );\n if (matches.length > 0) {\n return matches[0];\n }\n\n possibilities.push(desc);\n }\n\n return desc;\n}\n\nfunction* createPresetDescriptors(\n items: PluginList,\n dirname: string,\n alias: string,\n passPerPreset: boolean,\n): Handler>> {\n return yield* createDescriptors(\n \"preset\",\n items,\n dirname,\n alias,\n passPerPreset,\n );\n}\n\nfunction* createPluginDescriptors(\n items: PluginList,\n dirname: string,\n alias: string,\n): Handler>> {\n return yield* createDescriptors(\"plugin\", items, dirname, alias);\n}\n\nfunction* createDescriptors(\n type: \"plugin\" | \"preset\",\n items: PluginList,\n dirname: string,\n alias: string,\n ownPass?: boolean,\n): Handler>> {\n const descriptors = yield* gensync.all(\n items.map((item, index) =>\n createDescriptor(item, dirname, {\n type,\n alias: `${alias}$${index}`,\n ownPass: !!ownPass,\n }),\n ),\n );\n\n assertNoDuplicates(descriptors);\n\n return descriptors;\n}\n\n/**\n * Given a plugin/preset item, resolve it into a standard format.\n */\nexport function* createDescriptor(\n pair: PluginItem,\n dirname: string,\n {\n type,\n alias,\n ownPass,\n }: {\n type?: \"plugin\" | \"preset\";\n alias: string;\n ownPass?: boolean;\n },\n): Handler> {\n const desc = getItemDescriptor(pair);\n if (desc) {\n return desc;\n }\n\n let name;\n let options: PluginOptions;\n let value = pair;\n if (Array.isArray(value)) {\n if (value.length === 3) {\n [value, options, name] = value;\n } else {\n [value, options] = value;\n }\n }\n\n let file = undefined;\n let filepath = null;\n if (typeof value === \"string\") {\n if (typeof type !== \"string\") {\n throw new Error(\n \"To resolve a string-based item, the type of item must be given\",\n );\n }\n const resolver = type === \"plugin\" ? loadPlugin : loadPreset;\n const request = value;\n\n // @ts-expect-error value must be a PluginItem\n ({ filepath, value } = yield* resolver(value, dirname));\n\n file = {\n request,\n resolved: filepath,\n };\n }\n\n if (!value) {\n throw new Error(`Unexpected falsy value: ${String(value)}`);\n }\n\n // @ts-expect-error Handle transpiled ES6 modules.\n if (typeof value === \"object\" && value.__esModule) {\n // @ts-expect-error Handle transpiled ES6 modules.\n if (value.default) {\n // @ts-expect-error Handle transpiled ES6 modules.\n value = value.default;\n } else {\n throw new Error(\"Must export a default export when using ES6 modules.\");\n }\n }\n\n if (typeof value !== \"object\" && typeof value !== \"function\") {\n throw new Error(\n `Unsupported format: ${typeof value}. Expected an object or a function.`,\n );\n }\n\n if (filepath !== null && typeof value === \"object\" && value) {\n // We allow object values for plugins/presets nested directly within a\n // config object, because it can be useful to define them in nested\n // configuration contexts.\n throw new Error(\n `Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`,\n );\n }\n\n return {\n name,\n alias: filepath || alias,\n value,\n options,\n dirname,\n ownPass,\n file,\n };\n}\n\nfunction assertNoDuplicates(items: Array>): void {\n const map = new Map();\n\n for (const item of items) {\n if (typeof item.value !== \"function\") continue;\n\n let nameMap = map.get(item.value);\n if (!nameMap) {\n nameMap = new Set();\n map.set(item.value, nameMap);\n }\n\n if (nameMap.has(item.name)) {\n const conflicts = items.filter(i => i.value === item.value);\n throw new Error(\n [\n `Duplicate plugin/preset detected.`,\n `If you'd like to use two separate instances of a plugin,`,\n `they need separate names, e.g.`,\n ``,\n ` plugins: [`,\n ` ['some-plugin', {}],`,\n ` ['some-plugin', {}, 'some unique name'],`,\n ` ]`,\n ``,\n `Duplicates detected are:`,\n `${JSON.stringify(conflicts, null, 2)}`,\n ].join(\"\\n\"),\n );\n }\n\n nameMap.add(item.name);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/files/configuration.js b/framework-core/node_modules/@babel/core/lib/config/files/configuration.js new file mode 100644 index 0000000..7e0c489 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/configuration.js @@ -0,0 +1,290 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ROOT_CONFIG_FILENAMES = void 0; +exports.findConfigUpwards = findConfigUpwards; +exports.findRelativeConfig = findRelativeConfig; +exports.findRootConfig = findRootConfig; +exports.loadConfig = loadConfig; +exports.resolveShowConfigPath = resolveShowConfigPath; +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _json() { + const data = require("json5"); + _json = function () { + return data; + }; + return data; +} +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _caching = require("../caching.js"); +var _configApi = require("../helpers/config-api.js"); +var _utils = require("./utils.js"); +var _moduleTypes = require("./module-types.js"); +var _patternToRegex = require("../pattern-to-regex.js"); +var _configError = require("../../errors/config-error.js"); +var fs = require("../../gensync-utils/fs.js"); +require("module"); +var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js"); +var _async = require("../../gensync-utils/async.js"); +const debug = _debug()("babel:config:loading:files:configuration"); +const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json", "babel.config.cts", "babel.config.ts", "babel.config.mts"]; +const RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json", ".babelrc.cts"]; +const BABELIGNORE_FILENAME = ".babelignore"; +const runConfig = (0, _caching.makeWeakCache)(function* runConfig(options, cache) { + yield* []; + return { + options: (0, _rewriteStackTrace.endHiddenCallStack)(options)((0, _configApi.makeConfigAPI)(cache)), + cacheNeedsConfiguration: !cache.configured() + }; +}); +function* readConfigCode(filepath, data) { + if (!_fs().existsSync(filepath)) return null; + let options = yield* (0, _moduleTypes.default)(filepath, (yield* (0, _async.isAsync)()) ? "auto" : "require", "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", "You appear to be using a configuration file that contains top-level " + "await, which is only supported when running Babel asynchronously."); + let cacheNeedsConfiguration = false; + if (typeof options === "function") { + ({ + options, + cacheNeedsConfiguration + } = yield* runConfig(options, data)); + } + if (!options || typeof options !== "object" || Array.isArray(options)) { + throw new _configError.default(`Configuration should be an exported JavaScript object.`, filepath); + } + if (typeof options.then === "function") { + options.catch == null || options.catch(() => {}); + throw new _configError.default(`You appear to be using an async configuration, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously return your config.`, filepath); + } + if (cacheNeedsConfiguration) throwConfigError(filepath); + return buildConfigFileObject(options, filepath); +} +const cfboaf = new WeakMap(); +function buildConfigFileObject(options, filepath) { + let configFilesByFilepath = cfboaf.get(options); + if (!configFilesByFilepath) { + cfboaf.set(options, configFilesByFilepath = new Map()); + } + let configFile = configFilesByFilepath.get(filepath); + if (!configFile) { + configFile = { + filepath, + dirname: _path().dirname(filepath), + options + }; + configFilesByFilepath.set(filepath, configFile); + } + return configFile; +} +const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => { + const babel = file.options.babel; + if (babel === undefined) return null; + if (typeof babel !== "object" || Array.isArray(babel) || babel === null) { + throw new _configError.default(`.babel property must be an object`, file.filepath); + } + return { + filepath: file.filepath, + dirname: file.dirname, + options: babel + }; +}); +const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => { + let options; + try { + options = _json().parse(content); + } catch (err) { + throw new _configError.default(`Error while parsing config - ${err.message}`, filepath); + } + if (!options) throw new _configError.default(`No config detected`, filepath); + if (typeof options !== "object") { + throw new _configError.default(`Config returned typeof ${typeof options}`, filepath); + } + if (Array.isArray(options)) { + throw new _configError.default(`Expected config object but found array`, filepath); + } + delete options.$schema; + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); +const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => { + const ignoreDir = _path().dirname(filepath); + const ignorePatterns = content.split("\n").map(line => line.replace(/#.*$/, "").trim()).filter(Boolean); + for (const pattern of ignorePatterns) { + if (pattern[0] === "!") { + throw new _configError.default(`Negation of file paths is not supported.`, filepath); + } + } + return { + filepath, + dirname: _path().dirname(filepath), + ignore: ignorePatterns.map(pattern => (0, _patternToRegex.default)(pattern, ignoreDir)) + }; +}); +function findConfigUpwards(rootDir) { + let dirname = rootDir; + for (;;) { + for (const filename of ROOT_CONFIG_FILENAMES) { + if (_fs().existsSync(_path().join(dirname, filename))) { + return dirname; + } + } + const nextDir = _path().dirname(dirname); + if (dirname === nextDir) break; + dirname = nextDir; + } + return null; +} +function* findRelativeConfig(packageData, envName, caller) { + let config = null; + let ignore = null; + const dirname = _path().dirname(packageData.filepath); + for (const loc of packageData.directories) { + if (!config) { + var _packageData$pkg; + config = yield* loadOneConfig(RELATIVE_CONFIG_FILENAMES, loc, envName, caller, ((_packageData$pkg = packageData.pkg) == null ? void 0 : _packageData$pkg.dirname) === loc ? packageToBabelConfig(packageData.pkg) : null); + } + if (!ignore) { + const ignoreLoc = _path().join(loc, BABELIGNORE_FILENAME); + ignore = yield* readIgnoreConfig(ignoreLoc); + if (ignore) { + debug("Found ignore %o from %o.", ignore.filepath, dirname); + } + } + } + return { + config, + ignore + }; +} +function findRootConfig(dirname, envName, caller) { + return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller); +} +function* loadOneConfig(names, dirname, envName, caller, previousConfig = null) { + const configs = yield* _gensync().all(names.map(filename => readConfig(_path().join(dirname, filename), envName, caller))); + const config = configs.reduce((previousConfig, config) => { + if (config && previousConfig) { + throw new _configError.default(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().basename(previousConfig.filepath)}\n` + ` - ${config.filepath}\n` + `from ${dirname}`); + } + return config || previousConfig; + }, previousConfig); + if (config) { + debug("Found configuration %o from %o.", config.filepath, dirname); + } + return config; +} +function* loadConfig(name, dirname, envName, caller) { + const filepath = (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { + paths: [b] + }, M = require("module")) => { + let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + if (f) return f; + f = new Error(`Cannot resolve module '${r}'`); + f.code = "MODULE_NOT_FOUND"; + throw f; + })(name, { + paths: [dirname] + }); + const conf = yield* readConfig(filepath, envName, caller); + if (!conf) { + throw new _configError.default(`Config file contains no configuration data`, filepath); + } + debug("Loaded config %o from %o.", name, dirname); + return conf; +} +function readConfig(filepath, envName, caller) { + const ext = _path().extname(filepath); + switch (ext) { + case ".js": + case ".cjs": + case ".mjs": + case ".ts": + case ".cts": + case ".mts": + return readConfigCode(filepath, { + envName, + caller + }); + default: + return readConfigJSON5(filepath); + } +} +function* resolveShowConfigPath(dirname) { + const targetPath = process.env.BABEL_SHOW_CONFIG_FOR; + if (targetPath != null) { + const absolutePath = _path().resolve(dirname, targetPath); + const stats = yield* fs.stat(absolutePath); + if (!stats.isFile()) { + throw new Error(`${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`); + } + return absolutePath; + } + return null; +} +function throwConfigError(filepath) { + throw new _configError.default(`\ +Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured +for various types of caching, using the first param of their handler functions: + +module.exports = function(api) { + // The API exposes the following: + + // Cache the returned value forever and don't call this function again. + api.cache(true); + + // Don't cache at all. Not recommended because it will be very slow. + api.cache(false); + + // Cached based on the value of some function. If this function returns a value different from + // a previously-encountered value, the plugins will re-evaluate. + var env = api.cache(() => process.env.NODE_ENV); + + // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for + // any possible NODE_ENV value that might come up during plugin execution. + var isProd = api.cache(() => process.env.NODE_ENV === "production"); + + // .cache(fn) will perform a linear search though instances to find the matching plugin based + // based on previous instantiated plugins. If you want to recreate the plugin and discard the + // previous instance whenever something changes, you may use: + var isProd = api.cache.invalidate(() => process.env.NODE_ENV === "production"); + + // Note, we also expose the following more-verbose versions of the above examples: + api.cache.forever(); // api.cache(true) + api.cache.never(); // api.cache(false) + api.cache.using(fn); // api.cache(fn) + + // Return the value that will be cached. + return { }; +};`, filepath); +} +0 && 0; + +//# sourceMappingURL=configuration.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/files/configuration.js.map b/framework-core/node_modules/@babel/core/lib/config/files/configuration.js.map new file mode 100644 index 0000000..e7aa5f4 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/configuration.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_debug","data","require","_fs","_path","_json","_gensync","_caching","_configApi","_utils","_moduleTypes","_patternToRegex","_configError","fs","_rewriteStackTrace","_async","debug","buildDebug","ROOT_CONFIG_FILENAMES","exports","RELATIVE_CONFIG_FILENAMES","BABELIGNORE_FILENAME","runConfig","makeWeakCache","options","cache","endHiddenCallStack","makeConfigAPI","cacheNeedsConfiguration","configured","readConfigCode","filepath","nodeFs","existsSync","loadCodeDefault","isAsync","Array","isArray","ConfigError","then","catch","throwConfigError","buildConfigFileObject","cfboaf","WeakMap","configFilesByFilepath","get","set","Map","configFile","dirname","path","packageToBabelConfig","makeWeakCacheSync","file","babel","undefined","readConfigJSON5","makeStaticFileCache","content","json5","parse","err","message","$schema","readIgnoreConfig","ignoreDir","ignorePatterns","split","map","line","replace","trim","filter","Boolean","pattern","ignore","pathPatternToRegex","findConfigUpwards","rootDir","filename","join","nextDir","findRelativeConfig","packageData","envName","caller","config","loc","directories","_packageData$pkg","loadOneConfig","pkg","ignoreLoc","findRootConfig","names","previousConfig","configs","gensync","all","readConfig","reduce","basename","loadConfig","name","v","w","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","code","conf","ext","extname","resolveShowConfigPath","targetPath","env","BABEL_SHOW_CONFIG_FOR","absolutePath","stats","stat","isFile"],"sources":["../../../src/config/files/configuration.ts"],"sourcesContent":["import buildDebug from \"debug\";\nimport nodeFs from \"node:fs\";\nimport path from \"node:path\";\nimport json5 from \"json5\";\nimport gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport { makeWeakCache, makeWeakCacheSync } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport { makeConfigAPI } from \"../helpers/config-api.ts\";\nimport type { ConfigAPI } from \"../helpers/config-api.ts\";\nimport { makeStaticFileCache } from \"./utils.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport pathPatternToRegex from \"../pattern-to-regex.ts\";\nimport type { FilePackageData, RelativeConfig, ConfigFile } from \"./types.ts\";\nimport type { CallerMetadata, InputOptions } from \"../validation/options.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport * as fs from \"../../gensync-utils/fs.ts\";\n\nimport { createRequire } from \"node:module\";\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:configuration\");\n\nexport const ROOT_CONFIG_FILENAMES = [\n \"babel.config.js\",\n \"babel.config.cjs\",\n \"babel.config.mjs\",\n \"babel.config.json\",\n \"babel.config.cts\",\n \"babel.config.ts\",\n \"babel.config.mts\",\n];\nconst RELATIVE_CONFIG_FILENAMES = [\n \".babelrc\",\n \".babelrc.js\",\n \".babelrc.cjs\",\n \".babelrc.mjs\",\n \".babelrc.json\",\n \".babelrc.cts\",\n];\n\nconst BABELIGNORE_FILENAME = \".babelignore\";\n\ntype ConfigCacheData = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\n\nconst runConfig = makeWeakCache(function* runConfig(\n options: Function,\n cache: CacheConfigurator,\n): Handler<{\n options: InputOptions | null;\n cacheNeedsConfiguration: boolean;\n}> {\n // if we want to make it possible to use async configs\n yield* [];\n\n return {\n options: endHiddenCallStack(options as any as (api: ConfigAPI) => unknown)(\n makeConfigAPI(cache),\n ),\n cacheNeedsConfiguration: !cache.configured(),\n };\n});\n\nfunction* readConfigCode(\n filepath: string,\n data: ConfigCacheData,\n): Handler {\n if (!nodeFs.existsSync(filepath)) return null;\n\n let options = yield* loadCodeDefault(\n filepath,\n (yield* isAsync()) ? \"auto\" : \"require\",\n \"You appear to be using a native ECMAScript module configuration \" +\n \"file, which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n \"You appear to be using a configuration file that contains top-level \" +\n \"await, which is only supported when running Babel asynchronously.\",\n );\n\n let cacheNeedsConfiguration = false;\n if (typeof options === \"function\") {\n ({ options, cacheNeedsConfiguration } = yield* runConfig(options, data));\n }\n\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new ConfigError(\n `Configuration should be an exported JavaScript object.`,\n filepath,\n );\n }\n\n // @ts-expect-error todo(flow->ts)\n if (typeof options.then === \"function\") {\n // @ts-expect-error We use ?. in case options is a thenable but not a promise\n options.catch?.(() => {});\n throw new ConfigError(\n `You appear to be using an async configuration, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously return your config.`,\n filepath,\n );\n }\n\n if (cacheNeedsConfiguration) throwConfigError(filepath);\n\n return buildConfigFileObject(options, filepath);\n}\n\n// We cache the generated ConfigFile object rather than creating a new one\n// every time, so that it can be used as a cache key in other functions.\nconst cfboaf /* configFilesByOptionsAndFilepath */ = new WeakMap<\n InputOptions,\n Map\n>();\nfunction buildConfigFileObject(\n options: InputOptions,\n filepath: string,\n): ConfigFile {\n let configFilesByFilepath = cfboaf.get(options);\n if (!configFilesByFilepath) {\n cfboaf.set(options, (configFilesByFilepath = new Map()));\n }\n\n let configFile = configFilesByFilepath.get(filepath);\n if (!configFile) {\n configFile = {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n configFilesByFilepath.set(filepath, configFile);\n }\n\n return configFile;\n}\n\nconst packageToBabelConfig = makeWeakCacheSync(\n (file: ConfigFile): ConfigFile | null => {\n const babel: unknown = file.options.babel;\n\n if (babel === undefined) return null;\n\n if (typeof babel !== \"object\" || Array.isArray(babel) || babel === null) {\n throw new ConfigError(`.babel property must be an object`, file.filepath);\n }\n\n return {\n filepath: file.filepath,\n dirname: file.dirname,\n options: babel,\n };\n },\n);\n\nconst readConfigJSON5 = makeStaticFileCache((filepath, content): ConfigFile => {\n let options;\n try {\n options = json5.parse(content);\n } catch (err) {\n throw new ConfigError(\n `Error while parsing config - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new ConfigError(`No config detected`, filepath);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(`Config returned typeof ${typeof options}`, filepath);\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n delete options.$schema;\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n});\n\nconst readIgnoreConfig = makeStaticFileCache((filepath, content) => {\n const ignoreDir = path.dirname(filepath);\n const ignorePatterns = content\n .split(\"\\n\")\n .map(line =>\n line.replace(process.env.BABEL_8_BREAKING ? /^#.*$/ : /#.*$/, \"\").trim(),\n )\n .filter(Boolean);\n\n for (const pattern of ignorePatterns) {\n if (pattern[0] === \"!\") {\n throw new ConfigError(\n `Negation of file paths is not supported.`,\n filepath,\n );\n }\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n ignore: ignorePatterns.map(pattern =>\n pathPatternToRegex(pattern, ignoreDir),\n ),\n };\n});\n\nexport function findConfigUpwards(rootDir: string): string | null {\n let dirname = rootDir;\n for (;;) {\n for (const filename of ROOT_CONFIG_FILENAMES) {\n if (nodeFs.existsSync(path.join(dirname, filename))) {\n return dirname;\n }\n }\n\n const nextDir = path.dirname(dirname);\n if (dirname === nextDir) break;\n dirname = nextDir;\n }\n\n return null;\n}\n\nexport function* findRelativeConfig(\n packageData: FilePackageData,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n let config = null;\n let ignore = null;\n\n const dirname = path.dirname(packageData.filepath);\n\n for (const loc of packageData.directories) {\n if (!config) {\n config = yield* loadOneConfig(\n RELATIVE_CONFIG_FILENAMES,\n loc,\n envName,\n caller,\n packageData.pkg?.dirname === loc\n ? packageToBabelConfig(packageData.pkg)\n : null,\n );\n }\n\n if (!ignore) {\n const ignoreLoc = path.join(loc, BABELIGNORE_FILENAME);\n ignore = yield* readIgnoreConfig(ignoreLoc);\n\n if (ignore) {\n debug(\"Found ignore %o from %o.\", ignore.filepath, dirname);\n }\n }\n }\n\n return { config, ignore };\n}\n\nexport function findRootConfig(\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller);\n}\n\nfunction* loadOneConfig(\n names: string[],\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n previousConfig: ConfigFile | null = null,\n): Handler {\n const configs = yield* gensync.all(\n names.map(filename =>\n readConfig(path.join(dirname, filename), envName, caller),\n ),\n );\n const config = configs.reduce((previousConfig: ConfigFile | null, config) => {\n if (config && previousConfig) {\n throw new ConfigError(\n `Multiple configuration files found. Please remove one:\\n` +\n ` - ${path.basename(previousConfig.filepath)}\\n` +\n ` - ${config.filepath}\\n` +\n `from ${dirname}`,\n );\n }\n\n return config || previousConfig;\n }, previousConfig);\n\n if (config) {\n debug(\"Found configuration %o from %o.\", config.filepath, dirname);\n }\n return config;\n}\n\nexport function* loadConfig(\n name: string,\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n const filepath = require.resolve(name, { paths: [dirname] });\n\n const conf = yield* readConfig(filepath, envName, caller);\n if (!conf) {\n throw new ConfigError(\n `Config file contains no configuration data`,\n filepath,\n );\n }\n\n debug(\"Loaded config %o from %o.\", name, dirname);\n return conf;\n}\n\n/**\n * Read the given config file, returning the result. Returns null if no config was found, but will\n * throw if there are parsing errors while loading a config.\n */\nfunction readConfig(\n filepath: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler {\n const ext = path.extname(filepath);\n switch (ext) {\n case \".js\":\n case \".cjs\":\n case \".mjs\":\n case \".ts\":\n case \".cts\":\n case \".mts\":\n return readConfigCode(filepath, { envName, caller });\n default:\n return readConfigJSON5(filepath);\n }\n}\n\nexport function* resolveShowConfigPath(\n dirname: string,\n): Handler {\n const targetPath = process.env.BABEL_SHOW_CONFIG_FOR;\n if (targetPath != null) {\n const absolutePath = path.resolve(dirname, targetPath);\n const stats = yield* fs.stat(absolutePath);\n if (!stats.isFile()) {\n throw new Error(\n `${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`,\n );\n }\n return absolutePath;\n }\n return null;\n}\n\nfunction throwConfigError(filepath: string): never {\n throw new ConfigError(\n `\\\nCaching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured\nfor various types of caching, using the first param of their handler functions:\n\nmodule.exports = function(api) {\n // The API exposes the following:\n\n // Cache the returned value forever and don't call this function again.\n api.cache(true);\n\n // Don't cache at all. Not recommended because it will be very slow.\n api.cache(false);\n\n // Cached based on the value of some function. If this function returns a value different from\n // a previously-encountered value, the plugins will re-evaluate.\n var env = api.cache(() => process.env.NODE_ENV);\n\n // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for\n // any possible NODE_ENV value that might come up during plugin execution.\n var isProd = api.cache(() => process.env.NODE_ENV === \"production\");\n\n // .cache(fn) will perform a linear search though instances to find the matching plugin based\n // based on previous instantiated plugins. If you want to recreate the plugin and discard the\n // previous instance whenever something changes, you may use:\n var isProd = api.cache.invalidate(() => process.env.NODE_ENV === \"production\");\n\n // Note, we also expose the following more-verbose versions of the above examples:\n api.cache.forever(); // api.cache(true)\n api.cache.never(); // api.cache(false)\n api.cache.using(fn); // api.cache(fn)\n\n // Return the value that will be cached.\n return { };\n};`,\n filepath,\n );\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/files/import.cjs b/framework-core/node_modules/@babel/core/lib/config/files/import.cjs new file mode 100644 index 0000000..46fa5d5 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/import.cjs @@ -0,0 +1,6 @@ +module.exports = function import_(filepath) { + return import(filepath); +}; +0 && 0; + +//# sourceMappingURL=import.cjs.map diff --git a/framework-core/node_modules/@babel/core/lib/config/files/import.cjs.map b/framework-core/node_modules/@babel/core/lib/config/files/import.cjs.map new file mode 100644 index 0000000..2200da8 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/import.cjs.map @@ -0,0 +1 @@ +{"version":3,"names":["module","exports","import_","filepath"],"sources":["../../../src/config/files/import.cjs"],"sourcesContent":["// We keep this in a separate file so that in older node versions, where\n// import() isn't supported, we can try/catch around the require() call\n// when loading this file.\n\nmodule.exports = function import_(filepath) {\n return import(filepath);\n};\n"],"mappings":"AAIAA,MAAM,CAACC,OAAO,GAAG,SAASC,OAAOA,CAACC,QAAQ,EAAE;EAC1C,OAAO,OAAOA,QAAQ,CAAC;AACzB,CAAC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/files/index-browser.js b/framework-core/node_modules/@babel/core/lib/config/files/index-browser.js new file mode 100644 index 0000000..d8ba7db --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/index-browser.js @@ -0,0 +1,58 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ROOT_CONFIG_FILENAMES = void 0; +exports.findConfigUpwards = findConfigUpwards; +exports.findPackageData = findPackageData; +exports.findRelativeConfig = findRelativeConfig; +exports.findRootConfig = findRootConfig; +exports.loadConfig = loadConfig; +exports.loadPlugin = loadPlugin; +exports.loadPreset = loadPreset; +exports.resolvePlugin = resolvePlugin; +exports.resolvePreset = resolvePreset; +exports.resolveShowConfigPath = resolveShowConfigPath; +function findConfigUpwards(rootDir) { + return null; +} +function* findPackageData(filepath) { + return { + filepath, + directories: [], + pkg: null, + isPackage: false + }; +} +function* findRelativeConfig(pkgData, envName, caller) { + return { + config: null, + ignore: null + }; +} +function* findRootConfig(dirname, envName, caller) { + return null; +} +function* loadConfig(name, dirname, envName, caller) { + throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); +} +function* resolveShowConfigPath(dirname) { + return null; +} +const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = []; +function resolvePlugin(name, dirname) { + return null; +} +function resolvePreset(name, dirname) { + return null; +} +function loadPlugin(name, dirname) { + throw new Error(`Cannot load plugin ${name} relative to ${dirname} in a browser`); +} +function loadPreset(name, dirname) { + throw new Error(`Cannot load preset ${name} relative to ${dirname} in a browser`); +} +0 && 0; + +//# sourceMappingURL=index-browser.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/files/index-browser.js.map b/framework-core/node_modules/@babel/core/lib/config/files/index-browser.js.map new file mode 100644 index 0000000..e10ddee --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/index-browser.js.map @@ -0,0 +1 @@ +{"version":3,"names":["findConfigUpwards","rootDir","findPackageData","filepath","directories","pkg","isPackage","findRelativeConfig","pkgData","envName","caller","config","ignore","findRootConfig","dirname","loadConfig","name","Error","resolveShowConfigPath","ROOT_CONFIG_FILENAMES","exports","resolvePlugin","resolvePreset","loadPlugin","loadPreset"],"sources":["../../../src/config/files/index-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types.ts\";\n\nimport type { CallerMetadata } from \"../validation/options.ts\";\n\nexport type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData };\n\nexport function findConfigUpwards(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n rootDir: string,\n): string | null {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* findPackageData(filepath: string): Handler {\n return {\n filepath,\n directories: [],\n pkg: null,\n isPackage: false,\n };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRelativeConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n pkgData: FilePackageData,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n return { config: null, ignore: null };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRootConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* loadConfig(\n name: string,\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);\n}\n\n// eslint-disable-next-line require-yield\nexport function* resolveShowConfigPath(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n): Handler {\n return null;\n}\n\nexport const ROOT_CONFIG_FILENAMES: string[] = [];\n\ntype Resolved =\n | { loader: \"require\"; filepath: string }\n | { loader: \"import\"; filepath: string };\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): Resolved | null {\n return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): Resolved | null {\n return null;\n}\n\nexport function loadPlugin(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load plugin ${name} relative to ${dirname} in a browser`,\n );\n}\n\nexport function loadPreset(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load preset ${name} relative to ${dirname} in a browser`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAeO,SAASA,iBAAiBA,CAE/BC,OAAe,EACA;EACf,OAAO,IAAI;AACb;AAGO,UAAUC,eAAeA,CAACC,QAAgB,EAA4B;EAC3E,OAAO;IACLA,QAAQ;IACRC,WAAW,EAAE,EAAE;IACfC,GAAG,EAAE,IAAI;IACTC,SAAS,EAAE;EACb,CAAC;AACH;AAGO,UAAUC,kBAAkBA,CAEjCC,OAAwB,EAExBC,OAAe,EAEfC,MAAkC,EACT;EACzB,OAAO;IAAEC,MAAM,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;AACvC;AAGO,UAAUC,cAAcA,CAE7BC,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACN;EAC5B,OAAO,IAAI;AACb;AAGO,UAAUK,UAAUA,CACzBC,IAAY,EACZF,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACb;EACrB,MAAM,IAAIO,KAAK,CAAC,eAAeD,IAAI,gBAAgBF,OAAO,eAAe,CAAC;AAC5E;AAGO,UAAUI,qBAAqBA,CAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAAC,OAAA,CAAAD,qBAAA,GAAG,EAAE;AAO1C,SAASE,aAAaA,CAACL,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAGO,SAASQ,aAAaA,CAACN,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAEO,SAASS,UAAUA,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/files/index.js b/framework-core/node_modules/@babel/core/lib/config/files/index.js new file mode 100644 index 0000000..8750f40 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/index.js @@ -0,0 +1,78 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ROOT_CONFIG_FILENAMES", { + enumerable: true, + get: function () { + return _configuration.ROOT_CONFIG_FILENAMES; + } +}); +Object.defineProperty(exports, "findConfigUpwards", { + enumerable: true, + get: function () { + return _configuration.findConfigUpwards; + } +}); +Object.defineProperty(exports, "findPackageData", { + enumerable: true, + get: function () { + return _package.findPackageData; + } +}); +Object.defineProperty(exports, "findRelativeConfig", { + enumerable: true, + get: function () { + return _configuration.findRelativeConfig; + } +}); +Object.defineProperty(exports, "findRootConfig", { + enumerable: true, + get: function () { + return _configuration.findRootConfig; + } +}); +Object.defineProperty(exports, "loadConfig", { + enumerable: true, + get: function () { + return _configuration.loadConfig; + } +}); +Object.defineProperty(exports, "loadPlugin", { + enumerable: true, + get: function () { + return _plugins.loadPlugin; + } +}); +Object.defineProperty(exports, "loadPreset", { + enumerable: true, + get: function () { + return _plugins.loadPreset; + } +}); +Object.defineProperty(exports, "resolvePlugin", { + enumerable: true, + get: function () { + return _plugins.resolvePlugin; + } +}); +Object.defineProperty(exports, "resolvePreset", { + enumerable: true, + get: function () { + return _plugins.resolvePreset; + } +}); +Object.defineProperty(exports, "resolveShowConfigPath", { + enumerable: true, + get: function () { + return _configuration.resolveShowConfigPath; + } +}); +var _package = require("./package.js"); +var _configuration = require("./configuration.js"); +var _plugins = require("./plugins.js"); +({}); +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/files/index.js.map b/framework-core/node_modules/@babel/core/lib/config/files/index.js.map new file mode 100644 index 0000000..1e473b8 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_package","require","_configuration","_plugins"],"sources":["../../../src/config/files/index.ts"],"sourcesContent":["type indexBrowserType = typeof import(\"./index-browser\");\ntype indexType = typeof import(\"./index\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n({}) as any as indexBrowserType as indexType;\n\nexport { findPackageData } from \"./package.ts\";\n\nexport {\n findConfigUpwards,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./configuration.ts\";\nexport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types.ts\";\nexport {\n loadPlugin,\n loadPreset,\n resolvePlugin,\n resolvePreset,\n} from \"./plugins.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAcA,IAAAE,QAAA,GAAAF,OAAA;AAlBA,CAAC,CAAC,CAAC;AAA0C","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/files/module-types.js b/framework-core/node_modules/@babel/core/lib/config/files/module-types.js new file mode 100644 index 0000000..c7bf699 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/module-types.js @@ -0,0 +1,211 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = loadCodeDefault; +exports.supportsESM = void 0; +var _async = require("../../gensync-utils/async.js"); +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _url() { + const data = require("url"); + _url = function () { + return data; + }; + return data; +} +require("module"); +function _semver() { + const data = require("semver"); + _semver = function () { + return data; + }; + return data; +} +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js"); +var _configError = require("../../errors/config-error.js"); +var _transformFile = require("../../transform-file.js"); +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +const debug = _debug()("babel:config:loading:files:module-types"); +{ + try { + var import_ = require("./import.cjs"); + } catch (_unused) {} +} +const supportsESM = exports.supportsESM = _semver().satisfies(process.versions.node, "^12.17 || >=13.2"); +const LOADING_CJS_FILES = new Set(); +function loadCjsDefault(filepath) { + if (LOADING_CJS_FILES.has(filepath)) { + debug("Auto-ignoring usage of config %o.", filepath); + return {}; + } + let module; + try { + LOADING_CJS_FILES.add(filepath); + module = (0, _rewriteStackTrace.endHiddenCallStack)(require)(filepath); + } finally { + LOADING_CJS_FILES.delete(filepath); + } + { + return module != null && (module.__esModule || module[Symbol.toStringTag] === "Module") ? module.default || (arguments[1] ? module : undefined) : module; + } +} +const loadMjsFromPath = (0, _rewriteStackTrace.endHiddenCallStack)(function () { + var _loadMjsFromPath = _asyncToGenerator(function* (filepath) { + const url = (0, _url().pathToFileURL)(filepath).toString() + "?import"; + { + if (!import_) { + throw new _configError.default("Internal error: Native ECMAScript modules aren't supported by this platform.\n", filepath); + } + return yield import_(url); + } + }); + function loadMjsFromPath(_x) { + return _loadMjsFromPath.apply(this, arguments); + } + return loadMjsFromPath; +}()); +const tsNotSupportedError = ext => `\ +You are using a ${ext} config file, but Babel only supports transpiling .cts configs. Either: +- Use a .cts config file +- Update to Node.js 23.6.0, which has native TypeScript support +- Install tsx to transpile ${ext} files on the fly\ +`; +const SUPPORTED_EXTENSIONS = { + ".js": "unknown", + ".mjs": "esm", + ".cjs": "cjs", + ".ts": "unknown", + ".mts": "esm", + ".cts": "cjs" +}; +const asyncModules = new Set(); +function* loadCodeDefault(filepath, loader, esmError, tlaError) { + let async; + const ext = _path().extname(filepath); + const isTS = ext === ".ts" || ext === ".cts" || ext === ".mts"; + const type = SUPPORTED_EXTENSIONS[hasOwnProperty.call(SUPPORTED_EXTENSIONS, ext) ? ext : ".js"]; + const pattern = `${loader} ${type}`; + switch (pattern) { + case "require cjs": + case "auto cjs": + if (isTS) { + return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath)); + } else { + return loadCjsDefault(filepath, arguments[2]); + } + case "auto unknown": + case "require unknown": + case "require esm": + try { + if (isTS) { + return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath)); + } else { + return loadCjsDefault(filepath, arguments[2]); + } + } catch (e) { + if (e.code === "ERR_REQUIRE_ASYNC_MODULE" || e.code === "ERR_REQUIRE_CYCLE_MODULE" && asyncModules.has(filepath)) { + asyncModules.add(filepath); + if (!(async != null ? async : async = yield* (0, _async.isAsync)())) { + throw new _configError.default(tlaError, filepath); + } + } else if (e.code === "ERR_REQUIRE_ESM" || type === "esm") {} else { + throw e; + } + } + case "auto esm": + if (async != null ? async : async = yield* (0, _async.isAsync)()) { + const promise = isTS ? ensureTsSupport(filepath, ext, () => loadMjsFromPath(filepath)) : loadMjsFromPath(filepath); + return (yield* (0, _async.waitFor)(promise)).default; + } + if (isTS) { + throw new _configError.default(tsNotSupportedError(ext), filepath); + } else { + throw new _configError.default(esmError, filepath); + } + default: + throw new Error("Internal Babel error: unreachable code."); + } +} +function ensureTsSupport(filepath, ext, callback) { + if (process.features.typescript || require.extensions[".ts"] || require.extensions[".cts"] || require.extensions[".mts"]) { + return callback(); + } + if (ext !== ".cts") { + throw new _configError.default(tsNotSupportedError(ext), filepath); + } + const opts = { + babelrc: false, + configFile: false, + sourceType: "unambiguous", + sourceMaps: "inline", + sourceFileName: _path().basename(filepath), + presets: [[getTSPreset(filepath), Object.assign({ + onlyRemoveTypeImports: true, + optimizeConstEnums: true + }, { + allowDeclareFields: true + })]] + }; + let handler = function (m, filename) { + if (handler && filename.endsWith(".cts")) { + try { + return m._compile((0, _transformFile.transformFileSync)(filename, Object.assign({}, opts, { + filename + })).code, filename); + } catch (error) { + const packageJson = require("@babel/preset-typescript/package.json"); + if (_semver().lt(packageJson.version, "7.21.4")) { + console.error("`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`."); + } + throw error; + } + } + return require.extensions[".js"](m, filename); + }; + require.extensions[ext] = handler; + try { + return callback(); + } finally { + if (require.extensions[ext] === handler) delete require.extensions[ext]; + handler = undefined; + } +} +function getTSPreset(filepath) { + try { + return require("@babel/preset-typescript"); + } catch (error) { + if (error.code !== "MODULE_NOT_FOUND") throw error; + let message = "You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!"; + { + if (process.versions.pnp) { + message += ` +If you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file: + +packageExtensions: +\t"@babel/core@*": +\t\tpeerDependencies: +\t\t\t"@babel/preset-typescript": "*" +`; + } + } + throw new _configError.default(message, filepath); + } +} +0 && 0; + +//# sourceMappingURL=module-types.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/files/module-types.js.map b/framework-core/node_modules/@babel/core/lib/config/files/module-types.js.map new file mode 100644 index 0000000..e7087bc --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/module-types.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_async","require","_path","data","_url","_semver","_debug","_rewriteStackTrace","_configError","_transformFile","asyncGeneratorStep","n","t","e","r","o","a","c","i","u","value","done","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","debug","buildDebug","import_","_unused","supportsESM","exports","semver","satisfies","process","versions","node","LOADING_CJS_FILES","Set","loadCjsDefault","filepath","has","module","add","endHiddenCallStack","delete","__esModule","Symbol","toStringTag","default","undefined","loadMjsFromPath","_loadMjsFromPath","url","pathToFileURL","toString","ConfigError","_x","tsNotSupportedError","ext","SUPPORTED_EXTENSIONS","asyncModules","loadCodeDefault","loader","esmError","tlaError","async","path","extname","isTS","type","hasOwnProperty","call","pattern","ensureTsSupport","code","isAsync","promise","waitFor","Error","callback","features","typescript","extensions","opts","babelrc","configFile","sourceType","sourceMaps","sourceFileName","basename","presets","getTSPreset","Object","assign","onlyRemoveTypeImports","optimizeConstEnums","allowDeclareFields","handler","m","filename","endsWith","_compile","transformFileSync","error","packageJson","lt","version","console","message","pnp"],"sources":["../../../src/config/files/module-types.ts"],"sourcesContent":["import { isAsync, waitFor } from \"../../gensync-utils/async.ts\";\nimport type { Handler } from \"gensync\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { createRequire } from \"node:module\";\nimport semver from \"semver\";\nimport buildDebug from \"debug\";\n\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport type { InputOptions } from \"../index.ts\";\nimport { transformFileSync } from \"../../transform-file.ts\";\n\nconst debug = buildDebug(\"babel:config:loading:files:module-types\");\n\nconst require = createRequire(import.meta.url);\n\nif (!process.env.BABEL_8_BREAKING) {\n try {\n // Old Node.js versions don't support import() syntax.\n // eslint-disable-next-line no-var\n var import_:\n | ((specifier: string | URL) => any)\n | undefined = require(\"./import.cjs\");\n } catch {}\n}\n\nexport const supportsESM = semver.satisfies(\n process.versions.node,\n // older versions, starting from 10, support the dynamic\n // import syntax but always return a rejected promise.\n \"^12.17 || >=13.2\",\n);\n\nconst LOADING_CJS_FILES = new Set();\n\nfunction loadCjsDefault(filepath: string) {\n // The `require()` call below can make this code reentrant if a require hook\n // like @babel/register has been loaded into the system. That would cause\n // Babel to attempt to compile the `.babelrc.js` file as it loads below. To\n // cover this case, we auto-ignore re-entrant config processing. ESM loaders\n // do not have this problem, because loaders do not apply to themselves.\n if (LOADING_CJS_FILES.has(filepath)) {\n debug(\"Auto-ignoring usage of config %o.\", filepath);\n return {};\n }\n\n let module;\n try {\n LOADING_CJS_FILES.add(filepath);\n module = endHiddenCallStack(require)(filepath);\n } finally {\n LOADING_CJS_FILES.delete(filepath);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return module != null &&\n (module.__esModule || module[Symbol.toStringTag] === \"Module\")\n ? module.default\n : module;\n } else {\n return module != null &&\n (module.__esModule || module[Symbol.toStringTag] === \"Module\")\n ? module.default ||\n /* fallbackToTranspiledModule */ (arguments[1] ? module : undefined)\n : module;\n }\n}\n\nconst loadMjsFromPath = endHiddenCallStack(async function loadMjsFromPath(\n filepath: string,\n) {\n // Add ?import as a workaround for https://github.com/nodejs/node/issues/55500\n const url = pathToFileURL(filepath).toString() + \"?import\";\n\n if (process.env.BABEL_8_BREAKING) {\n return await import(url);\n } else {\n if (!import_) {\n throw new ConfigError(\n \"Internal error: Native ECMAScript modules aren't supported by this platform.\\n\",\n filepath,\n );\n }\n\n return await import_(url);\n }\n});\n\nconst tsNotSupportedError = (ext: string) => `\\\nYou are using a ${ext} config file, but Babel only supports transpiling .cts configs. Either:\n- Use a .cts config file\n- Update to Node.js 23.6.0, which has native TypeScript support\n- Install tsx to transpile ${ext} files on the fly\\\n`;\n\nconst SUPPORTED_EXTENSIONS = {\n \".js\": \"unknown\",\n \".mjs\": \"esm\",\n \".cjs\": \"cjs\",\n \".ts\": \"unknown\",\n \".mts\": \"esm\",\n \".cts\": \"cjs\",\n} as const;\n\nconst asyncModules = new Set();\n\nexport default function* loadCodeDefault(\n filepath: string,\n loader: \"require\" | \"auto\",\n esmError: string,\n tlaError: string,\n): Handler {\n let async;\n\n const ext = path.extname(filepath);\n const isTS = ext === \".ts\" || ext === \".cts\" || ext === \".mts\";\n\n const type =\n SUPPORTED_EXTENSIONS[\n Object.hasOwn(SUPPORTED_EXTENSIONS, ext)\n ? (ext as keyof typeof SUPPORTED_EXTENSIONS)\n : (\".js\" as const)\n ];\n\n const pattern = `${loader} ${type}` as const;\n switch (pattern) {\n case \"require cjs\":\n case \"auto cjs\":\n if (isTS) {\n return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));\n } else if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n case \"auto unknown\":\n case \"require unknown\":\n case \"require esm\":\n try {\n if (isTS) {\n return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));\n } else if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n } catch (e) {\n if (\n e.code === \"ERR_REQUIRE_ASYNC_MODULE\" ||\n // Node.js 13.0.0 throws ERR_REQUIRE_CYCLE_MODULE instead of\n // ERR_REQUIRE_ASYNC_MODULE when requiring a module a second time\n // https://github.com/nodejs/node/issues/55516\n // This `asyncModules` won't catch all of such cases, but it will\n // at least catch those caused by Babel trying to load a module twice.\n (e.code === \"ERR_REQUIRE_CYCLE_MODULE\" && asyncModules.has(filepath))\n ) {\n asyncModules.add(filepath);\n if (!(async ??= yield* isAsync())) {\n throw new ConfigError(tlaError, filepath);\n }\n // fall through: require() failed due to TLA\n } else if (\n e.code === \"ERR_REQUIRE_ESM\" ||\n (!process.env.BABEL_8_BREAKING && type === \"esm\")\n ) {\n // fall through: require() failed due to ESM\n } else {\n throw e;\n }\n }\n // fall through: require() failed due to ESM or TLA, try import()\n case \"auto esm\":\n if ((async ??= yield* isAsync())) {\n const promise = isTS\n ? ensureTsSupport(filepath, ext, () => loadMjsFromPath(filepath))\n : loadMjsFromPath(filepath);\n\n return (yield* waitFor(promise)).default;\n }\n if (isTS) {\n throw new ConfigError(tsNotSupportedError(ext), filepath);\n } else {\n throw new ConfigError(esmError, filepath);\n }\n default:\n throw new Error(\"Internal Babel error: unreachable code.\");\n }\n}\n\nfunction ensureTsSupport(\n filepath: string,\n ext: string,\n callback: () => T,\n): T {\n if (\n process.features.typescript ||\n require.extensions[\".ts\"] ||\n require.extensions[\".cts\"] ||\n require.extensions[\".mts\"]\n ) {\n return callback();\n }\n\n if (ext !== \".cts\") {\n throw new ConfigError(tsNotSupportedError(ext), filepath);\n }\n\n const opts: InputOptions = {\n babelrc: false,\n configFile: false,\n sourceType: \"unambiguous\",\n sourceMaps: \"inline\",\n sourceFileName: path.basename(filepath),\n presets: [\n [\n getTSPreset(filepath),\n {\n onlyRemoveTypeImports: true,\n optimizeConstEnums: true,\n ...(process.env.BABEL_8_BREAKING ? {} : { allowDeclareFields: true }),\n },\n ],\n ],\n };\n\n let handler: NodeJS.RequireExtensions[\"\"] = function (m, filename) {\n // If we want to support `.ts`, `.d.ts` must be handled specially.\n if (handler && filename.endsWith(\".cts\")) {\n try {\n // @ts-expect-error Undocumented API\n return m._compile(\n transformFileSync(filename, {\n ...opts,\n filename,\n }).code,\n filename,\n );\n } catch (error) {\n // TODO(Babel 8): Add this as an optional peer dependency\n // eslint-disable-next-line import/no-extraneous-dependencies\n const packageJson = require(\"@babel/preset-typescript/package.json\");\n if (semver.lt(packageJson.version, \"7.21.4\")) {\n console.error(\n \"`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`.\",\n );\n }\n throw error;\n }\n }\n return require.extensions[\".js\"](m, filename);\n };\n require.extensions[ext] = handler;\n\n try {\n return callback();\n } finally {\n if (require.extensions[ext] === handler) delete require.extensions[ext];\n handler = undefined;\n }\n}\n\nfunction getTSPreset(filepath: string) {\n try {\n // eslint-disable-next-line import/no-extraneous-dependencies\n return require(\"@babel/preset-typescript\");\n } catch (error) {\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n let message =\n \"You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!\";\n\n if (!process.env.BABEL_8_BREAKING) {\n if (process.versions.pnp) {\n // Using Yarn PnP, which doesn't allow requiring packages that are not\n // explicitly specified as dependencies.\n message += `\nIf you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file:\n\npackageExtensions:\n\\t\"@babel/core@*\":\n\\t\\tpeerDependencies:\n\\t\\t\\t\"@babel/preset-typescript\": \"*\"\n`;\n }\n }\n\n throw new ConfigError(message, filepath);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/files/package.js b/framework-core/node_modules/@babel/core/lib/config/files/package.js new file mode 100644 index 0000000..eed8ab8 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/package.js @@ -0,0 +1,61 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.findPackageData = findPackageData; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _utils = require("./utils.js"); +var _configError = require("../../errors/config-error.js"); +const PACKAGE_FILENAME = "package.json"; +const readConfigPackage = (0, _utils.makeStaticFileCache)((filepath, content) => { + let options; + try { + options = JSON.parse(content); + } catch (err) { + throw new _configError.default(`Error while parsing JSON - ${err.message}`, filepath); + } + if (!options) throw new Error(`${filepath}: No config detected`); + if (typeof options !== "object") { + throw new _configError.default(`Config returned typeof ${typeof options}`, filepath); + } + if (Array.isArray(options)) { + throw new _configError.default(`Expected config object but found array`, filepath); + } + return { + filepath, + dirname: _path().dirname(filepath), + options + }; +}); +function* findPackageData(filepath) { + let pkg = null; + const directories = []; + let isPackage = true; + let dirname = _path().dirname(filepath); + while (!pkg && _path().basename(dirname) !== "node_modules") { + directories.push(dirname); + pkg = yield* readConfigPackage(_path().join(dirname, PACKAGE_FILENAME)); + const nextLoc = _path().dirname(dirname); + if (dirname === nextLoc) { + isPackage = false; + break; + } + dirname = nextLoc; + } + return { + filepath, + directories, + pkg, + isPackage + }; +} +0 && 0; + +//# sourceMappingURL=package.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/files/package.js.map b/framework-core/node_modules/@babel/core/lib/config/files/package.js.map new file mode 100644 index 0000000..38aeb2c --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/package.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_utils","_configError","PACKAGE_FILENAME","readConfigPackage","makeStaticFileCache","filepath","content","options","JSON","parse","err","ConfigError","message","Error","Array","isArray","dirname","path","findPackageData","pkg","directories","isPackage","basename","push","join","nextLoc"],"sources":["../../../src/config/files/package.ts"],"sourcesContent":["import path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport { makeStaticFileCache } from \"./utils.ts\";\n\nimport type { ConfigFile, FilePackageData } from \"./types.ts\";\n\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst PACKAGE_FILENAME = \"package.json\";\n\nconst readConfigPackage = makeStaticFileCache(\n (filepath, content): ConfigFile => {\n let options;\n try {\n options = JSON.parse(content) as unknown;\n } catch (err) {\n throw new ConfigError(\n `Error while parsing JSON - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new Error(`${filepath}: No config detected`);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(\n `Config returned typeof ${typeof options}`,\n filepath,\n );\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n },\n);\n\n/**\n * Find metadata about the package that this file is inside of. Resolution\n * of Babel's config requires general package information to decide when to\n * search for .babelrc files\n */\nexport function* findPackageData(filepath: string): Handler {\n let pkg = null;\n const directories = [];\n let isPackage = true;\n\n let dirname = path.dirname(filepath);\n while (!pkg && path.basename(dirname) !== \"node_modules\") {\n directories.push(dirname);\n\n pkg = yield* readConfigPackage(path.join(dirname, PACKAGE_FILENAME));\n\n const nextLoc = path.dirname(dirname);\n if (dirname === nextLoc) {\n isPackage = false;\n break;\n }\n dirname = nextLoc;\n }\n\n return { filepath, directories, pkg, isPackage };\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAIA,IAAAE,YAAA,GAAAF,OAAA;AAEA,MAAMG,gBAAgB,GAAG,cAAc;AAEvC,MAAMC,iBAAiB,GAAG,IAAAC,0BAAmB,EAC3C,CAACC,QAAQ,EAAEC,OAAO,KAAiB;EACjC,IAAIC,OAAO;EACX,IAAI;IACFA,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,CAAY;EAC1C,CAAC,CAAC,OAAOI,GAAG,EAAE;IACZ,MAAM,IAAIC,oBAAW,CACnB,8BAA8BD,GAAG,CAACE,OAAO,EAAE,EAC3CP,QACF,CAAC;EACH;EAEA,IAAI,CAACE,OAAO,EAAE,MAAM,IAAIM,KAAK,CAAC,GAAGR,QAAQ,sBAAsB,CAAC;EAEhE,IAAI,OAAOE,OAAO,KAAK,QAAQ,EAAE;IAC/B,MAAM,IAAII,oBAAW,CACnB,0BAA0B,OAAOJ,OAAO,EAAE,EAC1CF,QACF,CAAC;EACH;EACA,IAAIS,KAAK,CAACC,OAAO,CAACR,OAAO,CAAC,EAAE;IAC1B,MAAM,IAAII,oBAAW,CAAC,wCAAwC,EAAEN,QAAQ,CAAC;EAC3E;EAEA,OAAO;IACLA,QAAQ;IACRW,OAAO,EAAEC,MAAGA,CAAC,CAACD,OAAO,CAACX,QAAQ,CAAC;IAC/BE;EACF,CAAC;AACH,CACF,CAAC;AAOM,UAAUW,eAAeA,CAACb,QAAgB,EAA4B;EAC3E,IAAIc,GAAG,GAAG,IAAI;EACd,MAAMC,WAAW,GAAG,EAAE;EACtB,IAAIC,SAAS,GAAG,IAAI;EAEpB,IAAIL,OAAO,GAAGC,MAAGA,CAAC,CAACD,OAAO,CAACX,QAAQ,CAAC;EACpC,OAAO,CAACc,GAAG,IAAIF,MAAGA,CAAC,CAACK,QAAQ,CAACN,OAAO,CAAC,KAAK,cAAc,EAAE;IACxDI,WAAW,CAACG,IAAI,CAACP,OAAO,CAAC;IAEzBG,GAAG,GAAG,OAAOhB,iBAAiB,CAACc,MAAGA,CAAC,CAACO,IAAI,CAACR,OAAO,EAAEd,gBAAgB,CAAC,CAAC;IAEpE,MAAMuB,OAAO,GAAGR,MAAGA,CAAC,CAACD,OAAO,CAACA,OAAO,CAAC;IACrC,IAAIA,OAAO,KAAKS,OAAO,EAAE;MACvBJ,SAAS,GAAG,KAAK;MACjB;IACF;IACAL,OAAO,GAAGS,OAAO;EACnB;EAEA,OAAO;IAAEpB,QAAQ;IAAEe,WAAW;IAAED,GAAG;IAAEE;EAAU,CAAC;AAClD;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/files/plugins.js b/framework-core/node_modules/@babel/core/lib/config/files/plugins.js new file mode 100644 index 0000000..88f82dc --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/plugins.js @@ -0,0 +1,230 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.loadPlugin = loadPlugin; +exports.loadPreset = loadPreset; +exports.resolvePreset = exports.resolvePlugin = void 0; +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _async = require("../../gensync-utils/async.js"); +var _moduleTypes = require("./module-types.js"); +function _url() { + const data = require("url"); + _url = function () { + return data; + }; + return data; +} +var _importMetaResolve = require("../../vendor/import-meta-resolve.js"); +require("module"); +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +const debug = _debug()("babel:config:loading:files:plugins"); +const EXACT_RE = /^module:/; +const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/; +const BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-preset-)/; +const BABEL_PLUGIN_ORG_RE = /^(@babel\/)(?!plugin-|[^/]+\/)/; +const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/; +const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/; +const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/; +const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/; +const resolvePlugin = exports.resolvePlugin = resolveStandardizedName.bind(null, "plugin"); +const resolvePreset = exports.resolvePreset = resolveStandardizedName.bind(null, "preset"); +function* loadPlugin(name, dirname) { + const { + filepath, + loader + } = resolvePlugin(name, dirname, yield* (0, _async.isAsync)()); + const value = yield* requireModule("plugin", loader, filepath); + debug("Loaded plugin %o from %o.", name, dirname); + return { + filepath, + value + }; +} +function* loadPreset(name, dirname) { + const { + filepath, + loader + } = resolvePreset(name, dirname, yield* (0, _async.isAsync)()); + const value = yield* requireModule("preset", loader, filepath); + debug("Loaded preset %o from %o.", name, dirname); + return { + filepath, + value + }; +} +function standardizeName(type, name) { + if (_path().isAbsolute(name)) return name; + const isPreset = type === "preset"; + return name.replace(isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE, `babel-${type}-`).replace(isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE, `$1${type}-`).replace(isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE, `$1babel-${type}-`).replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`).replace(EXACT_RE, ""); +} +function* resolveAlternativesHelper(type, name) { + const standardizedName = standardizeName(type, name); + const { + error, + value + } = yield standardizedName; + if (!error) return value; + if (error.code !== "MODULE_NOT_FOUND") throw error; + if (standardizedName !== name && !(yield name).error) { + error.message += `\n- If you want to resolve "${name}", use "module:${name}"`; + } + if (!(yield standardizeName(type, "@babel/" + name)).error) { + error.message += `\n- Did you mean "@babel/${name}"?`; + } + const oppositeType = type === "preset" ? "plugin" : "preset"; + if (!(yield standardizeName(oppositeType, name)).error) { + error.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`; + } + if (type === "plugin") { + const transformName = standardizedName.replace("-proposal-", "-transform-"); + if (transformName !== standardizedName && !(yield transformName).error) { + error.message += `\n- Did you mean "${transformName}"?`; + } + } + error.message += `\n +Make sure that all the Babel plugins and presets you are using +are defined as dependencies or devDependencies in your package.json +file. It's possible that the missing plugin is loaded by a preset +you are using that forgot to add the plugin to its dependencies: you +can workaround this problem by explicitly adding the missing package +to your top-level package.json. +`; + throw error; +} +function tryRequireResolve(id, dirname) { + try { + if (dirname) { + return { + error: null, + value: (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { + paths: [b] + }, M = require("module")) => { + let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + if (f) return f; + f = new Error(`Cannot resolve module '${r}'`); + f.code = "MODULE_NOT_FOUND"; + throw f; + })(id, { + paths: [dirname] + }) + }; + } else { + return { + error: null, + value: require.resolve(id) + }; + } + } catch (error) { + return { + error, + value: null + }; + } +} +function tryImportMetaResolve(id, options) { + try { + return { + error: null, + value: (0, _importMetaResolve.resolve)(id, options) + }; + } catch (error) { + return { + error, + value: null + }; + } +} +function resolveStandardizedNameForRequire(type, name, dirname) { + const it = resolveAlternativesHelper(type, name); + let res = it.next(); + while (!res.done) { + res = it.next(tryRequireResolve(res.value, dirname)); + } + return { + loader: "require", + filepath: res.value + }; +} +function resolveStandardizedNameForImport(type, name, dirname) { + const parentUrl = (0, _url().pathToFileURL)(_path().join(dirname, "./babel-virtual-resolve-base.js")).href; + const it = resolveAlternativesHelper(type, name); + let res = it.next(); + while (!res.done) { + res = it.next(tryImportMetaResolve(res.value, parentUrl)); + } + return { + loader: "auto", + filepath: (0, _url().fileURLToPath)(res.value) + }; +} +function resolveStandardizedName(type, name, dirname, allowAsync) { + if (!_moduleTypes.supportsESM || !allowAsync) { + return resolveStandardizedNameForRequire(type, name, dirname); + } + try { + const resolved = resolveStandardizedNameForImport(type, name, dirname); + if (!(0, _fs().existsSync)(resolved.filepath)) { + throw Object.assign(new Error(`Could not resolve "${name}" in file ${dirname}.`), { + type: "MODULE_NOT_FOUND" + }); + } + return resolved; + } catch (e) { + try { + return resolveStandardizedNameForRequire(type, name, dirname); + } catch (e2) { + if (e.type === "MODULE_NOT_FOUND") throw e; + if (e2.type === "MODULE_NOT_FOUND") throw e2; + throw e; + } + } +} +{ + var LOADING_MODULES = new Set(); +} +function* requireModule(type, loader, name) { + { + if (!(yield* (0, _async.isAsync)()) && LOADING_MODULES.has(name)) { + throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.'); + } + } + try { + { + LOADING_MODULES.add(name); + } + { + return yield* (0, _moduleTypes.default)(name, loader, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", `You appear to be using a ${type} that contains top-level await, ` + "which is only supported when running Babel asynchronously.", true); + } + } catch (err) { + err.message = `[BABEL]: ${err.message} (While processing: ${name})`; + throw err; + } finally { + { + LOADING_MODULES.delete(name); + } + } +} +0 && 0; + +//# sourceMappingURL=plugins.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/files/plugins.js.map b/framework-core/node_modules/@babel/core/lib/config/files/plugins.js.map new file mode 100644 index 0000000..8285b34 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/plugins.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_debug","data","require","_path","_async","_moduleTypes","_url","_importMetaResolve","_fs","debug","buildDebug","EXACT_RE","BABEL_PLUGIN_PREFIX_RE","BABEL_PRESET_PREFIX_RE","BABEL_PLUGIN_ORG_RE","BABEL_PRESET_ORG_RE","OTHER_PLUGIN_ORG_RE","OTHER_PRESET_ORG_RE","OTHER_ORG_DEFAULT_RE","resolvePlugin","exports","resolveStandardizedName","bind","resolvePreset","loadPlugin","name","dirname","filepath","loader","isAsync","value","requireModule","loadPreset","standardizeName","type","path","isAbsolute","isPreset","replace","resolveAlternativesHelper","standardizedName","error","code","message","oppositeType","transformName","tryRequireResolve","id","v","w","split","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","tryImportMetaResolve","options","importMetaResolve","resolveStandardizedNameForRequire","it","res","next","done","resolveStandardizedNameForImport","parentUrl","pathToFileURL","join","href","fileURLToPath","allowAsync","supportsESM","resolved","existsSync","Object","assign","e","e2","LOADING_MODULES","Set","has","add","loadCodeDefault","err","delete"],"sources":["../../../src/config/files/plugins.ts"],"sourcesContent":["/**\n * This file handles all logic for converting string-based configuration references into loaded objects.\n */\n\nimport buildDebug from \"debug\";\nimport path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nimport loadCodeDefault, { supportsESM } from \"./module-types.ts\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\nimport { resolve as importMetaResolve } from \"../../vendor/import-meta-resolve.js\";\n\nimport { createRequire } from \"node:module\";\nimport { existsSync } from \"node:fs\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:plugins\");\n\nconst EXACT_RE = /^module:/;\nconst BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-plugin-)/;\nconst BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-preset-)/;\nconst BABEL_PLUGIN_ORG_RE = /^(@babel\\/)(?!plugin-|[^/]+\\/)/;\nconst BABEL_PRESET_ORG_RE = /^(@babel\\/)(?!preset-|[^/]+\\/)/;\nconst OTHER_PLUGIN_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-plugin(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_PRESET_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-preset(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;\n\nexport const resolvePlugin = resolveStandardizedName.bind(null, \"plugin\");\nexport const resolvePreset = resolveStandardizedName.bind(null, \"preset\");\n\nexport function* loadPlugin(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const { filepath, loader } = resolvePlugin(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"plugin\", loader, filepath);\n debug(\"Loaded plugin %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nexport function* loadPreset(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const { filepath, loader } = resolvePreset(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"preset\", loader, filepath);\n\n debug(\"Loaded preset %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nfunction standardizeName(type: \"plugin\" | \"preset\", name: string) {\n // Let absolute and relative paths through.\n if (path.isAbsolute(name)) return name;\n\n const isPreset = type === \"preset\";\n\n return (\n name\n // foo -> babel-preset-foo\n .replace(\n isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE,\n `babel-${type}-`,\n )\n // @babel/es2015 -> @babel/preset-es2015\n .replace(\n isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE,\n `$1${type}-`,\n )\n // @foo/mypreset -> @foo/babel-preset-mypreset\n .replace(\n isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE,\n `$1babel-${type}-`,\n )\n // @foo -> @foo/babel-preset\n .replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`)\n // module:mypreset -> mypreset\n .replace(EXACT_RE, \"\")\n );\n}\n\ntype Result = { error: Error; value: null } | { error: null; value: T };\n\nfunction* resolveAlternativesHelper(\n type: \"plugin\" | \"preset\",\n name: string,\n): Iterator> {\n const standardizedName = standardizeName(type, name);\n const { error, value } = yield standardizedName;\n if (!error) return value;\n\n // @ts-expect-error code may not index error\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n if (standardizedName !== name && !(yield name).error) {\n error.message += `\\n- If you want to resolve \"${name}\", use \"module:${name}\"`;\n }\n\n if (!(yield standardizeName(type, \"@babel/\" + name)).error) {\n error.message += `\\n- Did you mean \"@babel/${name}\"?`;\n }\n\n const oppositeType = type === \"preset\" ? \"plugin\" : \"preset\";\n if (!(yield standardizeName(oppositeType, name)).error) {\n error.message += `\\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;\n }\n\n if (type === \"plugin\") {\n const transformName = standardizedName.replace(\"-proposal-\", \"-transform-\");\n if (transformName !== standardizedName && !(yield transformName).error) {\n error.message += `\\n- Did you mean \"${transformName}\"?`;\n }\n }\n\n error.message += `\\n\nMake sure that all the Babel plugins and presets you are using\nare defined as dependencies or devDependencies in your package.json\nfile. It's possible that the missing plugin is loaded by a preset\nyou are using that forgot to add the plugin to its dependencies: you\ncan workaround this problem by explicitly adding the missing package\nto your top-level package.json.\n`;\n\n throw error;\n}\n\nfunction tryRequireResolve(\n id: string,\n dirname: string | undefined,\n): Result {\n try {\n if (dirname) {\n return { error: null, value: require.resolve(id, { paths: [dirname] }) };\n } else {\n return { error: null, value: require.resolve(id) };\n }\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction tryImportMetaResolve(\n id: Parameters[0],\n options: Parameters[1],\n): Result {\n try {\n return { error: null, value: importMetaResolve(id, options) };\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction resolveStandardizedNameForRequire(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryRequireResolve(res.value, dirname));\n }\n return { loader: \"require\" as const, filepath: res.value };\n}\nfunction resolveStandardizedNameForImport(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const parentUrl = pathToFileURL(\n path.join(dirname, \"./babel-virtual-resolve-base.js\"),\n ).href;\n\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryImportMetaResolve(res.value, parentUrl));\n }\n return { loader: \"auto\" as const, filepath: fileURLToPath(res.value) };\n}\n\nfunction resolveStandardizedName(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n allowAsync: boolean,\n) {\n if (!supportsESM || !allowAsync) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n }\n\n try {\n const resolved = resolveStandardizedNameForImport(type, name, dirname);\n // import-meta-resolve 4.0 does not throw if the module is not found.\n if (!existsSync(resolved.filepath)) {\n throw Object.assign(\n new Error(`Could not resolve \"${name}\" in file ${dirname}.`),\n { type: \"MODULE_NOT_FOUND\" },\n );\n }\n return resolved;\n } catch (e) {\n try {\n return resolveStandardizedNameForRequire(type, name, dirname);\n } catch (e2) {\n if (e.type === \"MODULE_NOT_FOUND\") throw e;\n if (e2.type === \"MODULE_NOT_FOUND\") throw e2;\n throw e;\n }\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var LOADING_MODULES = new Set();\n}\nfunction* requireModule(\n type: string,\n loader: \"require\" | \"auto\",\n name: string,\n): Handler {\n if (!process.env.BABEL_8_BREAKING) {\n if (!(yield* isAsync()) && LOADING_MODULES.has(name)) {\n throw new Error(\n `Reentrant ${type} detected trying to load \"${name}\". This module is not ignored ` +\n \"and is trying to load itself while compiling itself, leading to a dependency cycle. \" +\n 'We recommend adding it to your \"ignore\" list in your babelrc, or to a .babelignore.',\n );\n }\n }\n\n try {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.add(name);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return yield* loadCodeDefault(\n name,\n loader,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n `You appear to be using a ${type} that contains top-level await, ` +\n \"which is only supported when running Babel asynchronously.\",\n );\n } else {\n return yield* loadCodeDefault(\n name,\n loader,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n `You appear to be using a ${type} that contains top-level await, ` +\n \"which is only supported when running Babel asynchronously.\",\n // For backward compatibility, we need to support malformed presets\n // defined as separate named exports rather than a single default\n // export.\n // See packages/babel-core/test/fixtures/option-manager/presets/es2015_named.js\n // @ts-ignore(Babel 7 vs Babel 8) This param has been removed\n true,\n );\n }\n } catch (err) {\n err.message = `[BABEL]: ${err.message} (While processing: ${name})`;\n throw err;\n } finally {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.delete(name);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/files/types.js b/framework-core/node_modules/@babel/core/lib/config/files/types.js new file mode 100644 index 0000000..8fd1422 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/types.js @@ -0,0 +1,5 @@ +"use strict"; + +0 && 0; + +//# sourceMappingURL=types.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/files/types.js.map b/framework-core/node_modules/@babel/core/lib/config/files/types.js.map new file mode 100644 index 0000000..bce052a --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/types.js.map @@ -0,0 +1 @@ +{"version":3,"names":[],"sources":["../../../src/config/files/types.ts"],"sourcesContent":["import type { InputOptions } from \"../index.ts\";\n\nexport type ConfigFile = {\n filepath: string;\n dirname: string;\n options: InputOptions & { babel?: unknown };\n};\n\nexport type IgnoreFile = {\n filepath: string;\n dirname: string;\n ignore: Array;\n};\n\nexport type RelativeConfig = {\n // The actual config, either from package.json#babel, .babelrc, or\n // .babelrc.js, if there was one.\n config: ConfigFile | null;\n // The .babelignore, if there was one.\n ignore: IgnoreFile | null;\n};\n\nexport type FilePackageData = {\n // The file in the package.\n filepath: string;\n // Any ancestor directories of the file that are within the package.\n directories: Array;\n // The contents of the package.json. May not be found if the package just\n // terminated at a node_modules folder without finding one.\n pkg: ConfigFile | null;\n // True if a package.json or node_modules folder was found while traversing\n // the directory structure.\n isPackage: boolean;\n};\n"],"mappings":"","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/files/utils.js b/framework-core/node_modules/@babel/core/lib/config/files/utils.js new file mode 100644 index 0000000..406aab9 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/utils.js @@ -0,0 +1,36 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.makeStaticFileCache = makeStaticFileCache; +var _caching = require("../caching.js"); +var fs = require("../../gensync-utils/fs.js"); +function _fs2() { + const data = require("fs"); + _fs2 = function () { + return data; + }; + return data; +} +function makeStaticFileCache(fn) { + return (0, _caching.makeStrongCache)(function* (filepath, cache) { + const cached = cache.invalidate(() => fileMtime(filepath)); + if (cached === null) { + return null; + } + return fn(filepath, yield* fs.readFile(filepath, "utf8")); + }); +} +function fileMtime(filepath) { + if (!_fs2().existsSync(filepath)) return null; + try { + return +_fs2().statSync(filepath).mtime; + } catch (e) { + if (e.code !== "ENOENT" && e.code !== "ENOTDIR") throw e; + } + return null; +} +0 && 0; + +//# sourceMappingURL=utils.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/files/utils.js.map b/framework-core/node_modules/@babel/core/lib/config/files/utils.js.map new file mode 100644 index 0000000..f3be225 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/files/utils.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_caching","require","fs","_fs2","data","makeStaticFileCache","fn","makeStrongCache","filepath","cache","cached","invalidate","fileMtime","readFile","nodeFs","existsSync","statSync","mtime","e","code"],"sources":["../../../src/config/files/utils.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { makeStrongCache } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport * as fs from \"../../gensync-utils/fs.ts\";\nimport nodeFs from \"node:fs\";\n\nexport function makeStaticFileCache(\n fn: (filepath: string, contents: string) => T,\n) {\n return makeStrongCache(function* (\n filepath: string,\n cache: CacheConfigurator,\n ): Handler {\n const cached = cache.invalidate(() => fileMtime(filepath));\n\n if (cached === null) {\n return null;\n }\n\n return fn(filepath, yield* fs.readFile(filepath, \"utf8\"));\n });\n}\n\nfunction fileMtime(filepath: string): number | null {\n if (!nodeFs.existsSync(filepath)) return null;\n\n try {\n return +nodeFs.statSync(filepath).mtime;\n } catch (e) {\n if (e.code !== \"ENOENT\" && e.code !== \"ENOTDIR\") throw e;\n }\n\n return null;\n}\n"],"mappings":";;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,EAAA,GAAAD,OAAA;AACA,SAAAE,KAAA;EAAA,MAAAC,IAAA,GAAAH,OAAA;EAAAE,IAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,SAASC,mBAAmBA,CACjCC,EAA6C,EAC7C;EACA,OAAO,IAAAC,wBAAe,EAAC,WACrBC,QAAgB,EAChBC,KAA8B,EACX;IACnB,MAAMC,MAAM,GAAGD,KAAK,CAACE,UAAU,CAAC,MAAMC,SAAS,CAACJ,QAAQ,CAAC,CAAC;IAE1D,IAAIE,MAAM,KAAK,IAAI,EAAE;MACnB,OAAO,IAAI;IACb;IAEA,OAAOJ,EAAE,CAACE,QAAQ,EAAE,OAAON,EAAE,CAACW,QAAQ,CAACL,QAAQ,EAAE,MAAM,CAAC,CAAC;EAC3D,CAAC,CAAC;AACJ;AAEA,SAASI,SAASA,CAACJ,QAAgB,EAAiB;EAClD,IAAI,CAACM,KAAKA,CAAC,CAACC,UAAU,CAACP,QAAQ,CAAC,EAAE,OAAO,IAAI;EAE7C,IAAI;IACF,OAAO,CAACM,KAAKA,CAAC,CAACE,QAAQ,CAACR,QAAQ,CAAC,CAACS,KAAK;EACzC,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,IAAIA,CAAC,CAACC,IAAI,KAAK,QAAQ,IAAID,CAAC,CAACC,IAAI,KAAK,SAAS,EAAE,MAAMD,CAAC;EAC1D;EAEA,OAAO,IAAI;AACb;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/full.js b/framework-core/node_modules/@babel/core/lib/config/full.js new file mode 100644 index 0000000..c2477ce --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/full.js @@ -0,0 +1,312 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _async = require("../gensync-utils/async.js"); +var _util = require("./util.js"); +var context = require("../index.js"); +var _plugin = require("./plugin.js"); +var _item = require("./item.js"); +var _configChain = require("./config-chain.js"); +var _deepArray = require("./helpers/deep-array.js"); +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +var _caching = require("./caching.js"); +var _options = require("./validation/options.js"); +var _plugins = require("./validation/plugins.js"); +var _configApi = require("./helpers/config-api.js"); +var _partial = require("./partial.js"); +var _configError = require("../errors/config-error.js"); +var _default = exports.default = _gensync()(function* loadFullConfig(inputOpts) { + var _opts$assumptions; + const result = yield* (0, _partial.default)(inputOpts); + if (!result) { + return null; + } + const { + options, + context, + fileHandling + } = result; + if (fileHandling === "ignored") { + return null; + } + const optionDefaults = {}; + const { + plugins, + presets + } = options; + if (!plugins || !presets) { + throw new Error("Assertion failure - plugins and presets exist"); + } + const presetContext = Object.assign({}, context, { + targets: options.targets + }); + const toDescriptor = item => { + const desc = (0, _item.getItemDescriptor)(item); + if (!desc) { + throw new Error("Assertion failure - must be config item"); + } + return desc; + }; + const presetsDescriptors = presets.map(toDescriptor); + const initialPluginsDescriptors = plugins.map(toDescriptor); + const pluginDescriptorsByPass = [[]]; + const passes = []; + const externalDependencies = []; + const ignored = yield* enhanceError(context, function* recursePresetDescriptors(rawPresets, pluginDescriptorsPass) { + const presets = []; + for (let i = 0; i < rawPresets.length; i++) { + const descriptor = rawPresets[i]; + if (descriptor.options !== false) { + try { + var preset = yield* loadPresetDescriptor(descriptor, presetContext); + } catch (e) { + if (e.code === "BABEL_UNKNOWN_OPTION") { + (0, _options.checkNoUnwrappedItemOptionPairs)(rawPresets, i, "preset", e); + } + throw e; + } + externalDependencies.push(preset.externalDependencies); + if (descriptor.ownPass) { + presets.push({ + preset: preset.chain, + pass: [] + }); + } else { + presets.unshift({ + preset: preset.chain, + pass: pluginDescriptorsPass + }); + } + } + } + if (presets.length > 0) { + pluginDescriptorsByPass.splice(1, 0, ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass)); + for (const { + preset, + pass + } of presets) { + if (!preset) return true; + pass.push(...preset.plugins); + const ignored = yield* recursePresetDescriptors(preset.presets, pass); + if (ignored) return true; + preset.options.forEach(opts => { + (0, _util.mergeOptions)(optionDefaults, opts); + }); + } + } + })(presetsDescriptors, pluginDescriptorsByPass[0]); + if (ignored) return null; + const opts = optionDefaults; + (0, _util.mergeOptions)(opts, options); + const pluginContext = Object.assign({}, presetContext, { + assumptions: (_opts$assumptions = opts.assumptions) != null ? _opts$assumptions : {} + }); + yield* enhanceError(context, function* loadPluginDescriptors() { + pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors); + for (const descs of pluginDescriptorsByPass) { + const pass = []; + passes.push(pass); + for (let i = 0; i < descs.length; i++) { + const descriptor = descs[i]; + if (descriptor.options !== false) { + try { + var plugin = yield* loadPluginDescriptor(descriptor, pluginContext); + } catch (e) { + if (e.code === "BABEL_UNKNOWN_PLUGIN_PROPERTY") { + (0, _options.checkNoUnwrappedItemOptionPairs)(descs, i, "plugin", e); + } + throw e; + } + pass.push(plugin); + externalDependencies.push(plugin.externalDependencies); + } + } + } + })(); + opts.plugins = passes[0]; + opts.presets = passes.slice(1).filter(plugins => plugins.length > 0).map(plugins => ({ + plugins + })); + opts.passPerPreset = opts.presets.length > 0; + return { + options: opts, + passes: passes, + externalDependencies: (0, _deepArray.finalize)(externalDependencies) + }; +}); +function enhanceError(context, fn) { + return function* (arg1, arg2) { + try { + return yield* fn(arg1, arg2); + } catch (e) { + if (!/^\[BABEL\]/.test(e.message)) { + var _context$filename; + e.message = `[BABEL] ${(_context$filename = context.filename) != null ? _context$filename : "unknown file"}: ${e.message}`; + } + throw e; + } + }; +} +const makeDescriptorLoader = apiFactory => (0, _caching.makeWeakCache)(function* ({ + value, + options, + dirname, + alias +}, cache) { + if (options === false) throw new Error("Assertion failure"); + options = options || {}; + const externalDependencies = []; + let item = value; + if (typeof value === "function") { + const factory = (0, _async.maybeAsync)(value, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + const api = Object.assign({}, context, apiFactory(cache, externalDependencies)); + try { + item = yield* factory(api, options, dirname); + } catch (e) { + if (alias) { + e.message += ` (While processing: ${JSON.stringify(alias)})`; + } + throw e; + } + } + if (!item || typeof item !== "object") { + throw new Error("Plugin/Preset did not return an object."); + } + if ((0, _async.isThenable)(item)) { + yield* []; + throw new Error(`You appear to be using a promise as a plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version. ` + `As an alternative, you can prefix the promise with "await". ` + `(While processing: ${JSON.stringify(alias)})`); + } + if (externalDependencies.length > 0 && (!cache.configured() || cache.mode() === "forever")) { + let error = `A plugin/preset has external untracked dependencies ` + `(${externalDependencies[0]}), but the cache `; + if (!cache.configured()) { + error += `has not been configured to be invalidated when the external dependencies change. `; + } else { + error += ` has been configured to never be invalidated. `; + } + error += `Plugins/presets should configure their cache to be invalidated when the external ` + `dependencies change, for example using \`api.cache.invalidate(() => ` + `statSync(filepath).mtimeMs)\` or \`api.cache.never()\`\n` + `(While processing: ${JSON.stringify(alias)})`; + throw new Error(error); + } + return { + value: item, + options, + dirname, + alias, + externalDependencies: (0, _deepArray.finalize)(externalDependencies) + }; +}); +const pluginDescriptorLoader = makeDescriptorLoader(_configApi.makePluginAPI); +const presetDescriptorLoader = makeDescriptorLoader(_configApi.makePresetAPI); +const instantiatePlugin = (0, _caching.makeWeakCache)(function* ({ + value, + options, + dirname, + alias, + externalDependencies +}, cache) { + const pluginObj = (0, _plugins.validatePluginObject)(value); + const plugin = Object.assign({}, pluginObj); + if (plugin.visitor) { + plugin.visitor = _traverse().default.explode(Object.assign({}, plugin.visitor)); + } + if (plugin.inherits) { + const inheritsDescriptor = { + name: undefined, + alias: `${alias}$inherits`, + value: plugin.inherits, + options, + dirname + }; + const inherits = yield* (0, _async.forwardAsync)(loadPluginDescriptor, run => { + return cache.invalidate(data => run(inheritsDescriptor, data)); + }); + plugin.pre = chainMaybeAsync(inherits.pre, plugin.pre); + plugin.post = chainMaybeAsync(inherits.post, plugin.post); + plugin.manipulateOptions = chainMaybeAsync(inherits.manipulateOptions, plugin.manipulateOptions); + plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]); + if (inherits.externalDependencies.length > 0) { + if (externalDependencies.length === 0) { + externalDependencies = inherits.externalDependencies; + } else { + externalDependencies = (0, _deepArray.finalize)([externalDependencies, inherits.externalDependencies]); + } + } + } + return new _plugin.default(plugin, options, alias, externalDependencies); +}); +function* loadPluginDescriptor(descriptor, context) { + if (descriptor.value instanceof _plugin.default) { + if (descriptor.options) { + throw new Error("Passed options to an existing Plugin instance will not work."); + } + return descriptor.value; + } + return yield* instantiatePlugin(yield* pluginDescriptorLoader(descriptor, context), context); +} +const needsFilename = val => val && typeof val !== "function"; +const validateIfOptionNeedsFilename = (options, descriptor) => { + if (needsFilename(options.test) || needsFilename(options.include) || needsFilename(options.exclude)) { + const formattedPresetName = descriptor.name ? `"${descriptor.name}"` : "/* your preset */"; + throw new _configError.default([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n")); + } +}; +const validatePreset = (preset, context, descriptor) => { + if (!context.filename) { + var _options$overrides; + const { + options + } = preset; + validateIfOptionNeedsFilename(options, descriptor); + (_options$overrides = options.overrides) == null || _options$overrides.forEach(overrideOptions => validateIfOptionNeedsFilename(overrideOptions, descriptor)); + } +}; +const instantiatePreset = (0, _caching.makeWeakCacheSync)(({ + value, + dirname, + alias, + externalDependencies +}) => { + return { + options: (0, _options.validate)("preset", value), + alias, + dirname, + externalDependencies + }; +}); +function* loadPresetDescriptor(descriptor, context) { + const preset = instantiatePreset(yield* presetDescriptorLoader(descriptor, context)); + validatePreset(preset, context, descriptor); + return { + chain: yield* (0, _configChain.buildPresetChain)(preset, context), + externalDependencies: preset.externalDependencies + }; +} +function chainMaybeAsync(a, b) { + if (!a) return b; + if (!b) return a; + return function (...args) { + const res = a.apply(this, args); + if (res && typeof res.then === "function") { + return res.then(() => b.apply(this, args)); + } + return b.apply(this, args); + }; +} +0 && 0; + +//# sourceMappingURL=full.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/full.js.map b/framework-core/node_modules/@babel/core/lib/config/full.js.map new file mode 100644 index 0000000..0e18704 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/full.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_async","_util","context","_plugin","_item","_configChain","_deepArray","_traverse","_caching","_options","_plugins","_configApi","_partial","_configError","_default","exports","default","gensync","loadFullConfig","inputOpts","_opts$assumptions","result","loadPrivatePartialConfig","options","fileHandling","optionDefaults","plugins","presets","Error","presetContext","Object","assign","targets","toDescriptor","item","desc","getItemDescriptor","presetsDescriptors","map","initialPluginsDescriptors","pluginDescriptorsByPass","passes","externalDependencies","ignored","enhanceError","recursePresetDescriptors","rawPresets","pluginDescriptorsPass","i","length","descriptor","preset","loadPresetDescriptor","e","code","checkNoUnwrappedItemOptionPairs","push","ownPass","chain","pass","unshift","splice","o","filter","p","forEach","opts","mergeOptions","pluginContext","assumptions","loadPluginDescriptors","descs","plugin","loadPluginDescriptor","slice","passPerPreset","freezeDeepArray","fn","arg1","arg2","test","message","_context$filename","filename","makeDescriptorLoader","apiFactory","makeWeakCache","value","dirname","alias","cache","factory","maybeAsync","api","JSON","stringify","isThenable","configured","mode","error","pluginDescriptorLoader","makePluginAPI","presetDescriptorLoader","makePresetAPI","instantiatePlugin","pluginObj","validatePluginObject","visitor","traverse","explode","inherits","inheritsDescriptor","name","undefined","forwardAsync","run","invalidate","pre","chainMaybeAsync","post","manipulateOptions","visitors","merge","Plugin","needsFilename","val","validateIfOptionNeedsFilename","include","exclude","formattedPresetName","ConfigError","join","validatePreset","_options$overrides","overrides","overrideOptions","instantiatePreset","makeWeakCacheSync","validate","buildPresetChain","a","b","args","res","apply","then"],"sources":["../../src/config/full.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\nimport {\n forwardAsync,\n maybeAsync,\n isThenable,\n} from \"../gensync-utils/async.ts\";\n\nimport { mergeOptions } from \"./util.ts\";\nimport * as context from \"../index.ts\";\nimport Plugin from \"./plugin.ts\";\nimport { getItemDescriptor } from \"./item.ts\";\nimport { buildPresetChain } from \"./config-chain.ts\";\nimport { finalize as freezeDeepArray } from \"./helpers/deep-array.ts\";\nimport type { DeepArray, ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type {\n ConfigContext,\n ConfigChain,\n PresetInstance,\n} from \"./config-chain.ts\";\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\nimport traverse from \"@babel/traverse\";\nimport { makeWeakCache, makeWeakCacheSync } from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\nimport {\n validate,\n checkNoUnwrappedItemOptionPairs,\n} from \"./validation/options.ts\";\nimport type {\n InputOptions,\n NormalizedOptions,\n PluginItem,\n} from \"./validation/options.ts\";\nimport { validatePluginObject } from \"./validation/plugins.ts\";\nimport { makePluginAPI, makePresetAPI } from \"./helpers/config-api.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nimport loadPrivatePartialConfig from \"./partial.ts\";\nimport type { ValidatedOptions } from \"./validation/options.ts\";\n\nimport type * as Context from \"./cache-contexts.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\n\ntype LoadedDescriptor = {\n value: any;\n options: object;\n dirname: string;\n alias: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { InputOptions } from \"./validation/options.ts\";\n\nexport type ResolvedConfig = {\n options: NormalizedOptions;\n passes: PluginPasses;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { Plugin };\nexport type PluginPassList = Array;\nexport type PluginPasses = Array;\n\nexport default gensync(function* loadFullConfig(\n inputOpts: InputOptions,\n): Handler {\n const result = yield* loadPrivatePartialConfig(inputOpts);\n if (!result) {\n return null;\n }\n const { options, context, fileHandling } = result;\n\n if (fileHandling === \"ignored\") {\n return null;\n }\n\n const optionDefaults: ValidatedOptions = {};\n\n const { plugins, presets } = options;\n\n if (!plugins || !presets) {\n throw new Error(\"Assertion failure - plugins and presets exist\");\n }\n\n const presetContext: Context.FullPreset = {\n ...context,\n targets: options.targets,\n };\n\n const toDescriptor = (item: PluginItem) => {\n const desc = getItemDescriptor(item);\n if (!desc) {\n throw new Error(\"Assertion failure - must be config item\");\n }\n\n return desc;\n };\n\n const presetsDescriptors = presets.map(toDescriptor);\n const initialPluginsDescriptors = plugins.map(toDescriptor);\n const pluginDescriptorsByPass: Array>> = [\n [],\n ];\n const passes: Array> = [];\n\n const externalDependencies: DeepArray = [];\n\n const ignored = yield* enhanceError(\n context,\n function* recursePresetDescriptors(\n rawPresets: Array>,\n pluginDescriptorsPass: Array>,\n ): Handler {\n const presets: Array<{\n preset: ConfigChain | null;\n pass: Array>;\n }> = [];\n\n for (let i = 0; i < rawPresets.length; i++) {\n const descriptor = rawPresets[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var preset = yield* loadPresetDescriptor(descriptor, presetContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_OPTION\") {\n checkNoUnwrappedItemOptionPairs(rawPresets, i, \"preset\", e);\n }\n throw e;\n }\n\n externalDependencies.push(preset.externalDependencies);\n\n // Presets normally run in reverse order, but if they\n // have their own pass they run after the presets\n // in the previous pass.\n if (descriptor.ownPass) {\n presets.push({ preset: preset.chain, pass: [] });\n } else {\n presets.unshift({\n preset: preset.chain,\n pass: pluginDescriptorsPass,\n });\n }\n }\n }\n\n // resolve presets\n if (presets.length > 0) {\n // The passes are created in the same order as the preset list, but are inserted before any\n // existing additional passes.\n pluginDescriptorsByPass.splice(\n 1,\n 0,\n ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass),\n );\n\n for (const { preset, pass } of presets) {\n if (!preset) return true;\n\n pass.push(...preset.plugins);\n\n const ignored = yield* recursePresetDescriptors(preset.presets, pass);\n if (ignored) return true;\n\n preset.options.forEach(opts => {\n mergeOptions(optionDefaults, opts);\n });\n }\n }\n },\n )(presetsDescriptors, pluginDescriptorsByPass[0]);\n\n if (ignored) return null;\n\n // Cast the `optionDefaults` to NormalizedOptions,\n // since we will merge the normalized `options` to `optionDefaults`\n const opts = optionDefaults as NormalizedOptions;\n mergeOptions(opts, options);\n\n const pluginContext: Context.FullPlugin = {\n ...presetContext,\n assumptions: opts.assumptions ?? {},\n };\n\n yield* enhanceError(context, function* loadPluginDescriptors() {\n pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors);\n\n for (const descs of pluginDescriptorsByPass) {\n const pass: Plugin[] = [];\n passes.push(pass);\n\n for (let i = 0; i < descs.length; i++) {\n const descriptor = descs[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var plugin = yield* loadPluginDescriptor(descriptor, pluginContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_PLUGIN_PROPERTY\") {\n // print special message for `plugins: [\"@babel/foo\", { foo: \"option\" }]`\n checkNoUnwrappedItemOptionPairs(descs, i, \"plugin\", e);\n }\n throw e;\n }\n pass.push(plugin);\n\n externalDependencies.push(plugin.externalDependencies);\n }\n }\n }\n })();\n\n opts.plugins = passes[0];\n opts.presets = passes\n .slice(1)\n .filter(plugins => plugins.length > 0)\n .map(plugins => ({ plugins }));\n opts.passPerPreset = opts.presets.length > 0;\n\n return {\n options: opts,\n passes: passes,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n});\n\nfunction enhanceError(context: ConfigContext, fn: T): T {\n return function* (arg1: unknown, arg2: unknown) {\n try {\n return yield* fn(arg1, arg2);\n } catch (e) {\n // There are a few case where thrown errors will try to annotate themselves multiple times, so\n // to keep things simple we just bail out if re-wrapping the message.\n if (!/^\\[BABEL\\]/.test(e.message)) {\n e.message = `[BABEL] ${context.filename ?? \"unknown file\"}: ${\n e.message\n }`;\n }\n\n throw e;\n }\n } as any;\n}\n\n/**\n * Load a generic plugin/preset from the given descriptor loaded from the config object.\n */\nconst makeDescriptorLoader = (\n apiFactory: (\n cache: CacheConfigurator,\n externalDependencies: Array,\n ) => API,\n) =>\n makeWeakCache(function* (\n { value, options, dirname, alias }: UnloadedDescriptor,\n cache: CacheConfigurator,\n ): Handler {\n // Disabled presets should already have been filtered out\n if (options === false) throw new Error(\"Assertion failure\");\n\n options = options || {};\n\n const externalDependencies: Array = [];\n\n let item: unknown = value;\n if (typeof value === \"function\") {\n const factory = maybeAsync(\n value as (api: API, options: object, dirname: string) => unknown,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n const api = {\n ...context,\n ...apiFactory(cache, externalDependencies),\n };\n try {\n item = yield* factory(api, options, dirname);\n } catch (e) {\n if (alias) {\n e.message += ` (While processing: ${JSON.stringify(alias)})`;\n }\n throw e;\n }\n }\n\n if (!item || typeof item !== \"object\") {\n throw new Error(\"Plugin/Preset did not return an object.\");\n }\n\n if (isThenable(item)) {\n // if we want to support async plugins\n yield* [];\n\n throw new Error(\n `You appear to be using a promise as a plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version. ` +\n `As an alternative, you can prefix the promise with \"await\". ` +\n `(While processing: ${JSON.stringify(alias)})`,\n );\n }\n\n if (\n externalDependencies.length > 0 &&\n (!cache.configured() || cache.mode() === \"forever\")\n ) {\n let error =\n `A plugin/preset has external untracked dependencies ` +\n `(${externalDependencies[0]}), but the cache `;\n if (!cache.configured()) {\n error += `has not been configured to be invalidated when the external dependencies change. `;\n } else {\n error += ` has been configured to never be invalidated. `;\n }\n error +=\n `Plugins/presets should configure their cache to be invalidated when the external ` +\n `dependencies change, for example using \\`api.cache.invalidate(() => ` +\n `statSync(filepath).mtimeMs)\\` or \\`api.cache.never()\\`\\n` +\n `(While processing: ${JSON.stringify(alias)})`;\n\n throw new Error(error);\n }\n\n return {\n value: item,\n options,\n dirname,\n alias,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n });\n\nconst pluginDescriptorLoader = makeDescriptorLoader<\n Context.SimplePlugin,\n PluginAPI\n>(makePluginAPI);\nconst presetDescriptorLoader = makeDescriptorLoader<\n Context.SimplePreset,\n PresetAPI\n>(makePresetAPI);\n\nconst instantiatePlugin = makeWeakCache(function* (\n { value, options, dirname, alias, externalDependencies }: LoadedDescriptor,\n cache: CacheConfigurator,\n): Handler {\n const pluginObj = validatePluginObject(value);\n\n const plugin = {\n ...pluginObj,\n };\n if (plugin.visitor) {\n plugin.visitor = traverse.explode({\n ...plugin.visitor,\n });\n }\n\n if (plugin.inherits) {\n const inheritsDescriptor: UnloadedDescriptor = {\n name: undefined,\n alias: `${alias}$inherits`,\n value: plugin.inherits,\n options,\n dirname,\n };\n\n const inherits = yield* forwardAsync(loadPluginDescriptor, run => {\n // If the inherited plugin changes, reinstantiate this plugin.\n return cache.invalidate(data => run(inheritsDescriptor, data));\n });\n\n plugin.pre = chainMaybeAsync(inherits.pre, plugin.pre);\n plugin.post = chainMaybeAsync(inherits.post, plugin.post);\n plugin.manipulateOptions = chainMaybeAsync(\n inherits.manipulateOptions,\n plugin.manipulateOptions,\n );\n plugin.visitor = traverse.visitors.merge([\n inherits.visitor || {},\n plugin.visitor || {},\n ]);\n\n if (inherits.externalDependencies.length > 0) {\n if (externalDependencies.length === 0) {\n externalDependencies = inherits.externalDependencies;\n } else {\n externalDependencies = freezeDeepArray([\n externalDependencies,\n inherits.externalDependencies,\n ]);\n }\n }\n }\n\n return new Plugin(plugin, options, alias, externalDependencies);\n});\n\n/**\n * Instantiate a plugin for the given descriptor, returning the plugin/options pair.\n */\nfunction* loadPluginDescriptor(\n descriptor: UnloadedDescriptor,\n context: Context.SimplePlugin,\n): Handler {\n if (descriptor.value instanceof Plugin) {\n if (descriptor.options) {\n throw new Error(\n \"Passed options to an existing Plugin instance will not work.\",\n );\n }\n\n return descriptor.value;\n }\n\n return yield* instantiatePlugin(\n yield* pluginDescriptorLoader(descriptor, context),\n context,\n );\n}\n\nconst needsFilename = (val: unknown) => val && typeof val !== \"function\";\n\nconst validateIfOptionNeedsFilename = (\n options: ValidatedOptions,\n descriptor: UnloadedDescriptor,\n): void => {\n if (\n needsFilename(options.test) ||\n needsFilename(options.include) ||\n needsFilename(options.exclude)\n ) {\n const formattedPresetName = descriptor.name\n ? `\"${descriptor.name}\"`\n : \"/* your preset */\";\n throw new ConfigError(\n [\n `Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`,\n `\\`\\`\\``,\n `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`,\n `\\`\\`\\``,\n `See https://babeljs.io/docs/en/options#filename for more information.`,\n ].join(\"\\n\"),\n );\n }\n};\n\nconst validatePreset = (\n preset: PresetInstance,\n context: ConfigContext,\n descriptor: UnloadedDescriptor,\n): void => {\n if (!context.filename) {\n const { options } = preset;\n validateIfOptionNeedsFilename(options, descriptor);\n options.overrides?.forEach(overrideOptions =>\n validateIfOptionNeedsFilename(overrideOptions, descriptor),\n );\n }\n};\n\nconst instantiatePreset = makeWeakCacheSync(\n ({\n value,\n dirname,\n alias,\n externalDependencies,\n }: LoadedDescriptor): PresetInstance => {\n return {\n options: validate(\"preset\", value),\n alias,\n dirname,\n externalDependencies,\n };\n },\n);\n\n/**\n * Generate a config object that will act as the root of a new nested config.\n */\nfunction* loadPresetDescriptor(\n descriptor: UnloadedDescriptor,\n context: Context.FullPreset,\n): Handler<{\n chain: ConfigChain | null;\n externalDependencies: ReadonlyDeepArray;\n}> {\n const preset = instantiatePreset(\n yield* presetDescriptorLoader(descriptor, context),\n );\n validatePreset(preset, context, descriptor);\n return {\n chain: yield* buildPresetChain(preset, context),\n externalDependencies: preset.externalDependencies,\n };\n}\n\nfunction chainMaybeAsync>(\n a: undefined | ((...args: Args) => R),\n b: undefined | ((...args: Args) => R),\n): (...args: Args) => R {\n if (!a) return b;\n if (!b) return a;\n\n return function (this: unknown, ...args: Args) {\n const res = a.apply(this, args);\n if (res && typeof res.then === \"function\") {\n return res.then(() => b.apply(this, args));\n }\n return b.apply(this, args);\n } as (...args: Args) => R;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/helpers/config-api.js b/framework-core/node_modules/@babel/core/lib/config/helpers/config-api.js new file mode 100644 index 0000000..57d3f37 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/helpers/config-api.js @@ -0,0 +1,84 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.makeConfigAPI = makeConfigAPI; +exports.makePluginAPI = makePluginAPI; +exports.makePresetAPI = makePresetAPI; +function _semver() { + const data = require("semver"); + _semver = function () { + return data; + }; + return data; +} +var _index = require("../../index.js"); +var _caching = require("../caching.js"); +function makeConfigAPI(cache) { + const env = value => cache.using(data => { + if (value === undefined) return data.envName; + if (typeof value === "function") { + return (0, _caching.assertSimpleType)(value(data.envName)); + } + return (Array.isArray(value) ? value : [value]).some(entry => { + if (typeof entry !== "string") { + throw new Error("Unexpected non-string value"); + } + return entry === data.envName; + }); + }); + const caller = cb => cache.using(data => (0, _caching.assertSimpleType)(cb(data.caller))); + return { + version: _index.version, + cache: cache.simple(), + env, + async: () => false, + caller, + assertVersion + }; +} +function makePresetAPI(cache, externalDependencies) { + const targets = () => JSON.parse(cache.using(data => JSON.stringify(data.targets))); + const addExternalDependency = ref => { + externalDependencies.push(ref); + }; + return Object.assign({}, makeConfigAPI(cache), { + targets, + addExternalDependency + }); +} +function makePluginAPI(cache, externalDependencies) { + const assumption = name => cache.using(data => data.assumptions[name]); + return Object.assign({}, makePresetAPI(cache, externalDependencies), { + assumption + }); +} +function assertVersion(range) { + if (typeof range === "number") { + if (!Number.isInteger(range)) { + throw new Error("Expected string or integer value."); + } + range = `^${range}.0.0-0`; + } + if (typeof range !== "string") { + throw new Error("Expected string or integer value."); + } + if (range === "*" || _semver().satisfies(_index.version, range)) return; + const limit = Error.stackTraceLimit; + if (typeof limit === "number" && limit < 25) { + Error.stackTraceLimit = 25; + } + const err = new Error(`Requires Babel "${range}", but was loaded with "${_index.version}". ` + `If you are sure you have a compatible version of @babel/core, ` + `it is likely that something in your build process is loading the ` + `wrong version. Inspect the stack trace of this error to look for ` + `the first entry that doesn't mention "@babel/core" or "babel-core" ` + `to see what is calling Babel.`); + if (typeof limit === "number") { + Error.stackTraceLimit = limit; + } + throw Object.assign(err, { + code: "BABEL_VERSION_UNSUPPORTED", + version: _index.version, + range + }); +} +0 && 0; + +//# sourceMappingURL=config-api.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/helpers/config-api.js.map b/framework-core/node_modules/@babel/core/lib/config/helpers/config-api.js.map new file mode 100644 index 0000000..eb11a61 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/helpers/config-api.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_semver","data","require","_index","_caching","makeConfigAPI","cache","env","value","using","undefined","envName","assertSimpleType","Array","isArray","some","entry","Error","caller","cb","version","coreVersion","simple","async","assertVersion","makePresetAPI","externalDependencies","targets","JSON","parse","stringify","addExternalDependency","ref","push","Object","assign","makePluginAPI","assumption","name","assumptions","range","Number","isInteger","semver","satisfies","limit","stackTraceLimit","err","code"],"sources":["../../../src/config/helpers/config-api.ts"],"sourcesContent":["import semver from \"semver\";\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nimport { version as coreVersion } from \"../../index.ts\";\nimport { assertSimpleType } from \"../caching.ts\";\nimport type {\n CacheConfigurator,\n SimpleCacheConfigurator,\n SimpleType,\n} from \"../caching.ts\";\n\nimport type {\n AssumptionName,\n CallerMetadata,\n InputOptions,\n} from \"../validation/options.ts\";\n\nimport type * as Context from \"../cache-contexts\";\n\ntype EnvName = NonNullable;\ntype EnvFunction = {\n (): string;\n (extractor: (envName: EnvName) => T): T;\n (envVar: string): boolean;\n (envVars: Array): boolean;\n};\n\ntype CallerFactory = {\n (\n extractor: (callerMetadata: CallerMetadata | undefined) => T,\n ): T;\n (\n extractor: (callerMetadata: CallerMetadata | undefined) => unknown,\n ): SimpleType;\n};\ntype TargetsFunction = () => Targets;\ntype AssumptionFunction = (name: AssumptionName) => boolean | undefined;\n\nexport type ConfigAPI = {\n version: string;\n cache: SimpleCacheConfigurator;\n env: EnvFunction;\n async: () => boolean;\n assertVersion: typeof assertVersion;\n caller?: CallerFactory;\n};\n\nexport type PresetAPI = {\n targets: TargetsFunction;\n addExternalDependency: (ref: string) => void;\n} & ConfigAPI;\n\nexport type PluginAPI = {\n assumption: AssumptionFunction;\n} & PresetAPI;\n\nexport function makeConfigAPI(\n cache: CacheConfigurator,\n): ConfigAPI {\n // TODO(@nicolo-ribaudo): If we remove the explicit type from `value`\n // and the `as any` type cast, TypeScript crashes in an infinite\n // recursion. After upgrading to TS4.7 and finishing the noImplicitAny\n // PR, we should check if it still crashes and report it to the TS team.\n const env: EnvFunction = ((\n value: string | string[] | ((babelEnv: string) => T),\n ) =>\n cache.using(data => {\n if (value === undefined) return data.envName;\n if (typeof value === \"function\") {\n return assertSimpleType(value(data.envName));\n }\n return (Array.isArray(value) ? value : [value]).some(entry => {\n if (typeof entry !== \"string\") {\n throw new Error(\"Unexpected non-string value\");\n }\n return entry === data.envName;\n });\n })) as any;\n\n const caller = (\n cb: (CallerMetadata: CallerMetadata | undefined) => SimpleType,\n ) => cache.using(data => assertSimpleType(cb(data.caller)));\n\n return {\n version: coreVersion,\n cache: cache.simple(),\n // Expose \".env()\" so people can easily get the same env that we expose using the \"env\" key.\n env,\n async: () => false,\n caller,\n assertVersion,\n };\n}\n\nexport function makePresetAPI(\n cache: CacheConfigurator,\n externalDependencies: Array,\n): PresetAPI {\n const targets = () =>\n // We are using JSON.parse/JSON.stringify because it's only possible to cache\n // primitive values. We can safely stringify the targets object because it\n // only contains strings as its properties.\n // Please make the Record and Tuple proposal happen!\n JSON.parse(cache.using(data => JSON.stringify(data.targets)));\n\n const addExternalDependency = (ref: string) => {\n externalDependencies.push(ref);\n };\n\n return { ...makeConfigAPI(cache), targets, addExternalDependency };\n}\n\nexport function makePluginAPI(\n cache: CacheConfigurator,\n externalDependencies: Array,\n): PluginAPI {\n const assumption = (name: string) =>\n cache.using(data => data.assumptions[name]);\n\n return { ...makePresetAPI(cache, externalDependencies), assumption };\n}\n\nfunction assertVersion(range: string | number): void {\n if (typeof range === \"number\") {\n if (!Number.isInteger(range)) {\n throw new Error(\"Expected string or integer value.\");\n }\n range = `^${range}.0.0-0`;\n }\n if (typeof range !== \"string\") {\n throw new Error(\"Expected string or integer value.\");\n }\n\n // We want \"*\" to also allow any pre-release, but we do not pass\n // the includePrerelease option to semver.satisfies because we\n // do not want ^7.0.0 to match 8.0.0-alpha.1.\n if (range === \"*\" || semver.satisfies(coreVersion, range)) return;\n\n const limit = Error.stackTraceLimit;\n\n if (typeof limit === \"number\" && limit < 25) {\n // Bump up the limit if needed so that users are more likely\n // to be able to see what is calling Babel.\n Error.stackTraceLimit = 25;\n }\n\n const err = new Error(\n `Requires Babel \"${range}\", but was loaded with \"${coreVersion}\". ` +\n `If you are sure you have a compatible version of @babel/core, ` +\n `it is likely that something in your build process is loading the ` +\n `wrong version. Inspect the stack trace of this error to look for ` +\n `the first entry that doesn't mention \"@babel/core\" or \"babel-core\" ` +\n `to see what is calling Babel.`,\n );\n\n if (typeof limit === \"number\") {\n Error.stackTraceLimit = limit;\n }\n\n throw Object.assign(err, {\n code: \"BABEL_VERSION_UNSUPPORTED\",\n version: coreVersion,\n range,\n });\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/helpers/deep-array.js b/framework-core/node_modules/@babel/core/lib/config/helpers/deep-array.js new file mode 100644 index 0000000..c611db2 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/helpers/deep-array.js @@ -0,0 +1,23 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.finalize = finalize; +exports.flattenToSet = flattenToSet; +function finalize(deepArr) { + return Object.freeze(deepArr); +} +function flattenToSet(arr) { + const result = new Set(); + const stack = [arr]; + while (stack.length > 0) { + for (const el of stack.pop()) { + if (Array.isArray(el)) stack.push(el);else result.add(el); + } + } + return result; +} +0 && 0; + +//# sourceMappingURL=deep-array.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/helpers/deep-array.js.map b/framework-core/node_modules/@babel/core/lib/config/helpers/deep-array.js.map new file mode 100644 index 0000000..d8c7819 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/helpers/deep-array.js.map @@ -0,0 +1 @@ +{"version":3,"names":["finalize","deepArr","Object","freeze","flattenToSet","arr","result","Set","stack","length","el","pop","Array","isArray","push","add"],"sources":["../../../src/config/helpers/deep-array.ts"],"sourcesContent":["export type DeepArray = Array>;\n\n// Just to make sure that DeepArray is not assignable to ReadonlyDeepArray\ndeclare const __marker: unique symbol;\nexport type ReadonlyDeepArray = ReadonlyArray> & {\n [__marker]: true;\n};\n\nexport function finalize(deepArr: DeepArray): ReadonlyDeepArray {\n return Object.freeze(deepArr) as ReadonlyDeepArray;\n}\n\nexport function flattenToSet(\n arr: ReadonlyDeepArray,\n): Set {\n const result = new Set();\n const stack = [arr];\n while (stack.length > 0) {\n for (const el of stack.pop()) {\n if (Array.isArray(el)) stack.push(el as ReadonlyDeepArray);\n else result.add(el as T);\n }\n }\n return result;\n}\n"],"mappings":";;;;;;;AAQO,SAASA,QAAQA,CAAIC,OAAqB,EAAwB;EACvE,OAAOC,MAAM,CAACC,MAAM,CAACF,OAAO,CAAC;AAC/B;AAEO,SAASG,YAAYA,CAC1BC,GAAyB,EACjB;EACR,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAAI,CAAC;EAC3B,MAAMC,KAAK,GAAG,CAACH,GAAG,CAAC;EACnB,OAAOG,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE;IACvB,KAAK,MAAMC,EAAE,IAAIF,KAAK,CAACG,GAAG,CAAC,CAAC,EAAE;MAC5B,IAAIC,KAAK,CAACC,OAAO,CAACH,EAAE,CAAC,EAAEF,KAAK,CAACM,IAAI,CAACJ,EAA0B,CAAC,CAAC,KACzDJ,MAAM,CAACS,GAAG,CAACL,EAAO,CAAC;IAC1B;EACF;EACA,OAAOJ,MAAM;AACf;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/helpers/environment.js b/framework-core/node_modules/@babel/core/lib/config/helpers/environment.js new file mode 100644 index 0000000..a23b80b --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/helpers/environment.js @@ -0,0 +1,12 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getEnv = getEnv; +function getEnv(defaultValue = "development") { + return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue; +} +0 && 0; + +//# sourceMappingURL=environment.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/helpers/environment.js.map b/framework-core/node_modules/@babel/core/lib/config/helpers/environment.js.map new file mode 100644 index 0000000..c34fc17 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/helpers/environment.js.map @@ -0,0 +1 @@ +{"version":3,"names":["getEnv","defaultValue","process","env","BABEL_ENV","NODE_ENV"],"sources":["../../../src/config/helpers/environment.ts"],"sourcesContent":["export function getEnv(defaultValue: string = \"development\"): string {\n return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue;\n}\n"],"mappings":";;;;;;AAAO,SAASA,MAAMA,CAACC,YAAoB,GAAG,aAAa,EAAU;EACnE,OAAOC,OAAO,CAACC,GAAG,CAACC,SAAS,IAAIF,OAAO,CAACC,GAAG,CAACE,QAAQ,IAAIJ,YAAY;AACtE;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/index.js b/framework-core/node_modules/@babel/core/lib/config/index.js new file mode 100644 index 0000000..b2262b2 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/index.js @@ -0,0 +1,93 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createConfigItem = createConfigItem; +exports.createConfigItemAsync = createConfigItemAsync; +exports.createConfigItemSync = createConfigItemSync; +Object.defineProperty(exports, "default", { + enumerable: true, + get: function () { + return _full.default; + } +}); +exports.loadOptions = loadOptions; +exports.loadOptionsAsync = loadOptionsAsync; +exports.loadOptionsSync = loadOptionsSync; +exports.loadPartialConfig = loadPartialConfig; +exports.loadPartialConfigAsync = loadPartialConfigAsync; +exports.loadPartialConfigSync = loadPartialConfigSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _full = require("./full.js"); +var _partial = require("./partial.js"); +var _item = require("./item.js"); +var _rewriteStackTrace = require("../errors/rewrite-stack-trace.js"); +const loadPartialConfigRunner = _gensync()(_partial.loadPartialConfig); +function loadPartialConfigAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.async)(...args); +} +function loadPartialConfigSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.sync)(...args); +} +function loadPartialConfig(opts, callback) { + if (callback !== undefined) { + (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.errback)(opts, callback); + } else if (typeof opts === "function") { + (0, _rewriteStackTrace.beginHiddenCallStack)(loadPartialConfigRunner.errback)(undefined, opts); + } else { + { + return loadPartialConfigSync(opts); + } + } +} +function* loadOptionsImpl(opts) { + var _config$options; + const config = yield* (0, _full.default)(opts); + return (_config$options = config == null ? void 0 : config.options) != null ? _config$options : null; +} +const loadOptionsRunner = _gensync()(loadOptionsImpl); +function loadOptionsAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.async)(...args); +} +function loadOptionsSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.sync)(...args); +} +function loadOptions(opts, callback) { + if (callback !== undefined) { + (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.errback)(opts, callback); + } else if (typeof opts === "function") { + (0, _rewriteStackTrace.beginHiddenCallStack)(loadOptionsRunner.errback)(undefined, opts); + } else { + { + return loadOptionsSync(opts); + } + } +} +const createConfigItemRunner = _gensync()(_item.createConfigItem); +function createConfigItemAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.async)(...args); +} +function createConfigItemSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.sync)(...args); +} +function createConfigItem(target, options, callback) { + if (callback !== undefined) { + (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.errback)(target, options, callback); + } else if (typeof options === "function") { + (0, _rewriteStackTrace.beginHiddenCallStack)(createConfigItemRunner.errback)(target, undefined, callback); + } else { + { + return createConfigItemSync(target, options); + } + } +} +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/index.js.map b/framework-core/node_modules/@babel/core/lib/config/index.js.map new file mode 100644 index 0000000..7e3fd5e --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_full","_partial","_item","_rewriteStackTrace","loadPartialConfigRunner","gensync","loadPartialConfigImpl","loadPartialConfigAsync","args","beginHiddenCallStack","async","loadPartialConfigSync","sync","loadPartialConfig","opts","callback","undefined","errback","loadOptionsImpl","_config$options","config","loadFullConfig","options","loadOptionsRunner","loadOptionsAsync","loadOptionsSync","loadOptions","createConfigItemRunner","createConfigItemImpl","createConfigItemAsync","createConfigItemSync","createConfigItem","target"],"sources":["../../src/config/index.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nexport type {\n ResolvedConfig,\n InputOptions,\n PluginPasses,\n Plugin,\n} from \"./full.ts\";\n\nimport type {\n InputOptions,\n NormalizedOptions,\n PluginTarget,\n} from \"./validation/options.ts\";\nexport type { ConfigAPI } from \"./helpers/config-api.ts\";\nimport type {\n PluginAPI as basePluginAPI,\n PresetAPI as basePresetAPI,\n} from \"./helpers/config-api.ts\";\nexport type { PluginObject } from \"./validation/plugins.ts\";\ntype PluginAPI = basePluginAPI & typeof import(\"..\");\ntype PresetAPI = basePresetAPI & typeof import(\"..\");\nexport type { PluginAPI, PresetAPI };\n// todo: may need to refine PresetObject to be a subset of ValidatedOptions\nexport type {\n CallerMetadata,\n NormalizedOptions,\n ValidatedOptions as PresetObject,\n} from \"./validation/options.ts\";\n\nimport loadFullConfig from \"./full.ts\";\nimport {\n type PartialConfig,\n loadPartialConfig as loadPartialConfigImpl,\n} from \"./partial.ts\";\n\nexport { loadFullConfig as default };\nexport type { PartialConfig } from \"./partial.ts\";\n\nimport { createConfigItem as createConfigItemImpl } from \"./item.ts\";\nimport type { ConfigItem } from \"./item.ts\";\nexport type { ConfigItem };\n\nimport { beginHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\n\nconst loadPartialConfigRunner = gensync(loadPartialConfigImpl);\nexport function loadPartialConfigAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.async)(...args);\n}\nexport function loadPartialConfigSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.sync)(...args);\n}\nexport function loadPartialConfig(\n opts: Parameters[0],\n callback?: (err: Error, val: PartialConfig | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(\n undefined,\n opts as (err: Error, val: PartialConfig | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadPartialConfig' function expects a callback. If you need to call it synchronously, please use 'loadPartialConfigSync'.\",\n );\n } else {\n return loadPartialConfigSync(opts);\n }\n }\n}\n\nfunction* loadOptionsImpl(\n opts: InputOptions,\n): Handler {\n const config = yield* loadFullConfig(opts);\n // NOTE: We want to return \"null\" explicitly, while ?. alone returns undefined\n return config?.options ?? null;\n}\nconst loadOptionsRunner = gensync(loadOptionsImpl);\nexport function loadOptionsAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.async)(...args);\n}\nexport function loadOptionsSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.sync)(...args);\n}\nexport function loadOptions(\n opts: Parameters[0],\n callback?: (err: Error, val: NormalizedOptions | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadOptionsRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadOptionsRunner.errback)(\n undefined,\n opts as (err: Error, val: NormalizedOptions | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadOptions' function expects a callback. If you need to call it synchronously, please use 'loadOptionsSync'.\",\n );\n } else {\n return loadOptionsSync(opts);\n }\n }\n}\n\nconst createConfigItemRunner = gensync(createConfigItemImpl);\nexport function createConfigItemAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.async)(...args);\n}\nexport function createConfigItemSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.sync)(...args);\n}\nexport function createConfigItem(\n target: PluginTarget,\n options: Parameters[1],\n callback?: (err: Error, val: ConfigItem | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n options,\n callback,\n );\n } else if (typeof options === \"function\") {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n undefined,\n callback,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'createConfigItem' function expects a callback. If you need to call it synchronously, please use 'createConfigItemSync'.\",\n );\n } else {\n return createConfigItemSync(target, options);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AA8BA,IAAAE,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAQA,IAAAG,KAAA,GAAAH,OAAA;AAIA,IAAAI,kBAAA,GAAAJ,OAAA;AAEA,MAAMK,uBAAuB,GAAGC,SAAMA,CAAC,CAACC,0BAAqB,CAAC;AACvD,SAASC,sBAAsBA,CACpC,GAAGC,IAAsD,EACzD;EACA,OAAO,IAAAC,uCAAoB,EAACL,uBAAuB,CAACM,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACrE;AACO,SAASG,qBAAqBA,CACnC,GAAGH,IAAqD,EACxD;EACA,OAAO,IAAAC,uCAAoB,EAACL,uBAAuB,CAACQ,IAAI,CAAC,CAAC,GAAGJ,IAAI,CAAC;AACpE;AACO,SAASK,iBAAiBA,CAC/BC,IAAiD,EACjDC,QAA0D,EAC1D;EACA,IAAIA,QAAQ,KAAKC,SAAS,EAAE;IAC1B,IAAAP,uCAAoB,EAACL,uBAAuB,CAACa,OAAO,CAAC,CAACH,IAAI,EAAEC,QAAQ,CAAC;EACvE,CAAC,MAAM,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IACrC,IAAAL,uCAAoB,EAACL,uBAAuB,CAACa,OAAO,CAAC,CACnDD,SAAS,EACTF,IACF,CAAC;EACH,CAAC,MAAM;IAKE;MACL,OAAOH,qBAAqB,CAACG,IAAI,CAAC;IACpC;EACF;AACF;AAEA,UAAUI,eAAeA,CACvBJ,IAAkB,EACiB;EAAA,IAAAK,eAAA;EACnC,MAAMC,MAAM,GAAG,OAAO,IAAAC,aAAc,EAACP,IAAI,CAAC;EAE1C,QAAAK,eAAA,GAAOC,MAAM,oBAANA,MAAM,CAAEE,OAAO,YAAAH,eAAA,GAAI,IAAI;AAChC;AACA,MAAMI,iBAAiB,GAAGlB,SAAMA,CAAC,CAACa,eAAe,CAAC;AAC3C,SAASM,gBAAgBA,CAC9B,GAAGhB,IAAgD,EACnD;EACA,OAAO,IAAAC,uCAAoB,EAACc,iBAAiB,CAACb,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AAC/D;AACO,SAASiB,eAAeA,CAC7B,GAAGjB,IAA+C,EAClD;EACA,OAAO,IAAAC,uCAAoB,EAACc,iBAAiB,CAACX,IAAI,CAAC,CAAC,GAAGJ,IAAI,CAAC;AAC9D;AACO,SAASkB,WAAWA,CACzBZ,IAA2C,EAC3CC,QAA8D,EAC9D;EACA,IAAIA,QAAQ,KAAKC,SAAS,EAAE;IAC1B,IAAAP,uCAAoB,EAACc,iBAAiB,CAACN,OAAO,CAAC,CAACH,IAAI,EAAEC,QAAQ,CAAC;EACjE,CAAC,MAAM,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IACrC,IAAAL,uCAAoB,EAACc,iBAAiB,CAACN,OAAO,CAAC,CAC7CD,SAAS,EACTF,IACF,CAAC;EACH,CAAC,MAAM;IAKE;MACL,OAAOW,eAAe,CAACX,IAAI,CAAC;IAC9B;EACF;AACF;AAEA,MAAMa,sBAAsB,GAAGtB,SAAMA,CAAC,CAACuB,sBAAoB,CAAC;AACrD,SAASC,qBAAqBA,CACnC,GAAGrB,IAAqD,EACxD;EACA,OAAO,IAAAC,uCAAoB,EAACkB,sBAAsB,CAACjB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACpE;AACO,SAASsB,oBAAoBA,CAClC,GAAGtB,IAAoD,EACvD;EACA,OAAO,IAAAC,uCAAoB,EAACkB,sBAAsB,CAACf,IAAI,CAAC,CAAC,GAAGJ,IAAI,CAAC;AACnE;AACO,SAASuB,gBAAgBA,CAC9BC,MAAoB,EACpBV,OAAmD,EACnDP,QAAkE,EAClE;EACA,IAAIA,QAAQ,KAAKC,SAAS,EAAE;IAC1B,IAAAP,uCAAoB,EAACkB,sBAAsB,CAACV,OAAO,CAAC,CAClDe,MAAM,EACNV,OAAO,EACPP,QACF,CAAC;EACH,CAAC,MAAM,IAAI,OAAOO,OAAO,KAAK,UAAU,EAAE;IACxC,IAAAb,uCAAoB,EAACkB,sBAAsB,CAACV,OAAO,CAAC,CAClDe,MAAM,EACNhB,SAAS,EACTD,QACF,CAAC;EACH,CAAC,MAAM;IAKE;MACL,OAAOe,oBAAoB,CAACE,MAAM,EAAEV,OAAO,CAAC;IAC9C;EACF;AACF;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/item.js b/framework-core/node_modules/@babel/core/lib/config/item.js new file mode 100644 index 0000000..69cf01f --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/item.js @@ -0,0 +1,67 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.createConfigItem = createConfigItem; +exports.createItemFromDescriptor = createItemFromDescriptor; +exports.getItemDescriptor = getItemDescriptor; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _configDescriptors = require("./config-descriptors.js"); +function createItemFromDescriptor(desc) { + return new ConfigItem(desc); +} +function* createConfigItem(value, { + dirname = ".", + type +} = {}) { + const descriptor = yield* (0, _configDescriptors.createDescriptor)(value, _path().resolve(dirname), { + type, + alias: "programmatic item" + }); + return createItemFromDescriptor(descriptor); +} +const CONFIG_ITEM_BRAND = Symbol.for("@babel/core@7 - ConfigItem"); +function getItemDescriptor(item) { + if (item != null && item[CONFIG_ITEM_BRAND]) { + return item._descriptor; + } + return undefined; +} +class ConfigItem { + constructor(descriptor) { + this._descriptor = void 0; + this[CONFIG_ITEM_BRAND] = true; + this.value = void 0; + this.options = void 0; + this.dirname = void 0; + this.name = void 0; + this.file = void 0; + this._descriptor = descriptor; + Object.defineProperty(this, "_descriptor", { + enumerable: false + }); + Object.defineProperty(this, CONFIG_ITEM_BRAND, { + enumerable: false + }); + this.value = this._descriptor.value; + this.options = this._descriptor.options; + this.dirname = this._descriptor.dirname; + this.name = this._descriptor.name; + this.file = this._descriptor.file ? { + request: this._descriptor.file.request, + resolved: this._descriptor.file.resolved + } : undefined; + Object.freeze(this); + } +} +Object.freeze(ConfigItem.prototype); +0 && 0; + +//# sourceMappingURL=item.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/item.js.map b/framework-core/node_modules/@babel/core/lib/config/item.js.map new file mode 100644 index 0000000..877504d --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/item.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_configDescriptors","createItemFromDescriptor","desc","ConfigItem","createConfigItem","value","dirname","type","descriptor","createDescriptor","path","resolve","alias","CONFIG_ITEM_BRAND","Symbol","for","getItemDescriptor","item","_descriptor","undefined","constructor","options","name","file","Object","defineProperty","enumerable","request","resolved","freeze","prototype"],"sources":["../../src/config/item.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\nimport type { PluginTarget, PluginOptions } from \"./validation/options.ts\";\n\nimport path from \"node:path\";\nimport { createDescriptor } from \"./config-descriptors.ts\";\n\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\n\nexport function createItemFromDescriptor(\n desc: UnloadedDescriptor,\n): ConfigItem {\n return new ConfigItem(desc);\n}\n\n/**\n * Create a config item using the same value format used in Babel's config\n * files. Items returned from this function should be cached by the caller\n * ideally, as recreating the config item will mean re-resolving the item\n * and re-evaluating the plugin/preset function.\n */\nexport function* createConfigItem(\n value:\n | PluginTarget\n | [PluginTarget, PluginOptions]\n | [PluginTarget, PluginOptions, string | void],\n {\n dirname = \".\",\n type,\n }: {\n dirname?: string;\n type?: \"preset\" | \"plugin\";\n } = {},\n): Handler> {\n const descriptor = yield* createDescriptor(value, path.resolve(dirname), {\n type,\n alias: \"programmatic item\",\n });\n\n return createItemFromDescriptor(descriptor);\n}\n\nconst CONFIG_ITEM_BRAND = Symbol.for(\"@babel/core@7 - ConfigItem\");\n\nexport function getItemDescriptor(\n item: unknown,\n): UnloadedDescriptor | void {\n if ((item as any)?.[CONFIG_ITEM_BRAND]) {\n return (item as ConfigItem)._descriptor;\n }\n\n return undefined;\n}\n\nexport type { ConfigItem };\n\n/**\n * A public representation of a plugin/preset that will _eventually_ be load.\n * Users can use this to interact with the results of a loaded Babel\n * configuration.\n *\n * Any changes to public properties of this class should be considered a\n * breaking change to Babel's API.\n */\nclass ConfigItem {\n /**\n * The private underlying descriptor that Babel actually cares about.\n * If you access this, you are a bad person.\n */\n _descriptor: UnloadedDescriptor;\n\n // TODO(Babel 9): Check if this symbol needs to be updated\n /**\n * Used to detect ConfigItem instances from other Babel instances.\n */\n [CONFIG_ITEM_BRAND] = true;\n\n /**\n * The resolved value of the item itself.\n */\n value: object | Function;\n\n /**\n * The options, if any, that were passed to the item.\n * Mutating this will lead to undefined behavior.\n *\n * \"false\" means that this item has been disabled.\n */\n options: object | void | false;\n\n /**\n * The directory that the options for this item are relative to.\n */\n dirname: string;\n\n /**\n * Get the name of the plugin, if the user gave it one.\n */\n name: string | void;\n\n /**\n * Data about the file that the item was loaded from, if Babel knows it.\n */\n file: {\n // The requested path, e.g. \"@babel/env\".\n request: string;\n // The resolved absolute path of the file.\n resolved: string;\n } | void;\n\n constructor(descriptor: UnloadedDescriptor) {\n // Make people less likely to stumble onto this if they are exploring\n // programmatically, and also make sure that if people happen to\n // pass the item through JSON.stringify, it doesn't show up.\n this._descriptor = descriptor;\n Object.defineProperty(this, \"_descriptor\", { enumerable: false });\n\n Object.defineProperty(this, CONFIG_ITEM_BRAND, { enumerable: false });\n\n this.value = this._descriptor.value;\n this.options = this._descriptor.options;\n this.dirname = this._descriptor.dirname;\n this.name = this._descriptor.name;\n this.file = this._descriptor.file\n ? {\n request: this._descriptor.file.request,\n resolved: this._descriptor.file.resolved,\n }\n : undefined;\n\n // Freeze the object to make it clear that people shouldn't expect mutating\n // this object to do anything. A new item should be created if they want\n // to change something.\n Object.freeze(this);\n }\n}\n\nObject.freeze(ConfigItem.prototype);\n"],"mappings":";;;;;;;;AAGA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAE,kBAAA,GAAAD,OAAA;AAIO,SAASE,wBAAwBA,CACtCC,IAA6B,EACZ;EACjB,OAAO,IAAIC,UAAU,CAACD,IAAI,CAAC;AAC7B;AAQO,UAAUE,gBAAgBA,CAC/BC,KAGgD,EAChD;EACEC,OAAO,GAAG,GAAG;EACbC;AAIF,CAAC,GAAG,CAAC,CAAC,EACoB;EAC1B,MAAMC,UAAU,GAAG,OAAO,IAAAC,mCAAgB,EAACJ,KAAK,EAAEK,MAAGA,CAAC,CAACC,OAAO,CAACL,OAAO,CAAC,EAAE;IACvEC,IAAI;IACJK,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,OAAOX,wBAAwB,CAACO,UAAU,CAAC;AAC7C;AAEA,MAAMK,iBAAiB,GAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAE3D,SAASC,iBAAiBA,CAC/BC,IAAa,EACmB;EAChC,IAAKA,IAAI,YAAJA,IAAI,CAAWJ,iBAAiB,CAAC,EAAE;IACtC,OAAQI,IAAI,CAAqBC,WAAW;EAC9C;EAEA,OAAOC,SAAS;AAClB;AAYA,MAAMhB,UAAU,CAAM;EA8CpBiB,WAAWA,CAACZ,UAAmC,EAAE;IAAA,KAzCjDU,WAAW;IAAA,KAMVL,iBAAiB,IAAI,IAAI;IAAA,KAK1BR,KAAK;IAAA,KAQLgB,OAAO;IAAA,KAKPf,OAAO;IAAA,KAKPgB,IAAI;IAAA,KAKJC,IAAI;IAWF,IAAI,CAACL,WAAW,GAAGV,UAAU;IAC7BgB,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE;MAAEC,UAAU,EAAE;IAAM,CAAC,CAAC;IAEjEF,MAAM,CAACC,cAAc,CAAC,IAAI,EAAEZ,iBAAiB,EAAE;MAAEa,UAAU,EAAE;IAAM,CAAC,CAAC;IAErE,IAAI,CAACrB,KAAK,GAAG,IAAI,CAACa,WAAW,CAACb,KAAK;IACnC,IAAI,CAACgB,OAAO,GAAG,IAAI,CAACH,WAAW,CAACG,OAAO;IACvC,IAAI,CAACf,OAAO,GAAG,IAAI,CAACY,WAAW,CAACZ,OAAO;IACvC,IAAI,CAACgB,IAAI,GAAG,IAAI,CAACJ,WAAW,CAACI,IAAI;IACjC,IAAI,CAACC,IAAI,GAAG,IAAI,CAACL,WAAW,CAACK,IAAI,GAC7B;MACEI,OAAO,EAAE,IAAI,CAACT,WAAW,CAACK,IAAI,CAACI,OAAO;MACtCC,QAAQ,EAAE,IAAI,CAACV,WAAW,CAACK,IAAI,CAACK;IAClC,CAAC,GACDT,SAAS;IAKbK,MAAM,CAACK,MAAM,CAAC,IAAI,CAAC;EACrB;AACF;AAEAL,MAAM,CAACK,MAAM,CAAC1B,UAAU,CAAC2B,SAAS,CAAC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/partial.js b/framework-core/node_modules/@babel/core/lib/config/partial.js new file mode 100644 index 0000000..a5a2f65 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/partial.js @@ -0,0 +1,158 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = loadPrivatePartialConfig; +exports.loadPartialConfig = loadPartialConfig; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +var _plugin = require("./plugin.js"); +var _util = require("./util.js"); +var _item = require("./item.js"); +var _configChain = require("./config-chain.js"); +var _environment = require("./helpers/environment.js"); +var _options = require("./validation/options.js"); +var _index = require("./files/index.js"); +var _resolveTargets = require("./resolve-targets.js"); +const _excluded = ["showIgnoredFiles"]; +function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } +function resolveRootMode(rootDir, rootMode) { + switch (rootMode) { + case "root": + return rootDir; + case "upward-optional": + { + const upwardRootDir = (0, _index.findConfigUpwards)(rootDir); + return upwardRootDir === null ? rootDir : upwardRootDir; + } + case "upward": + { + const upwardRootDir = (0, _index.findConfigUpwards)(rootDir); + if (upwardRootDir !== null) return upwardRootDir; + throw Object.assign(new Error(`Babel was run with rootMode:"upward" but a root could not ` + `be found when searching upward from "${rootDir}".\n` + `One of the following config files must be in the directory tree: ` + `"${_index.ROOT_CONFIG_FILENAMES.join(", ")}".`), { + code: "BABEL_ROOT_NOT_FOUND", + dirname: rootDir + }); + } + default: + throw new Error(`Assertion failure - unknown rootMode value.`); + } +} +function* loadPrivatePartialConfig(inputOpts) { + if (inputOpts != null && (typeof inputOpts !== "object" || Array.isArray(inputOpts))) { + throw new Error("Babel options must be an object, null, or undefined"); + } + const args = inputOpts ? (0, _options.validate)("arguments", inputOpts) : {}; + const { + envName = (0, _environment.getEnv)(), + cwd = ".", + root: rootDir = ".", + rootMode = "root", + caller, + cloneInputAst = true + } = args; + const absoluteCwd = _path().resolve(cwd); + const absoluteRootDir = resolveRootMode(_path().resolve(absoluteCwd, rootDir), rootMode); + const filename = typeof args.filename === "string" ? _path().resolve(cwd, args.filename) : undefined; + const showConfigPath = yield* (0, _index.resolveShowConfigPath)(absoluteCwd); + const context = { + filename, + cwd: absoluteCwd, + root: absoluteRootDir, + envName, + caller, + showConfig: showConfigPath === filename + }; + const configChain = yield* (0, _configChain.buildRootChain)(args, context); + if (!configChain) return null; + const merged = { + assumptions: {} + }; + configChain.options.forEach(opts => { + (0, _util.mergeOptions)(merged, opts); + }); + const options = Object.assign({}, merged, { + targets: (0, _resolveTargets.resolveTargets)(merged, absoluteRootDir), + cloneInputAst, + babelrc: false, + configFile: false, + browserslistConfigFile: false, + passPerPreset: false, + envName: context.envName, + cwd: context.cwd, + root: context.root, + rootMode: "root", + filename: typeof context.filename === "string" ? context.filename : undefined, + plugins: configChain.plugins.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)), + presets: configChain.presets.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)) + }); + return { + options, + context, + fileHandling: configChain.fileHandling, + ignore: configChain.ignore, + babelrc: configChain.babelrc, + config: configChain.config, + files: configChain.files + }; +} +function* loadPartialConfig(opts) { + let showIgnoredFiles = false; + if (typeof opts === "object" && opts !== null && !Array.isArray(opts)) { + var _opts = opts; + ({ + showIgnoredFiles + } = _opts); + opts = _objectWithoutPropertiesLoose(_opts, _excluded); + _opts; + } + const result = yield* loadPrivatePartialConfig(opts); + if (!result) return null; + const { + options, + babelrc, + ignore, + config, + fileHandling, + files + } = result; + if (fileHandling === "ignored" && !showIgnoredFiles) { + return null; + } + (options.plugins || []).forEach(item => { + if (item.value instanceof _plugin.default) { + throw new Error("Passing cached plugin instances is not supported in " + "babel.loadPartialConfig()"); + } + }); + return new PartialConfig(options, babelrc ? babelrc.filepath : undefined, ignore ? ignore.filepath : undefined, config ? config.filepath : undefined, fileHandling, files); +} +class PartialConfig { + constructor(options, babelrc, ignore, config, fileHandling, files) { + this.options = void 0; + this.babelrc = void 0; + this.babelignore = void 0; + this.config = void 0; + this.fileHandling = void 0; + this.files = void 0; + this.options = options; + this.babelignore = ignore; + this.babelrc = babelrc; + this.config = config; + this.fileHandling = fileHandling; + this.files = files; + Object.freeze(this); + } + hasFilesystemConfig() { + return this.babelrc !== undefined || this.config !== undefined; + } +} +Object.freeze(PartialConfig.prototype); +0 && 0; + +//# sourceMappingURL=partial.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/partial.js.map b/framework-core/node_modules/@babel/core/lib/config/partial.js.map new file mode 100644 index 0000000..6115e55 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/partial.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_plugin","_util","_item","_configChain","_environment","_options","_index","_resolveTargets","_excluded","_objectWithoutPropertiesLoose","r","e","t","n","hasOwnProperty","call","indexOf","resolveRootMode","rootDir","rootMode","upwardRootDir","findConfigUpwards","Object","assign","Error","ROOT_CONFIG_FILENAMES","join","code","dirname","loadPrivatePartialConfig","inputOpts","Array","isArray","args","validate","envName","getEnv","cwd","root","caller","cloneInputAst","absoluteCwd","path","resolve","absoluteRootDir","filename","undefined","showConfigPath","resolveShowConfigPath","context","showConfig","configChain","buildRootChain","merged","assumptions","options","forEach","opts","mergeOptions","targets","resolveTargets","babelrc","configFile","browserslistConfigFile","passPerPreset","plugins","map","descriptor","createItemFromDescriptor","presets","fileHandling","ignore","config","files","loadPartialConfig","showIgnoredFiles","_opts","result","item","value","Plugin","PartialConfig","filepath","constructor","babelignore","freeze","hasFilesystemConfig","prototype"],"sources":["../../src/config/partial.ts"],"sourcesContent":["import path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport Plugin from \"./plugin.ts\";\nimport { mergeOptions } from \"./util.ts\";\nimport { createItemFromDescriptor } from \"./item.ts\";\nimport { buildRootChain } from \"./config-chain.ts\";\nimport type { ConfigContext, FileHandling } from \"./config-chain.ts\";\nimport { getEnv } from \"./helpers/environment.ts\";\nimport { validate } from \"./validation/options.ts\";\n\nimport type {\n ValidatedOptions,\n NormalizedOptions,\n RootMode,\n InputOptions,\n} from \"./validation/options.ts\";\n\nimport {\n findConfigUpwards,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile } from \"./files/index.ts\";\nimport { resolveTargets } from \"./resolve-targets.ts\";\n\nfunction resolveRootMode(rootDir: string, rootMode: RootMode): string {\n switch (rootMode) {\n case \"root\":\n return rootDir;\n\n case \"upward-optional\": {\n const upwardRootDir = findConfigUpwards(rootDir);\n return upwardRootDir === null ? rootDir : upwardRootDir;\n }\n\n case \"upward\": {\n const upwardRootDir = findConfigUpwards(rootDir);\n if (upwardRootDir !== null) return upwardRootDir;\n\n throw Object.assign(\n new Error(\n `Babel was run with rootMode:\"upward\" but a root could not ` +\n `be found when searching upward from \"${rootDir}\".\\n` +\n `One of the following config files must be in the directory tree: ` +\n `\"${ROOT_CONFIG_FILENAMES.join(\", \")}\".`,\n ) as any,\n {\n code: \"BABEL_ROOT_NOT_FOUND\",\n dirname: rootDir,\n },\n );\n }\n default:\n throw new Error(`Assertion failure - unknown rootMode value.`);\n }\n}\n\nexport type PrivPartialConfig = {\n showIgnoredFiles?: boolean;\n options: NormalizedOptions;\n context: ConfigContext;\n babelrc: ConfigFile | void;\n config: ConfigFile | void;\n ignore: IgnoreFile | void;\n fileHandling: FileHandling;\n files: Set;\n};\n\nexport default function* loadPrivatePartialConfig(\n inputOpts: InputOptions,\n): Handler {\n if (\n inputOpts != null &&\n (typeof inputOpts !== \"object\" || Array.isArray(inputOpts))\n ) {\n throw new Error(\"Babel options must be an object, null, or undefined\");\n }\n\n const args = inputOpts ? validate(\"arguments\", inputOpts) : {};\n\n const {\n envName = getEnv(),\n cwd = \".\",\n root: rootDir = \".\",\n rootMode = \"root\",\n caller,\n cloneInputAst = true,\n } = args;\n const absoluteCwd = path.resolve(cwd);\n const absoluteRootDir = resolveRootMode(\n path.resolve(absoluteCwd, rootDir),\n rootMode,\n );\n\n const filename =\n typeof args.filename === \"string\"\n ? path.resolve(cwd, args.filename)\n : undefined;\n\n const showConfigPath = yield* resolveShowConfigPath(absoluteCwd);\n\n const context: ConfigContext = {\n filename,\n cwd: absoluteCwd,\n root: absoluteRootDir,\n envName,\n caller,\n showConfig: showConfigPath === filename,\n };\n\n const configChain = yield* buildRootChain(args, context);\n if (!configChain) return null;\n\n const merged: ValidatedOptions = {\n assumptions: {},\n };\n configChain.options.forEach(opts => {\n mergeOptions(merged as any, opts);\n });\n\n const options: NormalizedOptions = {\n ...merged,\n targets: resolveTargets(merged, absoluteRootDir),\n\n // Tack the passes onto the object itself so that, if this object is\n // passed back to Babel a second time, it will be in the right structure\n // to not change behavior.\n cloneInputAst,\n babelrc: false,\n configFile: false,\n browserslistConfigFile: false,\n passPerPreset: false,\n envName: context.envName,\n cwd: context.cwd,\n root: context.root,\n rootMode: \"root\",\n filename:\n typeof context.filename === \"string\" ? context.filename : undefined,\n\n plugins: configChain.plugins.map(descriptor =>\n createItemFromDescriptor(descriptor),\n ),\n presets: configChain.presets.map(descriptor =>\n createItemFromDescriptor(descriptor),\n ),\n };\n\n return {\n options,\n context,\n fileHandling: configChain.fileHandling,\n ignore: configChain.ignore,\n babelrc: configChain.babelrc,\n config: configChain.config,\n files: configChain.files,\n };\n}\n\nexport function* loadPartialConfig(\n opts?: InputOptions,\n): Handler {\n let showIgnoredFiles = false;\n // We only extract showIgnoredFiles if opts is an object, so that\n // loadPrivatePartialConfig can throw the appropriate error if it's not.\n if (typeof opts === \"object\" && opts !== null && !Array.isArray(opts)) {\n ({ showIgnoredFiles, ...opts } = opts);\n }\n\n const result: PrivPartialConfig | undefined | null =\n yield* loadPrivatePartialConfig(opts);\n if (!result) return null;\n\n const { options, babelrc, ignore, config, fileHandling, files } = result;\n\n if (fileHandling === \"ignored\" && !showIgnoredFiles) {\n return null;\n }\n\n (options.plugins || []).forEach(item => {\n // @ts-expect-error todo(flow->ts): better type annotation for `item.value`\n if (item.value instanceof Plugin) {\n throw new Error(\n \"Passing cached plugin instances is not supported in \" +\n \"babel.loadPartialConfig()\",\n );\n }\n });\n\n return new PartialConfig(\n options,\n babelrc ? babelrc.filepath : undefined,\n ignore ? ignore.filepath : undefined,\n config ? config.filepath : undefined,\n fileHandling,\n files,\n );\n}\n\nexport type { PartialConfig };\n\nclass PartialConfig {\n /**\n * These properties are public, so any changes to them should be considered\n * a breaking change to Babel's API.\n */\n options: NormalizedOptions;\n babelrc: string | void;\n babelignore: string | void;\n config: string | void;\n fileHandling: FileHandling;\n files: Set;\n\n constructor(\n options: NormalizedOptions,\n babelrc: string | void,\n ignore: string | void,\n config: string | void,\n fileHandling: FileHandling,\n files: Set,\n ) {\n this.options = options;\n this.babelignore = ignore;\n this.babelrc = babelrc;\n this.config = config;\n this.fileHandling = fileHandling;\n this.files = files;\n\n // Freeze since this is a public API and it should be extremely obvious that\n // reassigning properties on here does nothing.\n Object.freeze(this);\n }\n\n /**\n * Returns true if there is a config file in the filesystem for this config.\n */\n hasFilesystemConfig(): boolean {\n return this.babelrc !== undefined || this.config !== undefined;\n }\n}\nObject.freeze(PartialConfig.prototype);\n"],"mappings":";;;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AASA,IAAAO,MAAA,GAAAP,OAAA;AAMA,IAAAQ,eAAA,GAAAR,OAAA;AAAsD,MAAAS,SAAA;AAAA,SAAAC,8BAAAC,CAAA,EAAAC,CAAA,gBAAAD,CAAA,iBAAAE,CAAA,gBAAAC,CAAA,IAAAH,CAAA,SAAAI,cAAA,CAAAC,IAAA,CAAAL,CAAA,EAAAG,CAAA,gBAAAF,CAAA,CAAAK,OAAA,CAAAH,CAAA,aAAAD,CAAA,CAAAC,CAAA,IAAAH,CAAA,CAAAG,CAAA,YAAAD,CAAA;AAEtD,SAASK,eAAeA,CAACC,OAAe,EAAEC,QAAkB,EAAU;EACpE,QAAQA,QAAQ;IACd,KAAK,MAAM;MACT,OAAOD,OAAO;IAEhB,KAAK,iBAAiB;MAAE;QACtB,MAAME,aAAa,GAAG,IAAAC,wBAAiB,EAACH,OAAO,CAAC;QAChD,OAAOE,aAAa,KAAK,IAAI,GAAGF,OAAO,GAAGE,aAAa;MACzD;IAEA,KAAK,QAAQ;MAAE;QACb,MAAMA,aAAa,GAAG,IAAAC,wBAAiB,EAACH,OAAO,CAAC;QAChD,IAAIE,aAAa,KAAK,IAAI,EAAE,OAAOA,aAAa;QAEhD,MAAME,MAAM,CAACC,MAAM,CACjB,IAAIC,KAAK,CACP,4DAA4D,GAC1D,wCAAwCN,OAAO,MAAM,GACrD,mEAAmE,GACnE,IAAIO,4BAAqB,CAACC,IAAI,CAAC,IAAI,CAAC,IACxC,CAAC,EACD;UACEC,IAAI,EAAE,sBAAsB;UAC5BC,OAAO,EAAEV;QACX,CACF,CAAC;MACH;IACA;MACE,MAAM,IAAIM,KAAK,CAAC,6CAA6C,CAAC;EAClE;AACF;AAae,UAAUK,wBAAwBA,CAC/CC,SAAuB,EACY;EACnC,IACEA,SAAS,IAAI,IAAI,KAChB,OAAOA,SAAS,KAAK,QAAQ,IAAIC,KAAK,CAACC,OAAO,CAACF,SAAS,CAAC,CAAC,EAC3D;IACA,MAAM,IAAIN,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAEA,MAAMS,IAAI,GAAGH,SAAS,GAAG,IAAAI,iBAAQ,EAAC,WAAW,EAAEJ,SAAS,CAAC,GAAG,CAAC,CAAC;EAE9D,MAAM;IACJK,OAAO,GAAG,IAAAC,mBAAM,EAAC,CAAC;IAClBC,GAAG,GAAG,GAAG;IACTC,IAAI,EAAEpB,OAAO,GAAG,GAAG;IACnBC,QAAQ,GAAG,MAAM;IACjBoB,MAAM;IACNC,aAAa,GAAG;EAClB,CAAC,GAAGP,IAAI;EACR,MAAMQ,WAAW,GAAGC,MAAGA,CAAC,CAACC,OAAO,CAACN,GAAG,CAAC;EACrC,MAAMO,eAAe,GAAG3B,eAAe,CACrCyB,MAAGA,CAAC,CAACC,OAAO,CAACF,WAAW,EAAEvB,OAAO,CAAC,EAClCC,QACF,CAAC;EAED,MAAM0B,QAAQ,GACZ,OAAOZ,IAAI,CAACY,QAAQ,KAAK,QAAQ,GAC7BH,MAAGA,CAAC,CAACC,OAAO,CAACN,GAAG,EAAEJ,IAAI,CAACY,QAAQ,CAAC,GAChCC,SAAS;EAEf,MAAMC,cAAc,GAAG,OAAO,IAAAC,4BAAqB,EAACP,WAAW,CAAC;EAEhE,MAAMQ,OAAsB,GAAG;IAC7BJ,QAAQ;IACRR,GAAG,EAAEI,WAAW;IAChBH,IAAI,EAAEM,eAAe;IACrBT,OAAO;IACPI,MAAM;IACNW,UAAU,EAAEH,cAAc,KAAKF;EACjC,CAAC;EAED,MAAMM,WAAW,GAAG,OAAO,IAAAC,2BAAc,EAACnB,IAAI,EAAEgB,OAAO,CAAC;EACxD,IAAI,CAACE,WAAW,EAAE,OAAO,IAAI;EAE7B,MAAME,MAAwB,GAAG;IAC/BC,WAAW,EAAE,CAAC;EAChB,CAAC;EACDH,WAAW,CAACI,OAAO,CAACC,OAAO,CAACC,IAAI,IAAI;IAClC,IAAAC,kBAAY,EAACL,MAAM,EAASI,IAAI,CAAC;EACnC,CAAC,CAAC;EAEF,MAAMF,OAA0B,GAAAjC,MAAA,CAAAC,MAAA,KAC3B8B,MAAM;IACTM,OAAO,EAAE,IAAAC,8BAAc,EAACP,MAAM,EAAET,eAAe,CAAC;IAKhDJ,aAAa;IACbqB,OAAO,EAAE,KAAK;IACdC,UAAU,EAAE,KAAK;IACjBC,sBAAsB,EAAE,KAAK;IAC7BC,aAAa,EAAE,KAAK;IACpB7B,OAAO,EAAEc,OAAO,CAACd,OAAO;IACxBE,GAAG,EAAEY,OAAO,CAACZ,GAAG;IAChBC,IAAI,EAAEW,OAAO,CAACX,IAAI;IAClBnB,QAAQ,EAAE,MAAM;IAChB0B,QAAQ,EACN,OAAOI,OAAO,CAACJ,QAAQ,KAAK,QAAQ,GAAGI,OAAO,CAACJ,QAAQ,GAAGC,SAAS;IAErEmB,OAAO,EAAEd,WAAW,CAACc,OAAO,CAACC,GAAG,CAACC,UAAU,IACzC,IAAAC,8BAAwB,EAACD,UAAU,CACrC,CAAC;IACDE,OAAO,EAAElB,WAAW,CAACkB,OAAO,CAACH,GAAG,CAACC,UAAU,IACzC,IAAAC,8BAAwB,EAACD,UAAU,CACrC;EAAC,EACF;EAED,OAAO;IACLZ,OAAO;IACPN,OAAO;IACPqB,YAAY,EAAEnB,WAAW,CAACmB,YAAY;IACtCC,MAAM,EAAEpB,WAAW,CAACoB,MAAM;IAC1BV,OAAO,EAAEV,WAAW,CAACU,OAAO;IAC5BW,MAAM,EAAErB,WAAW,CAACqB,MAAM;IAC1BC,KAAK,EAAEtB,WAAW,CAACsB;EACrB,CAAC;AACH;AAEO,UAAUC,iBAAiBA,CAChCjB,IAAmB,EACY;EAC/B,IAAIkB,gBAAgB,GAAG,KAAK;EAG5B,IAAI,OAAOlB,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,IAAI,CAAC1B,KAAK,CAACC,OAAO,CAACyB,IAAI,CAAC,EAAE;IAAA,IAAAmB,KAAA,GACpCnB,IAAI;IAAA,CAApC;MAAEkB;IAA0B,CAAC,GAAAC,KAAO;IAAbnB,IAAI,GAAAhD,6BAAA,CAAAmE,KAAA,EAAApE,SAAA;IAAAoE,KAAA;EAC9B;EAEA,MAAMC,MAA4C,GAChD,OAAOhD,wBAAwB,CAAC4B,IAAI,CAAC;EACvC,IAAI,CAACoB,MAAM,EAAE,OAAO,IAAI;EAExB,MAAM;IAAEtB,OAAO;IAAEM,OAAO;IAAEU,MAAM;IAAEC,MAAM;IAAEF,YAAY;IAAEG;EAAM,CAAC,GAAGI,MAAM;EAExE,IAAIP,YAAY,KAAK,SAAS,IAAI,CAACK,gBAAgB,EAAE;IACnD,OAAO,IAAI;EACb;EAEA,CAACpB,OAAO,CAACU,OAAO,IAAI,EAAE,EAAET,OAAO,CAACsB,IAAI,IAAI;IAEtC,IAAIA,IAAI,CAACC,KAAK,YAAYC,eAAM,EAAE;MAChC,MAAM,IAAIxD,KAAK,CACb,sDAAsD,GACpD,2BACJ,CAAC;IACH;EACF,CAAC,CAAC;EAEF,OAAO,IAAIyD,aAAa,CACtB1B,OAAO,EACPM,OAAO,GAAGA,OAAO,CAACqB,QAAQ,GAAGpC,SAAS,EACtCyB,MAAM,GAAGA,MAAM,CAACW,QAAQ,GAAGpC,SAAS,EACpC0B,MAAM,GAAGA,MAAM,CAACU,QAAQ,GAAGpC,SAAS,EACpCwB,YAAY,EACZG,KACF,CAAC;AACH;AAIA,MAAMQ,aAAa,CAAC;EAYlBE,WAAWA,CACT5B,OAA0B,EAC1BM,OAAsB,EACtBU,MAAqB,EACrBC,MAAqB,EACrBF,YAA0B,EAC1BG,KAAkB,EAClB;IAAA,KAdFlB,OAAO;IAAA,KACPM,OAAO;IAAA,KACPuB,WAAW;IAAA,KACXZ,MAAM;IAAA,KACNF,YAAY;IAAA,KACZG,KAAK;IAUH,IAAI,CAAClB,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC6B,WAAW,GAAGb,MAAM;IACzB,IAAI,CAACV,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACW,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACF,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACG,KAAK,GAAGA,KAAK;IAIlBnD,MAAM,CAAC+D,MAAM,CAAC,IAAI,CAAC;EACrB;EAKAC,mBAAmBA,CAAA,EAAY;IAC7B,OAAO,IAAI,CAACzB,OAAO,KAAKf,SAAS,IAAI,IAAI,CAAC0B,MAAM,KAAK1B,SAAS;EAChE;AACF;AACAxB,MAAM,CAAC+D,MAAM,CAACJ,aAAa,CAACM,SAAS,CAAC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/pattern-to-regex.js b/framework-core/node_modules/@babel/core/lib/config/pattern-to-regex.js new file mode 100644 index 0000000..e061f79 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/pattern-to-regex.js @@ -0,0 +1,38 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = pathToPattern; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +const sep = `\\${_path().sep}`; +const endSep = `(?:${sep}|$)`; +const substitution = `[^${sep}]+`; +const starPat = `(?:${substitution}${sep})`; +const starPatLast = `(?:${substitution}${endSep})`; +const starStarPat = `${starPat}*?`; +const starStarPatLast = `${starPat}*?${starPatLast}?`; +function escapeRegExp(string) { + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&"); +} +function pathToPattern(pattern, dirname) { + const parts = _path().resolve(dirname, pattern).split(_path().sep); + return new RegExp(["^", ...parts.map((part, i) => { + const last = i === parts.length - 1; + if (part === "**") return last ? starStarPatLast : starStarPat; + if (part === "*") return last ? starPatLast : starPat; + if (part.indexOf("*.") === 0) { + return substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep); + } + return escapeRegExp(part) + (last ? endSep : sep); + })].join("")); +} +0 && 0; + +//# sourceMappingURL=pattern-to-regex.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/pattern-to-regex.js.map b/framework-core/node_modules/@babel/core/lib/config/pattern-to-regex.js.map new file mode 100644 index 0000000..5a02bc6 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/pattern-to-regex.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","sep","path","endSep","substitution","starPat","starPatLast","starStarPat","starStarPatLast","escapeRegExp","string","replace","pathToPattern","pattern","dirname","parts","resolve","split","RegExp","map","part","i","last","length","indexOf","slice","join"],"sources":["../../src/config/pattern-to-regex.ts"],"sourcesContent":["import path from \"node:path\";\n\nconst sep = `\\\\${path.sep}`;\nconst endSep = `(?:${sep}|$)`;\n\nconst substitution = `[^${sep}]+`;\n\nconst starPat = `(?:${substitution}${sep})`;\nconst starPatLast = `(?:${substitution}${endSep})`;\n\nconst starStarPat = `${starPat}*?`;\nconst starStarPatLast = `${starPat}*?${starPatLast}?`;\n\nfunction escapeRegExp(string: string) {\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n}\n\n/**\n * Implement basic pattern matching that will allow users to do the simple\n * tests with * and **. If users want full complex pattern matching, then can\n * always use regex matching, or function validation.\n */\nexport default function pathToPattern(\n pattern: string,\n dirname: string,\n): RegExp {\n const parts = path.resolve(dirname, pattern).split(path.sep);\n\n return new RegExp(\n [\n \"^\",\n ...parts.map((part, i) => {\n const last = i === parts.length - 1;\n\n // ** matches 0 or more path parts.\n if (part === \"**\") return last ? starStarPatLast : starStarPat;\n\n // * matches 1 path part.\n if (part === \"*\") return last ? starPatLast : starPat;\n\n // *.ext matches a wildcard with an extension.\n if (part.indexOf(\"*.\") === 0) {\n return (\n substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep)\n );\n }\n\n // Otherwise match the pattern text.\n return escapeRegExp(part) + (last ? endSep : sep);\n }),\n ].join(\"\"),\n );\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,MAAME,GAAG,GAAG,KAAKC,MAAGA,CAAC,CAACD,GAAG,EAAE;AAC3B,MAAME,MAAM,GAAG,MAAMF,GAAG,KAAK;AAE7B,MAAMG,YAAY,GAAG,KAAKH,GAAG,IAAI;AAEjC,MAAMI,OAAO,GAAG,MAAMD,YAAY,GAAGH,GAAG,GAAG;AAC3C,MAAMK,WAAW,GAAG,MAAMF,YAAY,GAAGD,MAAM,GAAG;AAElD,MAAMI,WAAW,GAAG,GAAGF,OAAO,IAAI;AAClC,MAAMG,eAAe,GAAG,GAAGH,OAAO,KAAKC,WAAW,GAAG;AAErD,SAASG,YAAYA,CAACC,MAAc,EAAE;EACpC,OAAOA,MAAM,CAACC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACtD;AAOe,SAASC,aAAaA,CACnCC,OAAe,EACfC,OAAe,EACP;EACR,MAAMC,KAAK,GAAGb,MAAGA,CAAC,CAACc,OAAO,CAACF,OAAO,EAAED,OAAO,CAAC,CAACI,KAAK,CAACf,MAAGA,CAAC,CAACD,GAAG,CAAC;EAE5D,OAAO,IAAIiB,MAAM,CACf,CACE,GAAG,EACH,GAAGH,KAAK,CAACI,GAAG,CAAC,CAACC,IAAI,EAAEC,CAAC,KAAK;IACxB,MAAMC,IAAI,GAAGD,CAAC,KAAKN,KAAK,CAACQ,MAAM,GAAG,CAAC;IAGnC,IAAIH,IAAI,KAAK,IAAI,EAAE,OAAOE,IAAI,GAAGd,eAAe,GAAGD,WAAW;IAG9D,IAAIa,IAAI,KAAK,GAAG,EAAE,OAAOE,IAAI,GAAGhB,WAAW,GAAGD,OAAO;IAGrD,IAAIe,IAAI,CAACI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;MAC5B,OACEpB,YAAY,GAAGK,YAAY,CAACW,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAIH,IAAI,GAAGnB,MAAM,GAAGF,GAAG,CAAC;IAEtE;IAGA,OAAOQ,YAAY,CAACW,IAAI,CAAC,IAAIE,IAAI,GAAGnB,MAAM,GAAGF,GAAG,CAAC;EACnD,CAAC,CAAC,CACH,CAACyB,IAAI,CAAC,EAAE,CACX,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/plugin.js b/framework-core/node_modules/@babel/core/lib/config/plugin.js new file mode 100644 index 0000000..21a28cd --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/plugin.js @@ -0,0 +1,33 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _deepArray = require("./helpers/deep-array.js"); +class Plugin { + constructor(plugin, options, key, externalDependencies = (0, _deepArray.finalize)([])) { + this.key = void 0; + this.manipulateOptions = void 0; + this.post = void 0; + this.pre = void 0; + this.visitor = void 0; + this.parserOverride = void 0; + this.generatorOverride = void 0; + this.options = void 0; + this.externalDependencies = void 0; + this.key = plugin.name || key; + this.manipulateOptions = plugin.manipulateOptions; + this.post = plugin.post; + this.pre = plugin.pre; + this.visitor = plugin.visitor || {}; + this.parserOverride = plugin.parserOverride; + this.generatorOverride = plugin.generatorOverride; + this.options = options; + this.externalDependencies = externalDependencies; + } +} +exports.default = Plugin; +0 && 0; + +//# sourceMappingURL=plugin.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/plugin.js.map b/framework-core/node_modules/@babel/core/lib/config/plugin.js.map new file mode 100644 index 0000000..c3bccb5 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/plugin.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_deepArray","require","Plugin","constructor","plugin","options","key","externalDependencies","finalize","manipulateOptions","post","pre","visitor","parserOverride","generatorOverride","name","exports","default"],"sources":["../../src/config/plugin.ts"],"sourcesContent":["import { finalize } from \"./helpers/deep-array.ts\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type { PluginObject } from \"./validation/plugins.ts\";\n\nexport default class Plugin {\n key: string | undefined | null;\n manipulateOptions?: PluginObject[\"manipulateOptions\"];\n post?: PluginObject[\"post\"];\n pre?: PluginObject[\"pre\"];\n visitor: PluginObject[\"visitor\"];\n\n parserOverride?: PluginObject[\"parserOverride\"];\n generatorOverride?: PluginObject[\"generatorOverride\"];\n\n options: object;\n\n externalDependencies: ReadonlyDeepArray;\n\n constructor(\n plugin: PluginObject,\n options: object,\n key?: string,\n externalDependencies: ReadonlyDeepArray = finalize([]),\n ) {\n this.key = plugin.name || key;\n\n this.manipulateOptions = plugin.manipulateOptions;\n this.post = plugin.post;\n this.pre = plugin.pre;\n this.visitor = plugin.visitor || {};\n this.parserOverride = plugin.parserOverride;\n this.generatorOverride = plugin.generatorOverride;\n\n this.options = options;\n this.externalDependencies = externalDependencies;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAIe,MAAMC,MAAM,CAAC;EAc1BC,WAAWA,CACTC,MAAoB,EACpBC,OAAe,EACfC,GAAY,EACZC,oBAA+C,GAAG,IAAAC,mBAAQ,EAAC,EAAE,CAAC,EAC9D;IAAA,KAlBFF,GAAG;IAAA,KACHG,iBAAiB;IAAA,KACjBC,IAAI;IAAA,KACJC,GAAG;IAAA,KACHC,OAAO;IAAA,KAEPC,cAAc;IAAA,KACdC,iBAAiB;IAAA,KAEjBT,OAAO;IAAA,KAEPE,oBAAoB;IAQlB,IAAI,CAACD,GAAG,GAAGF,MAAM,CAACW,IAAI,IAAIT,GAAG;IAE7B,IAAI,CAACG,iBAAiB,GAAGL,MAAM,CAACK,iBAAiB;IACjD,IAAI,CAACC,IAAI,GAAGN,MAAM,CAACM,IAAI;IACvB,IAAI,CAACC,GAAG,GAAGP,MAAM,CAACO,GAAG;IACrB,IAAI,CAACC,OAAO,GAAGR,MAAM,CAACQ,OAAO,IAAI,CAAC,CAAC;IACnC,IAAI,CAACC,cAAc,GAAGT,MAAM,CAACS,cAAc;IAC3C,IAAI,CAACC,iBAAiB,GAAGV,MAAM,CAACU,iBAAiB;IAEjD,IAAI,CAACT,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,oBAAoB,GAAGA,oBAAoB;EAClD;AACF;AAACS,OAAA,CAAAC,OAAA,GAAAf,MAAA;AAAA","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/printer.js b/framework-core/node_modules/@babel/core/lib/config/printer.js new file mode 100644 index 0000000..3ac2c07 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/printer.js @@ -0,0 +1,113 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ConfigPrinter = exports.ChainFormatter = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +const ChainFormatter = exports.ChainFormatter = { + Programmatic: 0, + Config: 1 +}; +const Formatter = { + title(type, callerName, filepath) { + let title = ""; + if (type === ChainFormatter.Programmatic) { + title = "programmatic options"; + if (callerName) { + title += " from " + callerName; + } + } else { + title = "config " + filepath; + } + return title; + }, + loc(index, envName) { + let loc = ""; + if (index != null) { + loc += `.overrides[${index}]`; + } + if (envName != null) { + loc += `.env["${envName}"]`; + } + return loc; + }, + *optionsAndDescriptors(opt) { + const content = Object.assign({}, opt.options); + delete content.overrides; + delete content.env; + const pluginDescriptors = [...(yield* opt.plugins())]; + if (pluginDescriptors.length) { + content.plugins = pluginDescriptors.map(d => descriptorToConfig(d)); + } + const presetDescriptors = [...(yield* opt.presets())]; + if (presetDescriptors.length) { + content.presets = [...presetDescriptors].map(d => descriptorToConfig(d)); + } + return JSON.stringify(content, undefined, 2); + } +}; +function descriptorToConfig(d) { + var _d$file; + let name = (_d$file = d.file) == null ? void 0 : _d$file.request; + if (name == null) { + if (typeof d.value === "object") { + name = d.value; + } else if (typeof d.value === "function") { + name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`; + } + } + if (name == null) { + name = "[Unknown]"; + } + if (d.options === undefined) { + return name; + } else if (d.name == null) { + return [name, d.options]; + } else { + return [name, d.options, d.name]; + } +} +class ConfigPrinter { + constructor() { + this._stack = []; + } + configure(enabled, type, { + callerName, + filepath + }) { + if (!enabled) return () => {}; + return (content, index, envName) => { + this._stack.push({ + type, + callerName, + filepath, + content, + index, + envName + }); + }; + } + static *format(config) { + let title = Formatter.title(config.type, config.callerName, config.filepath); + const loc = Formatter.loc(config.index, config.envName); + if (loc) title += ` ${loc}`; + const content = yield* Formatter.optionsAndDescriptors(config.content); + return `${title}\n${content}`; + } + *output() { + if (this._stack.length === 0) return ""; + const configs = yield* _gensync().all(this._stack.map(s => ConfigPrinter.format(s))); + return configs.join("\n\n"); + } +} +exports.ConfigPrinter = ConfigPrinter; +0 && 0; + +//# sourceMappingURL=printer.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/printer.js.map b/framework-core/node_modules/@babel/core/lib/config/printer.js.map new file mode 100644 index 0000000..5a55940 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/printer.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","ChainFormatter","exports","Programmatic","Config","Formatter","title","type","callerName","filepath","loc","index","envName","optionsAndDescriptors","opt","content","Object","assign","options","overrides","env","pluginDescriptors","plugins","length","map","d","descriptorToConfig","presetDescriptors","presets","JSON","stringify","undefined","_d$file","name","file","request","value","toString","slice","ConfigPrinter","constructor","_stack","configure","enabled","push","format","config","output","configs","gensync","all","s","join"],"sources":["../../src/config/printer.ts"],"sourcesContent":["import gensync from \"gensync\";\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n OptionsAndDescriptors,\n UnloadedDescriptor,\n} from \"./config-descriptors.ts\";\n\n// todo: Use flow enums when @babel/transform-flow-types supports it\nexport const ChainFormatter = {\n Programmatic: 0,\n Config: 1,\n};\n\ntype PrintableConfig = {\n content: OptionsAndDescriptors;\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter];\n callerName: string | undefined | null;\n filepath: string | undefined | null;\n index: number | undefined | null;\n envName: string | undefined | null;\n};\n\nconst Formatter = {\n title(\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n callerName?: string | null,\n filepath?: string | null,\n ): string {\n let title = \"\";\n if (type === ChainFormatter.Programmatic) {\n title = \"programmatic options\";\n if (callerName) {\n title += \" from \" + callerName;\n }\n } else {\n title = \"config \" + filepath;\n }\n return title;\n },\n loc(index?: number | null, envName?: string | null): string {\n let loc = \"\";\n if (index != null) {\n loc += `.overrides[${index}]`;\n }\n if (envName != null) {\n loc += `.env[\"${envName}\"]`;\n }\n return loc;\n },\n\n *optionsAndDescriptors(opt: OptionsAndDescriptors) {\n const content = { ...opt.options };\n // overrides and env will be printed as separated config items\n delete content.overrides;\n delete content.env;\n // resolve to descriptors\n const pluginDescriptors = [...(yield* opt.plugins())];\n if (pluginDescriptors.length) {\n content.plugins = pluginDescriptors.map(d => descriptorToConfig(d));\n }\n const presetDescriptors = [...(yield* opt.presets())];\n if (presetDescriptors.length) {\n content.presets = [...presetDescriptors].map(d => descriptorToConfig(d));\n }\n return JSON.stringify(content, undefined, 2);\n },\n};\n\nfunction descriptorToConfig(\n d: UnloadedDescriptor,\n): object | string | [string, unknown] | [string, unknown, string] {\n let name: object | string = d.file?.request;\n if (name == null) {\n if (typeof d.value === \"object\") {\n name = d.value;\n } else if (typeof d.value === \"function\") {\n // If the unloaded descriptor is a function, i.e. `plugins: [ require(\"my-plugin\") ]`,\n // we print the first 50 characters of the function source code and hopefully we can see\n // `name: 'my-plugin'` in the source\n name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`;\n }\n }\n if (name == null) {\n name = \"[Unknown]\";\n }\n if (d.options === undefined) {\n return name;\n } else if (d.name == null) {\n return [name, d.options];\n } else {\n return [name, d.options, d.name];\n }\n}\n\nexport class ConfigPrinter {\n _stack: Array = [];\n configure(\n enabled: boolean,\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n {\n callerName,\n filepath,\n }: {\n callerName?: string;\n filepath?: string;\n },\n ) {\n if (!enabled) return () => {};\n return (\n content: OptionsAndDescriptors,\n index?: number | null,\n envName?: string | null,\n ) => {\n this._stack.push({\n type,\n callerName,\n filepath,\n content,\n index,\n envName,\n });\n };\n }\n static *format(config: PrintableConfig): Handler {\n let title = Formatter.title(\n config.type,\n config.callerName,\n config.filepath,\n );\n const loc = Formatter.loc(config.index, config.envName);\n if (loc) title += ` ${loc}`;\n const content = yield* Formatter.optionsAndDescriptors(config.content);\n return `${title}\\n${content}`;\n }\n\n *output(): Handler {\n if (this._stack.length === 0) return \"\";\n const configs = yield* gensync.all(\n this._stack.map(s => ConfigPrinter.format(s)),\n );\n return configs.join(\"\\n\\n\");\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/resolve-targets-browser.js b/framework-core/node_modules/@babel/core/lib/config/resolve-targets-browser.js new file mode 100644 index 0000000..3fdbd88 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/resolve-targets-browser.js @@ -0,0 +1,41 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile; +exports.resolveTargets = resolveTargets; +function _helperCompilationTargets() { + const data = require("@babel/helper-compilation-targets"); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +function resolveBrowserslistConfigFile(browserslistConfigFile, configFilePath) { + return undefined; +} +function resolveTargets(options, root) { + const optTargets = options.targets; + let targets; + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { + browsers: optTargets + }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = Object.assign({}, optTargets, { + esmodules: "intersect" + }); + } else { + targets = optTargets; + } + } + return (0, _helperCompilationTargets().default)(targets, { + ignoreBrowserslistConfig: true, + browserslistEnv: options.browserslistEnv + }); +} +0 && 0; + +//# sourceMappingURL=resolve-targets-browser.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map b/framework-core/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map new file mode 100644 index 0000000..25ed272 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/resolve-targets-browser.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_helperCompilationTargets","data","require","resolveBrowserslistConfigFile","browserslistConfigFile","configFilePath","undefined","resolveTargets","options","root","optTargets","targets","Array","isArray","browsers","Object","assign","esmodules","getTargets","ignoreBrowserslistConfig","browserslistEnv"],"sources":["../../src/config/resolve-targets-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\nimport type { ValidatedOptions } from \"./validation/options.ts\";\nimport getTargets, {\n type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n browserslistConfigFile: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n configFilePath: string,\n): string | void {\n return undefined;\n}\n\nexport function resolveTargets(\n options: ValidatedOptions,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n root: string,\n): Targets {\n const optTargets = options.targets;\n let targets: InputTargets;\n\n if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n targets = { browsers: optTargets };\n } else if (optTargets) {\n if (\"esmodules\" in optTargets) {\n targets = { ...optTargets, esmodules: \"intersect\" };\n } else {\n // https://github.com/microsoft/TypeScript/issues/17002\n targets = optTargets as InputTargets;\n }\n }\n\n return getTargets(targets, {\n ignoreBrowserslistConfig: true,\n browserslistEnv: options.browserslistEnv,\n });\n}\n"],"mappings":";;;;;;;AAGA,SAAAA,0BAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,yBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMO,SAASE,6BAA6BA,CAE3CC,sBAA8B,EAE9BC,cAAsB,EACP;EACf,OAAOC,SAAS;AAClB;AAEO,SAASC,cAAcA,CAC5BC,OAAyB,EAEzBC,IAAY,EACH;EACT,MAAMC,UAAU,GAAGF,OAAO,CAACG,OAAO;EAClC,IAAIA,OAAqB;EAEzB,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC/DC,OAAO,GAAG;MAAEG,QAAQ,EAAEJ;IAAW,CAAC;EACpC,CAAC,MAAM,IAAIA,UAAU,EAAE;IACrB,IAAI,WAAW,IAAIA,UAAU,EAAE;MAC7BC,OAAO,GAAAI,MAAA,CAAAC,MAAA,KAAQN,UAAU;QAAEO,SAAS,EAAE;MAAW,EAAE;IACrD,CAAC,MAAM;MAELN,OAAO,GAAGD,UAA0B;IACtC;EACF;EAEA,OAAO,IAAAQ,mCAAU,EAACP,OAAO,EAAE;IACzBQ,wBAAwB,EAAE,IAAI;IAC9BC,eAAe,EAAEZ,OAAO,CAACY;EAC3B,CAAC,CAAC;AACJ;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/resolve-targets.js b/framework-core/node_modules/@babel/core/lib/config/resolve-targets.js new file mode 100644 index 0000000..1fc539a --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/resolve-targets.js @@ -0,0 +1,61 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile; +exports.resolveTargets = resolveTargets; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _helperCompilationTargets() { + const data = require("@babel/helper-compilation-targets"); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +({}); +function resolveBrowserslistConfigFile(browserslistConfigFile, configFileDir) { + return _path().resolve(configFileDir, browserslistConfigFile); +} +function resolveTargets(options, root) { + const optTargets = options.targets; + let targets; + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { + browsers: optTargets + }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = Object.assign({}, optTargets, { + esmodules: "intersect" + }); + } else { + targets = optTargets; + } + } + const { + browserslistConfigFile + } = options; + let configFile; + let ignoreBrowserslistConfig = false; + if (typeof browserslistConfigFile === "string") { + configFile = browserslistConfigFile; + } else { + ignoreBrowserslistConfig = browserslistConfigFile === false; + } + return (0, _helperCompilationTargets().default)(targets, { + ignoreBrowserslistConfig, + configFile, + configPath: root, + browserslistEnv: options.browserslistEnv + }); +} +0 && 0; + +//# sourceMappingURL=resolve-targets.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/resolve-targets.js.map b/framework-core/node_modules/@babel/core/lib/config/resolve-targets.js.map new file mode 100644 index 0000000..de3822f --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/resolve-targets.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","_helperCompilationTargets","resolveBrowserslistConfigFile","browserslistConfigFile","configFileDir","path","resolve","resolveTargets","options","root","optTargets","targets","Array","isArray","browsers","Object","assign","esmodules","configFile","ignoreBrowserslistConfig","getTargets","configPath","browserslistEnv"],"sources":["../../src/config/resolve-targets.ts"],"sourcesContent":["type browserType = typeof import(\"./resolve-targets-browser\");\ntype nodeType = typeof import(\"./resolve-targets\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n({}) as any as browserType as nodeType;\n\nimport type { ValidatedOptions } from \"./validation/options.ts\";\nimport path from \"node:path\";\nimport getTargets, {\n type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n browserslistConfigFile: string,\n configFileDir: string,\n): string | undefined {\n return path.resolve(configFileDir, browserslistConfigFile);\n}\n\nexport function resolveTargets(\n options: ValidatedOptions,\n root: string,\n): Targets {\n const optTargets = options.targets;\n let targets: InputTargets;\n\n if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n targets = { browsers: optTargets };\n } else if (optTargets) {\n if (\"esmodules\" in optTargets) {\n targets = { ...optTargets, esmodules: \"intersect\" };\n } else {\n // https://github.com/microsoft/TypeScript/issues/17002\n targets = optTargets as InputTargets;\n }\n }\n\n const { browserslistConfigFile } = options;\n let configFile;\n let ignoreBrowserslistConfig = false;\n if (typeof browserslistConfigFile === \"string\") {\n configFile = browserslistConfigFile;\n } else {\n ignoreBrowserslistConfig = browserslistConfigFile === false;\n }\n\n return getTargets(targets, {\n ignoreBrowserslistConfig,\n configFile,\n configPath: root,\n browserslistEnv: options.browserslistEnv,\n });\n}\n"],"mappings":";;;;;;;AAQA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,0BAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,yBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAJA,CAAC,CAAC,CAAC;AAUI,SAASG,6BAA6BA,CAC3CC,sBAA8B,EAC9BC,aAAqB,EACD;EACpB,OAAOC,MAAGA,CAAC,CAACC,OAAO,CAACF,aAAa,EAAED,sBAAsB,CAAC;AAC5D;AAEO,SAASI,cAAcA,CAC5BC,OAAyB,EACzBC,IAAY,EACH;EACT,MAAMC,UAAU,GAAGF,OAAO,CAACG,OAAO;EAClC,IAAIA,OAAqB;EAEzB,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,EAAE;IAC/DC,OAAO,GAAG;MAAEG,QAAQ,EAAEJ;IAAW,CAAC;EACpC,CAAC,MAAM,IAAIA,UAAU,EAAE;IACrB,IAAI,WAAW,IAAIA,UAAU,EAAE;MAC7BC,OAAO,GAAAI,MAAA,CAAAC,MAAA,KAAQN,UAAU;QAAEO,SAAS,EAAE;MAAW,EAAE;IACrD,CAAC,MAAM;MAELN,OAAO,GAAGD,UAA0B;IACtC;EACF;EAEA,MAAM;IAAEP;EAAuB,CAAC,GAAGK,OAAO;EAC1C,IAAIU,UAAU;EACd,IAAIC,wBAAwB,GAAG,KAAK;EACpC,IAAI,OAAOhB,sBAAsB,KAAK,QAAQ,EAAE;IAC9Ce,UAAU,GAAGf,sBAAsB;EACrC,CAAC,MAAM;IACLgB,wBAAwB,GAAGhB,sBAAsB,KAAK,KAAK;EAC7D;EAEA,OAAO,IAAAiB,mCAAU,EAACT,OAAO,EAAE;IACzBQ,wBAAwB;IACxBD,UAAU;IACVG,UAAU,EAAEZ,IAAI;IAChBa,eAAe,EAAEd,OAAO,CAACc;EAC3B,CAAC,CAAC;AACJ;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/util.js b/framework-core/node_modules/@babel/core/lib/config/util.js new file mode 100644 index 0000000..077f1af --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/util.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isIterableIterator = isIterableIterator; +exports.mergeOptions = mergeOptions; +function mergeOptions(target, source) { + for (const k of Object.keys(source)) { + if ((k === "parserOpts" || k === "generatorOpts" || k === "assumptions") && source[k]) { + const parserOpts = source[k]; + const targetObj = target[k] || (target[k] = {}); + mergeDefaultFields(targetObj, parserOpts); + } else { + const val = source[k]; + if (val !== undefined) target[k] = val; + } + } +} +function mergeDefaultFields(target, source) { + for (const k of Object.keys(source)) { + const val = source[k]; + if (val !== undefined) target[k] = val; + } +} +function isIterableIterator(value) { + return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function"; +} +0 && 0; + +//# sourceMappingURL=util.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/util.js.map b/framework-core/node_modules/@babel/core/lib/config/util.js.map new file mode 100644 index 0000000..696c28c --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/util.js.map @@ -0,0 +1 @@ +{"version":3,"names":["mergeOptions","target","source","k","Object","keys","parserOpts","targetObj","mergeDefaultFields","val","undefined","isIterableIterator","value","next","Symbol","iterator"],"sources":["../../src/config/util.ts"],"sourcesContent":["import type {\n ValidatedOptions,\n NormalizedOptions,\n} from \"./validation/options.ts\";\n\nexport function mergeOptions(\n target: ValidatedOptions,\n source: ValidatedOptions | NormalizedOptions,\n): void {\n for (const k of Object.keys(source)) {\n if (\n (k === \"parserOpts\" || k === \"generatorOpts\" || k === \"assumptions\") &&\n source[k]\n ) {\n const parserOpts = source[k];\n const targetObj = target[k] || (target[k] = {});\n mergeDefaultFields(targetObj, parserOpts);\n } else {\n //@ts-expect-error k must index source\n const val = source[k];\n //@ts-expect-error assigning source to target\n if (val !== undefined) target[k] = val as any;\n }\n }\n}\n\nfunction mergeDefaultFields(target: T, source: T) {\n for (const k of Object.keys(source) as (keyof T)[]) {\n const val = source[k];\n if (val !== undefined) target[k] = val;\n }\n}\n\nexport function isIterableIterator(value: any): value is IterableIterator {\n return (\n !!value &&\n typeof value.next === \"function\" &&\n typeof value[Symbol.iterator] === \"function\"\n );\n}\n"],"mappings":";;;;;;;AAKO,SAASA,YAAYA,CAC1BC,MAAwB,EACxBC,MAA4C,EACtC;EACN,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAE;IACnC,IACE,CAACC,CAAC,KAAK,YAAY,IAAIA,CAAC,KAAK,eAAe,IAAIA,CAAC,KAAK,aAAa,KACnED,MAAM,CAACC,CAAC,CAAC,EACT;MACA,MAAMG,UAAU,GAAGJ,MAAM,CAACC,CAAC,CAAC;MAC5B,MAAMI,SAAS,GAAGN,MAAM,CAACE,CAAC,CAAC,KAAKF,MAAM,CAACE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/CK,kBAAkB,CAACD,SAAS,EAAED,UAAU,CAAC;IAC3C,CAAC,MAAM;MAEL,MAAMG,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;MAErB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAU;IAC/C;EACF;AACF;AAEA,SAASD,kBAAkBA,CAAmBP,MAAS,EAAEC,MAAS,EAAE;EAClE,KAAK,MAAMC,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,EAAiB;IAClD,MAAMO,GAAG,GAAGP,MAAM,CAACC,CAAC,CAAC;IACrB,IAAIM,GAAG,KAAKC,SAAS,EAAET,MAAM,CAACE,CAAC,CAAC,GAAGM,GAAG;EACxC;AACF;AAEO,SAASE,kBAAkBA,CAACC,KAAU,EAAkC;EAC7E,OACE,CAAC,CAACA,KAAK,IACP,OAAOA,KAAK,CAACC,IAAI,KAAK,UAAU,IAChC,OAAOD,KAAK,CAACE,MAAM,CAACC,QAAQ,CAAC,KAAK,UAAU;AAEhD;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/validation/option-assertions.js b/framework-core/node_modules/@babel/core/lib/config/validation/option-assertions.js new file mode 100644 index 0000000..0227971 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/validation/option-assertions.js @@ -0,0 +1,277 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.access = access; +exports.assertArray = assertArray; +exports.assertAssumptions = assertAssumptions; +exports.assertBabelrcSearch = assertBabelrcSearch; +exports.assertBoolean = assertBoolean; +exports.assertCallerMetadata = assertCallerMetadata; +exports.assertCompact = assertCompact; +exports.assertConfigApplicableTest = assertConfigApplicableTest; +exports.assertConfigFileSearch = assertConfigFileSearch; +exports.assertFunction = assertFunction; +exports.assertIgnoreList = assertIgnoreList; +exports.assertInputSourceMap = assertInputSourceMap; +exports.assertObject = assertObject; +exports.assertPluginList = assertPluginList; +exports.assertRootMode = assertRootMode; +exports.assertSourceMaps = assertSourceMaps; +exports.assertSourceType = assertSourceType; +exports.assertString = assertString; +exports.assertTargets = assertTargets; +exports.msg = msg; +function _helperCompilationTargets() { + const data = require("@babel/helper-compilation-targets"); + _helperCompilationTargets = function () { + return data; + }; + return data; +} +var _options = require("./options.js"); +function msg(loc) { + switch (loc.type) { + case "root": + return ``; + case "env": + return `${msg(loc.parent)}.env["${loc.name}"]`; + case "overrides": + return `${msg(loc.parent)}.overrides[${loc.index}]`; + case "option": + return `${msg(loc.parent)}.${loc.name}`; + case "access": + return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`; + default: + throw new Error(`Assertion failure: Unknown type ${loc.type}`); + } +} +function access(loc, name) { + return { + type: "access", + name, + parent: loc + }; +} +function assertRootMode(loc, value) { + if (value !== undefined && value !== "root" && value !== "upward" && value !== "upward-optional") { + throw new Error(`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`); + } + return value; +} +function assertSourceMaps(loc, value) { + if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") { + throw new Error(`${msg(loc)} must be a boolean, "inline", "both", or undefined`); + } + return value; +} +function assertCompact(loc, value) { + if (value !== undefined && typeof value !== "boolean" && value !== "auto") { + throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`); + } + return value; +} +function assertSourceType(loc, value) { + if (value !== undefined && value !== "module" && value !== "commonjs" && value !== "script" && value !== "unambiguous") { + throw new Error(`${msg(loc)} must be "module", "commonjs", "script", "unambiguous", or undefined`); + } + return value; +} +function assertCallerMetadata(loc, value) { + const obj = assertObject(loc, value); + if (obj) { + if (typeof obj.name !== "string") { + throw new Error(`${msg(loc)} set but does not contain "name" property string`); + } + for (const prop of Object.keys(obj)) { + const propLoc = access(loc, prop); + const value = obj[prop]; + if (value != null && typeof value !== "boolean" && typeof value !== "string" && typeof value !== "number") { + throw new Error(`${msg(propLoc)} must be null, undefined, a boolean, a string, or a number.`); + } + } + } + return value; +} +function assertInputSourceMap(loc, value) { + if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) { + throw new Error(`${msg(loc)} must be a boolean, object, or undefined`); + } + return value; +} +function assertString(loc, value) { + if (value !== undefined && typeof value !== "string") { + throw new Error(`${msg(loc)} must be a string, or undefined`); + } + return value; +} +function assertFunction(loc, value) { + if (value !== undefined && typeof value !== "function") { + throw new Error(`${msg(loc)} must be a function, or undefined`); + } + return value; +} +function assertBoolean(loc, value) { + if (value !== undefined && typeof value !== "boolean") { + throw new Error(`${msg(loc)} must be a boolean, or undefined`); + } + return value; +} +function assertObject(loc, value) { + if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) { + throw new Error(`${msg(loc)} must be an object, or undefined`); + } + return value; +} +function assertArray(loc, value) { + if (value != null && !Array.isArray(value)) { + throw new Error(`${msg(loc)} must be an array, or undefined`); + } + return value; +} +function assertIgnoreList(loc, value) { + const arr = assertArray(loc, value); + arr == null || arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item)); + return arr; +} +function assertIgnoreItem(loc, value) { + if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) { + throw new Error(`${msg(loc)} must be an array of string/Function/RegExp values, or undefined`); + } + return value; +} +function assertConfigApplicableTest(loc, value) { + if (value === undefined) { + return value; + } + if (Array.isArray(value)) { + value.forEach((item, i) => { + if (!checkValidTest(item)) { + throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); + } + }); + } else if (!checkValidTest(value)) { + throw new Error(`${msg(loc)} must be a string/Function/RegExp, or an array of those`); + } + return value; +} +function checkValidTest(value) { + return typeof value === "string" || typeof value === "function" || value instanceof RegExp; +} +function assertConfigFileSearch(loc, value) { + if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") { + throw new Error(`${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`); + } + return value; +} +function assertBabelrcSearch(loc, value) { + if (value === undefined || typeof value === "boolean") { + return value; + } + if (Array.isArray(value)) { + value.forEach((item, i) => { + if (!checkValidTest(item)) { + throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); + } + }); + } else if (!checkValidTest(value)) { + throw new Error(`${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + `or an array of those, got ${JSON.stringify(value)}`); + } + return value; +} +function assertPluginList(loc, value) { + const arr = assertArray(loc, value); + if (arr) { + arr.forEach((item, i) => assertPluginItem(access(loc, i), item)); + } + return arr; +} +function assertPluginItem(loc, value) { + if (Array.isArray(value)) { + if (value.length === 0) { + throw new Error(`${msg(loc)} must include an object`); + } + if (value.length > 3) { + throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`); + } + assertPluginTarget(access(loc, 0), value[0]); + if (value.length > 1) { + const opts = value[1]; + if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts) || opts === null)) { + throw new Error(`${msg(access(loc, 1))} must be an object, false, or undefined`); + } + } + if (value.length === 3) { + const name = value[2]; + if (name !== undefined && typeof name !== "string") { + throw new Error(`${msg(access(loc, 2))} must be a string, or undefined`); + } + } + } else { + assertPluginTarget(loc, value); + } + return value; +} +function assertPluginTarget(loc, value) { + if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") { + throw new Error(`${msg(loc)} must be a string, object, function`); + } + return value; +} +function assertTargets(loc, value) { + if ((0, _helperCompilationTargets().isBrowsersQueryValid)(value)) return value; + if (typeof value !== "object" || !value || Array.isArray(value)) { + throw new Error(`${msg(loc)} must be a string, an array of strings or an object`); + } + const browsersLoc = access(loc, "browsers"); + const esmodulesLoc = access(loc, "esmodules"); + assertBrowsersList(browsersLoc, value.browsers); + assertBoolean(esmodulesLoc, value.esmodules); + for (const key of Object.keys(value)) { + const val = value[key]; + const subLoc = access(loc, key); + if (key === "esmodules") assertBoolean(subLoc, val);else if (key === "browsers") assertBrowsersList(subLoc, val);else if (!hasOwnProperty.call(_helperCompilationTargets().TargetNames, key)) { + const validTargets = Object.keys(_helperCompilationTargets().TargetNames).join(", "); + throw new Error(`${msg(subLoc)} is not a valid target. Supported targets are ${validTargets}`); + } else assertBrowserVersion(subLoc, val); + } + return value; +} +function assertBrowsersList(loc, value) { + if (value !== undefined && !(0, _helperCompilationTargets().isBrowsersQueryValid)(value)) { + throw new Error(`${msg(loc)} must be undefined, a string or an array of strings`); + } +} +function assertBrowserVersion(loc, value) { + if (typeof value === "number" && Math.round(value) === value) return; + if (typeof value === "string") return; + throw new Error(`${msg(loc)} must be a string or an integer number`); +} +function assertAssumptions(loc, value) { + if (value === undefined) return; + if (typeof value !== "object" || value === null) { + throw new Error(`${msg(loc)} must be an object or undefined.`); + } + let root = loc; + do { + root = root.parent; + } while (root.type !== "root"); + const inPreset = root.source === "preset"; + for (const name of Object.keys(value)) { + const subLoc = access(loc, name); + if (!_options.assumptionsNames.has(name)) { + throw new Error(`${msg(subLoc)} is not a supported assumption.`); + } + if (typeof value[name] !== "boolean") { + throw new Error(`${msg(subLoc)} must be a boolean.`); + } + if (inPreset && value[name] === false) { + throw new Error(`${msg(subLoc)} cannot be set to 'false' inside presets.`); + } + } + return value; +} +0 && 0; + +//# sourceMappingURL=option-assertions.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/validation/option-assertions.js.map b/framework-core/node_modules/@babel/core/lib/config/validation/option-assertions.js.map new file mode 100644 index 0000000..d07b0c6 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/validation/option-assertions.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_helperCompilationTargets","data","require","_options","msg","loc","type","parent","name","index","JSON","stringify","Error","access","assertRootMode","value","undefined","assertSourceMaps","assertCompact","assertSourceType","assertCallerMetadata","obj","assertObject","prop","Object","keys","propLoc","assertInputSourceMap","assertString","assertFunction","assertBoolean","Array","isArray","assertArray","assertIgnoreList","arr","forEach","item","i","assertIgnoreItem","RegExp","assertConfigApplicableTest","checkValidTest","assertConfigFileSearch","assertBabelrcSearch","assertPluginList","assertPluginItem","length","assertPluginTarget","opts","assertTargets","isBrowsersQueryValid","browsersLoc","esmodulesLoc","assertBrowsersList","browsers","esmodules","key","val","subLoc","hasOwnProperty","call","TargetNames","validTargets","join","assertBrowserVersion","Math","round","assertAssumptions","root","inPreset","source","assumptionsNames","has"],"sources":["../../../src/config/validation/option-assertions.ts"],"sourcesContent":["import {\n isBrowsersQueryValid,\n TargetNames,\n} from \"@babel/helper-compilation-targets\";\n\nimport type {\n ConfigFileSearch,\n BabelrcSearch,\n IgnoreList,\n IgnoreItem,\n PluginList,\n PluginItem,\n PluginTarget,\n ConfigApplicableTest,\n SourceMapsOption,\n SourceTypeOption,\n CompactOption,\n RootInputSourceMapOption,\n NestingPath,\n CallerMetadata,\n RootMode,\n TargetsListOrObject,\n AssumptionName,\n} from \"./options.ts\";\n\nimport { assumptionsNames } from \"./options.ts\";\n\nexport type { RootPath } from \"./options.ts\";\n\nexport type ValidatorSet = {\n [name: string]: Validator;\n};\n\nexport type Validator = (loc: OptionPath, value: unknown) => T;\n\nexport function msg(loc: NestingPath | GeneralPath): string {\n switch (loc.type) {\n case \"root\":\n return ``;\n case \"env\":\n return `${msg(loc.parent)}.env[\"${loc.name}\"]`;\n case \"overrides\":\n return `${msg(loc.parent)}.overrides[${loc.index}]`;\n case \"option\":\n return `${msg(loc.parent)}.${loc.name}`;\n case \"access\":\n return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;\n default:\n // @ts-expect-error should not happen when code is type checked\n throw new Error(`Assertion failure: Unknown type ${loc.type}`);\n }\n}\n\nexport function access(loc: GeneralPath, name: string | number): AccessPath {\n return {\n type: \"access\",\n name,\n parent: loc,\n };\n}\n\nexport type OptionPath = Readonly<{\n type: \"option\";\n name: string;\n parent: NestingPath;\n}>;\ntype AccessPath = Readonly<{\n type: \"access\";\n name: string | number;\n parent: GeneralPath;\n}>;\ntype GeneralPath = OptionPath | AccessPath;\n\nexport function assertRootMode(\n loc: OptionPath,\n value: unknown,\n): RootMode | void {\n if (\n value !== undefined &&\n value !== \"root\" &&\n value !== \"upward\" &&\n value !== \"upward-optional\"\n ) {\n throw new Error(\n `${msg(loc)} must be a \"root\", \"upward\", \"upward-optional\" or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceMaps(\n loc: OptionPath,\n value: unknown,\n): SourceMapsOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n value !== \"inline\" &&\n value !== \"both\"\n ) {\n throw new Error(\n `${msg(loc)} must be a boolean, \"inline\", \"both\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCompact(\n loc: OptionPath,\n value: unknown,\n): CompactOption | void {\n if (value !== undefined && typeof value !== \"boolean\" && value !== \"auto\") {\n throw new Error(`${msg(loc)} must be a boolean, \"auto\", or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceType(\n loc: OptionPath,\n value: unknown,\n): SourceTypeOption | void {\n if (\n value !== undefined &&\n value !== \"module\" &&\n value !== \"commonjs\" &&\n value !== \"script\" &&\n value !== \"unambiguous\"\n ) {\n throw new Error(\n `${msg(loc)} must be \"module\", \"commonjs\", \"script\", \"unambiguous\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCallerMetadata(\n loc: OptionPath,\n value: unknown,\n): CallerMetadata | undefined {\n const obj = assertObject(loc, value);\n if (obj) {\n if (typeof obj.name !== \"string\") {\n throw new Error(\n `${msg(loc)} set but does not contain \"name\" property string`,\n );\n }\n\n for (const prop of Object.keys(obj)) {\n const propLoc = access(loc, prop);\n const value = obj[prop];\n if (\n value != null &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\" &&\n typeof value !== \"number\"\n ) {\n // NOTE(logan): I'm limiting the type here so that we can guarantee that\n // the \"caller\" value will serialize to JSON nicely. We can always\n // allow more complex structures later though.\n throw new Error(\n `${msg(\n propLoc,\n )} must be null, undefined, a boolean, a string, or a number.`,\n );\n }\n }\n }\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n\nexport function assertInputSourceMap(\n loc: OptionPath,\n value: unknown,\n): RootInputSourceMapOption {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n (typeof value !== \"object\" || !value)\n ) {\n throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);\n }\n return value as RootInputSourceMapOption;\n}\n\nexport function assertString(loc: GeneralPath, value: unknown): string | void {\n if (value !== undefined && typeof value !== \"string\") {\n throw new Error(`${msg(loc)} must be a string, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertFunction(\n loc: GeneralPath,\n value: unknown,\n): Function | void {\n if (value !== undefined && typeof value !== \"function\") {\n throw new Error(`${msg(loc)} must be a function, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBoolean(\n loc: GeneralPath,\n value: unknown,\n): boolean | void {\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new Error(`${msg(loc)} must be a boolean, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertObject(\n loc: GeneralPath,\n value: unknown,\n): { readonly [key: string]: unknown } | void {\n if (\n value !== undefined &&\n (typeof value !== \"object\" || Array.isArray(value) || !value)\n ) {\n throw new Error(`${msg(loc)} must be an object, or undefined`);\n }\n // @ts-expect-error todo(flow->ts) value is still typed as unknown, also assert function typically should not return a value\n return value;\n}\n\nexport function assertArray(\n loc: GeneralPath,\n value: Array | undefined | null,\n): ReadonlyArray | undefined | null {\n if (value != null && !Array.isArray(value)) {\n throw new Error(`${msg(loc)} must be an array, or undefined`);\n }\n return value;\n}\n\nexport function assertIgnoreList(\n loc: OptionPath,\n value: unknown[] | undefined,\n): IgnoreList | void {\n const arr = assertArray(loc, value);\n arr?.forEach((item, i) => assertIgnoreItem(access(loc, i), item));\n // @ts-expect-error todo(flow->ts)\n return arr;\n}\nfunction assertIgnoreItem(loc: GeneralPath, value: unknown): IgnoreItem {\n if (\n typeof value !== \"string\" &&\n typeof value !== \"function\" &&\n !(value instanceof RegExp)\n ) {\n throw new Error(\n `${msg(\n loc,\n )} must be an array of string/Function/RegExp values, or undefined`,\n );\n }\n return value as IgnoreItem;\n}\n\nexport function assertConfigApplicableTest(\n loc: OptionPath,\n value: unknown,\n): ConfigApplicableTest | void {\n if (value === undefined) {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a string/Function/RegExp, or an array of those`,\n );\n }\n return value as ConfigApplicableTest;\n}\n\nfunction checkValidTest(value: unknown): value is string | Function | RegExp {\n return (\n typeof value === \"string\" ||\n typeof value === \"function\" ||\n value instanceof RegExp\n );\n}\n\nexport function assertConfigFileSearch(\n loc: OptionPath,\n value: unknown,\n): ConfigFileSearch | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\"\n ) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string, ` +\n `got ${JSON.stringify(value)}`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBabelrcSearch(\n loc: OptionPath,\n value: unknown,\n): BabelrcSearch | void {\n if (value === undefined || typeof value === \"boolean\") {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` +\n `or an array of those, got ${JSON.stringify(value as any)}`,\n );\n }\n return value as BabelrcSearch;\n}\n\nexport function assertPluginList(\n loc: OptionPath,\n value: unknown[] | null | undefined,\n): PluginList | void {\n const arr = assertArray(loc, value);\n if (arr) {\n // Loop instead of using `.map` in order to preserve object identity\n // for plugin array for use during config chain processing.\n arr.forEach((item, i) => assertPluginItem(access(loc, i), item));\n }\n return arr as any;\n}\nfunction assertPluginItem(loc: GeneralPath, value: unknown): PluginItem {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n throw new Error(`${msg(loc)} must include an object`);\n }\n\n if (value.length > 3) {\n throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);\n }\n\n assertPluginTarget(access(loc, 0), value[0]);\n\n if (value.length > 1) {\n const opts = value[1];\n if (\n opts !== undefined &&\n opts !== false &&\n (typeof opts !== \"object\" || Array.isArray(opts) || opts === null)\n ) {\n throw new Error(\n `${msg(access(loc, 1))} must be an object, false, or undefined`,\n );\n }\n }\n if (value.length === 3) {\n const name = value[2];\n if (name !== undefined && typeof name !== \"string\") {\n throw new Error(\n `${msg(access(loc, 2))} must be a string, or undefined`,\n );\n }\n }\n } else {\n assertPluginTarget(loc, value);\n }\n\n return value as PluginItem;\n}\nfunction assertPluginTarget(loc: GeneralPath, value: unknown): PluginTarget {\n if (\n (typeof value !== \"object\" || !value) &&\n typeof value !== \"string\" &&\n typeof value !== \"function\"\n ) {\n throw new Error(`${msg(loc)} must be a string, object, function`);\n }\n return value;\n}\n\nexport function assertTargets(\n loc: GeneralPath,\n value: any,\n): TargetsListOrObject {\n if (isBrowsersQueryValid(value)) return value;\n\n if (typeof value !== \"object\" || !value || Array.isArray(value)) {\n throw new Error(\n `${msg(loc)} must be a string, an array of strings or an object`,\n );\n }\n\n const browsersLoc = access(loc, \"browsers\");\n const esmodulesLoc = access(loc, \"esmodules\");\n\n assertBrowsersList(browsersLoc, value.browsers);\n assertBoolean(esmodulesLoc, value.esmodules);\n\n for (const key of Object.keys(value)) {\n const val = value[key];\n const subLoc = access(loc, key);\n\n if (key === \"esmodules\") assertBoolean(subLoc, val);\n else if (key === \"browsers\") assertBrowsersList(subLoc, val);\n else if (!Object.hasOwn(TargetNames, key)) {\n const validTargets = Object.keys(TargetNames).join(\", \");\n throw new Error(\n `${msg(\n subLoc,\n )} is not a valid target. Supported targets are ${validTargets}`,\n );\n } else assertBrowserVersion(subLoc, val);\n }\n\n return value;\n}\n\nfunction assertBrowsersList(loc: GeneralPath, value: unknown) {\n if (value !== undefined && !isBrowsersQueryValid(value)) {\n throw new Error(\n `${msg(loc)} must be undefined, a string or an array of strings`,\n );\n }\n}\n\nfunction assertBrowserVersion(loc: GeneralPath, value: unknown) {\n if (typeof value === \"number\" && Math.round(value) === value) return;\n if (typeof value === \"string\") return;\n\n throw new Error(`${msg(loc)} must be a string or an integer number`);\n}\n\nexport function assertAssumptions(\n loc: GeneralPath,\n value: { [key: string]: unknown },\n): { [name: string]: boolean } | void {\n if (value === undefined) return;\n\n if (typeof value !== \"object\" || value === null) {\n throw new Error(`${msg(loc)} must be an object or undefined.`);\n }\n\n // todo(flow->ts): remove any\n let root: any = loc;\n do {\n root = root.parent;\n } while (root.type !== \"root\");\n const inPreset = root.source === \"preset\";\n\n for (const name of Object.keys(value)) {\n const subLoc = access(loc, name);\n if (!assumptionsNames.has(name as AssumptionName)) {\n throw new Error(`${msg(subLoc)} is not a supported assumption.`);\n }\n if (typeof value[name] !== \"boolean\") {\n throw new Error(`${msg(subLoc)} must be a boolean.`);\n }\n if (inPreset && value[name] === false) {\n throw new Error(\n `${msg(subLoc)} cannot be set to 'false' inside presets.`,\n );\n }\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/validation/options.js b/framework-core/node_modules/@babel/core/lib/config/validation/options.js new file mode 100644 index 0000000..3b78ada --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/validation/options.js @@ -0,0 +1,189 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.assumptionsNames = void 0; +exports.checkNoUnwrappedItemOptionPairs = checkNoUnwrappedItemOptionPairs; +exports.validate = validate; +var _removed = require("./removed.js"); +var _optionAssertions = require("./option-assertions.js"); +var _configError = require("../../errors/config-error.js"); +const ROOT_VALIDATORS = { + cwd: _optionAssertions.assertString, + root: _optionAssertions.assertString, + rootMode: _optionAssertions.assertRootMode, + configFile: _optionAssertions.assertConfigFileSearch, + caller: _optionAssertions.assertCallerMetadata, + filename: _optionAssertions.assertString, + filenameRelative: _optionAssertions.assertString, + code: _optionAssertions.assertBoolean, + ast: _optionAssertions.assertBoolean, + cloneInputAst: _optionAssertions.assertBoolean, + envName: _optionAssertions.assertString +}; +const BABELRC_VALIDATORS = { + babelrc: _optionAssertions.assertBoolean, + babelrcRoots: _optionAssertions.assertBabelrcSearch +}; +const NONPRESET_VALIDATORS = { + extends: _optionAssertions.assertString, + ignore: _optionAssertions.assertIgnoreList, + only: _optionAssertions.assertIgnoreList, + targets: _optionAssertions.assertTargets, + browserslistConfigFile: _optionAssertions.assertConfigFileSearch, + browserslistEnv: _optionAssertions.assertString +}; +const COMMON_VALIDATORS = { + inputSourceMap: _optionAssertions.assertInputSourceMap, + presets: _optionAssertions.assertPluginList, + plugins: _optionAssertions.assertPluginList, + passPerPreset: _optionAssertions.assertBoolean, + assumptions: _optionAssertions.assertAssumptions, + env: assertEnvSet, + overrides: assertOverridesList, + test: _optionAssertions.assertConfigApplicableTest, + include: _optionAssertions.assertConfigApplicableTest, + exclude: _optionAssertions.assertConfigApplicableTest, + retainLines: _optionAssertions.assertBoolean, + comments: _optionAssertions.assertBoolean, + shouldPrintComment: _optionAssertions.assertFunction, + compact: _optionAssertions.assertCompact, + minified: _optionAssertions.assertBoolean, + auxiliaryCommentBefore: _optionAssertions.assertString, + auxiliaryCommentAfter: _optionAssertions.assertString, + sourceType: _optionAssertions.assertSourceType, + wrapPluginVisitorMethod: _optionAssertions.assertFunction, + highlightCode: _optionAssertions.assertBoolean, + sourceMaps: _optionAssertions.assertSourceMaps, + sourceMap: _optionAssertions.assertSourceMaps, + sourceFileName: _optionAssertions.assertString, + sourceRoot: _optionAssertions.assertString, + parserOpts: _optionAssertions.assertObject, + generatorOpts: _optionAssertions.assertObject +}; +{ + Object.assign(COMMON_VALIDATORS, { + getModuleId: _optionAssertions.assertFunction, + moduleRoot: _optionAssertions.assertString, + moduleIds: _optionAssertions.assertBoolean, + moduleId: _optionAssertions.assertString + }); +} +const knownAssumptions = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "noUninitializedPrivateFieldAccess", "objectRestNoSymbols", "privateFieldsAsSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]; +const assumptionsNames = exports.assumptionsNames = new Set(knownAssumptions); +function getSource(loc) { + return loc.type === "root" ? loc.source : getSource(loc.parent); +} +function validate(type, opts, filename) { + try { + return validateNested({ + type: "root", + source: type + }, opts); + } catch (error) { + const configError = new _configError.default(error.message, filename); + if (error.code) configError.code = error.code; + throw configError; + } +} +function validateNested(loc, opts) { + const type = getSource(loc); + assertNoDuplicateSourcemap(opts); + Object.keys(opts).forEach(key => { + const optLoc = { + type: "option", + name: key, + parent: loc + }; + if (type === "preset" && NONPRESET_VALIDATORS[key]) { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`); + } + if (type !== "arguments" && ROOT_VALIDATORS[key]) { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`); + } + if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) { + if (type === "babelrcfile" || type === "extendsfile") { + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`); + } + throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`); + } + const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError; + validator(optLoc, opts[key]); + }); + return opts; +} +function throwUnknownError(loc) { + const key = loc.name; + if (_removed.default[key]) { + const { + message, + version = 5 + } = _removed.default[key]; + throw new Error(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`); + } else { + const unknownOptErr = new Error(`Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`); + unknownOptErr.code = "BABEL_UNKNOWN_OPTION"; + throw unknownOptErr; + } +} +function assertNoDuplicateSourcemap(opts) { + if (hasOwnProperty.call(opts, "sourceMap") && hasOwnProperty.call(opts, "sourceMaps")) { + throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both"); + } +} +function assertEnvSet(loc, value) { + if (loc.parent.type === "env") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`); + } + const parent = loc.parent; + const obj = (0, _optionAssertions.assertObject)(loc, value); + if (obj) { + for (const envName of Object.keys(obj)) { + const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]); + if (!env) continue; + const envLoc = { + type: "env", + name: envName, + parent + }; + validateNested(envLoc, env); + } + } + return obj; +} +function assertOverridesList(loc, value) { + if (loc.parent.type === "env") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`); + } + if (loc.parent.type === "overrides") { + throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`); + } + const parent = loc.parent; + const arr = (0, _optionAssertions.assertArray)(loc, value); + if (arr) { + for (const [index, item] of arr.entries()) { + const objLoc = (0, _optionAssertions.access)(loc, index); + const env = (0, _optionAssertions.assertObject)(objLoc, item); + if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`); + const overridesLoc = { + type: "overrides", + index, + parent + }; + validateNested(overridesLoc, env); + } + } + return arr; +} +function checkNoUnwrappedItemOptionPairs(items, index, type, e) { + if (index === 0) return; + const lastItem = items[index - 1]; + const thisItem = items[index]; + if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") { + e.message += `\n- Maybe you meant to use\n` + `"${type}s": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`; + } +} +0 && 0; + +//# sourceMappingURL=options.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/validation/options.js.map b/framework-core/node_modules/@babel/core/lib/config/validation/options.js.map new file mode 100644 index 0000000..b53bdaa --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/validation/options.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_removed","require","_optionAssertions","_configError","ROOT_VALIDATORS","cwd","assertString","root","rootMode","assertRootMode","configFile","assertConfigFileSearch","caller","assertCallerMetadata","filename","filenameRelative","code","assertBoolean","ast","cloneInputAst","envName","BABELRC_VALIDATORS","babelrc","babelrcRoots","assertBabelrcSearch","NONPRESET_VALIDATORS","extends","ignore","assertIgnoreList","only","targets","assertTargets","browserslistConfigFile","browserslistEnv","COMMON_VALIDATORS","inputSourceMap","assertInputSourceMap","presets","assertPluginList","plugins","passPerPreset","assumptions","assertAssumptions","env","assertEnvSet","overrides","assertOverridesList","test","assertConfigApplicableTest","include","exclude","retainLines","comments","shouldPrintComment","assertFunction","compact","assertCompact","minified","auxiliaryCommentBefore","auxiliaryCommentAfter","sourceType","assertSourceType","wrapPluginVisitorMethod","highlightCode","sourceMaps","assertSourceMaps","sourceMap","sourceFileName","sourceRoot","parserOpts","assertObject","generatorOpts","Object","assign","getModuleId","moduleRoot","moduleIds","moduleId","knownAssumptions","assumptionsNames","exports","Set","getSource","loc","type","source","parent","validate","opts","validateNested","error","configError","ConfigError","message","assertNoDuplicateSourcemap","keys","forEach","key","optLoc","name","Error","msg","validator","throwUnknownError","removed","version","unknownOptErr","hasOwnProperty","call","value","obj","access","envLoc","arr","assertArray","index","item","entries","objLoc","overridesLoc","checkNoUnwrappedItemOptionPairs","items","e","lastItem","thisItem","file","options","undefined","request","JSON","stringify"],"sources":["../../../src/config/validation/options.ts"],"sourcesContent":["import type { InputTargets, Targets } from \"@babel/helper-compilation-targets\";\n\nimport type { ConfigItem } from \"../item.ts\";\nimport type Plugin from \"../plugin.ts\";\n\nimport removed from \"./removed.ts\";\nimport {\n msg,\n access,\n assertString,\n assertBoolean,\n assertObject,\n assertArray,\n assertCallerMetadata,\n assertInputSourceMap,\n assertIgnoreList,\n assertPluginList,\n assertConfigApplicableTest,\n assertConfigFileSearch,\n assertBabelrcSearch,\n assertFunction,\n assertRootMode,\n assertSourceMaps,\n assertCompact,\n assertSourceType,\n assertTargets,\n assertAssumptions,\n} from \"./option-assertions.ts\";\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n} from \"./option-assertions.ts\";\nimport type { UnloadedDescriptor } from \"../config-descriptors.ts\";\nimport type { PluginAPI } from \"../helpers/config-api.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { GeneratorOptions } from \"@babel/generator\";\nimport type { VisitWrapper } from \"@babel/traverse\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst ROOT_VALIDATORS: ValidatorSet = {\n cwd: assertString as Validator,\n root: assertString as Validator,\n rootMode: assertRootMode as Validator,\n configFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"configFile\"]\n >,\n\n caller: assertCallerMetadata as Validator,\n filename: assertString as Validator,\n filenameRelative: assertString as Validator<\n ValidatedOptions[\"filenameRelative\"]\n >,\n code: assertBoolean as Validator,\n ast: assertBoolean as Validator,\n\n cloneInputAst: assertBoolean as Validator,\n\n envName: assertString as Validator,\n};\n\nconst BABELRC_VALIDATORS: ValidatorSet = {\n babelrc: assertBoolean as Validator,\n babelrcRoots: assertBabelrcSearch as Validator<\n ValidatedOptions[\"babelrcRoots\"]\n >,\n};\n\nconst NONPRESET_VALIDATORS: ValidatorSet = {\n extends: assertString as Validator,\n ignore: assertIgnoreList as Validator,\n only: assertIgnoreList as Validator,\n\n targets: assertTargets as Validator,\n browserslistConfigFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"browserslistConfigFile\"]\n >,\n browserslistEnv: assertString as Validator<\n ValidatedOptions[\"browserslistEnv\"]\n >,\n};\n\nconst COMMON_VALIDATORS: ValidatorSet = {\n // TODO: Should 'inputSourceMap' be moved to be a root-only option?\n // We may want a boolean-only version to be a common option, with the\n // object only allowed as a root config argument.\n inputSourceMap: assertInputSourceMap as Validator<\n ValidatedOptions[\"inputSourceMap\"]\n >,\n presets: assertPluginList as Validator,\n plugins: assertPluginList as Validator,\n passPerPreset: assertBoolean as Validator,\n assumptions: assertAssumptions as Validator,\n\n env: assertEnvSet as Validator,\n overrides: assertOverridesList as Validator,\n\n // We could limit these to 'overrides' blocks, but it's not clear why we'd\n // bother, when the ability to limit a config to a specific set of files\n // is a fairly general useful feature.\n test: assertConfigApplicableTest as Validator,\n include: assertConfigApplicableTest as Validator,\n exclude: assertConfigApplicableTest as Validator,\n\n retainLines: assertBoolean as Validator,\n comments: assertBoolean as Validator,\n shouldPrintComment: assertFunction as Validator<\n ValidatedOptions[\"shouldPrintComment\"]\n >,\n compact: assertCompact as Validator,\n minified: assertBoolean as Validator,\n auxiliaryCommentBefore: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentBefore\"]\n >,\n auxiliaryCommentAfter: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentAfter\"]\n >,\n sourceType: assertSourceType as Validator,\n wrapPluginVisitorMethod: assertFunction as Validator<\n ValidatedOptions[\"wrapPluginVisitorMethod\"]\n >,\n highlightCode: assertBoolean as Validator,\n sourceMaps: assertSourceMaps as Validator,\n sourceMap: assertSourceMaps as Validator,\n sourceFileName: assertString as Validator,\n sourceRoot: assertString as Validator,\n parserOpts: assertObject as Validator,\n generatorOpts: assertObject as Validator,\n};\nif (!process.env.BABEL_8_BREAKING) {\n Object.assign(COMMON_VALIDATORS, {\n getModuleId: assertFunction,\n moduleRoot: assertString,\n moduleIds: assertBoolean,\n moduleId: assertString,\n });\n}\n\nexport type InputOptions = ValidatedOptions;\n\nexport type ValidatedOptions = {\n cwd?: string;\n filename?: string;\n filenameRelative?: string;\n babelrc?: boolean;\n babelrcRoots?: BabelrcSearch;\n configFile?: ConfigFileSearch;\n root?: string;\n rootMode?: RootMode;\n code?: boolean;\n ast?: boolean;\n cloneInputAst?: boolean;\n inputSourceMap?: RootInputSourceMapOption;\n envName?: string;\n caller?: CallerMetadata;\n extends?: string;\n env?: EnvSet;\n ignore?: IgnoreList;\n only?: IgnoreList;\n overrides?: OverridesList;\n showIgnoredFiles?: boolean;\n // Generally verify if a given config object should be applied to the given file.\n test?: ConfigApplicableTest;\n include?: ConfigApplicableTest;\n exclude?: ConfigApplicableTest;\n presets?: PluginList;\n plugins?: PluginList;\n passPerPreset?: boolean;\n assumptions?: {\n [name: string]: boolean;\n };\n // browserslist-related options\n targets?: TargetsListOrObject;\n browserslistConfigFile?: ConfigFileSearch;\n browserslistEnv?: string;\n // Options for @babel/generator\n retainLines?: GeneratorOptions[\"retainLines\"];\n comments?: GeneratorOptions[\"comments\"];\n shouldPrintComment?: GeneratorOptions[\"shouldPrintComment\"];\n compact?: GeneratorOptions[\"compact\"];\n minified?: GeneratorOptions[\"minified\"];\n auxiliaryCommentBefore?: GeneratorOptions[\"auxiliaryCommentBefore\"];\n auxiliaryCommentAfter?: GeneratorOptions[\"auxiliaryCommentAfter\"];\n // Parser\n sourceType?: SourceTypeOption;\n wrapPluginVisitorMethod?: VisitWrapper | null;\n highlightCode?: boolean;\n // Sourcemap generation options.\n sourceMaps?: SourceMapsOption;\n sourceMap?: SourceMapsOption;\n sourceFileName?: string;\n sourceRoot?: string;\n // Todo(Babel 9): Deprecate top level parserOpts\n parserOpts?: ParserOptions;\n // Todo(Babel 9): Deprecate top level generatorOpts\n generatorOpts?: GeneratorOptions;\n};\n\n// The `targets` field are resolved in loadPrivPartialConfig, after that the `targets` should be\n// considered readonly since any further changes will be ignored.\nexport type NormalizedOptions = {\n readonly targets: Targets;\n} & Omit;\n\nexport type CallerMetadata = {\n // If 'caller' is specified, require that the name is given for debugging\n // messages.\n name: string;\n supportsStaticESM?: boolean;\n supportsDynamicImport?: boolean;\n supportsTopLevelAwait?: boolean;\n supportsExportNamespaceFrom?: boolean;\n};\nexport type EnvSet = {\n [x: string]: T;\n};\nexport type IgnoreItem =\n | string\n | RegExp\n | ((\n path: string | undefined,\n context: { dirname: string; caller: CallerMetadata; envName: string },\n ) => unknown);\nexport type IgnoreList = ReadonlyArray;\n\nexport type PluginOptions = object | false;\nexport type PluginTarget = string | object | Function;\nexport type PluginItem =\n | ConfigItem\n | Plugin\n | PluginTarget\n | [PluginTarget, PluginOptions]\n | [PluginTarget, PluginOptions, string | void];\nexport type PluginList = ReadonlyArray;\n\nexport type OverridesList = Array;\nexport type ConfigApplicableTest = IgnoreItem | Array;\n\nexport type ConfigFileSearch = string | boolean;\nexport type BabelrcSearch = boolean | IgnoreItem | IgnoreList;\nexport type SourceMapsOption = boolean | \"inline\" | \"both\";\nexport type SourceTypeOption = \"module\" | \"commonjs\" | \"script\" | \"unambiguous\";\nexport type CompactOption = boolean | \"auto\";\n// https://github.com/mozilla/source-map/blob/801be934007c3ed0ef66c620641b1668e92c891d/source-map.d.ts#L15C8-L23C2\ninterface InputSourceMap {\n version: number;\n sources: string[];\n names: string[];\n sourceRoot?: string | undefined;\n sourcesContent?: string[] | undefined;\n mappings: string;\n file: string;\n}\nexport type RootInputSourceMapOption = InputSourceMap | boolean;\nexport type RootMode = \"root\" | \"upward\" | \"upward-optional\";\n\nexport type TargetsListOrObject =\n | Targets\n | InputTargets\n | InputTargets[\"browsers\"];\n\nexport type OptionsSource =\n | \"arguments\"\n | \"configfile\"\n | \"babelrcfile\"\n | \"extendsfile\"\n | \"preset\"\n | \"plugin\";\n\nexport type RootPath = Readonly<{\n type: \"root\";\n source: OptionsSource;\n}>;\n\ntype OverridesPath = Readonly<{\n type: \"overrides\";\n index: number;\n parent: RootPath;\n}>;\n\ntype EnvPath = Readonly<{\n type: \"env\";\n name: string;\n parent: RootPath | OverridesPath;\n}>;\n\nexport type NestingPath = RootPath | OverridesPath | EnvPath;\n\nconst knownAssumptions = [\n \"arrayLikeIsIterable\",\n \"constantReexports\",\n \"constantSuper\",\n \"enumerableModuleMeta\",\n \"ignoreFunctionLength\",\n \"ignoreToPrimitiveHint\",\n \"iterableIsArray\",\n \"mutableTemplateObject\",\n \"noClassCalls\",\n \"noDocumentAll\",\n \"noIncompleteNsImportDetection\",\n \"noNewArrows\",\n \"noUninitializedPrivateFieldAccess\",\n \"objectRestNoSymbols\",\n \"privateFieldsAsSymbols\",\n \"privateFieldsAsProperties\",\n \"pureGetters\",\n \"setClassMethods\",\n \"setComputedProperties\",\n \"setPublicClassFields\",\n \"setSpreadProperties\",\n \"skipForOfIteratorClosing\",\n \"superIsCallableConstructor\",\n] as const;\nexport type AssumptionName = (typeof knownAssumptions)[number];\nexport const assumptionsNames = new Set(knownAssumptions);\n\nfunction getSource(loc: NestingPath): OptionsSource {\n return loc.type === \"root\" ? loc.source : getSource(loc.parent);\n}\n\nexport function validate(\n type: OptionsSource,\n opts: any,\n filename?: string,\n): ValidatedOptions {\n try {\n return validateNested(\n {\n type: \"root\",\n source: type,\n },\n opts,\n );\n } catch (error) {\n const configError = new ConfigError(error.message, filename);\n // @ts-expect-error TODO: .code is not defined on ConfigError or Error\n if (error.code) configError.code = error.code;\n throw configError;\n }\n}\n\nfunction validateNested(loc: NestingPath, opts: { [key: string]: unknown }) {\n const type = getSource(loc);\n\n assertNoDuplicateSourcemap(opts);\n\n Object.keys(opts).forEach((key: string) => {\n const optLoc = {\n type: \"option\",\n name: key,\n parent: loc,\n } as const;\n\n if (type === \"preset\" && NONPRESET_VALIDATORS[key]) {\n throw new Error(`${msg(optLoc)} is not allowed in preset options`);\n }\n if (type !== \"arguments\" && ROOT_VALIDATORS[key]) {\n throw new Error(\n `${msg(optLoc)} is only allowed in root programmatic options`,\n );\n }\n if (\n type !== \"arguments\" &&\n type !== \"configfile\" &&\n BABELRC_VALIDATORS[key]\n ) {\n if (type === \"babelrcfile\" || type === \"extendsfile\") {\n throw new Error(\n `${msg(\n optLoc,\n )} is not allowed in .babelrc or \"extends\"ed files, only in root programmatic options, ` +\n `or babel.config.js/config file options`,\n );\n }\n\n throw new Error(\n `${msg(\n optLoc,\n )} is only allowed in root programmatic options, or babel.config.js/config file options`,\n );\n }\n\n const validator =\n COMMON_VALIDATORS[key] ||\n NONPRESET_VALIDATORS[key] ||\n BABELRC_VALIDATORS[key] ||\n ROOT_VALIDATORS[key] ||\n (throwUnknownError as Validator);\n\n validator(optLoc, opts[key]);\n });\n\n return opts;\n}\n\nfunction throwUnknownError(loc: OptionPath) {\n const key = loc.name;\n\n if (removed[key]) {\n const { message, version = 5 } = removed[key];\n\n throw new Error(\n `Using removed Babel ${version} option: ${msg(loc)} - ${message}`,\n );\n } else {\n const unknownOptErr = new Error(\n `Unknown option: ${msg(\n loc,\n )}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`,\n );\n // @ts-expect-error todo(flow->ts): consider creating something like BabelConfigError with code field in it\n unknownOptErr.code = \"BABEL_UNKNOWN_OPTION\";\n\n throw unknownOptErr;\n }\n}\n\nfunction assertNoDuplicateSourcemap(opts: any): void {\n if (Object.hasOwn(opts, \"sourceMap\") && Object.hasOwn(opts, \"sourceMaps\")) {\n throw new Error(\".sourceMap is an alias for .sourceMaps, cannot use both\");\n }\n}\n\nfunction assertEnvSet(\n loc: OptionPath,\n value: unknown,\n): void | EnvSet {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside of another .env block`);\n }\n const parent: RootPath | OverridesPath = loc.parent;\n\n const obj = assertObject(loc, value);\n if (obj) {\n // Validate but don't copy the .env object in order to preserve\n // object identity for use during config chain processing.\n for (const envName of Object.keys(obj)) {\n const env = assertObject(access(loc, envName), obj[envName]);\n if (!env) continue;\n\n const envLoc = {\n type: \"env\",\n name: envName,\n parent,\n } as const;\n validateNested(envLoc, env);\n }\n }\n return obj;\n}\n\nfunction assertOverridesList(\n loc: OptionPath,\n value: unknown[],\n): undefined | OverridesList {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside an .env block`);\n }\n if (loc.parent.type === \"overrides\") {\n throw new Error(`${msg(loc)} is not allowed inside an .overrides block`);\n }\n const parent: RootPath = loc.parent;\n\n const arr = assertArray(loc, value);\n if (arr) {\n for (const [index, item] of arr.entries()) {\n const objLoc = access(loc, index);\n const env = assertObject(objLoc, item);\n if (!env) throw new Error(`${msg(objLoc)} must be an object`);\n\n const overridesLoc = {\n type: \"overrides\",\n index,\n parent,\n } as const;\n validateNested(overridesLoc, env);\n }\n }\n return arr as OverridesList;\n}\n\nexport function checkNoUnwrappedItemOptionPairs(\n items: Array>,\n index: number,\n type: \"plugin\" | \"preset\",\n e: Error,\n): void {\n if (index === 0) return;\n\n const lastItem = items[index - 1];\n const thisItem = items[index];\n\n if (\n lastItem.file &&\n lastItem.options === undefined &&\n typeof thisItem.value === \"object\"\n ) {\n e.message +=\n `\\n- Maybe you meant to use\\n` +\n `\"${type}s\": [\\n [\"${lastItem.file.request}\", ${JSON.stringify(\n thisItem.value,\n undefined,\n 2,\n )}]\\n]\\n` +\n `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`;\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/validation/plugins.js b/framework-core/node_modules/@babel/core/lib/config/validation/plugins.js new file mode 100644 index 0000000..d744ecc --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/validation/plugins.js @@ -0,0 +1,67 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.validatePluginObject = validatePluginObject; +var _optionAssertions = require("./option-assertions.js"); +const VALIDATORS = { + name: _optionAssertions.assertString, + manipulateOptions: _optionAssertions.assertFunction, + pre: _optionAssertions.assertFunction, + post: _optionAssertions.assertFunction, + inherits: _optionAssertions.assertFunction, + visitor: assertVisitorMap, + parserOverride: _optionAssertions.assertFunction, + generatorOverride: _optionAssertions.assertFunction +}; +function assertVisitorMap(loc, value) { + const obj = (0, _optionAssertions.assertObject)(loc, value); + if (obj) { + Object.keys(obj).forEach(prop => { + if (prop !== "_exploded" && prop !== "_verified") { + assertVisitorHandler(prop, obj[prop]); + } + }); + if (obj.enter || obj.exit) { + throw new Error(`${(0, _optionAssertions.msg)(loc)} cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.`); + } + } + return obj; +} +function assertVisitorHandler(key, value) { + if (value && typeof value === "object") { + Object.keys(value).forEach(handler => { + if (handler !== "enter" && handler !== "exit") { + throw new Error(`.visitor["${key}"] may only have .enter and/or .exit handlers.`); + } + }); + } else if (typeof value !== "function") { + throw new Error(`.visitor["${key}"] must be a function`); + } +} +function validatePluginObject(obj) { + const rootPath = { + type: "root", + source: "plugin" + }; + Object.keys(obj).forEach(key => { + const validator = VALIDATORS[key]; + if (validator) { + const optLoc = { + type: "option", + name: key, + parent: rootPath + }; + validator(optLoc, obj[key]); + } else { + const invalidPluginPropertyError = new Error(`.${key} is not a valid Plugin property`); + invalidPluginPropertyError.code = "BABEL_UNKNOWN_PLUGIN_PROPERTY"; + throw invalidPluginPropertyError; + } + }); + return obj; +} +0 && 0; + +//# sourceMappingURL=plugins.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/validation/plugins.js.map b/framework-core/node_modules/@babel/core/lib/config/validation/plugins.js.map new file mode 100644 index 0000000..d8896a0 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/validation/plugins.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_optionAssertions","require","VALIDATORS","name","assertString","manipulateOptions","assertFunction","pre","post","inherits","visitor","assertVisitorMap","parserOverride","generatorOverride","loc","value","obj","assertObject","Object","keys","forEach","prop","assertVisitorHandler","enter","exit","Error","msg","key","handler","validatePluginObject","rootPath","type","source","validator","optLoc","parent","invalidPluginPropertyError","code"],"sources":["../../../src/config/validation/plugins.ts"],"sourcesContent":["import {\n assertString,\n assertFunction,\n assertObject,\n msg,\n} from \"./option-assertions.ts\";\n\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n RootPath,\n} from \"./option-assertions.ts\";\nimport type { parse, ParserOptions } from \"@babel/parser\";\nimport type { Visitor } from \"@babel/traverse\";\nimport type { NormalizedOptions } from \"./options.ts\";\nimport type { File, PluginAPI, PluginPass } from \"../../index.ts\";\nimport type { GeneratorOptions, GeneratorResult } from \"@babel/generator\";\nimport type babelGenerator from \"@babel/generator\";\n\n// Note: The casts here are just meant to be static assertions to make sure\n// that the assertion functions actually assert that the value's type matches\n// the declared types.\nconst VALIDATORS: ValidatorSet = {\n name: assertString as Validator,\n manipulateOptions: assertFunction as Validator<\n PluginObject[\"manipulateOptions\"]\n >,\n pre: assertFunction as Validator,\n post: assertFunction as Validator,\n inherits: assertFunction as Validator,\n visitor: assertVisitorMap as Validator,\n\n parserOverride: assertFunction as Validator,\n generatorOverride: assertFunction as Validator<\n PluginObject[\"generatorOverride\"]\n >,\n};\n\nfunction assertVisitorMap(loc: OptionPath, value: unknown): Visitor {\n const obj = assertObject(loc, value);\n if (obj) {\n Object.keys(obj).forEach(prop => {\n if (prop !== \"_exploded\" && prop !== \"_verified\") {\n assertVisitorHandler(prop, obj[prop]);\n }\n });\n\n if (obj.enter || obj.exit) {\n throw new Error(\n `${msg(\n loc,\n )} cannot contain catch-all \"enter\" or \"exit\" handlers. Please target individual nodes.`,\n );\n }\n }\n return obj as Visitor;\n}\n\nfunction assertVisitorHandler(\n key: string,\n value: unknown,\n): asserts value is VisitorHandler {\n if (value && typeof value === \"object\") {\n Object.keys(value).forEach((handler: string) => {\n if (handler !== \"enter\" && handler !== \"exit\") {\n throw new Error(\n `.visitor[\"${key}\"] may only have .enter and/or .exit handlers.`,\n );\n }\n });\n } else if (typeof value !== \"function\") {\n throw new Error(`.visitor[\"${key}\"] must be a function`);\n }\n}\n\ntype VisitorHandler =\n | Function\n | {\n enter?: Function;\n exit?: Function;\n };\n\nexport type PluginObject = {\n name?: string;\n manipulateOptions?: (\n options: NormalizedOptions,\n parserOpts: ParserOptions,\n ) => void;\n pre?: (this: S, file: File) => void | Promise;\n post?: (this: S, file: File) => void | Promise;\n inherits?: (\n api: PluginAPI,\n options: unknown,\n dirname: string,\n ) => PluginObject;\n visitor?: Visitor;\n parserOverride?: (\n ...args: [...Parameters, typeof parse]\n ) => ReturnType;\n generatorOverride?: (\n ast: File[\"ast\"],\n generatorOpts: GeneratorOptions,\n code: File[\"code\"],\n generate: typeof babelGenerator,\n ) => GeneratorResult;\n};\n\nexport function validatePluginObject(obj: {\n [key: string]: unknown;\n}): PluginObject {\n const rootPath: RootPath = {\n type: \"root\",\n source: \"plugin\",\n };\n Object.keys(obj).forEach((key: string) => {\n const validator = VALIDATORS[key];\n\n if (validator) {\n const optLoc: OptionPath = {\n type: \"option\",\n name: key,\n parent: rootPath,\n };\n validator(optLoc, obj[key]);\n } else {\n const invalidPluginPropertyError = new Error(\n `.${key} is not a valid Plugin property`,\n );\n // @ts-expect-error todo(flow->ts) consider adding BabelConfigError with code field\n invalidPluginPropertyError.code = \"BABEL_UNKNOWN_PLUGIN_PROPERTY\";\n throw invalidPluginPropertyError;\n }\n });\n\n return obj as any;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAuBA,MAAMC,UAAwB,GAAG;EAC/BC,IAAI,EAAEC,8BAA+C;EACrDC,iBAAiB,EAAEC,gCAElB;EACDC,GAAG,EAAED,gCAAgD;EACrDE,IAAI,EAAEF,gCAAiD;EACvDG,QAAQ,EAAEH,gCAAqD;EAC/DI,OAAO,EAAEC,gBAAsD;EAE/DC,cAAc,EAAEN,gCAA2D;EAC3EO,iBAAiB,EAAEP;AAGrB,CAAC;AAED,SAASK,gBAAgBA,CAACG,GAAe,EAAEC,KAAc,EAAW;EAClE,MAAMC,GAAG,GAAG,IAAAC,8BAAY,EAACH,GAAG,EAAEC,KAAK,CAAC;EACpC,IAAIC,GAAG,EAAE;IACPE,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,OAAO,CAACC,IAAI,IAAI;MAC/B,IAAIA,IAAI,KAAK,WAAW,IAAIA,IAAI,KAAK,WAAW,EAAE;QAChDC,oBAAoB,CAACD,IAAI,EAAEL,GAAG,CAACK,IAAI,CAAC,CAAC;MACvC;IACF,CAAC,CAAC;IAEF,IAAIL,GAAG,CAACO,KAAK,IAAIP,GAAG,CAACQ,IAAI,EAAE;MACzB,MAAM,IAAIC,KAAK,CACb,GAAG,IAAAC,qBAAG,EACJZ,GACF,CAAC,uFACH,CAAC;IACH;EACF;EACA,OAAOE,GAAG;AACZ;AAEA,SAASM,oBAAoBA,CAC3BK,GAAW,EACXZ,KAAc,EACmB;EACjC,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACtCG,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,CAACK,OAAO,CAAEQ,OAAe,IAAK;MAC9C,IAAIA,OAAO,KAAK,OAAO,IAAIA,OAAO,KAAK,MAAM,EAAE;QAC7C,MAAM,IAAIH,KAAK,CACb,aAAaE,GAAG,gDAClB,CAAC;MACH;IACF,CAAC,CAAC;EACJ,CAAC,MAAM,IAAI,OAAOZ,KAAK,KAAK,UAAU,EAAE;IACtC,MAAM,IAAIU,KAAK,CAAC,aAAaE,GAAG,uBAAuB,CAAC;EAC1D;AACF;AAkCO,SAASE,oBAAoBA,CAACb,GAEpC,EAAgB;EACf,MAAMc,QAAkB,GAAG;IACzBC,IAAI,EAAE,MAAM;IACZC,MAAM,EAAE;EACV,CAAC;EACDd,MAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAACI,OAAO,CAAEO,GAAW,IAAK;IACxC,MAAMM,SAAS,GAAG/B,UAAU,CAACyB,GAAG,CAAC;IAEjC,IAAIM,SAAS,EAAE;MACb,MAAMC,MAAkB,GAAG;QACzBH,IAAI,EAAE,QAAQ;QACd5B,IAAI,EAAEwB,GAAG;QACTQ,MAAM,EAAEL;MACV,CAAC;MACDG,SAAS,CAACC,MAAM,EAAElB,GAAG,CAACW,GAAG,CAAC,CAAC;IAC7B,CAAC,MAAM;MACL,MAAMS,0BAA0B,GAAG,IAAIX,KAAK,CAC1C,IAAIE,GAAG,iCACT,CAAC;MAEDS,0BAA0B,CAACC,IAAI,GAAG,+BAA+B;MACjE,MAAMD,0BAA0B;IAClC;EACF,CAAC,CAAC;EAEF,OAAOpB,GAAG;AACZ;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/config/validation/removed.js b/framework-core/node_modules/@babel/core/lib/config/validation/removed.js new file mode 100644 index 0000000..9bd436e --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/validation/removed.js @@ -0,0 +1,68 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _default = exports.default = { + auxiliaryComment: { + message: "Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`" + }, + blacklist: { + message: "Put the specific transforms you want in the `plugins` option" + }, + breakConfig: { + message: "This is not a necessary option in Babel 6" + }, + experimental: { + message: "Put the specific transforms you want in the `plugins` option" + }, + externalHelpers: { + message: "Use the `external-helpers` plugin instead. " + "Check out http://babeljs.io/docs/plugins/external-helpers/" + }, + extra: { + message: "" + }, + jsxPragma: { + message: "use the `pragma` option in the `react-jsx` plugin. " + "Check out http://babeljs.io/docs/plugins/transform-react-jsx/" + }, + loose: { + message: "Specify the `loose` option for the relevant plugin you are using " + "or use a preset that sets the option." + }, + metadataUsedHelpers: { + message: "Not required anymore as this is enabled by default" + }, + modules: { + message: "Use the corresponding module transform plugin in the `plugins` option. " + "Check out http://babeljs.io/docs/plugins/#modules" + }, + nonStandard: { + message: "Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. " + "Also check out the react preset http://babeljs.io/docs/plugins/preset-react/" + }, + optional: { + message: "Put the specific transforms you want in the `plugins` option" + }, + sourceMapName: { + message: "The `sourceMapName` option has been removed because it makes more sense for the " + "tooling that calls Babel to assign `map.file` themselves." + }, + stage: { + message: "Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets" + }, + whitelist: { + message: "Put the specific transforms you want in the `plugins` option" + }, + resolveModuleSource: { + version: 6, + message: "Use `babel-plugin-module-resolver@3`'s 'resolvePath' options" + }, + metadata: { + version: 6, + message: "Generated plugin metadata is always included in the output result" + }, + sourceMapTarget: { + version: 6, + message: "The `sourceMapTarget` option has been removed because it makes more sense for the tooling " + "that calls Babel to assign `map.file` themselves." + } +}; +0 && 0; + +//# sourceMappingURL=removed.js.map diff --git a/framework-core/node_modules/@babel/core/lib/config/validation/removed.js.map b/framework-core/node_modules/@babel/core/lib/config/validation/removed.js.map new file mode 100644 index 0000000..fa56595 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/config/validation/removed.js.map @@ -0,0 +1 @@ +{"version":3,"names":["auxiliaryComment","message","blacklist","breakConfig","experimental","externalHelpers","extra","jsxPragma","loose","metadataUsedHelpers","modules","nonStandard","optional","sourceMapName","stage","whitelist","resolveModuleSource","version","metadata","sourceMapTarget"],"sources":["../../../src/config/validation/removed.ts"],"sourcesContent":["export default {\n auxiliaryComment: {\n message: \"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`\",\n },\n blacklist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n breakConfig: {\n message: \"This is not a necessary option in Babel 6\",\n },\n experimental: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n externalHelpers: {\n message:\n \"Use the `external-helpers` plugin instead. \" +\n \"Check out http://babeljs.io/docs/plugins/external-helpers/\",\n },\n extra: {\n message: \"\",\n },\n jsxPragma: {\n message:\n \"use the `pragma` option in the `react-jsx` plugin. \" +\n \"Check out http://babeljs.io/docs/plugins/transform-react-jsx/\",\n },\n loose: {\n message:\n \"Specify the `loose` option for the relevant plugin you are using \" +\n \"or use a preset that sets the option.\",\n },\n metadataUsedHelpers: {\n message: \"Not required anymore as this is enabled by default\",\n },\n modules: {\n message:\n \"Use the corresponding module transform plugin in the `plugins` option. \" +\n \"Check out http://babeljs.io/docs/plugins/#modules\",\n },\n nonStandard: {\n message:\n \"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. \" +\n \"Also check out the react preset http://babeljs.io/docs/plugins/preset-react/\",\n },\n optional: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n sourceMapName: {\n message:\n \"The `sourceMapName` option has been removed because it makes more sense for the \" +\n \"tooling that calls Babel to assign `map.file` themselves.\",\n },\n stage: {\n message:\n \"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets\",\n },\n whitelist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n\n resolveModuleSource: {\n version: 6,\n message: \"Use `babel-plugin-module-resolver@3`'s 'resolvePath' options\",\n },\n metadata: {\n version: 6,\n message:\n \"Generated plugin metadata is always included in the output result\",\n },\n sourceMapTarget: {\n version: 6,\n message:\n \"The `sourceMapTarget` option has been removed because it makes more sense for the tooling \" +\n \"that calls Babel to assign `map.file` themselves.\",\n },\n} as { [name: string]: { version?: number; message: string } };\n"],"mappings":";;;;;;iCAAe;EACbA,gBAAgB,EAAE;IAChBC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTD,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAE;IACXF,OAAO,EAAE;EACX,CAAC;EACDG,YAAY,EAAE;IACZH,OAAO,EAAE;EACX,CAAC;EACDI,eAAe,EAAE;IACfJ,OAAO,EACL,6CAA6C,GAC7C;EACJ,CAAC;EACDK,KAAK,EAAE;IACLL,OAAO,EAAE;EACX,CAAC;EACDM,SAAS,EAAE;IACTN,OAAO,EACL,qDAAqD,GACrD;EACJ,CAAC;EACDO,KAAK,EAAE;IACLP,OAAO,EACL,mEAAmE,GACnE;EACJ,CAAC;EACDQ,mBAAmB,EAAE;IACnBR,OAAO,EAAE;EACX,CAAC;EACDS,OAAO,EAAE;IACPT,OAAO,EACL,yEAAyE,GACzE;EACJ,CAAC;EACDU,WAAW,EAAE;IACXV,OAAO,EACL,8EAA8E,GAC9E;EACJ,CAAC;EACDW,QAAQ,EAAE;IACRX,OAAO,EAAE;EACX,CAAC;EACDY,aAAa,EAAE;IACbZ,OAAO,EACL,kFAAkF,GAClF;EACJ,CAAC;EACDa,KAAK,EAAE;IACLb,OAAO,EACL;EACJ,CAAC;EACDc,SAAS,EAAE;IACTd,OAAO,EAAE;EACX,CAAC;EAEDe,mBAAmB,EAAE;IACnBC,OAAO,EAAE,CAAC;IACVhB,OAAO,EAAE;EACX,CAAC;EACDiB,QAAQ,EAAE;IACRD,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL;EACJ,CAAC;EACDkB,eAAe,EAAE;IACfF,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL,4FAA4F,GAC5F;EACJ;AACF,CAAC;AAAA","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/errors/config-error.js b/framework-core/node_modules/@babel/core/lib/errors/config-error.js new file mode 100644 index 0000000..c290804 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/errors/config-error.js @@ -0,0 +1,18 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _rewriteStackTrace = require("./rewrite-stack-trace.js"); +class ConfigError extends Error { + constructor(message, filename) { + super(message); + (0, _rewriteStackTrace.expectedError)(this); + if (filename) (0, _rewriteStackTrace.injectVirtualStackFrame)(this, filename); + } +} +exports.default = ConfigError; +0 && 0; + +//# sourceMappingURL=config-error.js.map diff --git a/framework-core/node_modules/@babel/core/lib/errors/config-error.js.map b/framework-core/node_modules/@babel/core/lib/errors/config-error.js.map new file mode 100644 index 0000000..0045ded --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/errors/config-error.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_rewriteStackTrace","require","ConfigError","Error","constructor","message","filename","expectedError","injectVirtualStackFrame","exports","default"],"sources":["../../src/errors/config-error.ts"],"sourcesContent":["import {\n injectVirtualStackFrame,\n expectedError,\n} from \"./rewrite-stack-trace.ts\";\n\nexport default class ConfigError extends Error {\n constructor(message: string, filename?: string) {\n super(message);\n expectedError(this);\n if (filename) injectVirtualStackFrame(this, filename);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAKe,MAAMC,WAAW,SAASC,KAAK,CAAC;EAC7CC,WAAWA,CAACC,OAAe,EAAEC,QAAiB,EAAE;IAC9C,KAAK,CAACD,OAAO,CAAC;IACd,IAAAE,gCAAa,EAAC,IAAI,CAAC;IACnB,IAAID,QAAQ,EAAE,IAAAE,0CAAuB,EAAC,IAAI,EAAEF,QAAQ,CAAC;EACvD;AACF;AAACG,OAAA,CAAAC,OAAA,GAAAR,WAAA;AAAA","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js b/framework-core/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js new file mode 100644 index 0000000..68896d3 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js @@ -0,0 +1,98 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.beginHiddenCallStack = beginHiddenCallStack; +exports.endHiddenCallStack = endHiddenCallStack; +exports.expectedError = expectedError; +exports.injectVirtualStackFrame = injectVirtualStackFrame; +var _Object$getOwnPropert; +const ErrorToString = Function.call.bind(Error.prototype.toString); +const SUPPORTED = !!Error.captureStackTrace && ((_Object$getOwnPropert = Object.getOwnPropertyDescriptor(Error, "stackTraceLimit")) == null ? void 0 : _Object$getOwnPropert.writable) === true; +const START_HIDING = "startHiding - secret - don't use this - v1"; +const STOP_HIDING = "stopHiding - secret - don't use this - v1"; +const expectedErrors = new WeakSet(); +const virtualFrames = new WeakMap(); +function CallSite(filename) { + return Object.create({ + isNative: () => false, + isConstructor: () => false, + isToplevel: () => true, + getFileName: () => filename, + getLineNumber: () => undefined, + getColumnNumber: () => undefined, + getFunctionName: () => undefined, + getMethodName: () => undefined, + getTypeName: () => undefined, + toString: () => filename + }); +} +function injectVirtualStackFrame(error, filename) { + if (!SUPPORTED) return; + let frames = virtualFrames.get(error); + if (!frames) virtualFrames.set(error, frames = []); + frames.push(CallSite(filename)); + return error; +} +function expectedError(error) { + if (!SUPPORTED) return; + expectedErrors.add(error); + return error; +} +function beginHiddenCallStack(fn) { + if (!SUPPORTED) return fn; + return Object.defineProperty(function (...args) { + setupPrepareStackTrace(); + return fn(...args); + }, "name", { + value: STOP_HIDING + }); +} +function endHiddenCallStack(fn) { + if (!SUPPORTED) return fn; + return Object.defineProperty(function (...args) { + return fn(...args); + }, "name", { + value: START_HIDING + }); +} +function setupPrepareStackTrace() { + setupPrepareStackTrace = () => {}; + const { + prepareStackTrace = defaultPrepareStackTrace + } = Error; + const MIN_STACK_TRACE_LIMIT = 50; + Error.stackTraceLimit && (Error.stackTraceLimit = Math.max(Error.stackTraceLimit, MIN_STACK_TRACE_LIMIT)); + Error.prepareStackTrace = function stackTraceRewriter(err, trace) { + let newTrace = []; + const isExpected = expectedErrors.has(err); + let status = isExpected ? "hiding" : "unknown"; + for (let i = 0; i < trace.length; i++) { + const name = trace[i].getFunctionName(); + if (name === START_HIDING) { + status = "hiding"; + } else if (name === STOP_HIDING) { + if (status === "hiding") { + status = "showing"; + if (virtualFrames.has(err)) { + newTrace.unshift(...virtualFrames.get(err)); + } + } else if (status === "unknown") { + newTrace = trace; + break; + } + } else if (status !== "hiding") { + newTrace.push(trace[i]); + } + } + return prepareStackTrace(err, newTrace); + }; +} +function defaultPrepareStackTrace(err, trace) { + if (trace.length === 0) return ErrorToString(err); + return `${ErrorToString(err)}\n at ${trace.join("\n at ")}`; +} +0 && 0; + +//# sourceMappingURL=rewrite-stack-trace.js.map diff --git a/framework-core/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map b/framework-core/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map new file mode 100644 index 0000000..725bf91 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js.map @@ -0,0 +1 @@ +{"version":3,"names":["ErrorToString","Function","call","bind","Error","prototype","toString","SUPPORTED","captureStackTrace","_Object$getOwnPropert","Object","getOwnPropertyDescriptor","writable","START_HIDING","STOP_HIDING","expectedErrors","WeakSet","virtualFrames","WeakMap","CallSite","filename","create","isNative","isConstructor","isToplevel","getFileName","getLineNumber","undefined","getColumnNumber","getFunctionName","getMethodName","getTypeName","injectVirtualStackFrame","error","frames","get","set","push","expectedError","add","beginHiddenCallStack","fn","defineProperty","args","setupPrepareStackTrace","value","endHiddenCallStack","prepareStackTrace","defaultPrepareStackTrace","MIN_STACK_TRACE_LIMIT","stackTraceLimit","Math","max","stackTraceRewriter","err","trace","newTrace","isExpected","has","status","i","length","name","unshift","join"],"sources":["../../src/errors/rewrite-stack-trace.ts"],"sourcesContent":["/**\n * This file uses the internal V8 Stack Trace API (https://v8.dev/docs/stack-trace-api)\n * to provide utilities to rewrite the stack trace.\n * When this API is not present, all the functions in this file become noops.\n *\n * beginHiddenCallStack(fn) and endHiddenCallStack(fn) wrap their parameter to\n * mark an hidden portion of the stack trace. The function passed to\n * beginHiddenCallStack is the first hidden function, while the function passed\n * to endHiddenCallStack is the first shown function.\n *\n * When an error is thrown _outside_ of the hidden zone, everything between\n * beginHiddenCallStack and endHiddenCallStack will not be shown.\n * If an error is thrown _inside_ the hidden zone, then the whole stack trace\n * will be visible: this is to avoid hiding real bugs.\n * However, if an error inside the hidden zone is expected, it can be marked\n * with the expectedError(error) function to keep the hidden frames hidden.\n *\n * Consider this call stack (the outer function is the bottom one):\n *\n * 1. a()\n * 2. endHiddenCallStack(b)()\n * 3. c()\n * 4. beginHiddenCallStack(d)()\n * 5. e()\n * 6. f()\n *\n * - If a() throws an error, then its shown call stack will be \"a, b, e, f\"\n * - If b() throws an error, then its shown call stack will be \"b, e, f\"\n * - If c() throws an expected error, then its shown call stack will be \"e, f\"\n * - If c() throws an unexpected error, then its shown call stack will be \"c, d, e, f\"\n * - If d() throws an expected error, then its shown call stack will be \"e, f\"\n * - If d() throws an unexpected error, then its shown call stack will be \"d, e, f\"\n * - If e() throws an error, then its shown call stack will be \"e, f\"\n *\n * Additionally, an error can inject additional \"virtual\" stack frames using the\n * injectVirtualStackFrame(error, filename) function: those are injected as a\n * replacement of the hidden frames.\n * In the example above, if we called injectVirtualStackFrame(err, \"h\") and\n * injectVirtualStackFrame(err, \"i\") on the expected error thrown by c(), its\n * shown call stack would have been \"h, i, e, f\".\n * This can be useful, for example, to report config validation errors as if they\n * were directly thrown in the config file.\n */\n\nconst ErrorToString = Function.call.bind(Error.prototype.toString);\n\nconst SUPPORTED =\n !!Error.captureStackTrace &&\n Object.getOwnPropertyDescriptor(Error, \"stackTraceLimit\")?.writable === true;\n\nconst START_HIDING = \"startHiding - secret - don't use this - v1\";\nconst STOP_HIDING = \"stopHiding - secret - don't use this - v1\";\n\ntype CallSite = NodeJS.CallSite;\n\nconst expectedErrors = new WeakSet();\nconst virtualFrames = new WeakMap();\n\nfunction CallSite(filename: string): CallSite {\n // We need to use a prototype otherwise it breaks source-map-support's internals\n return Object.create({\n isNative: () => false,\n isConstructor: () => false,\n isToplevel: () => true,\n getFileName: () => filename,\n getLineNumber: () => undefined,\n getColumnNumber: () => undefined,\n getFunctionName: () => undefined,\n getMethodName: () => undefined,\n getTypeName: () => undefined,\n toString: () => filename,\n } as CallSite);\n}\n\nexport function injectVirtualStackFrame(error: Error, filename: string) {\n if (!SUPPORTED) return;\n\n let frames = virtualFrames.get(error);\n if (!frames) virtualFrames.set(error, (frames = []));\n frames.push(CallSite(filename));\n\n return error;\n}\n\nexport function expectedError(error: Error) {\n if (!SUPPORTED) return;\n expectedErrors.add(error);\n return error;\n}\n\nexport function beginHiddenCallStack(\n fn: (...args: A) => R,\n) {\n if (!SUPPORTED) return fn;\n\n return Object.defineProperty(\n function (...args: A) {\n setupPrepareStackTrace();\n return fn(...args);\n },\n \"name\",\n { value: STOP_HIDING },\n );\n}\n\nexport function endHiddenCallStack(\n fn: (...args: A) => R,\n) {\n if (!SUPPORTED) return fn;\n\n return Object.defineProperty(\n function (...args: A) {\n return fn(...args);\n },\n \"name\",\n { value: START_HIDING },\n );\n}\n\nfunction setupPrepareStackTrace() {\n // @ts-expect-error This function is a singleton\n setupPrepareStackTrace = () => {};\n\n const { prepareStackTrace = defaultPrepareStackTrace } = Error;\n\n // We add some extra frames to Error.stackTraceLimit, so that we can\n // always show some useful frames even after deleting ours.\n // STACK_TRACE_LIMIT_DELTA should be around the maximum expected number\n // of internal frames, and not too big because capturing the stack trace\n // is slow (this is why Error.stackTraceLimit does not default to Infinity!).\n // Increase it if needed.\n // However, we only do it if the user did not explicitly set it to 0.\n const MIN_STACK_TRACE_LIMIT = 50;\n Error.stackTraceLimit &&= Math.max(\n Error.stackTraceLimit,\n MIN_STACK_TRACE_LIMIT,\n );\n\n Error.prepareStackTrace = function stackTraceRewriter(err, trace) {\n let newTrace = [];\n\n const isExpected = expectedErrors.has(err);\n let status: \"showing\" | \"hiding\" | \"unknown\" = isExpected\n ? \"hiding\"\n : \"unknown\";\n for (let i = 0; i < trace.length; i++) {\n const name = trace[i].getFunctionName();\n if (name === START_HIDING) {\n status = \"hiding\";\n } else if (name === STOP_HIDING) {\n if (status === \"hiding\") {\n status = \"showing\";\n if (virtualFrames.has(err)) {\n newTrace.unshift(...virtualFrames.get(err));\n }\n } else if (status === \"unknown\") {\n // Unexpected internal error, show the full stack trace\n newTrace = trace;\n break;\n }\n } else if (status !== \"hiding\") {\n newTrace.push(trace[i]);\n }\n }\n\n return prepareStackTrace(err, newTrace);\n };\n}\n\nfunction defaultPrepareStackTrace(err: Error, trace: CallSite[]) {\n if (trace.length === 0) return ErrorToString(err);\n return `${ErrorToString(err)}\\n at ${trace.join(\"\\n at \")}`;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/gensync-utils/async.js b/framework-core/node_modules/@babel/core/lib/gensync-utils/async.js new file mode 100644 index 0000000..42946c6 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/gensync-utils/async.js @@ -0,0 +1,90 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.forwardAsync = forwardAsync; +exports.isAsync = void 0; +exports.isThenable = isThenable; +exports.maybeAsync = maybeAsync; +exports.waitFor = exports.onFirstPause = void 0; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +const runGenerator = _gensync()(function* (item) { + return yield* item; +}); +const isAsync = exports.isAsync = _gensync()({ + sync: () => false, + errback: cb => cb(null, true) +}); +function maybeAsync(fn, message) { + return _gensync()({ + sync(...args) { + const result = fn.apply(this, args); + if (isThenable(result)) throw new Error(message); + return result; + }, + async(...args) { + return Promise.resolve(fn.apply(this, args)); + } + }); +} +const withKind = _gensync()({ + sync: cb => cb("sync"), + async: function () { + var _ref = _asyncToGenerator(function* (cb) { + return cb("async"); + }); + return function async(_x) { + return _ref.apply(this, arguments); + }; + }() +}); +function forwardAsync(action, cb) { + const g = _gensync()(action); + return withKind(kind => { + const adapted = g[kind]; + return cb(adapted); + }); +} +const onFirstPause = exports.onFirstPause = _gensync()({ + name: "onFirstPause", + arity: 2, + sync: function (item) { + return runGenerator.sync(item); + }, + errback: function (item, firstPause, cb) { + let completed = false; + runGenerator.errback(item, (err, value) => { + completed = true; + cb(err, value); + }); + if (!completed) { + firstPause(); + } + } +}); +const waitFor = exports.waitFor = _gensync()({ + sync: x => x, + async: function () { + var _ref2 = _asyncToGenerator(function* (x) { + return x; + }); + return function async(_x2) { + return _ref2.apply(this, arguments); + }; + }() +}); +function isThenable(val) { + return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; +} +0 && 0; + +//# sourceMappingURL=async.js.map diff --git a/framework-core/node_modules/@babel/core/lib/gensync-utils/async.js.map b/framework-core/node_modules/@babel/core/lib/gensync-utils/async.js.map new file mode 100644 index 0000000..595d757 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/gensync-utils/async.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","asyncGeneratorStep","n","t","e","r","o","a","c","i","u","value","done","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","runGenerator","gensync","item","isAsync","exports","sync","errback","cb","maybeAsync","fn","message","args","result","isThenable","Error","async","withKind","_ref","_x","forwardAsync","action","g","kind","adapted","onFirstPause","name","arity","firstPause","completed","err","waitFor","x","_ref2","_x2","val"],"sources":["../../src/gensync-utils/async.ts"],"sourcesContent":["import gensync, { type Gensync, type Handler, type Callback } from \"gensync\";\n\ntype MaybePromise = T | Promise;\n\nconst runGenerator: {\n sync(gen: Handler): Return;\n async(gen: Handler): Promise;\n errback(gen: Handler, cb: Callback): void;\n} = gensync(function* (item: Handler): Handler {\n return yield* item;\n});\n\n// This Gensync returns true if the current execution context is\n// asynchronous, otherwise it returns false.\nexport const isAsync = gensync({\n sync: () => false,\n errback: cb => cb(null, true),\n});\n\n// This function wraps any functions (which could be either synchronous or\n// asynchronous) with a Gensync. If the wrapped function returns a promise\n// but the current execution context is synchronous, it will throw the\n// provided error.\n// This is used to handle user-provided functions which could be asynchronous.\nexport function maybeAsync(\n fn: (...args: Args) => Return,\n message: string,\n): Gensync {\n return gensync({\n sync(...args) {\n const result = fn.apply(this, args);\n if (isThenable(result)) throw new Error(message);\n return result;\n },\n async(...args) {\n return Promise.resolve(fn.apply(this, args));\n },\n });\n}\n\nconst withKind = gensync({\n sync: cb => cb(\"sync\"),\n async: async cb => cb(\"async\"),\n}) as (cb: (kind: \"sync\" | \"async\") => MaybePromise) => Handler;\n\n// This function wraps a generator (or a Gensync) into another function which,\n// when called, will run the provided generator in a sync or async way, depending\n// on the execution context where this forwardAsync function is called.\n// This is useful, for example, when passing a callback to a function which isn't\n// aware of gensync, but it only knows about synchronous and asynchronous functions.\n// An example is cache.using, which being exposed to the user must be as simple as\n// possible:\n// yield* forwardAsync(gensyncFn, wrappedFn =>\n// cache.using(x => {\n// // Here we don't know about gensync. wrappedFn is a\n// // normal sync or async function\n// return wrappedFn(x);\n// })\n// )\nexport function forwardAsync(\n action: (...args: Args) => Handler,\n cb: (\n adapted: (...args: Args) => MaybePromise,\n ) => MaybePromise,\n): Handler {\n const g = gensync(action);\n return withKind(kind => {\n const adapted = g[kind];\n return cb(adapted);\n });\n}\n\n// If the given generator is executed asynchronously, the first time that it\n// is paused (i.e. When it yields a gensync generator which can't be run\n// synchronously), call the \"firstPause\" callback.\nexport const onFirstPause = gensync<\n [gen: Handler, firstPause: () => void],\n unknown\n>({\n name: \"onFirstPause\",\n arity: 2,\n sync: function (item) {\n return runGenerator.sync(item);\n },\n errback: function (item, firstPause, cb) {\n let completed = false;\n\n runGenerator.errback(item, (err, value) => {\n completed = true;\n cb(err, value);\n });\n\n if (!completed) {\n firstPause();\n }\n },\n}) as (gen: Handler, firstPause: () => void) => Handler;\n\n// Wait for the given promise to be resolved\nexport const waitFor = gensync({\n sync: x => x,\n async: async x => x,\n}) as (p: T | Promise) => Handler;\n\nexport function isThenable(val: any): val is PromiseLike {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n"],"mappings":";;;;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA6E,SAAAE,mBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,cAAAC,CAAA,GAAAP,CAAA,CAAAK,CAAA,EAAAC,CAAA,GAAAE,CAAA,GAAAD,CAAA,CAAAE,KAAA,WAAAT,CAAA,gBAAAE,CAAA,CAAAF,CAAA,KAAAO,CAAA,CAAAG,IAAA,GAAAT,CAAA,CAAAO,CAAA,IAAAG,OAAA,CAAAC,OAAA,CAAAJ,CAAA,EAAAK,IAAA,CAAAV,CAAA,EAAAC,CAAA;AAAA,SAAAU,kBAAAd,CAAA,6BAAAC,CAAA,SAAAC,CAAA,GAAAa,SAAA,aAAAJ,OAAA,WAAAR,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAL,CAAA,CAAAgB,KAAA,CAAAf,CAAA,EAAAC,CAAA,YAAAe,MAAAjB,CAAA,IAAAD,kBAAA,CAAAM,CAAA,EAAAF,CAAA,EAAAC,CAAA,EAAAa,KAAA,EAAAC,MAAA,UAAAlB,CAAA,cAAAkB,OAAAlB,CAAA,IAAAD,kBAAA,CAAAM,CAAA,EAAAF,CAAA,EAAAC,CAAA,EAAAa,KAAA,EAAAC,MAAA,WAAAlB,CAAA,KAAAiB,KAAA;AAI7E,MAAME,YAIL,GAAGC,SAAMA,CAAC,CAAC,WAAWC,IAAkB,EAAgB;EACvD,OAAO,OAAOA,IAAI;AACpB,CAAC,CAAC;AAIK,MAAMC,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGF,SAAMA,CAAC,CAAC;EAC7BI,IAAI,EAAEA,CAAA,KAAM,KAAK;EACjBC,OAAO,EAAEC,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,IAAI;AAC9B,CAAC,CAAC;AAOK,SAASC,UAAUA,CACxBC,EAA6B,EAC7BC,OAAe,EACQ;EACvB,OAAOT,SAAMA,CAAC,CAAC;IACbI,IAAIA,CAAC,GAAGM,IAAI,EAAE;MACZ,MAAMC,MAAM,GAAGH,EAAE,CAACZ,KAAK,CAAC,IAAI,EAAEc,IAAI,CAAC;MACnC,IAAIE,UAAU,CAACD,MAAM,CAAC,EAAE,MAAM,IAAIE,KAAK,CAACJ,OAAO,CAAC;MAChD,OAAOE,MAAM;IACf,CAAC;IACDG,KAAKA,CAAC,GAAGJ,IAAI,EAAE;MACb,OAAOnB,OAAO,CAACC,OAAO,CAACgB,EAAE,CAACZ,KAAK,CAAC,IAAI,EAAEc,IAAI,CAAC,CAAC;IAC9C;EACF,CAAC,CAAC;AACJ;AAEA,MAAMK,QAAQ,GAAGf,SAAMA,CAAC,CAAC;EACvBI,IAAI,EAAEE,EAAE,IAAIA,EAAE,CAAC,MAAM,CAAC;EACtBQ,KAAK;IAAA,IAAAE,IAAA,GAAAtB,iBAAA,CAAE,WAAMY,EAAE;MAAA,OAAIA,EAAE,CAAC,OAAO,CAAC;IAAA;IAAA,gBAA9BQ,KAAKA,CAAAG,EAAA;MAAA,OAAAD,IAAA,CAAApB,KAAA,OAAAD,SAAA;IAAA;EAAA;AACP,CAAC,CAAuE;AAgBjE,SAASuB,YAAYA,CAC1BC,MAA0C,EAC1Cb,EAEyB,EACR;EACjB,MAAMc,CAAC,GAAGpB,SAAMA,CAAC,CAACmB,MAAM,CAAC;EACzB,OAAOJ,QAAQ,CAACM,IAAI,IAAI;IACtB,MAAMC,OAAO,GAAGF,CAAC,CAACC,IAAI,CAAC;IACvB,OAAOf,EAAE,CAACgB,OAAO,CAAC;EACpB,CAAC,CAAC;AACJ;AAKO,MAAMC,YAAY,GAAApB,OAAA,CAAAoB,YAAA,GAAGvB,SAAMA,CAAC,CAGjC;EACAwB,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAE,CAAC;EACRrB,IAAI,EAAE,SAAAA,CAAUH,IAAI,EAAE;IACpB,OAAOF,YAAY,CAACK,IAAI,CAACH,IAAI,CAAC;EAChC,CAAC;EACDI,OAAO,EAAE,SAAAA,CAAUJ,IAAI,EAAEyB,UAAU,EAAEpB,EAAE,EAAE;IACvC,IAAIqB,SAAS,GAAG,KAAK;IAErB5B,YAAY,CAACM,OAAO,CAACJ,IAAI,EAAE,CAAC2B,GAAG,EAAEvC,KAAK,KAAK;MACzCsC,SAAS,GAAG,IAAI;MAChBrB,EAAE,CAACsB,GAAG,EAAEvC,KAAK,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,CAACsC,SAAS,EAAE;MACdD,UAAU,CAAC,CAAC;IACd;EACF;AACF,CAAC,CAA+D;AAGzD,MAAMG,OAAO,GAAA1B,OAAA,CAAA0B,OAAA,GAAG7B,SAAMA,CAAC,CAAC;EAC7BI,IAAI,EAAE0B,CAAC,IAAIA,CAAC;EACZhB,KAAK;IAAA,IAAAiB,KAAA,GAAArC,iBAAA,CAAE,WAAMoC,CAAC;MAAA,OAAIA,CAAC;IAAA;IAAA,gBAAnBhB,KAAKA,CAAAkB,GAAA;MAAA,OAAAD,KAAA,CAAAnC,KAAA,OAAAD,SAAA;IAAA;EAAA;AACP,CAAC,CAAyC;AAEnC,SAASiB,UAAUA,CAAUqB,GAAQ,EAAyB;EACnE,OACE,CAAC,CAACA,GAAG,KACJ,OAAOA,GAAG,KAAK,QAAQ,IAAI,OAAOA,GAAG,KAAK,UAAU,CAAC,IACtD,CAAC,CAACA,GAAG,CAACxC,IAAI,IACV,OAAOwC,GAAG,CAACxC,IAAI,KAAK,UAAU;AAElC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/gensync-utils/fs.js b/framework-core/node_modules/@babel/core/lib/gensync-utils/fs.js new file mode 100644 index 0000000..b842df8 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/gensync-utils/fs.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.stat = exports.readFile = void 0; +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +const readFile = exports.readFile = _gensync()({ + sync: _fs().readFileSync, + errback: _fs().readFile +}); +const stat = exports.stat = _gensync()({ + sync: _fs().statSync, + errback: _fs().stat +}); +0 && 0; + +//# sourceMappingURL=fs.js.map diff --git a/framework-core/node_modules/@babel/core/lib/gensync-utils/fs.js.map b/framework-core/node_modules/@babel/core/lib/gensync-utils/fs.js.map new file mode 100644 index 0000000..ef4e8d9 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/gensync-utils/fs.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_fs","data","require","_gensync","readFile","exports","gensync","sync","fs","readFileSync","errback","stat","statSync"],"sources":["../../src/gensync-utils/fs.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport gensync from \"gensync\";\n\nexport const readFile = gensync<[filepath: string, encoding: \"utf8\"], string>({\n sync: fs.readFileSync,\n errback: fs.readFile,\n});\n\nexport const stat = gensync({\n sync: fs.statSync,\n errback: fs.stat,\n});\n"],"mappings":";;;;;;AAAA,SAAAA,IAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,GAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAGE,SAAMA,CAAC,CAA+C;EAC5EC,IAAI,EAAEC,IAACA,CAAC,CAACC,YAAY;EACrBC,OAAO,EAAEF,IAACA,CAAC,CAACJ;AACd,CAAC,CAAC;AAEK,MAAMO,IAAI,GAAAN,OAAA,CAAAM,IAAA,GAAGL,SAAMA,CAAC,CAAC;EAC1BC,IAAI,EAAEC,IAACA,CAAC,CAACI,QAAQ;EACjBF,OAAO,EAAEF,IAACA,CAAC,CAACG;AACd,CAAC,CAAC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/gensync-utils/functional.js b/framework-core/node_modules/@babel/core/lib/gensync-utils/functional.js new file mode 100644 index 0000000..d7f7755 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/gensync-utils/functional.js @@ -0,0 +1,58 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.once = once; +var _async = require("./async.js"); +function once(fn) { + let result; + let resultP; + let promiseReferenced = false; + return function* () { + if (!result) { + if (resultP) { + promiseReferenced = true; + return yield* (0, _async.waitFor)(resultP); + } + if (!(yield* (0, _async.isAsync)())) { + try { + result = { + ok: true, + value: yield* fn() + }; + } catch (error) { + result = { + ok: false, + value: error + }; + } + } else { + let resolve, reject; + resultP = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + try { + result = { + ok: true, + value: yield* fn() + }; + resultP = null; + if (promiseReferenced) resolve(result.value); + } catch (error) { + result = { + ok: false, + value: error + }; + resultP = null; + if (promiseReferenced) reject(error); + } + } + } + if (result.ok) return result.value;else throw result.value; + }; +} +0 && 0; + +//# sourceMappingURL=functional.js.map diff --git a/framework-core/node_modules/@babel/core/lib/gensync-utils/functional.js.map b/framework-core/node_modules/@babel/core/lib/gensync-utils/functional.js.map new file mode 100644 index 0000000..e8c5ed0 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/gensync-utils/functional.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_async","require","once","fn","result","resultP","promiseReferenced","waitFor","isAsync","ok","value","error","resolve","reject","Promise","res","rej"],"sources":["../../src/gensync-utils/functional.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { isAsync, waitFor } from \"./async.ts\";\n\nexport function once(fn: () => Handler): () => Handler {\n let result: { ok: true; value: R } | { ok: false; value: unknown };\n let resultP: Promise;\n let promiseReferenced = false;\n return function* () {\n if (!result) {\n if (resultP) {\n promiseReferenced = true;\n return yield* waitFor(resultP);\n }\n\n if (!(yield* isAsync())) {\n try {\n result = { ok: true, value: yield* fn() };\n } catch (error) {\n result = { ok: false, value: error };\n }\n } else {\n let resolve: (result: R) => void, reject: (error: unknown) => void;\n resultP = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n try {\n result = { ok: true, value: yield* fn() };\n // Avoid keeping the promise around\n // now that we have the result.\n resultP = null;\n // We only resolve/reject the promise if it has been actually\n // referenced. If there are no listeners we can forget about it.\n // In the reject case, this avoid uncatchable unhandledRejection\n // events.\n if (promiseReferenced) resolve(result.value);\n } catch (error) {\n result = { ok: false, value: error };\n resultP = null;\n if (promiseReferenced) reject(error);\n }\n }\n }\n\n if (result.ok) return result.value;\n else throw result.value;\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,IAAIA,CAAIC,EAAoB,EAAoB;EAC9D,IAAIC,MAA8D;EAClE,IAAIC,OAAmB;EACvB,IAAIC,iBAAiB,GAAG,KAAK;EAC7B,OAAO,aAAa;IAClB,IAAI,CAACF,MAAM,EAAE;MACX,IAAIC,OAAO,EAAE;QACXC,iBAAiB,GAAG,IAAI;QACxB,OAAO,OAAO,IAAAC,cAAO,EAACF,OAAO,CAAC;MAChC;MAEA,IAAI,EAAE,OAAO,IAAAG,cAAO,EAAC,CAAC,CAAC,EAAE;QACvB,IAAI;UACFJ,MAAM,GAAG;YAAEK,EAAE,EAAE,IAAI;YAAEC,KAAK,EAAE,OAAOP,EAAE,CAAC;UAAE,CAAC;QAC3C,CAAC,CAAC,OAAOQ,KAAK,EAAE;UACdP,MAAM,GAAG;YAAEK,EAAE,EAAE,KAAK;YAAEC,KAAK,EAAEC;UAAM,CAAC;QACtC;MACF,CAAC,MAAM;QACL,IAAIC,OAA4B,EAAEC,MAAgC;QAClER,OAAO,GAAG,IAAIS,OAAO,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;UAClCJ,OAAO,GAAGG,GAAG;UACbF,MAAM,GAAGG,GAAG;QACd,CAAC,CAAC;QAEF,IAAI;UACFZ,MAAM,GAAG;YAAEK,EAAE,EAAE,IAAI;YAAEC,KAAK,EAAE,OAAOP,EAAE,CAAC;UAAE,CAAC;UAGzCE,OAAO,GAAG,IAAI;UAKd,IAAIC,iBAAiB,EAAEM,OAAO,CAACR,MAAM,CAACM,KAAK,CAAC;QAC9C,CAAC,CAAC,OAAOC,KAAK,EAAE;UACdP,MAAM,GAAG;YAAEK,EAAE,EAAE,KAAK;YAAEC,KAAK,EAAEC;UAAM,CAAC;UACpCN,OAAO,GAAG,IAAI;UACd,IAAIC,iBAAiB,EAAEO,MAAM,CAACF,KAAK,CAAC;QACtC;MACF;IACF;IAEA,IAAIP,MAAM,CAACK,EAAE,EAAE,OAAOL,MAAM,CAACM,KAAK,CAAC,KAC9B,MAAMN,MAAM,CAACM,KAAK;EACzB,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/index.js b/framework-core/node_modules/@babel/core/lib/index.js new file mode 100644 index 0000000..832ae25 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/index.js @@ -0,0 +1,233 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DEFAULT_EXTENSIONS = void 0; +Object.defineProperty(exports, "File", { + enumerable: true, + get: function () { + return _file.default; + } +}); +Object.defineProperty(exports, "buildExternalHelpers", { + enumerable: true, + get: function () { + return _buildExternalHelpers.default; + } +}); +Object.defineProperty(exports, "createConfigItem", { + enumerable: true, + get: function () { + return _index2.createConfigItem; + } +}); +Object.defineProperty(exports, "createConfigItemAsync", { + enumerable: true, + get: function () { + return _index2.createConfigItemAsync; + } +}); +Object.defineProperty(exports, "createConfigItemSync", { + enumerable: true, + get: function () { + return _index2.createConfigItemSync; + } +}); +Object.defineProperty(exports, "getEnv", { + enumerable: true, + get: function () { + return _environment.getEnv; + } +}); +Object.defineProperty(exports, "loadOptions", { + enumerable: true, + get: function () { + return _index2.loadOptions; + } +}); +Object.defineProperty(exports, "loadOptionsAsync", { + enumerable: true, + get: function () { + return _index2.loadOptionsAsync; + } +}); +Object.defineProperty(exports, "loadOptionsSync", { + enumerable: true, + get: function () { + return _index2.loadOptionsSync; + } +}); +Object.defineProperty(exports, "loadPartialConfig", { + enumerable: true, + get: function () { + return _index2.loadPartialConfig; + } +}); +Object.defineProperty(exports, "loadPartialConfigAsync", { + enumerable: true, + get: function () { + return _index2.loadPartialConfigAsync; + } +}); +Object.defineProperty(exports, "loadPartialConfigSync", { + enumerable: true, + get: function () { + return _index2.loadPartialConfigSync; + } +}); +Object.defineProperty(exports, "parse", { + enumerable: true, + get: function () { + return _parse.parse; + } +}); +Object.defineProperty(exports, "parseAsync", { + enumerable: true, + get: function () { + return _parse.parseAsync; + } +}); +Object.defineProperty(exports, "parseSync", { + enumerable: true, + get: function () { + return _parse.parseSync; + } +}); +exports.resolvePreset = exports.resolvePlugin = void 0; +Object.defineProperty((0, exports), "template", { + enumerable: true, + get: function () { + return _template().default; + } +}); +Object.defineProperty((0, exports), "tokTypes", { + enumerable: true, + get: function () { + return _parser().tokTypes; + } +}); +Object.defineProperty(exports, "transform", { + enumerable: true, + get: function () { + return _transform.transform; + } +}); +Object.defineProperty(exports, "transformAsync", { + enumerable: true, + get: function () { + return _transform.transformAsync; + } +}); +Object.defineProperty(exports, "transformFile", { + enumerable: true, + get: function () { + return _transformFile.transformFile; + } +}); +Object.defineProperty(exports, "transformFileAsync", { + enumerable: true, + get: function () { + return _transformFile.transformFileAsync; + } +}); +Object.defineProperty(exports, "transformFileSync", { + enumerable: true, + get: function () { + return _transformFile.transformFileSync; + } +}); +Object.defineProperty(exports, "transformFromAst", { + enumerable: true, + get: function () { + return _transformAst.transformFromAst; + } +}); +Object.defineProperty(exports, "transformFromAstAsync", { + enumerable: true, + get: function () { + return _transformAst.transformFromAstAsync; + } +}); +Object.defineProperty(exports, "transformFromAstSync", { + enumerable: true, + get: function () { + return _transformAst.transformFromAstSync; + } +}); +Object.defineProperty(exports, "transformSync", { + enumerable: true, + get: function () { + return _transform.transformSync; + } +}); +Object.defineProperty((0, exports), "traverse", { + enumerable: true, + get: function () { + return _traverse().default; + } +}); +exports.version = exports.types = void 0; +var _file = require("./transformation/file/file.js"); +var _buildExternalHelpers = require("./tools/build-external-helpers.js"); +var resolvers = require("./config/files/index.js"); +var _environment = require("./config/helpers/environment.js"); +function _types() { + const data = require("@babel/types"); + _types = function () { + return data; + }; + return data; +} +Object.defineProperty((0, exports), "types", { + enumerable: true, + get: function () { + return _types(); + } +}); +function _parser() { + const data = require("@babel/parser"); + _parser = function () { + return data; + }; + return data; +} +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +function _template() { + const data = require("@babel/template"); + _template = function () { + return data; + }; + return data; +} +var _index2 = require("./config/index.js"); +var _transform = require("./transform.js"); +var _transformFile = require("./transform-file.js"); +var _transformAst = require("./transform-ast.js"); +var _parse = require("./parse.js"); +; +const version = exports.version = "7.28.4"; +const resolvePlugin = (name, dirname) => resolvers.resolvePlugin(name, dirname, false).filepath; +exports.resolvePlugin = resolvePlugin; +const resolvePreset = (name, dirname) => resolvers.resolvePreset(name, dirname, false).filepath; +exports.resolvePreset = resolvePreset; +const DEFAULT_EXTENSIONS = exports.DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); +{ + exports.OptionManager = class OptionManager { + init(opts) { + return (0, _index2.loadOptionsSync)(opts); + } + }; + exports.Plugin = function Plugin(alias) { + throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`); + }; +} +0 && (exports.types = exports.traverse = exports.tokTypes = exports.template = 0); + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/core/lib/index.js.map b/framework-core/node_modules/@babel/core/lib/index.js.map new file mode 100644 index 0000000..0da19c4 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_file","require","_buildExternalHelpers","resolvers","_environment","_types","data","Object","defineProperty","exports","enumerable","get","_parser","_traverse","_template","_index2","_transform","_transformFile","_transformAst","_parse","version","resolvePlugin","name","dirname","filepath","resolvePreset","DEFAULT_EXTENSIONS","freeze","OptionManager","init","opts","loadOptionsSync","Plugin","alias","Error","types","traverse","tokTypes","template"],"sources":["../src/index.ts"],"sourcesContent":["if (!process.env.IS_PUBLISH && !USE_ESM && process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"BABEL_8_BREAKING is only supported in ESM. Please run `make use-esm`.\",\n );\n}\n\nexport const version = PACKAGE_JSON.version;\n\nexport { default as File } from \"./transformation/file/file.ts\";\nexport type { default as PluginPass } from \"./transformation/plugin-pass.ts\";\nexport { default as buildExternalHelpers } from \"./tools/build-external-helpers.ts\";\n\nimport * as resolvers from \"./config/files/index.ts\";\n// For backwards-compatibility, we expose the resolvers\n// with the old API.\nexport const resolvePlugin = (name: string, dirname: string) =>\n resolvers.resolvePlugin(name, dirname, false).filepath;\nexport const resolvePreset = (name: string, dirname: string) =>\n resolvers.resolvePreset(name, dirname, false).filepath;\n\nexport { getEnv } from \"./config/helpers/environment.ts\";\n\n// NOTE: Lazy re-exports aren't detected by the Node.js CJS-ESM interop.\n// These are handled by pluginInjectNodeReexportsHints in our babel.config.js\n// so that they can work well.\nexport * as types from \"@babel/types\";\nexport { tokTypes } from \"@babel/parser\";\nexport { default as traverse } from \"@babel/traverse\";\nexport { default as template } from \"@babel/template\";\n\n// rollup-plugin-dts assumes that all re-exported types are also valid values\n// Visitor is only a type, so we need to use this workaround to prevent\n// rollup-plugin-dts from breaking it.\n// TODO: Figure out how to fix this upstream.\nexport type { NodePath, Scope } from \"@babel/traverse\";\nexport type Visitor = import(\"@babel/traverse\").Visitor;\n\nexport {\n createConfigItem,\n createConfigItemAsync,\n createConfigItemSync,\n} from \"./config/index.ts\";\n\nexport {\n loadOptions,\n loadOptionsAsync,\n loadPartialConfig,\n loadPartialConfigAsync,\n loadPartialConfigSync,\n} from \"./config/index.ts\";\nimport { loadOptionsSync } from \"./config/index.ts\";\nexport { loadOptionsSync };\n\nexport type {\n CallerMetadata,\n ConfigAPI,\n ConfigItem,\n InputOptions,\n NormalizedOptions,\n PartialConfig,\n PluginAPI,\n PluginObject,\n PresetAPI,\n PresetObject,\n} from \"./config/index.ts\";\n\nexport {\n type FileResult,\n transform,\n transformAsync,\n transformSync,\n} from \"./transform.ts\";\nexport {\n transformFile,\n transformFileAsync,\n transformFileSync,\n} from \"./transform-file.ts\";\nexport {\n transformFromAst,\n transformFromAstAsync,\n transformFromAstSync,\n} from \"./transform-ast.ts\";\nexport { parse, parseAsync, parseSync } from \"./parse.ts\";\n\n/**\n * Recommended set of compilable extensions. Not used in @babel/core directly, but meant as\n * as an easy source for tooling making use of @babel/core.\n */\nexport const DEFAULT_EXTENSIONS = Object.freeze([\n \".js\",\n \".jsx\",\n \".es6\",\n \".es\",\n \".mjs\",\n \".cjs\",\n] as const);\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // For easier backward-compatibility, provide an API like the one we exposed in Babel 6.\n // eslint-disable-next-line no-restricted-globals\n exports.OptionManager = class OptionManager {\n init(opts: any) {\n return loadOptionsSync(opts);\n }\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.Plugin = function Plugin(alias: string) {\n throw new Error(\n `The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`,\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAQA,IAAAG,YAAA,GAAAH,OAAA;AAAyD,SAAAI,OAAA;EAAA,MAAAC,IAAA,GAAAL,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAAC,MAAA,CAAAC,cAAA,KAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA;EAAA;AAAA;AAMzD,SAAAO,QAAA;EAAA,MAAAN,IAAA,GAAAL,OAAA;EAAAW,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,UAAA;EAAA,MAAAP,IAAA,GAAAL,OAAA;EAAAY,SAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,UAAA;EAAA,MAAAR,IAAA,GAAAL,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AASA,IAAAS,OAAA,GAAAd,OAAA;AA6BA,IAAAe,UAAA,GAAAf,OAAA;AAMA,IAAAgB,cAAA,GAAAhB,OAAA;AAKA,IAAAiB,aAAA,GAAAjB,OAAA;AAKA,IAAAkB,MAAA,GAAAlB,OAAA;AAA0D;AA5EnD,MAAMmB,OAAO,GAAAX,OAAA,CAAAW,OAAA,WAAuB;AASpC,MAAMC,aAAa,GAAGA,CAACC,IAAY,EAAEC,OAAe,KACzDpB,SAAS,CAACkB,aAAa,CAACC,IAAI,EAAEC,OAAO,EAAE,KAAK,CAAC,CAACC,QAAQ;AAACf,OAAA,CAAAY,aAAA,GAAAA,aAAA;AAClD,MAAMI,aAAa,GAAGA,CAACH,IAAY,EAAEC,OAAe,KACzDpB,SAAS,CAACsB,aAAa,CAACH,IAAI,EAAEC,OAAO,EAAE,KAAK,CAAC,CAACC,QAAQ;AAACf,OAAA,CAAAgB,aAAA,GAAAA,aAAA;AAsElD,MAAMC,kBAAkB,GAAAjB,OAAA,CAAAiB,kBAAA,GAAGnB,MAAM,CAACoB,MAAM,CAAC,CAC9C,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,CACE,CAAC;AAEoC;EAG7ClB,OAAO,CAACmB,aAAa,GAAG,MAAMA,aAAa,CAAC;IAC1CC,IAAIA,CAACC,IAAS,EAAE;MACd,OAAO,IAAAC,uBAAe,EAACD,IAAI,CAAC;IAC9B;EACF,CAAC;EAGDrB,OAAO,CAACuB,MAAM,GAAG,SAASA,MAAMA,CAACC,KAAa,EAAE;IAC9C,MAAM,IAAIC,KAAK,CACb,QAAQD,KAAK,kEACf,CAAC;EACH,CAAC;AACH;AAAC,MAAAxB,OAAA,CAAA0B,KAAA,GAAA1B,OAAA,CAAA2B,QAAA,GAAA3B,OAAA,CAAA4B,QAAA,GAAA5B,OAAA,CAAA6B,QAAA","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/parse.js b/framework-core/node_modules/@babel/core/lib/parse.js new file mode 100644 index 0000000..7e41142 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/parse.js @@ -0,0 +1,47 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.parse = void 0; +exports.parseAsync = parseAsync; +exports.parseSync = parseSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _index = require("./config/index.js"); +var _index2 = require("./parser/index.js"); +var _normalizeOpts = require("./transformation/normalize-opts.js"); +var _rewriteStackTrace = require("./errors/rewrite-stack-trace.js"); +const parseRunner = _gensync()(function* parse(code, opts) { + const config = yield* (0, _index.default)(opts); + if (config === null) { + return null; + } + return yield* (0, _index2.default)(config.passes, (0, _normalizeOpts.default)(config), code); +}); +const parse = exports.parse = function parse(code, opts, callback) { + if (typeof opts === "function") { + callback = opts; + opts = undefined; + } + if (callback === undefined) { + { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.sync)(code, opts); + } + } + (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.errback)(code, opts, callback); +}; +function parseSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.sync)(...args); +} +function parseAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=parse.js.map diff --git a/framework-core/node_modules/@babel/core/lib/parse.js.map b/framework-core/node_modules/@babel/core/lib/parse.js.map new file mode 100644 index 0000000..676788c --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/parse.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_index","_index2","_normalizeOpts","_rewriteStackTrace","parseRunner","gensync","parse","code","opts","config","loadConfig","parser","passes","normalizeOptions","exports","callback","undefined","beginHiddenCallStack","sync","errback","parseSync","args","parseAsync","async"],"sources":["../src/parse.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig, { type InputOptions } from \"./config/index.ts\";\nimport parser, { type ParseResult } from \"./parser/index.ts\";\nimport normalizeOptions from \"./transformation/normalize-opts.ts\";\nimport type { ValidatedOptions } from \"./config/validation/options.ts\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\ntype FileParseCallback = {\n (err: Error, ast: null): void;\n (err: null, ast: ParseResult | null): void;\n};\n\ntype Parse = {\n (code: string, callback: FileParseCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileParseCallback,\n ): void;\n (code: string, opts?: InputOptions | null): ParseResult | null;\n};\n\nconst parseRunner = gensync(function* parse(\n code: string,\n opts: InputOptions | undefined | null,\n): Handler {\n const config = yield* loadConfig(opts);\n\n if (config === null) {\n return null;\n }\n\n return yield* parser(config.passes, normalizeOptions(config), code);\n});\n\nexport const parse: Parse = function parse(\n code,\n opts?,\n callback?: FileParseCallback,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n opts = undefined as ValidatedOptions;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'parse' function expects a callback. If you need to call it synchronously, please use 'parseSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'parse' function will expect a callback. If you need to call it synchronously, please use 'parseSync'.\",\n // );\n return beginHiddenCallStack(parseRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(parseRunner.errback)(code, opts, callback);\n};\n\nexport function parseSync(...args: Parameters) {\n return beginHiddenCallStack(parseRunner.sync)(...args);\n}\nexport function parseAsync(...args: Parameters) {\n return beginHiddenCallStack(parseRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAGA,IAAAI,kBAAA,GAAAJ,OAAA;AAiBA,MAAMK,WAAW,GAAGC,SAAMA,CAAC,CAAC,UAAUC,KAAKA,CACzCC,IAAY,EACZC,IAAqC,EACR;EAC7B,MAAMC,MAAM,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAEtC,IAAIC,MAAM,KAAK,IAAI,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,OAAO,OAAO,IAAAE,eAAM,EAACF,MAAM,CAACG,MAAM,EAAE,IAAAC,sBAAgB,EAACJ,MAAM,CAAC,EAAEF,IAAI,CAAC;AACrE,CAAC,CAAC;AAEK,MAAMD,KAAY,GAAAQ,OAAA,CAAAR,KAAA,GAAG,SAASA,KAAKA,CACxCC,IAAI,EACJC,IAAK,EACLO,QAA4B,EAC5B;EACA,IAAI,OAAOP,IAAI,KAAK,UAAU,EAAE;IAC9BO,QAAQ,GAAGP,IAAI;IACfA,IAAI,GAAGQ,SAA6B;EACtC;EAEA,IAAID,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACb,WAAW,CAACc,IAAI,CAAC,CAACX,IAAI,EAAEC,IAAI,CAAC;IAC3D;EACF;EAEA,IAAAS,uCAAoB,EAACb,WAAW,CAACe,OAAO,CAAC,CAACZ,IAAI,EAAEC,IAAI,EAAEO,QAAQ,CAAC;AACjE,CAAC;AAEM,SAASK,SAASA,CAAC,GAAGC,IAAyC,EAAE;EACtE,OAAO,IAAAJ,uCAAoB,EAACb,WAAW,CAACc,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AACxD;AACO,SAASC,UAAUA,CAAC,GAAGD,IAA0C,EAAE;EACxE,OAAO,IAAAJ,uCAAoB,EAACb,WAAW,CAACmB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACzD;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/parser/index.js b/framework-core/node_modules/@babel/core/lib/parser/index.js new file mode 100644 index 0000000..d198bb2 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/parser/index.js @@ -0,0 +1,79 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = parser; +function _parser() { + const data = require("@babel/parser"); + _parser = function () { + return data; + }; + return data; +} +function _codeFrame() { + const data = require("@babel/code-frame"); + _codeFrame = function () { + return data; + }; + return data; +} +var _missingPluginHelper = require("./util/missing-plugin-helper.js"); +function* parser(pluginPasses, { + parserOpts, + highlightCode = true, + filename = "unknown" +}, code) { + try { + const results = []; + for (const plugins of pluginPasses) { + for (const plugin of plugins) { + const { + parserOverride + } = plugin; + if (parserOverride) { + const ast = parserOverride(code, parserOpts, _parser().parse); + if (ast !== undefined) results.push(ast); + } + } + } + if (results.length === 0) { + return (0, _parser().parse)(code, parserOpts); + } else if (results.length === 1) { + yield* []; + if (typeof results[0].then === "function") { + throw new Error(`You appear to be using an async parser plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); + } + return results[0]; + } + throw new Error("More than one plugin attempted to override parsing."); + } catch (err) { + if (err.code === "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED") { + err.message += "\nConsider renaming the file to '.mjs', or setting sourceType:module " + "or sourceType:unambiguous in your Babel config for this file."; + } + const { + loc, + missingPlugin + } = err; + if (loc) { + const codeFrame = (0, _codeFrame().codeFrameColumns)(code, { + start: { + line: loc.line, + column: loc.column + 1 + } + }, { + highlightCode + }); + if (missingPlugin) { + err.message = `${filename}: ` + (0, _missingPluginHelper.default)(missingPlugin[0], loc, codeFrame, filename); + } else { + err.message = `${filename}: ${err.message}\n\n` + codeFrame; + } + err.code = "BABEL_PARSE_ERROR"; + } + throw err; + } +} +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/core/lib/parser/index.js.map b/framework-core/node_modules/@babel/core/lib/parser/index.js.map new file mode 100644 index 0000000..4dcd1cf --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/parser/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_parser","data","require","_codeFrame","_missingPluginHelper","parser","pluginPasses","parserOpts","highlightCode","filename","code","results","plugins","plugin","parserOverride","ast","parse","undefined","push","length","then","Error","err","message","loc","missingPlugin","codeFrame","codeFrameColumns","start","line","column","generateMissingPluginMessage"],"sources":["../../src/parser/index.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\nimport { parse, type ParseResult } from \"@babel/parser\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport generateMissingPluginMessage from \"./util/missing-plugin-helper.ts\";\nimport type { PluginPasses } from \"../config/index.ts\";\n\nexport type { ParseResult };\n\nexport default function* parser(\n pluginPasses: PluginPasses,\n { parserOpts, highlightCode = true, filename = \"unknown\" }: any,\n code: string,\n): Handler {\n try {\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { parserOverride } = plugin;\n if (parserOverride) {\n const ast = parserOverride(code, parserOpts, parse);\n\n if (ast !== undefined) results.push(ast);\n }\n }\n }\n\n if (results.length === 0) {\n return parse(code, parserOpts);\n } else if (results.length === 1) {\n // If we want to allow async parsers\n yield* [];\n if (typeof (results[0] as any).then === \"function\") {\n throw new Error(\n `You appear to be using an async parser plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n return results[0];\n }\n // TODO: Add an error code\n throw new Error(\"More than one plugin attempted to override parsing.\");\n } catch (err) {\n if (err.code === \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\") {\n err.message +=\n \"\\nConsider renaming the file to '.mjs', or setting sourceType:module \" +\n \"or sourceType:unambiguous in your Babel config for this file.\";\n // err.code will be changed to BABEL_PARSE_ERROR later.\n }\n\n const { loc, missingPlugin } = err;\n if (loc) {\n const codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line: loc.line,\n column: loc.column + 1,\n },\n },\n {\n highlightCode,\n },\n );\n if (missingPlugin) {\n err.message =\n `${filename}: ` +\n generateMissingPluginMessage(\n missingPlugin[0],\n loc,\n codeFrame,\n filename,\n );\n } else {\n err.message = `${filename}: ${err.message}\\n\\n` + codeFrame;\n }\n err.code = \"BABEL_PARSE_ERROR\";\n }\n throw err;\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAG,oBAAA,GAAAF,OAAA;AAKe,UAAUG,MAAMA,CAC7BC,YAA0B,EAC1B;EAAEC,UAAU;EAAEC,aAAa,GAAG,IAAI;EAAEC,QAAQ,GAAG;AAAe,CAAC,EAC/DC,IAAY,EACU;EACtB,IAAI;IACF,MAAMC,OAAO,GAAG,EAAE;IAClB,KAAK,MAAMC,OAAO,IAAIN,YAAY,EAAE;MAClC,KAAK,MAAMO,MAAM,IAAID,OAAO,EAAE;QAC5B,MAAM;UAAEE;QAAe,CAAC,GAAGD,MAAM;QACjC,IAAIC,cAAc,EAAE;UAClB,MAAMC,GAAG,GAAGD,cAAc,CAACJ,IAAI,EAAEH,UAAU,EAAES,eAAK,CAAC;UAEnD,IAAID,GAAG,KAAKE,SAAS,EAAEN,OAAO,CAACO,IAAI,CAACH,GAAG,CAAC;QAC1C;MACF;IACF;IAEA,IAAIJ,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO,IAAAH,eAAK,EAACN,IAAI,EAAEH,UAAU,CAAC;IAChC,CAAC,MAAM,IAAII,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MAE/B,OAAO,EAAE;MACT,IAAI,OAAQR,OAAO,CAAC,CAAC,CAAC,CAASS,IAAI,KAAK,UAAU,EAAE;QAClD,MAAM,IAAIC,KAAK,CACb,iDAAiD,GAC/C,wDAAwD,GACxD,8DAA8D,GAC9D,2BACJ,CAAC;MACH;MACA,OAAOV,OAAO,CAAC,CAAC,CAAC;IACnB;IAEA,MAAM,IAAIU,KAAK,CAAC,qDAAqD,CAAC;EACxE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,IAAIA,GAAG,CAACZ,IAAI,KAAK,yCAAyC,EAAE;MAC1DY,GAAG,CAACC,OAAO,IACT,uEAAuE,GACvE,+DAA+D;IAEnE;IAEA,MAAM;MAAEC,GAAG;MAAEC;IAAc,CAAC,GAAGH,GAAG;IAClC,IAAIE,GAAG,EAAE;MACP,MAAME,SAAS,GAAG,IAAAC,6BAAgB,EAChCjB,IAAI,EACJ;QACEkB,KAAK,EAAE;UACLC,IAAI,EAAEL,GAAG,CAACK,IAAI;UACdC,MAAM,EAAEN,GAAG,CAACM,MAAM,GAAG;QACvB;MACF,CAAC,EACD;QACEtB;MACF,CACF,CAAC;MACD,IAAIiB,aAAa,EAAE;QACjBH,GAAG,CAACC,OAAO,GACT,GAAGd,QAAQ,IAAI,GACf,IAAAsB,4BAA4B,EAC1BN,aAAa,CAAC,CAAC,CAAC,EAChBD,GAAG,EACHE,SAAS,EACTjB,QACF,CAAC;MACL,CAAC,MAAM;QACLa,GAAG,CAACC,OAAO,GAAG,GAAGd,QAAQ,KAAKa,GAAG,CAACC,OAAO,MAAM,GAAGG,SAAS;MAC7D;MACAJ,GAAG,CAACZ,IAAI,GAAG,mBAAmB;IAChC;IACA,MAAMY,GAAG;EACX;AACF;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js b/framework-core/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js new file mode 100644 index 0000000..5e05a26 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js @@ -0,0 +1,339 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = generateMissingPluginMessage; +const pluginNameMap = { + asyncDoExpressions: { + syntax: { + name: "@babel/plugin-syntax-async-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions" + } + }, + decimal: { + syntax: { + name: "@babel/plugin-syntax-decimal", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal" + } + }, + decorators: { + syntax: { + name: "@babel/plugin-syntax-decorators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators" + }, + transform: { + name: "@babel/plugin-proposal-decorators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators" + } + }, + doExpressions: { + syntax: { + name: "@babel/plugin-syntax-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions" + }, + transform: { + name: "@babel/plugin-proposal-do-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions" + } + }, + exportDefaultFrom: { + syntax: { + name: "@babel/plugin-syntax-export-default-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from" + }, + transform: { + name: "@babel/plugin-proposal-export-default-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from" + } + }, + flow: { + syntax: { + name: "@babel/plugin-syntax-flow", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow" + }, + transform: { + name: "@babel/preset-flow", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-flow" + } + }, + functionBind: { + syntax: { + name: "@babel/plugin-syntax-function-bind", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind" + }, + transform: { + name: "@babel/plugin-proposal-function-bind", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind" + } + }, + functionSent: { + syntax: { + name: "@babel/plugin-syntax-function-sent", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent" + }, + transform: { + name: "@babel/plugin-proposal-function-sent", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent" + } + }, + jsx: { + syntax: { + name: "@babel/plugin-syntax-jsx", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx" + }, + transform: { + name: "@babel/preset-react", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-react" + } + }, + pipelineOperator: { + syntax: { + name: "@babel/plugin-syntax-pipeline-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator" + }, + transform: { + name: "@babel/plugin-proposal-pipeline-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator" + } + }, + recordAndTuple: { + syntax: { + name: "@babel/plugin-syntax-record-and-tuple", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple" + } + }, + throwExpressions: { + syntax: { + name: "@babel/plugin-syntax-throw-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions" + }, + transform: { + name: "@babel/plugin-proposal-throw-expressions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions" + } + }, + typescript: { + syntax: { + name: "@babel/plugin-syntax-typescript", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript" + }, + transform: { + name: "@babel/preset-typescript", + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-typescript" + } + } +}; +{ + Object.assign(pluginNameMap, { + asyncGenerators: { + syntax: { + name: "@babel/plugin-syntax-async-generators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators" + }, + transform: { + name: "@babel/plugin-transform-async-generator-functions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-async-generator-functions" + } + }, + classProperties: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-transform-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties" + } + }, + classPrivateProperties: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-transform-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties" + } + }, + classPrivateMethods: { + syntax: { + name: "@babel/plugin-syntax-class-properties", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" + }, + transform: { + name: "@babel/plugin-transform-private-methods", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-methods" + } + }, + classStaticBlock: { + syntax: { + name: "@babel/plugin-syntax-class-static-block", + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block" + }, + transform: { + name: "@babel/plugin-transform-class-static-block", + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-static-block" + } + }, + dynamicImport: { + syntax: { + name: "@babel/plugin-syntax-dynamic-import", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import" + } + }, + exportNamespaceFrom: { + syntax: { + name: "@babel/plugin-syntax-export-namespace-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from" + }, + transform: { + name: "@babel/plugin-transform-export-namespace-from", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from" + } + }, + importAssertions: { + syntax: { + name: "@babel/plugin-syntax-import-assertions", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions" + } + }, + importAttributes: { + syntax: { + name: "@babel/plugin-syntax-import-attributes", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes" + } + }, + importMeta: { + syntax: { + name: "@babel/plugin-syntax-import-meta", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta" + } + }, + logicalAssignment: { + syntax: { + name: "@babel/plugin-syntax-logical-assignment-operators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators" + }, + transform: { + name: "@babel/plugin-transform-logical-assignment-operators", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-logical-assignment-operators" + } + }, + moduleStringNames: { + syntax: { + name: "@babel/plugin-syntax-module-string-names", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names" + } + }, + numericSeparator: { + syntax: { + name: "@babel/plugin-syntax-numeric-separator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator" + }, + transform: { + name: "@babel/plugin-transform-numeric-separator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-numeric-separator" + } + }, + nullishCoalescingOperator: { + syntax: { + name: "@babel/plugin-syntax-nullish-coalescing-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator" + }, + transform: { + name: "@babel/plugin-transform-nullish-coalescing-operator", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator" + } + }, + objectRestSpread: { + syntax: { + name: "@babel/plugin-syntax-object-rest-spread", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread" + }, + transform: { + name: "@babel/plugin-transform-object-rest-spread", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-object-rest-spread" + } + }, + optionalCatchBinding: { + syntax: { + name: "@babel/plugin-syntax-optional-catch-binding", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding" + }, + transform: { + name: "@babel/plugin-transform-optional-catch-binding", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding" + } + }, + optionalChaining: { + syntax: { + name: "@babel/plugin-syntax-optional-chaining", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining" + }, + transform: { + name: "@babel/plugin-transform-optional-chaining", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-chaining" + } + }, + privateIn: { + syntax: { + name: "@babel/plugin-syntax-private-property-in-object", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object" + }, + transform: { + name: "@babel/plugin-transform-private-property-in-object", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object" + } + }, + regexpUnicodeSets: { + syntax: { + name: "@babel/plugin-syntax-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md" + }, + transform: { + name: "@babel/plugin-transform-unicode-sets-regex", + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md" + } + } + }); +} +const getNameURLCombination = ({ + name, + url +}) => `${name} (${url})`; +function generateMissingPluginMessage(missingPluginName, loc, codeFrame, filename) { + let helpMessage = `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` + `(${loc.line}:${loc.column + 1}):\n\n` + codeFrame; + const pluginInfo = pluginNameMap[missingPluginName]; + if (pluginInfo) { + const { + syntax: syntaxPlugin, + transform: transformPlugin + } = pluginInfo; + if (syntaxPlugin) { + const syntaxPluginInfo = getNameURLCombination(syntaxPlugin); + if (transformPlugin) { + const transformPluginInfo = getNameURLCombination(transformPlugin); + const sectionType = transformPlugin.name.startsWith("@babel/plugin") ? "plugins" : "presets"; + helpMessage += `\n\nAdd ${transformPluginInfo} to the '${sectionType}' section of your Babel config to enable transformation. +If you want to leave it as-is, add ${syntaxPluginInfo} to the 'plugins' section to enable parsing.`; + } else { + helpMessage += `\n\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` + `to enable parsing.`; + } + } + } + const msgFilename = filename === "unknown" ? "" : filename; + helpMessage += ` + +If you already added the plugin for this syntax to your config, it's possible that your config \ +isn't being loaded. +You can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded \ +configuration: +\tnpx cross-env BABEL_SHOW_CONFIG_FOR=${msgFilename} +See https://babeljs.io/docs/configuration#print-effective-configs for more info. +`; + return helpMessage; +} +0 && 0; + +//# sourceMappingURL=missing-plugin-helper.js.map diff --git a/framework-core/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map b/framework-core/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map new file mode 100644 index 0000000..c6dfa8f --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js.map @@ -0,0 +1 @@ +{"version":3,"names":["pluginNameMap","asyncDoExpressions","syntax","name","url","decimal","decorators","transform","doExpressions","exportDefaultFrom","flow","functionBind","functionSent","jsx","pipelineOperator","recordAndTuple","throwExpressions","typescript","Object","assign","asyncGenerators","classProperties","classPrivateProperties","classPrivateMethods","classStaticBlock","dynamicImport","exportNamespaceFrom","importAssertions","importAttributes","importMeta","logicalAssignment","moduleStringNames","numericSeparator","nullishCoalescingOperator","objectRestSpread","optionalCatchBinding","optionalChaining","privateIn","regexpUnicodeSets","getNameURLCombination","generateMissingPluginMessage","missingPluginName","loc","codeFrame","filename","helpMessage","line","column","pluginInfo","syntaxPlugin","transformPlugin","syntaxPluginInfo","transformPluginInfo","sectionType","startsWith","msgFilename"],"sources":["../../../src/parser/util/missing-plugin-helper.ts"],"sourcesContent":["const pluginNameMap: Record<\n string,\n Partial>>\n> = {\n asyncDoExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-async-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions\",\n },\n },\n decimal: {\n syntax: {\n name: \"@babel/plugin-syntax-decimal\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal\",\n },\n },\n decorators: {\n syntax: {\n name: \"@babel/plugin-syntax-decorators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators\",\n },\n transform: {\n name: \"@babel/plugin-proposal-decorators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators\",\n },\n },\n doExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions\",\n },\n transform: {\n name: \"@babel/plugin-proposal-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions\",\n },\n },\n exportDefaultFrom: {\n syntax: {\n name: \"@babel/plugin-syntax-export-default-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from\",\n },\n transform: {\n name: \"@babel/plugin-proposal-export-default-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from\",\n },\n },\n flow: {\n syntax: {\n name: \"@babel/plugin-syntax-flow\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow\",\n },\n transform: {\n name: \"@babel/preset-flow\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-flow\",\n },\n },\n functionBind: {\n syntax: {\n name: \"@babel/plugin-syntax-function-bind\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind\",\n },\n transform: {\n name: \"@babel/plugin-proposal-function-bind\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind\",\n },\n },\n functionSent: {\n syntax: {\n name: \"@babel/plugin-syntax-function-sent\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent\",\n },\n transform: {\n name: \"@babel/plugin-proposal-function-sent\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent\",\n },\n },\n jsx: {\n syntax: {\n name: \"@babel/plugin-syntax-jsx\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx\",\n },\n transform: {\n name: \"@babel/preset-react\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-react\",\n },\n },\n pipelineOperator: {\n syntax: {\n name: \"@babel/plugin-syntax-pipeline-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator\",\n },\n transform: {\n name: \"@babel/plugin-proposal-pipeline-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator\",\n },\n },\n recordAndTuple: {\n syntax: {\n name: \"@babel/plugin-syntax-record-and-tuple\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple\",\n },\n },\n throwExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-throw-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions\",\n },\n transform: {\n name: \"@babel/plugin-proposal-throw-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions\",\n },\n },\n typescript: {\n syntax: {\n name: \"@babel/plugin-syntax-typescript\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript\",\n },\n transform: {\n name: \"@babel/preset-typescript\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-typescript\",\n },\n },\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n // TODO: This plugins are now supported by default by @babel/parser.\n Object.assign(pluginNameMap, {\n asyncGenerators: {\n syntax: {\n name: \"@babel/plugin-syntax-async-generators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators\",\n },\n transform: {\n name: \"@babel/plugin-transform-async-generator-functions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-async-generator-functions\",\n },\n },\n classProperties: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties\",\n },\n },\n classPrivateProperties: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties\",\n },\n },\n classPrivateMethods: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-transform-private-methods\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-methods\",\n },\n },\n classStaticBlock: {\n syntax: {\n name: \"@babel/plugin-syntax-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block\",\n },\n transform: {\n name: \"@babel/plugin-transform-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-static-block\",\n },\n },\n dynamicImport: {\n syntax: {\n name: \"@babel/plugin-syntax-dynamic-import\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import\",\n },\n },\n exportNamespaceFrom: {\n syntax: {\n name: \"@babel/plugin-syntax-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from\",\n },\n transform: {\n name: \"@babel/plugin-transform-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from\",\n },\n },\n // Will be removed\n importAssertions: {\n syntax: {\n name: \"@babel/plugin-syntax-import-assertions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions\",\n },\n },\n importAttributes: {\n syntax: {\n name: \"@babel/plugin-syntax-import-attributes\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes\",\n },\n },\n importMeta: {\n syntax: {\n name: \"@babel/plugin-syntax-import-meta\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta\",\n },\n },\n logicalAssignment: {\n syntax: {\n name: \"@babel/plugin-syntax-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators\",\n },\n transform: {\n name: \"@babel/plugin-transform-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-logical-assignment-operators\",\n },\n },\n moduleStringNames: {\n syntax: {\n name: \"@babel/plugin-syntax-module-string-names\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names\",\n },\n },\n numericSeparator: {\n syntax: {\n name: \"@babel/plugin-syntax-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator\",\n },\n transform: {\n name: \"@babel/plugin-transform-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-numeric-separator\",\n },\n },\n nullishCoalescingOperator: {\n syntax: {\n name: \"@babel/plugin-syntax-nullish-coalescing-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator\",\n },\n transform: {\n name: \"@babel/plugin-transform-nullish-coalescing-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator\",\n },\n },\n objectRestSpread: {\n syntax: {\n name: \"@babel/plugin-syntax-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread\",\n },\n transform: {\n name: \"@babel/plugin-transform-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-object-rest-spread\",\n },\n },\n optionalCatchBinding: {\n syntax: {\n name: \"@babel/plugin-syntax-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding\",\n },\n transform: {\n name: \"@babel/plugin-transform-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding\",\n },\n },\n optionalChaining: {\n syntax: {\n name: \"@babel/plugin-syntax-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining\",\n },\n transform: {\n name: \"@babel/plugin-transform-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-chaining\",\n },\n },\n privateIn: {\n syntax: {\n name: \"@babel/plugin-syntax-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object\",\n },\n transform: {\n name: \"@babel/plugin-transform-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object\",\n },\n },\n regexpUnicodeSets: {\n syntax: {\n name: \"@babel/plugin-syntax-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md\",\n },\n transform: {\n name: \"@babel/plugin-transform-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md\",\n },\n },\n });\n}\n\nconst getNameURLCombination = ({ name, url }: { name: string; url: string }) =>\n `${name} (${url})`;\n\n/*\nReturns a string of the format:\nSupport for the experimental syntax [@babel/parser plugin name] isn't currently enabled ([loc]):\n\n[code frame]\n\nAdd [npm package name] ([url]) to the 'plugins' section of your Babel config\nto enable [parsing|transformation].\n*/\nexport default function generateMissingPluginMessage(\n missingPluginName: string,\n loc: {\n line: number;\n column: number;\n },\n codeFrame: string,\n filename: string,\n): string {\n let helpMessage =\n `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` +\n `(${loc.line}:${loc.column + 1}):\\n\\n` +\n codeFrame;\n const pluginInfo = pluginNameMap[missingPluginName];\n if (pluginInfo) {\n const { syntax: syntaxPlugin, transform: transformPlugin } = pluginInfo;\n if (syntaxPlugin) {\n const syntaxPluginInfo = getNameURLCombination(syntaxPlugin);\n if (transformPlugin) {\n const transformPluginInfo = getNameURLCombination(transformPlugin);\n const sectionType = transformPlugin.name.startsWith(\"@babel/plugin\")\n ? \"plugins\"\n : \"presets\";\n helpMessage += `\\n\\nAdd ${transformPluginInfo} to the '${sectionType}' section of your Babel config to enable transformation.\nIf you want to leave it as-is, add ${syntaxPluginInfo} to the 'plugins' section to enable parsing.`;\n } else {\n helpMessage +=\n `\\n\\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` +\n `to enable parsing.`;\n }\n }\n }\n\n const msgFilename =\n filename === \"unknown\" ? \"\" : filename;\n helpMessage += `\n\nIf you already added the plugin for this syntax to your config, it's possible that your config \\\nisn't being loaded.\nYou can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded \\\nconfiguration:\n\\tnpx cross-env BABEL_SHOW_CONFIG_FOR=${msgFilename} \nSee https://babeljs.io/docs/configuration#print-effective-configs for more info.\n`;\n return helpMessage;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/tools/build-external-helpers.js b/framework-core/node_modules/@babel/core/lib/tools/build-external-helpers.js new file mode 100644 index 0000000..88c90dc --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/tools/build-external-helpers.js @@ -0,0 +1,144 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +function helpers() { + const data = require("@babel/helpers"); + helpers = function () { + return data; + }; + return data; +} +function _generator() { + const data = require("@babel/generator"); + _generator = function () { + return data; + }; + return data; +} +function _template() { + const data = require("@babel/template"); + _template = function () { + return data; + }; + return data; +} +function _t() { + const data = require("@babel/types"); + _t = function () { + return data; + }; + return data; +} +const { + arrayExpression, + assignmentExpression, + binaryExpression, + blockStatement, + callExpression, + cloneNode, + conditionalExpression, + exportNamedDeclaration, + exportSpecifier, + expressionStatement, + functionExpression, + identifier, + memberExpression, + objectExpression, + program, + stringLiteral, + unaryExpression, + variableDeclaration, + variableDeclarator +} = _t(); +const buildUmdWrapper = replacements => _template().default.statement` + (function (root, factory) { + if (typeof define === "function" && define.amd) { + define(AMD_ARGUMENTS, factory); + } else if (typeof exports === "object") { + factory(COMMON_ARGUMENTS); + } else { + factory(BROWSER_ARGUMENTS); + } + })(UMD_ROOT, function (FACTORY_PARAMETERS) { + FACTORY_BODY + }); + `(replacements); +function buildGlobal(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + const container = functionExpression(null, [identifier("global")], blockStatement(body)); + const tree = program([expressionStatement(callExpression(container, [conditionalExpression(binaryExpression("===", unaryExpression("typeof", identifier("global")), stringLiteral("undefined")), identifier("self"), identifier("global"))]))]); + body.push(variableDeclaration("var", [variableDeclarator(namespace, assignmentExpression("=", memberExpression(identifier("global"), namespace), objectExpression([])))])); + buildHelpers(body, namespace, allowlist); + return tree; +} +function buildModule(allowlist) { + const body = []; + const refs = buildHelpers(body, null, allowlist); + body.unshift(exportNamedDeclaration(null, Object.keys(refs).map(name => { + return exportSpecifier(cloneNode(refs[name]), identifier(name)); + }))); + return program(body, [], "module"); +} +function buildUmd(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + body.push(variableDeclaration("var", [variableDeclarator(namespace, identifier("global"))])); + buildHelpers(body, namespace, allowlist); + return program([buildUmdWrapper({ + FACTORY_PARAMETERS: identifier("global"), + BROWSER_ARGUMENTS: assignmentExpression("=", memberExpression(identifier("root"), namespace), objectExpression([])), + COMMON_ARGUMENTS: identifier("exports"), + AMD_ARGUMENTS: arrayExpression([stringLiteral("exports")]), + FACTORY_BODY: body, + UMD_ROOT: identifier("this") + })]); +} +function buildVar(allowlist) { + const namespace = identifier("babelHelpers"); + const body = []; + body.push(variableDeclaration("var", [variableDeclarator(namespace, objectExpression([]))])); + const tree = program(body); + buildHelpers(body, namespace, allowlist); + body.push(expressionStatement(namespace)); + return tree; +} +function buildHelpers(body, namespace, allowlist) { + const getHelperReference = name => { + return namespace ? memberExpression(namespace, identifier(name)) : identifier(`_${name}`); + }; + const refs = {}; + helpers().list.forEach(function (name) { + if (allowlist && !allowlist.includes(name)) return; + const ref = refs[name] = getHelperReference(name); + const { + nodes + } = helpers().get(name, getHelperReference, namespace ? null : `_${name}`, [], namespace ? (ast, exportName, mapExportBindingAssignments) => { + mapExportBindingAssignments(node => assignmentExpression("=", ref, node)); + ast.body.push(expressionStatement(assignmentExpression("=", ref, identifier(exportName)))); + } : null); + body.push(...nodes); + }); + return refs; +} +function _default(allowlist, outputType = "global") { + let tree; + const build = { + global: buildGlobal, + module: buildModule, + umd: buildUmd, + var: buildVar + }[outputType]; + if (build) { + tree = build(allowlist); + } else { + throw new Error(`Unsupported output type ${outputType}`); + } + return (0, _generator().default)(tree).code; +} +0 && 0; + +//# sourceMappingURL=build-external-helpers.js.map diff --git a/framework-core/node_modules/@babel/core/lib/tools/build-external-helpers.js.map b/framework-core/node_modules/@babel/core/lib/tools/build-external-helpers.js.map new file mode 100644 index 0000000..56020e4 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/tools/build-external-helpers.js.map @@ -0,0 +1 @@ +{"version":3,"names":["helpers","data","require","_generator","_template","_t","arrayExpression","assignmentExpression","binaryExpression","blockStatement","callExpression","cloneNode","conditionalExpression","exportNamedDeclaration","exportSpecifier","expressionStatement","functionExpression","identifier","memberExpression","objectExpression","program","stringLiteral","unaryExpression","variableDeclaration","variableDeclarator","buildUmdWrapper","replacements","template","statement","buildGlobal","allowlist","namespace","body","container","tree","push","buildHelpers","buildModule","refs","unshift","Object","keys","map","name","buildUmd","FACTORY_PARAMETERS","BROWSER_ARGUMENTS","COMMON_ARGUMENTS","AMD_ARGUMENTS","FACTORY_BODY","UMD_ROOT","buildVar","getHelperReference","list","forEach","includes","ref","nodes","get","ast","exportName","mapExportBindingAssignments","node","_default","outputType","build","global","module","umd","var","Error","generator","code"],"sources":["../../src/tools/build-external-helpers.ts"],"sourcesContent":["import * as helpers from \"@babel/helpers\";\nimport generator from \"@babel/generator\";\nimport template from \"@babel/template\";\nimport {\n arrayExpression,\n assignmentExpression,\n binaryExpression,\n blockStatement,\n callExpression,\n cloneNode,\n conditionalExpression,\n exportNamedDeclaration,\n exportSpecifier,\n expressionStatement,\n functionExpression,\n identifier,\n memberExpression,\n objectExpression,\n program,\n stringLiteral,\n unaryExpression,\n variableDeclaration,\n variableDeclarator,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { Replacements } from \"@babel/template\";\n\n// Wrapped to avoid wasting time parsing this when almost no-one uses\n// build-external-helpers.\nconst buildUmdWrapper = (replacements: Replacements) =>\n template.statement`\n (function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(AMD_ARGUMENTS, factory);\n } else if (typeof exports === \"object\") {\n factory(COMMON_ARGUMENTS);\n } else {\n factory(BROWSER_ARGUMENTS);\n }\n })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n FACTORY_BODY\n });\n `(replacements);\n\nfunction buildGlobal(allowlist?: Array) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n const container = functionExpression(\n null,\n [identifier(\"global\")],\n blockStatement(body),\n );\n const tree = program([\n expressionStatement(\n callExpression(container, [\n // typeof global === \"undefined\" ? self : global\n conditionalExpression(\n binaryExpression(\n \"===\",\n unaryExpression(\"typeof\", identifier(\"global\")),\n stringLiteral(\"undefined\"),\n ),\n identifier(\"self\"),\n identifier(\"global\"),\n ),\n ]),\n ),\n ]);\n\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(\n namespace,\n assignmentExpression(\n \"=\",\n memberExpression(identifier(\"global\"), namespace),\n objectExpression([]),\n ),\n ),\n ]),\n );\n\n buildHelpers(body, namespace, allowlist);\n\n return tree;\n}\n\nfunction buildModule(allowlist?: Array) {\n const body: t.Statement[] = [];\n const refs = buildHelpers(body, null, allowlist);\n\n body.unshift(\n exportNamedDeclaration(\n null,\n Object.keys(refs).map(name => {\n return exportSpecifier(cloneNode(refs[name]), identifier(name));\n }),\n ),\n );\n\n return program(body, [], \"module\");\n}\n\nfunction buildUmd(allowlist?: Array) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(namespace, identifier(\"global\")),\n ]),\n );\n\n buildHelpers(body, namespace, allowlist);\n\n return program([\n buildUmdWrapper({\n FACTORY_PARAMETERS: identifier(\"global\"),\n BROWSER_ARGUMENTS: assignmentExpression(\n \"=\",\n memberExpression(identifier(\"root\"), namespace),\n objectExpression([]),\n ),\n COMMON_ARGUMENTS: identifier(\"exports\"),\n AMD_ARGUMENTS: arrayExpression([stringLiteral(\"exports\")]),\n FACTORY_BODY: body,\n UMD_ROOT: identifier(\"this\"),\n }),\n ]);\n}\n\nfunction buildVar(allowlist?: Array) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(namespace, objectExpression([])),\n ]),\n );\n const tree = program(body);\n buildHelpers(body, namespace, allowlist);\n body.push(expressionStatement(namespace));\n return tree;\n}\n\nfunction buildHelpers(\n body: t.Statement[],\n namespace: t.Expression,\n allowlist?: Array,\n): Record;\nfunction buildHelpers(\n body: t.Statement[],\n namespace: null,\n allowlist?: Array,\n): Record;\n\nfunction buildHelpers(\n body: t.Statement[],\n namespace: t.Expression | null,\n allowlist?: Array,\n) {\n const getHelperReference = (name: string) => {\n return namespace\n ? memberExpression(namespace, identifier(name))\n : identifier(`_${name}`);\n };\n\n const refs: { [key: string]: t.Identifier | t.MemberExpression } = {};\n helpers.list.forEach(function (name) {\n if (allowlist && !allowlist.includes(name)) return;\n\n const ref = (refs[name] = getHelperReference(name));\n\n const { nodes } = helpers.get(\n name,\n getHelperReference,\n namespace ? null : `_${name}`,\n [],\n namespace\n ? (ast, exportName, mapExportBindingAssignments) => {\n mapExportBindingAssignments(node =>\n assignmentExpression(\"=\", ref, node),\n );\n ast.body.push(\n expressionStatement(\n assignmentExpression(\"=\", ref, identifier(exportName)),\n ),\n );\n }\n : null,\n );\n\n body.push(...nodes);\n });\n return refs;\n}\nexport default function (\n allowlist?: Array,\n outputType: \"global\" | \"module\" | \"umd\" | \"var\" = \"global\",\n) {\n let tree: t.Program;\n\n const build = {\n global: buildGlobal,\n module: buildModule,\n umd: buildUmd,\n var: buildVar,\n }[outputType];\n\n if (build) {\n tree = build(allowlist);\n } else {\n throw new Error(`Unsupported output type ${outputType}`);\n }\n\n return generator(tree).code;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transform-ast.js b/framework-core/node_modules/@babel/core/lib/transform-ast.js new file mode 100644 index 0000000..0a86cd1 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transform-ast.js @@ -0,0 +1,50 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformFromAst = void 0; +exports.transformFromAstAsync = transformFromAstAsync; +exports.transformFromAstSync = transformFromAstSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _index = require("./config/index.js"); +var _index2 = require("./transformation/index.js"); +var _rewriteStackTrace = require("./errors/rewrite-stack-trace.js"); +const transformFromAstRunner = _gensync()(function* (ast, code, opts) { + const config = yield* (0, _index.default)(opts); + if (config === null) return null; + if (!ast) throw new Error("No AST given"); + return yield* (0, _index2.run)(config, code, ast); +}); +const transformFromAst = exports.transformFromAst = function transformFromAst(ast, code, optsOrCallback, maybeCallback) { + let opts; + let callback; + if (typeof optsOrCallback === "function") { + callback = optsOrCallback; + opts = undefined; + } else { + opts = optsOrCallback; + callback = maybeCallback; + } + if (callback === undefined) { + { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.sync)(ast, code, opts); + } + } + (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.errback)(ast, code, opts, callback); +}; +function transformFromAstSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.sync)(...args); +} +function transformFromAstAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=transform-ast.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transform-ast.js.map b/framework-core/node_modules/@babel/core/lib/transform-ast.js.map new file mode 100644 index 0000000..ff14834 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transform-ast.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_index","_index2","_rewriteStackTrace","transformFromAstRunner","gensync","ast","code","opts","config","loadConfig","Error","run","transformFromAst","exports","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","transformFromAstSync","args","transformFromAstAsync","async"],"sources":["../src/transform-ast.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\nimport type * as t from \"@babel/types\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\ntype AstRoot = t.File | t.Program;\n\ntype TransformFromAst = {\n (ast: AstRoot, code: string, callback: FileResultCallback): void;\n (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (ast: AstRoot, code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformFromAstRunner = gensync(function* (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n): Handler {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n if (!ast) throw new Error(\"No AST given\");\n\n return yield* run(config, code, ast);\n});\n\nexport const transformFromAst: TransformFromAst = function transformFromAst(\n ast,\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transformFromAst' function expects a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transformFromAst' function will expect a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n // );\n return beginHiddenCallStack(transformFromAstRunner.sync)(ast, code, opts);\n }\n }\n\n beginHiddenCallStack(transformFromAstRunner.errback)(\n ast,\n code,\n opts,\n callback,\n );\n};\n\nexport function transformFromAstSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformFromAstRunner.sync)(...args);\n}\n\nexport function transformFromAstAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformFromAstRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,kBAAA,GAAAH,OAAA;AAgBA,MAAMI,sBAAsB,GAAGC,SAAMA,CAAC,CAAC,WACrCC,GAAY,EACZC,IAAY,EACZC,IAAqC,EACT;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,IAAI,CAACH,GAAG,EAAE,MAAM,IAAIK,KAAK,CAAC,cAAc,CAAC;EAEzC,OAAO,OAAO,IAAAC,WAAG,EAACH,MAAM,EAAEF,IAAI,EAAED,GAAG,CAAC;AACtC,CAAC,CAAC;AAEK,MAAMO,gBAAkC,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAASA,gBAAgBA,CACzEP,GAAG,EACHC,IAAI,EACJQ,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIR,IAAqC;EACzC,IAAIS,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBP,IAAI,GAAGU,SAAS;EAClB,CAAC,MAAM;IACLV,IAAI,GAAGO,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACf,sBAAsB,CAACgB,IAAI,CAAC,CAACd,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC;IAC3E;EACF;EAEA,IAAAW,uCAAoB,EAACf,sBAAsB,CAACiB,OAAO,CAAC,CAClDf,GAAG,EACHC,IAAI,EACJC,IAAI,EACJS,QACF,CAAC;AACH,CAAC;AAEM,SAASK,oBAAoBA,CAClC,GAAGC,IAAoD,EACvD;EACA,OAAO,IAAAJ,uCAAoB,EAACf,sBAAsB,CAACgB,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AACnE;AAEO,SAASC,qBAAqBA,CACnC,GAAGD,IAAqD,EACxD;EACA,OAAO,IAAAJ,uCAAoB,EAACf,sBAAsB,CAACqB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACpE;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transform-file-browser.js b/framework-core/node_modules/@babel/core/lib/transform-file-browser.js new file mode 100644 index 0000000..8576809 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transform-file-browser.js @@ -0,0 +1,23 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformFile = void 0; +exports.transformFileAsync = transformFileAsync; +exports.transformFileSync = transformFileSync; +const transformFile = exports.transformFile = function transformFile(filename, opts, callback) { + if (typeof opts === "function") { + callback = opts; + } + callback(new Error("Transforming files is not supported in browsers"), null); +}; +function transformFileSync() { + throw new Error("Transforming files is not supported in browsers"); +} +function transformFileAsync() { + return Promise.reject(new Error("Transforming files is not supported in browsers")); +} +0 && 0; + +//# sourceMappingURL=transform-file-browser.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transform-file-browser.js.map b/framework-core/node_modules/@babel/core/lib/transform-file-browser.js.map new file mode 100644 index 0000000..b632a42 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transform-file-browser.js.map @@ -0,0 +1 @@ +{"version":3,"names":["transformFile","exports","filename","opts","callback","Error","transformFileSync","transformFileAsync","Promise","reject"],"sources":["../src/transform-file-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\n// duplicated from transform-file so we do not have to import anything here\ntype TransformFile = {\n (filename: string, callback: (error: Error, file: null) => void): void;\n (\n filename: string,\n opts: any,\n callback: (error: Error, file: null) => void,\n ): void;\n};\n\nexport const transformFile: TransformFile = function transformFile(\n filename,\n opts,\n callback?: (error: Error, file: null) => void,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n }\n\n callback(new Error(\"Transforming files is not supported in browsers\"), null);\n};\n\nexport function transformFileSync(): never {\n throw new Error(\"Transforming files is not supported in browsers\");\n}\n\nexport function transformFileAsync() {\n return Promise.reject(\n new Error(\"Transforming files is not supported in browsers\"),\n );\n}\n"],"mappings":";;;;;;;;AAYO,MAAMA,aAA4B,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAASA,aAAaA,CAChEE,QAAQ,EACRC,IAAI,EACJC,QAA6C,EAC7C;EACA,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9BC,QAAQ,GAAGD,IAAI;EACjB;EAEAC,QAAQ,CAAC,IAAIC,KAAK,CAAC,iDAAiD,CAAC,EAAE,IAAI,CAAC;AAC9E,CAAC;AAEM,SAASC,iBAAiBA,CAAA,EAAU;EACzC,MAAM,IAAID,KAAK,CAAC,iDAAiD,CAAC;AACpE;AAEO,SAASE,kBAAkBA,CAAA,EAAG;EACnC,OAAOC,OAAO,CAACC,MAAM,CACnB,IAAIJ,KAAK,CAAC,iDAAiD,CAC7D,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transform-file.js b/framework-core/node_modules/@babel/core/lib/transform-file.js new file mode 100644 index 0000000..ce7f9f9 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transform-file.js @@ -0,0 +1,40 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformFile = transformFile; +exports.transformFileAsync = transformFileAsync; +exports.transformFileSync = transformFileSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _index = require("./config/index.js"); +var _index2 = require("./transformation/index.js"); +var fs = require("./gensync-utils/fs.js"); +({}); +const transformFileRunner = _gensync()(function* (filename, opts) { + const options = Object.assign({}, opts, { + filename + }); + const config = yield* (0, _index.default)(options); + if (config === null) return null; + const code = yield* fs.readFile(filename, "utf8"); + return yield* (0, _index2.run)(config, code); +}); +function transformFile(...args) { + transformFileRunner.errback(...args); +} +function transformFileSync(...args) { + return transformFileRunner.sync(...args); +} +function transformFileAsync(...args) { + return transformFileRunner.async(...args); +} +0 && 0; + +//# sourceMappingURL=transform-file.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transform-file.js.map b/framework-core/node_modules/@babel/core/lib/transform-file.js.map new file mode 100644 index 0000000..aab7ce6 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transform-file.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_index","_index2","fs","transformFileRunner","gensync","filename","opts","options","Object","assign","config","loadConfig","code","readFile","run","transformFile","args","errback","transformFileSync","sync","transformFileAsync","async"],"sources":["../src/transform-file.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\nimport * as fs from \"./gensync-utils/fs.ts\";\n\ntype transformFileBrowserType = typeof import(\"./transform-file-browser\");\ntype transformFileType = typeof import(\"./transform-file\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of transform-file-browser, since this file may be replaced at bundle time with\n// transform-file-browser.\n({}) as any as transformFileBrowserType as transformFileType;\n\nconst transformFileRunner = gensync(function* (\n filename: string,\n opts?: InputOptions,\n): Handler {\n const options = { ...opts, filename };\n\n const config: ResolvedConfig | null = yield* loadConfig(options);\n if (config === null) return null;\n\n const code = yield* fs.readFile(filename, \"utf8\");\n return yield* run(config, code);\n});\n\n// @ts-expect-error TS doesn't detect that this signature is compatible\nexport function transformFile(\n filename: string,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n filename: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n ...args: Parameters\n) {\n transformFileRunner.errback(...args);\n}\n\nexport function transformFileSync(\n ...args: Parameters\n) {\n return transformFileRunner.sync(...args);\n}\nexport function transformFileAsync(\n ...args: Parameters\n) {\n return transformFileRunner.async(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,EAAA,GAAAH,OAAA;AAQA,CAAC,CAAC,CAAC;AAEH,MAAMI,mBAAmB,GAAGC,SAAMA,CAAC,CAAC,WAClCC,QAAgB,EAChBC,IAAmB,EACS;EAC5B,MAAMC,OAAO,GAAAC,MAAA,CAAAC,MAAA,KAAQH,IAAI;IAAED;EAAQ,EAAE;EAErC,MAAMK,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACJ,OAAO,CAAC;EAChE,IAAIG,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,MAAME,IAAI,GAAG,OAAOV,EAAE,CAACW,QAAQ,CAACR,QAAQ,EAAE,MAAM,CAAC;EACjD,OAAO,OAAO,IAAAS,WAAG,EAACJ,MAAM,EAAEE,IAAI,CAAC;AACjC,CAAC,CAAC;AAYK,SAASG,aAAaA,CAC3B,GAAGC,IAAoD,EACvD;EACAb,mBAAmB,CAACc,OAAO,CAAC,GAAGD,IAAI,CAAC;AACtC;AAEO,SAASE,iBAAiBA,CAC/B,GAAGF,IAAiD,EACpD;EACA,OAAOb,mBAAmB,CAACgB,IAAI,CAAC,GAAGH,IAAI,CAAC;AAC1C;AACO,SAASI,kBAAkBA,CAChC,GAAGJ,IAAkD,EACrD;EACA,OAAOb,mBAAmB,CAACkB,KAAK,CAAC,GAAGL,IAAI,CAAC;AAC3C;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transform.js b/framework-core/node_modules/@babel/core/lib/transform.js new file mode 100644 index 0000000..be55705 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transform.js @@ -0,0 +1,49 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transform = void 0; +exports.transformAsync = transformAsync; +exports.transformSync = transformSync; +function _gensync() { + const data = require("gensync"); + _gensync = function () { + return data; + }; + return data; +} +var _index = require("./config/index.js"); +var _index2 = require("./transformation/index.js"); +var _rewriteStackTrace = require("./errors/rewrite-stack-trace.js"); +const transformRunner = _gensync()(function* transform(code, opts) { + const config = yield* (0, _index.default)(opts); + if (config === null) return null; + return yield* (0, _index2.run)(config, code); +}); +const transform = exports.transform = function transform(code, optsOrCallback, maybeCallback) { + let opts; + let callback; + if (typeof optsOrCallback === "function") { + callback = optsOrCallback; + opts = undefined; + } else { + opts = optsOrCallback; + callback = maybeCallback; + } + if (callback === undefined) { + { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.sync)(code, opts); + } + } + (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.errback)(code, opts, callback); +}; +function transformSync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.sync)(...args); +} +function transformAsync(...args) { + return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.async)(...args); +} +0 && 0; + +//# sourceMappingURL=transform.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transform.js.map b/framework-core/node_modules/@babel/core/lib/transform.js.map new file mode 100644 index 0000000..3a7832a --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transform.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_gensync","data","require","_index","_index2","_rewriteStackTrace","transformRunner","gensync","transform","code","opts","config","loadConfig","run","exports","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","transformSync","args","transformAsync","async"],"sources":["../src/transform.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nexport type { FileResult } from \"./transformation/index.ts\";\n\ntype Transform = {\n (code: string, callback: FileResultCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformRunner = gensync(function* transform(\n code: string,\n opts?: InputOptions,\n): Handler {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n return yield* run(config, code);\n});\n\nexport const transform: Transform = function transform(\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transform' function expects a callback. If you need to call it synchronously, please use 'transformSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transform' function will expect a callback. If you need to call it synchronously, please use 'transformSync'.\",\n // );\n return beginHiddenCallStack(transformRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(transformRunner.errback)(code, opts, callback);\n};\n\nexport function transformSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformRunner.sync)(...args);\n}\nexport function transformAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,kBAAA,GAAAH,OAAA;AAcA,MAAMI,eAAe,GAAGC,SAAMA,CAAC,CAAC,UAAUC,SAASA,CACjDC,IAAY,EACZC,IAAmB,EACS;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,OAAO,OAAO,IAAAE,WAAG,EAACF,MAAM,EAAEF,IAAI,CAAC;AACjC,CAAC,CAAC;AAEK,MAAMD,SAAoB,GAAAM,OAAA,CAAAN,SAAA,GAAG,SAASA,SAASA,CACpDC,IAAI,EACJM,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIN,IAAqC;EACzC,IAAIO,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBL,IAAI,GAAGQ,SAAS;EAClB,CAAC,MAAM;IACLR,IAAI,GAAGK,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACb,eAAe,CAACc,IAAI,CAAC,CAACX,IAAI,EAAEC,IAAI,CAAC;IAC/D;EACF;EAEA,IAAAS,uCAAoB,EAACb,eAAe,CAACe,OAAO,CAAC,CAACZ,IAAI,EAAEC,IAAI,EAAEO,QAAQ,CAAC;AACrE,CAAC;AAEM,SAASK,aAAaA,CAC3B,GAAGC,IAA6C,EAChD;EACA,OAAO,IAAAJ,uCAAoB,EAACb,eAAe,CAACc,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AAC5D;AACO,SAASC,cAAcA,CAC5B,GAAGD,IAA8C,EACjD;EACA,OAAO,IAAAJ,uCAAoB,EAACb,eAAe,CAACmB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AAC7D;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js b/framework-core/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js new file mode 100644 index 0000000..ec22ee3 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js @@ -0,0 +1,84 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = loadBlockHoistPlugin; +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +var _plugin = require("../config/plugin.js"); +let LOADED_PLUGIN; +const blockHoistPlugin = { + name: "internal.blockHoist", + visitor: { + Block: { + exit({ + node + }) { + node.body = performHoisting(node.body); + } + }, + SwitchCase: { + exit({ + node + }) { + node.consequent = performHoisting(node.consequent); + } + } + } +}; +function performHoisting(body) { + let max = Math.pow(2, 30) - 1; + let hasChange = false; + for (let i = 0; i < body.length; i++) { + const n = body[i]; + const p = priority(n); + if (p > max) { + hasChange = true; + break; + } + max = p; + } + if (!hasChange) return body; + return stableSort(body.slice()); +} +function loadBlockHoistPlugin() { + if (!LOADED_PLUGIN) { + LOADED_PLUGIN = new _plugin.default(Object.assign({}, blockHoistPlugin, { + visitor: _traverse().default.explode(blockHoistPlugin.visitor) + }), {}); + } + return LOADED_PLUGIN; +} +function priority(bodyNode) { + const priority = bodyNode == null ? void 0 : bodyNode._blockHoist; + if (priority == null) return 1; + if (priority === true) return 2; + return priority; +} +function stableSort(body) { + const buckets = Object.create(null); + for (let i = 0; i < body.length; i++) { + const n = body[i]; + const p = priority(n); + const bucket = buckets[p] || (buckets[p] = []); + bucket.push(n); + } + const keys = Object.keys(buckets).map(k => +k).sort((a, b) => b - a); + let index = 0; + for (const key of keys) { + const bucket = buckets[key]; + for (const n of bucket) { + body[index++] = n; + } + } + return body; +} +0 && 0; + +//# sourceMappingURL=block-hoist-plugin.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map b/framework-core/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map new file mode 100644 index 0000000..028e36a --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_traverse","data","require","_plugin","LOADED_PLUGIN","blockHoistPlugin","name","visitor","Block","exit","node","body","performHoisting","SwitchCase","consequent","max","Math","pow","hasChange","i","length","n","p","priority","stableSort","slice","loadBlockHoistPlugin","Plugin","Object","assign","traverse","explode","bodyNode","_blockHoist","buckets","create","bucket","push","keys","map","k","sort","a","b","index","key"],"sources":["../../src/transformation/block-hoist-plugin.ts"],"sourcesContent":["import traverse from \"@babel/traverse\";\nimport type { Statement } from \"@babel/types\";\nimport type { PluginObject } from \"../config/index.ts\";\nimport Plugin from \"../config/plugin.ts\";\n\nlet LOADED_PLUGIN: Plugin | void;\n\nconst blockHoistPlugin: PluginObject = {\n /**\n * [Please add a description.]\n *\n * Priority:\n *\n * - 0 We want this to be at the **very** bottom\n * - 1 Default node position\n * - 2 Priority over normal nodes\n * - 3 We want this to be at the **very** top\n * - 4 Reserved for the helpers used to implement module imports.\n */\n\n name: \"internal.blockHoist\",\n\n visitor: {\n Block: {\n exit({ node }) {\n node.body = performHoisting(node.body);\n },\n },\n SwitchCase: {\n exit({ node }) {\n // In case statements, hoisting is difficult to perform correctly due to\n // functions that are declared and referenced in different blocks.\n // Nevertheless, hoisting the statements *inside* of each case should at\n // least mitigate the failure cases.\n node.consequent = performHoisting(node.consequent);\n },\n },\n },\n};\n\nfunction performHoisting(body: Statement[]): Statement[] {\n // Largest SMI\n let max = 2 ** 30 - 1;\n let hasChange = false;\n for (let i = 0; i < body.length; i++) {\n const n = body[i];\n const p = priority(n);\n if (p > max) {\n hasChange = true;\n break;\n }\n max = p;\n }\n if (!hasChange) return body;\n\n // My kingdom for a stable sort!\n return stableSort(body.slice());\n}\n\nexport default function loadBlockHoistPlugin(): Plugin {\n if (!LOADED_PLUGIN) {\n // cache the loaded blockHoist plugin plugin\n LOADED_PLUGIN = new Plugin(\n {\n ...blockHoistPlugin,\n visitor: traverse.explode(blockHoistPlugin.visitor),\n },\n {},\n );\n }\n\n return LOADED_PLUGIN;\n}\n\nfunction priority(bodyNode: Statement & { _blockHoist?: number | true }) {\n const priority = bodyNode?._blockHoist;\n if (priority == null) return 1;\n if (priority === true) return 2;\n return priority;\n}\n\nfunction stableSort(body: Statement[]) {\n // By default, we use priorities of 0-4.\n const buckets = Object.create(null);\n\n // By collecting into buckets, we can guarantee a stable sort.\n for (let i = 0; i < body.length; i++) {\n const n = body[i];\n const p = priority(n);\n\n // In case some plugin is setting an unexpected priority.\n const bucket = buckets[p] || (buckets[p] = []);\n bucket.push(n);\n }\n\n // Sort our keys in descending order. Keys are unique, so we don't have to\n // worry about stability.\n const keys = Object.keys(buckets)\n .map(k => +k)\n .sort((a, b) => b - a);\n\n let index = 0;\n for (const key of keys) {\n const bucket = buckets[key];\n for (const n of bucket) {\n body[index++] = n;\n }\n }\n return body;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs b/framework-core/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs new file mode 100644 index 0000000..e606e55 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs @@ -0,0 +1,6 @@ +{ + exports.getModuleName = () => require("@babel/helper-module-transforms").getModuleName; +} +0 && 0; + +//# sourceMappingURL=babel-7-helpers.cjs.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map b/framework-core/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map new file mode 100644 index 0000000..d27a70c --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map @@ -0,0 +1 @@ +{"version":3,"names":["exports","getModuleName","require"],"sources":["../../../src/transformation/file/babel-7-helpers.cjs"],"sourcesContent":["// TODO(Babel 8): Remove this file\n\nif (!process.env.BABEL_8_BREAKING) {\n exports.getModuleName = () =>\n require(\"@babel/helper-module-transforms\").getModuleName;\n} else if (process.env.IS_PUBLISH) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n"],"mappings":"AAEmC;EACjCA,OAAO,CAACC,aAAa,GAAG,MACtBC,OAAO,CAAC,iCAAiC,CAAC,CAACD,aAAa;AAC5D;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/file/file.js b/framework-core/node_modules/@babel/core/lib/transformation/file/file.js new file mode 100644 index 0000000..5cf9254 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/file/file.js @@ -0,0 +1,219 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +function helpers() { + const data = require("@babel/helpers"); + helpers = function () { + return data; + }; + return data; +} +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +function _codeFrame() { + const data = require("@babel/code-frame"); + _codeFrame = function () { + return data; + }; + return data; +} +function _t() { + const data = require("@babel/types"); + _t = function () { + return data; + }; + return data; +} +function _semver() { + const data = require("semver"); + _semver = function () { + return data; + }; + return data; +} +var _babel7Helpers = require("./babel-7-helpers.cjs"); +const { + cloneNode, + interpreterDirective +} = _t(); +const errorVisitor = { + enter(path, state) { + const loc = path.node.loc; + if (loc) { + state.loc = loc; + path.stop(); + } + } +}; +class File { + constructor(options, { + code, + ast, + inputMap + }) { + this._map = new Map(); + this.opts = void 0; + this.declarations = {}; + this.path = void 0; + this.ast = void 0; + this.scope = void 0; + this.metadata = {}; + this.code = ""; + this.inputMap = void 0; + this.hub = { + file: this, + getCode: () => this.code, + getScope: () => this.scope, + addHelper: this.addHelper.bind(this), + buildError: this.buildCodeFrameError.bind(this) + }; + this.opts = options; + this.code = code; + this.ast = ast; + this.inputMap = inputMap; + this.path = _traverse().NodePath.get({ + hub: this.hub, + parentPath: null, + parent: this.ast, + container: this.ast, + key: "program" + }).setContext(); + this.scope = this.path.scope; + } + get shebang() { + const { + interpreter + } = this.path.node; + return interpreter ? interpreter.value : ""; + } + set shebang(value) { + if (value) { + this.path.get("interpreter").replaceWith(interpreterDirective(value)); + } else { + this.path.get("interpreter").remove(); + } + } + set(key, val) { + { + if (key === "helpersNamespace") { + throw new Error("Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility." + "If you are using @babel/plugin-external-helpers you will need to use a newer " + "version than the one you currently have installed. " + "If you have your own implementation, you'll want to explore using 'helperGenerator' " + "alongside 'file.availableHelper()'."); + } + } + this._map.set(key, val); + } + get(key) { + return this._map.get(key); + } + has(key) { + return this._map.has(key); + } + availableHelper(name, versionRange) { + if (helpers().isInternal(name)) return false; + let minVersion; + try { + minVersion = helpers().minVersion(name); + } catch (err) { + if (err.code !== "BABEL_HELPER_UNKNOWN") throw err; + return false; + } + if (typeof versionRange !== "string") return true; + if (_semver().valid(versionRange)) versionRange = `^${versionRange}`; + { + return !_semver().intersects(`<${minVersion}`, versionRange) && !_semver().intersects(`>=8.0.0`, versionRange); + } + } + addHelper(name) { + if (helpers().isInternal(name)) { + throw new Error("Cannot use internal helper " + name); + } + return this._addHelper(name); + } + _addHelper(name) { + const declar = this.declarations[name]; + if (declar) return cloneNode(declar); + const generator = this.get("helperGenerator"); + if (generator) { + const res = generator(name); + if (res) return res; + } + helpers().minVersion(name); + const uid = this.declarations[name] = this.scope.generateUidIdentifier(name); + const dependencies = {}; + for (const dep of helpers().getDependencies(name)) { + dependencies[dep] = this._addHelper(dep); + } + const { + nodes, + globals + } = helpers().get(name, dep => dependencies[dep], uid.name, Object.keys(this.scope.getAllBindings())); + globals.forEach(name => { + if (this.path.scope.hasBinding(name, true)) { + this.path.scope.rename(name); + } + }); + nodes.forEach(node => { + node._compact = true; + }); + const added = this.path.unshiftContainer("body", nodes); + for (const path of added) { + if (path.isVariableDeclaration()) this.scope.registerDeclaration(path); + } + return uid; + } + buildCodeFrameError(node, msg, _Error = SyntaxError) { + let loc = node == null ? void 0 : node.loc; + if (!loc && node) { + const state = { + loc: null + }; + (0, _traverse().default)(node, errorVisitor, this.scope, state); + loc = state.loc; + let txt = "This is an error on an internal node. Probably an internal error."; + if (loc) txt += " Location has been estimated."; + msg += ` (${txt})`; + } + if (loc) { + const { + highlightCode = true + } = this.opts; + msg += "\n" + (0, _codeFrame().codeFrameColumns)(this.code, { + start: { + line: loc.start.line, + column: loc.start.column + 1 + }, + end: loc.end && loc.start.line === loc.end.line ? { + line: loc.end.line, + column: loc.end.column + 1 + } : undefined + }, { + highlightCode + }); + } + return new _Error(msg); + } +} +exports.default = File; +{ + File.prototype.addImport = function addImport() { + throw new Error("This API has been removed. If you're looking for this " + "functionality in Babel 7, you should import the " + "'@babel/helper-module-imports' module and use the functions exposed " + " from that module, such as 'addNamed' or 'addDefault'."); + }; + File.prototype.addTemplateObject = function addTemplateObject() { + throw new Error("This function has been moved into the template literal transform itself."); + }; + { + File.prototype.getModuleName = function getModuleName() { + return _babel7Helpers.getModuleName()(this.opts, this.opts); + }; + } +} +0 && 0; + +//# sourceMappingURL=file.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/file/file.js.map b/framework-core/node_modules/@babel/core/lib/transformation/file/file.js.map new file mode 100644 index 0000000..a6a6b98 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/file/file.js.map @@ -0,0 +1 @@ +{"version":3,"names":["helpers","data","require","_traverse","_codeFrame","_t","_semver","_babel7Helpers","cloneNode","interpreterDirective","errorVisitor","enter","path","state","loc","node","stop","File","constructor","options","code","ast","inputMap","_map","Map","opts","declarations","scope","metadata","hub","file","getCode","getScope","addHelper","bind","buildError","buildCodeFrameError","NodePath","get","parentPath","parent","container","key","setContext","shebang","interpreter","value","replaceWith","remove","set","val","Error","has","availableHelper","name","versionRange","isInternal","minVersion","err","semver","valid","intersects","_addHelper","declar","generator","res","uid","generateUidIdentifier","dependencies","dep","getDependencies","nodes","globals","Object","keys","getAllBindings","forEach","hasBinding","rename","_compact","added","unshiftContainer","isVariableDeclaration","registerDeclaration","msg","_Error","SyntaxError","traverse","txt","highlightCode","codeFrameColumns","start","line","column","end","undefined","exports","default","prototype","addImport","addTemplateObject","getModuleName","babel7"],"sources":["../../../src/transformation/file/file.ts"],"sourcesContent":["import * as helpers from \"@babel/helpers\";\nimport { NodePath } from \"@babel/traverse\";\nimport type { HubInterface, Visitor, Scope } from \"@babel/traverse\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport traverse from \"@babel/traverse\";\nimport { cloneNode, interpreterDirective } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport semver from \"semver\";\n\nimport type { NormalizedFile } from \"../normalize-file.ts\";\n\n// @ts-expect-error This file is `any`\nimport babel7 from \"./babel-7-helpers.cjs\" with { if: \"!process.env.BABEL_8_BREAKING && (!USE_ESM || IS_STANDALONE)\" };\nimport type { NormalizedOptions } from \"../../config/index.ts\";\n\nconst errorVisitor: Visitor<{ loc: t.SourceLocation | null }> = {\n enter(path, state) {\n const loc = path.node.loc;\n if (loc) {\n state.loc = loc;\n path.stop();\n }\n },\n};\n\nexport default class File {\n _map: Map = new Map();\n opts: NormalizedOptions;\n declarations: { [key: string]: t.Identifier } = {};\n path: NodePath;\n ast: t.File;\n scope: Scope;\n metadata: { [key: string]: any } = {};\n code: string = \"\";\n inputMap: any;\n\n hub: HubInterface & { file: File } = {\n // keep it for the usage in babel-core, ex: path.hub.file.opts.filename\n file: this,\n getCode: () => this.code,\n getScope: () => this.scope,\n addHelper: this.addHelper.bind(this),\n buildError: this.buildCodeFrameError.bind(this),\n };\n\n constructor(options: any, { code, ast, inputMap }: NormalizedFile) {\n this.opts = options;\n this.code = code;\n this.ast = ast;\n this.inputMap = inputMap;\n\n this.path = NodePath.get({\n hub: this.hub,\n parentPath: null,\n parent: this.ast,\n container: this.ast,\n key: \"program\",\n }).setContext() as NodePath;\n this.scope = this.path.scope;\n }\n\n /**\n * Provide backward-compatible access to the interpreter directive handling\n * in Babel 6.x. If you are writing a plugin for Babel 7.x, it would be\n * best to use 'program.interpreter' directly.\n */\n get shebang(): string {\n const { interpreter } = this.path.node;\n return interpreter ? interpreter.value : \"\";\n }\n set shebang(value: string) {\n if (value) {\n this.path.get(\"interpreter\").replaceWith(interpreterDirective(value));\n } else {\n this.path.get(\"interpreter\").remove();\n }\n }\n\n set(key: unknown, val: unknown) {\n if (!process.env.BABEL_8_BREAKING) {\n if (key === \"helpersNamespace\") {\n throw new Error(\n \"Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility.\" +\n \"If you are using @babel/plugin-external-helpers you will need to use a newer \" +\n \"version than the one you currently have installed. \" +\n \"If you have your own implementation, you'll want to explore using 'helperGenerator' \" +\n \"alongside 'file.availableHelper()'.\",\n );\n }\n }\n\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n has(key: unknown): boolean {\n return this._map.has(key);\n }\n\n /**\n * Check if a given helper is available in @babel/core's helper list.\n *\n * This _also_ allows you to pass a Babel version specifically. If the\n * helper exists, but was not available for the full given range, it will be\n * considered unavailable.\n */\n availableHelper(name: string, versionRange?: string | null): boolean {\n if (helpers.isInternal(name)) return false;\n\n let minVersion;\n try {\n minVersion = helpers.minVersion(name);\n } catch (err) {\n if (err.code !== \"BABEL_HELPER_UNKNOWN\") throw err;\n\n return false;\n }\n\n if (typeof versionRange !== \"string\") return true;\n\n // semver.intersects() has some surprising behavior with comparing ranges\n // with pre-release versions. We add '^' to ensure that we are always\n // comparing ranges with ranges, which sidesteps this logic.\n // For example:\n //\n // semver.intersects(`<7.0.1`, \"7.0.0-beta.0\") // false - surprising\n // semver.intersects(`<7.0.1`, \"^7.0.0-beta.0\") // true - expected\n //\n // This is because the first falls back to\n //\n // semver.satisfies(\"7.0.0-beta.0\", `<7.0.1`) // false - surprising\n //\n // and this fails because a prerelease version can only satisfy a range\n // if it is a prerelease within the same major/minor/patch range.\n //\n // Note: If this is found to have issues, please also revisit the logic in\n // transform-runtime's definitions.js file.\n if (semver.valid(versionRange)) versionRange = `^${versionRange}`;\n\n if (process.env.BABEL_8_BREAKING) {\n return (\n !semver.intersects(`<${minVersion}`, versionRange) &&\n !semver.intersects(`>=9.0.0`, versionRange)\n );\n } else {\n return (\n !semver.intersects(`<${minVersion}`, versionRange) &&\n !semver.intersects(`>=8.0.0`, versionRange)\n );\n }\n }\n\n addHelper(name: string): t.Identifier {\n if (helpers.isInternal(name)) {\n throw new Error(\"Cannot use internal helper \" + name);\n }\n return this._addHelper(name);\n }\n\n _addHelper(name: string): t.Identifier {\n const declar = this.declarations[name];\n if (declar) return cloneNode(declar);\n\n const generator = this.get(\"helperGenerator\");\n if (generator) {\n const res = generator(name);\n if (res) return res;\n }\n\n // make sure that the helper exists\n helpers.minVersion(name);\n\n const uid = (this.declarations[name] =\n this.scope.generateUidIdentifier(name));\n\n const dependencies: { [key: string]: t.Identifier } = {};\n for (const dep of helpers.getDependencies(name)) {\n dependencies[dep] = this._addHelper(dep);\n }\n\n const { nodes, globals } = helpers.get(\n name,\n dep => dependencies[dep],\n uid.name,\n Object.keys(this.scope.getAllBindings()),\n );\n\n globals.forEach(name => {\n if (this.path.scope.hasBinding(name, true /* noGlobals */)) {\n this.path.scope.rename(name);\n }\n });\n\n nodes.forEach(node => {\n // @ts-expect-error Fixme: document _compact node property\n node._compact = true;\n });\n\n const added = this.path.unshiftContainer(\"body\", nodes);\n // TODO: NodePath#unshiftContainer should automatically register new\n // bindings.\n for (const path of added) {\n if (path.isVariableDeclaration()) this.scope.registerDeclaration(path);\n }\n\n return uid;\n }\n\n buildCodeFrameError(\n node: t.Node | undefined | null,\n msg: string,\n _Error: typeof Error = SyntaxError,\n ): Error {\n let loc = node?.loc;\n\n if (!loc && node) {\n const state: { loc?: t.SourceLocation | null } = {\n loc: null,\n };\n traverse(node, errorVisitor, this.scope, state);\n loc = state.loc;\n\n let txt =\n \"This is an error on an internal node. Probably an internal error.\";\n if (loc) txt += \" Location has been estimated.\";\n\n msg += ` (${txt})`;\n }\n\n if (loc) {\n const { highlightCode = true } = this.opts;\n\n msg +=\n \"\\n\" +\n codeFrameColumns(\n this.code,\n {\n start: {\n line: loc.start.line,\n column: loc.start.column + 1,\n },\n end:\n loc.end && loc.start.line === loc.end.line\n ? {\n line: loc.end.line,\n column: loc.end.column + 1,\n }\n : undefined,\n },\n { highlightCode },\n );\n }\n\n return new _Error(msg);\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-expect-error Babel 7\n File.prototype.addImport = function addImport() {\n throw new Error(\n \"This API has been removed. If you're looking for this \" +\n \"functionality in Babel 7, you should import the \" +\n \"'@babel/helper-module-imports' module and use the functions exposed \" +\n \" from that module, such as 'addNamed' or 'addDefault'.\",\n );\n };\n // @ts-expect-error Babel 7\n File.prototype.addTemplateObject = function addTemplateObject() {\n throw new Error(\n \"This function has been moved into the template literal transform itself.\",\n );\n };\n\n if (!USE_ESM || IS_STANDALONE) {\n // @ts-expect-error Babel 7\n File.prototype.getModuleName = function getModuleName() {\n return babel7.getModuleName()(this.opts, this.opts);\n };\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/file/generate.js b/framework-core/node_modules/@babel/core/lib/transformation/file/generate.js new file mode 100644 index 0000000..10b5b29 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/file/generate.js @@ -0,0 +1,84 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = generateCode; +function _convertSourceMap() { + const data = require("convert-source-map"); + _convertSourceMap = function () { + return data; + }; + return data; +} +function _generator() { + const data = require("@babel/generator"); + _generator = function () { + return data; + }; + return data; +} +var _mergeMap = require("./merge-map.js"); +function generateCode(pluginPasses, file) { + const { + opts, + ast, + code, + inputMap + } = file; + const { + generatorOpts + } = opts; + generatorOpts.inputSourceMap = inputMap == null ? void 0 : inputMap.toObject(); + const results = []; + for (const plugins of pluginPasses) { + for (const plugin of plugins) { + const { + generatorOverride + } = plugin; + if (generatorOverride) { + const result = generatorOverride(ast, generatorOpts, code, _generator().default); + if (result !== undefined) results.push(result); + } + } + } + let result; + if (results.length === 0) { + result = (0, _generator().default)(ast, generatorOpts, code); + } else if (results.length === 1) { + result = results[0]; + if (typeof result.then === "function") { + throw new Error(`You appear to be using an async codegen plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version.`); + } + } else { + throw new Error("More than one plugin attempted to override codegen."); + } + let { + code: outputCode, + decodedMap: outputMap = result.map + } = result; + if (result.__mergedMap) { + outputMap = Object.assign({}, result.map); + } else { + if (outputMap) { + if (inputMap) { + outputMap = (0, _mergeMap.default)(inputMap.toObject(), outputMap, generatorOpts.sourceFileName); + } else { + outputMap = result.map; + } + } + } + if (opts.sourceMaps === "inline" || opts.sourceMaps === "both") { + outputCode += "\n" + _convertSourceMap().fromObject(outputMap).toComment(); + } + if (opts.sourceMaps === "inline") { + outputMap = null; + } + return { + outputCode, + outputMap + }; +} +0 && 0; + +//# sourceMappingURL=generate.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/file/generate.js.map b/framework-core/node_modules/@babel/core/lib/transformation/file/generate.js.map new file mode 100644 index 0000000..d857215 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/file/generate.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_convertSourceMap","data","require","_generator","_mergeMap","generateCode","pluginPasses","file","opts","ast","code","inputMap","generatorOpts","inputSourceMap","toObject","results","plugins","plugin","generatorOverride","result","generate","undefined","push","length","then","Error","outputCode","decodedMap","outputMap","map","__mergedMap","Object","assign","mergeSourceMap","sourceFileName","sourceMaps","convertSourceMap","fromObject","toComment"],"sources":["../../../src/transformation/file/generate.ts"],"sourcesContent":["import type { PluginPasses } from \"../../config/index.ts\";\nimport convertSourceMap from \"convert-source-map\";\nimport type { GeneratorResult } from \"@babel/generator\";\nimport generate from \"@babel/generator\";\n\nimport type File from \"./file.ts\";\nimport mergeSourceMap from \"./merge-map.ts\";\n\nexport default function generateCode(\n pluginPasses: PluginPasses,\n file: File,\n): {\n outputCode: string;\n outputMap: GeneratorResult[\"map\"] | null;\n} {\n const { opts, ast, code, inputMap } = file;\n const { generatorOpts } = opts;\n\n generatorOpts.inputSourceMap = inputMap?.toObject();\n\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { generatorOverride } = plugin;\n if (generatorOverride) {\n const result = generatorOverride(ast, generatorOpts, code, generate);\n\n if (result !== undefined) results.push(result);\n }\n }\n }\n\n let result;\n if (results.length === 0) {\n result = generate(ast, generatorOpts, code);\n } else if (results.length === 1) {\n result = results[0];\n\n // @ts-expect-error check if generatorOverride returned a promise\n if (typeof result.then === \"function\") {\n throw new Error(\n `You appear to be using an async codegen plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version.`,\n );\n }\n } else {\n throw new Error(\"More than one plugin attempted to override codegen.\");\n }\n\n // Decoded maps are faster to merge, so we attempt to get use the decodedMap\n // first. But to preserve backwards compat with older Generator, we'll fall\n // back to the encoded map.\n let { code: outputCode, decodedMap: outputMap = result.map } = result;\n\n // @ts-expect-error For backwards compat.\n if (result.__mergedMap) {\n /**\n * @see mergeSourceMap\n */\n outputMap = { ...result.map };\n } else {\n if (outputMap) {\n if (inputMap) {\n // mergeSourceMap returns an encoded map\n outputMap = mergeSourceMap(\n inputMap.toObject(),\n outputMap,\n generatorOpts.sourceFileName,\n );\n } else {\n // We cannot output a decoded map, so retrieve the encoded form. Because\n // the decoded form is free, it's fine to prioritize decoded first.\n outputMap = result.map;\n }\n }\n }\n\n if (opts.sourceMaps === \"inline\" || opts.sourceMaps === \"both\") {\n outputCode += \"\\n\" + convertSourceMap.fromObject(outputMap).toComment();\n }\n\n if (opts.sourceMaps === \"inline\") {\n outputMap = null;\n }\n\n // @ts-expect-error outputMap must be an EncodedSourceMap or null\n return { outputCode, outputMap };\n}\n"],"mappings":";;;;;;AACA,SAAAA,kBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,iBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,IAAAG,SAAA,GAAAF,OAAA;AAEe,SAASG,YAAYA,CAClCC,YAA0B,EAC1BC,IAAU,EAIV;EACA,MAAM;IAAEC,IAAI;IAAEC,GAAG;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGJ,IAAI;EAC1C,MAAM;IAAEK;EAAc,CAAC,GAAGJ,IAAI;EAE9BI,aAAa,CAACC,cAAc,GAAGF,QAAQ,oBAARA,QAAQ,CAAEG,QAAQ,CAAC,CAAC;EAEnD,MAAMC,OAAO,GAAG,EAAE;EAClB,KAAK,MAAMC,OAAO,IAAIV,YAAY,EAAE;IAClC,KAAK,MAAMW,MAAM,IAAID,OAAO,EAAE;MAC5B,MAAM;QAAEE;MAAkB,CAAC,GAAGD,MAAM;MACpC,IAAIC,iBAAiB,EAAE;QACrB,MAAMC,MAAM,GAAGD,iBAAiB,CAACT,GAAG,EAAEG,aAAa,EAAEF,IAAI,EAAEU,oBAAQ,CAAC;QAEpE,IAAID,MAAM,KAAKE,SAAS,EAAEN,OAAO,CAACO,IAAI,CAACH,MAAM,CAAC;MAChD;IACF;EACF;EAEA,IAAIA,MAAM;EACV,IAAIJ,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;IACxBJ,MAAM,GAAG,IAAAC,oBAAQ,EAACX,GAAG,EAAEG,aAAa,EAAEF,IAAI,CAAC;EAC7C,CAAC,MAAM,IAAIK,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;IAC/BJ,MAAM,GAAGJ,OAAO,CAAC,CAAC,CAAC;IAGnB,IAAI,OAAOI,MAAM,CAACK,IAAI,KAAK,UAAU,EAAE;MACrC,MAAM,IAAIC,KAAK,CACb,kDAAkD,GAChD,wDAAwD,GACxD,sCAAsC,GACtC,mDACJ,CAAC;IACH;EACF,CAAC,MAAM;IACL,MAAM,IAAIA,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAKA,IAAI;IAAEf,IAAI,EAAEgB,UAAU;IAAEC,UAAU,EAAEC,SAAS,GAAGT,MAAM,CAACU;EAAI,CAAC,GAAGV,MAAM;EAGrE,IAAIA,MAAM,CAACW,WAAW,EAAE;IAItBF,SAAS,GAAAG,MAAA,CAAAC,MAAA,KAAQb,MAAM,CAACU,GAAG,CAAE;EAC/B,CAAC,MAAM;IACL,IAAID,SAAS,EAAE;MACb,IAAIjB,QAAQ,EAAE;QAEZiB,SAAS,GAAG,IAAAK,iBAAc,EACxBtB,QAAQ,CAACG,QAAQ,CAAC,CAAC,EACnBc,SAAS,EACThB,aAAa,CAACsB,cAChB,CAAC;MACH,CAAC,MAAM;QAGLN,SAAS,GAAGT,MAAM,CAACU,GAAG;MACxB;IACF;EACF;EAEA,IAAIrB,IAAI,CAAC2B,UAAU,KAAK,QAAQ,IAAI3B,IAAI,CAAC2B,UAAU,KAAK,MAAM,EAAE;IAC9DT,UAAU,IAAI,IAAI,GAAGU,kBAAeA,CAAC,CAACC,UAAU,CAACT,SAAS,CAAC,CAACU,SAAS,CAAC,CAAC;EACzE;EAEA,IAAI9B,IAAI,CAAC2B,UAAU,KAAK,QAAQ,EAAE;IAChCP,SAAS,GAAG,IAAI;EAClB;EAGA,OAAO;IAAEF,UAAU;IAAEE;EAAU,CAAC;AAClC;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/file/merge-map.js b/framework-core/node_modules/@babel/core/lib/transformation/file/merge-map.js new file mode 100644 index 0000000..1b60d5c --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/file/merge-map.js @@ -0,0 +1,37 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = mergeSourceMap; +function _remapping() { + const data = require("@jridgewell/remapping"); + _remapping = function () { + return data; + }; + return data; +} +function mergeSourceMap(inputMap, map, sourceFileName) { + const source = sourceFileName.replace(/\\/g, "/"); + let found = false; + const result = _remapping()(rootless(map), (s, ctx) => { + if (s === source && !found) { + found = true; + ctx.source = ""; + return rootless(inputMap); + } + return null; + }); + if (typeof inputMap.sourceRoot === "string") { + result.sourceRoot = inputMap.sourceRoot; + } + return Object.assign({}, result); +} +function rootless(map) { + return Object.assign({}, map, { + sourceRoot: null + }); +} +0 && 0; + +//# sourceMappingURL=merge-map.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/file/merge-map.js.map b/framework-core/node_modules/@babel/core/lib/transformation/file/merge-map.js.map new file mode 100644 index 0000000..5afc533 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/file/merge-map.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_remapping","data","require","mergeSourceMap","inputMap","map","sourceFileName","source","replace","found","result","remapping","rootless","s","ctx","sourceRoot","Object","assign"],"sources":["../../../src/transformation/file/merge-map.ts"],"sourcesContent":["type SourceMap = any;\nimport remapping from \"@jridgewell/remapping\";\n\nexport default function mergeSourceMap(\n inputMap: SourceMap,\n map: SourceMap,\n sourceFileName: string,\n): SourceMap {\n // On win32 machines, the sourceFileName uses backslash paths like\n // `C:\\foo\\bar.js`. But sourcemaps are always posix paths, so we need to\n // normalize to regular slashes before we can merge (else we won't find the\n // source associated with our input map).\n // This mirrors code done while generating the output map at\n // https://github.com/babel/babel/blob/5c2fcadc9ae34fd20dd72b1111d5cf50476d700d/packages/babel-generator/src/source-map.ts#L102\n const source = sourceFileName.replace(/\\\\/g, \"/\");\n\n // Prevent an infinite recursion if one of the input map's sources has the\n // same resolved path as the input map. In the case, it would keep find the\n // input map, then get it's sources which will include a path like the input\n // map, on and on.\n let found = false;\n const result = remapping(rootless(map), (s, ctx) => {\n if (s === source && !found) {\n found = true;\n // We empty the source location, which will prevent the sourcemap from\n // becoming relative to the input's location. Eg, if we're transforming a\n // file 'foo/bar.js', and it is a transformation of a `baz.js` file in the\n // same directory, the expected output is just `baz.js`. Without this step,\n // it would become `foo/baz.js`.\n ctx.source = \"\";\n\n return rootless(inputMap);\n }\n\n return null;\n });\n\n if (typeof inputMap.sourceRoot === \"string\") {\n result.sourceRoot = inputMap.sourceRoot;\n }\n\n // remapping returns a SourceMap class type, but this breaks code downstream in\n // @babel/traverse and @babel/types that relies on data being plain objects.\n // When it encounters the sourcemap type it outputs a \"don't know how to turn\n // this value into a node\" error. As a result, we are converting the merged\n // sourcemap to a plain js object.\n return { ...result };\n}\n\nfunction rootless(map: SourceMap): SourceMap {\n return {\n ...map,\n\n // This is a bit hack. Remapping will create absolute sources in our\n // sourcemap, but we want to maintain sources relative to the sourceRoot.\n // We'll re-add the sourceRoot after remapping.\n sourceRoot: null,\n };\n}\n"],"mappings":";;;;;;AACA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEe,SAASE,cAAcA,CACpCC,QAAmB,EACnBC,GAAc,EACdC,cAAsB,EACX;EAOX,MAAMC,MAAM,GAAGD,cAAc,CAACE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;EAMjD,IAAIC,KAAK,GAAG,KAAK;EACjB,MAAMC,MAAM,GAAGC,WAAQA,CAAC,CAACC,QAAQ,CAACP,GAAG,CAAC,EAAE,CAACQ,CAAC,EAAEC,GAAG,KAAK;IAClD,IAAID,CAAC,KAAKN,MAAM,IAAI,CAACE,KAAK,EAAE;MAC1BA,KAAK,GAAG,IAAI;MAMZK,GAAG,CAACP,MAAM,GAAG,EAAE;MAEf,OAAOK,QAAQ,CAACR,QAAQ,CAAC;IAC3B;IAEA,OAAO,IAAI;EACb,CAAC,CAAC;EAEF,IAAI,OAAOA,QAAQ,CAACW,UAAU,KAAK,QAAQ,EAAE;IAC3CL,MAAM,CAACK,UAAU,GAAGX,QAAQ,CAACW,UAAU;EACzC;EAOA,OAAAC,MAAA,CAAAC,MAAA,KAAYP,MAAM;AACpB;AAEA,SAASE,QAAQA,CAACP,GAAc,EAAa;EAC3C,OAAAW,MAAA,CAAAC,MAAA,KACKZ,GAAG;IAKNU,UAAU,EAAE;EAAI;AAEpB;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/index.js b/framework-core/node_modules/@babel/core/lib/transformation/index.js new file mode 100644 index 0000000..7997e0a --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/index.js @@ -0,0 +1,92 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.run = run; +function _traverse() { + const data = require("@babel/traverse"); + _traverse = function () { + return data; + }; + return data; +} +var _pluginPass = require("./plugin-pass.js"); +var _blockHoistPlugin = require("./block-hoist-plugin.js"); +var _normalizeOpts = require("./normalize-opts.js"); +var _normalizeFile = require("./normalize-file.js"); +var _generate = require("./file/generate.js"); +var _deepArray = require("../config/helpers/deep-array.js"); +var _async = require("../gensync-utils/async.js"); +function* run(config, code, ast) { + const file = yield* (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast); + const opts = file.opts; + try { + yield* transformFile(file, config.passes); + } catch (e) { + var _opts$filename; + e.message = `${(_opts$filename = opts.filename) != null ? _opts$filename : "unknown file"}: ${e.message}`; + if (!e.code) { + e.code = "BABEL_TRANSFORM_ERROR"; + } + throw e; + } + let outputCode, outputMap; + try { + if (opts.code !== false) { + ({ + outputCode, + outputMap + } = (0, _generate.default)(config.passes, file)); + } + } catch (e) { + var _opts$filename2; + e.message = `${(_opts$filename2 = opts.filename) != null ? _opts$filename2 : "unknown file"}: ${e.message}`; + if (!e.code) { + e.code = "BABEL_GENERATE_ERROR"; + } + throw e; + } + return { + metadata: file.metadata, + options: opts, + ast: opts.ast === true ? file.ast : null, + code: outputCode === undefined ? null : outputCode, + map: outputMap === undefined ? null : outputMap, + sourceType: file.ast.program.sourceType, + externalDependencies: (0, _deepArray.flattenToSet)(config.externalDependencies) + }; +} +function* transformFile(file, pluginPasses) { + const async = yield* (0, _async.isAsync)(); + for (const pluginPairs of pluginPasses) { + const passPairs = []; + const passes = []; + const visitors = []; + for (const plugin of pluginPairs.concat([(0, _blockHoistPlugin.default)()])) { + const pass = new _pluginPass.default(file, plugin.key, plugin.options, async); + passPairs.push([plugin, pass]); + passes.push(pass); + visitors.push(plugin.visitor); + } + for (const [plugin, pass] of passPairs) { + if (plugin.pre) { + const fn = (0, _async.maybeAsync)(plugin.pre, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + yield* fn.call(pass, file); + } + } + const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod); + { + (0, _traverse().default)(file.ast, visitor, file.scope); + } + for (const [plugin, pass] of passPairs) { + if (plugin.post) { + const fn = (0, _async.maybeAsync)(plugin.post, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + yield* fn.call(pass, file); + } + } + } +} +0 && 0; + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/index.js.map b/framework-core/node_modules/@babel/core/lib/transformation/index.js.map new file mode 100644 index 0000000..d1971c0 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_traverse","data","require","_pluginPass","_blockHoistPlugin","_normalizeOpts","_normalizeFile","_generate","_deepArray","_async","run","config","code","ast","file","normalizeFile","passes","normalizeOptions","opts","transformFile","e","_opts$filename","message","filename","outputCode","outputMap","generateCode","_opts$filename2","metadata","options","undefined","map","sourceType","program","externalDependencies","flattenToSet","pluginPasses","async","isAsync","pluginPairs","passPairs","visitors","plugin","concat","loadBlockHoistPlugin","pass","PluginPass","key","push","visitor","pre","fn","maybeAsync","call","traverse","merge","wrapPluginVisitorMethod","scope","post"],"sources":["../../src/transformation/index.ts"],"sourcesContent":["import traverse from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\nimport type { GeneratorResult } from \"@babel/generator\";\n\nimport type { Handler } from \"gensync\";\n\nimport type { ResolvedConfig, Plugin, PluginPasses } from \"../config/index.ts\";\n\nimport PluginPass from \"./plugin-pass.ts\";\nimport loadBlockHoistPlugin from \"./block-hoist-plugin.ts\";\nimport normalizeOptions from \"./normalize-opts.ts\";\nimport normalizeFile from \"./normalize-file.ts\";\n\nimport generateCode from \"./file/generate.ts\";\nimport type File from \"./file/file.ts\";\n\nimport { flattenToSet } from \"../config/helpers/deep-array.ts\";\nimport { isAsync, maybeAsync } from \"../gensync-utils/async.ts\";\n\nexport type FileResultCallback = {\n (err: Error, file: null): void;\n (err: null, file: FileResult | null): void;\n};\n\nexport type FileResult = {\n metadata: { [key: string]: any };\n options: { [key: string]: any };\n ast: t.File | null;\n code: string | null;\n map: GeneratorResult[\"map\"];\n sourceType: \"script\" | \"module\";\n externalDependencies: Set;\n};\n\nexport function* run(\n config: ResolvedConfig,\n code: string,\n ast?: t.File | t.Program | null,\n): Handler {\n const file = yield* normalizeFile(\n config.passes,\n normalizeOptions(config),\n code,\n ast,\n );\n\n const opts = file.opts;\n try {\n yield* transformFile(file, config.passes);\n } catch (e) {\n e.message = `${opts.filename ?? \"unknown file\"}: ${e.message}`;\n if (!e.code) {\n e.code = \"BABEL_TRANSFORM_ERROR\";\n }\n throw e;\n }\n\n let outputCode, outputMap;\n try {\n if (opts.code !== false) {\n ({ outputCode, outputMap } = generateCode(config.passes, file));\n }\n } catch (e) {\n e.message = `${opts.filename ?? \"unknown file\"}: ${e.message}`;\n if (!e.code) {\n e.code = \"BABEL_GENERATE_ERROR\";\n }\n throw e;\n }\n\n return {\n metadata: file.metadata,\n options: opts,\n ast: opts.ast === true ? file.ast : null,\n code: outputCode === undefined ? null : outputCode,\n map: outputMap === undefined ? null : outputMap,\n sourceType: file.ast.program.sourceType,\n externalDependencies: flattenToSet(config.externalDependencies),\n };\n}\n\nfunction* transformFile(file: File, pluginPasses: PluginPasses): Handler {\n const async = yield* isAsync();\n\n for (const pluginPairs of pluginPasses) {\n const passPairs: [Plugin, PluginPass][] = [];\n const passes = [];\n const visitors = [];\n\n for (const plugin of pluginPairs.concat([loadBlockHoistPlugin()])) {\n const pass = new PluginPass(file, plugin.key, plugin.options, async);\n\n passPairs.push([plugin, pass]);\n passes.push(pass);\n visitors.push(plugin.visitor);\n }\n\n for (const [plugin, pass] of passPairs) {\n if (plugin.pre) {\n const fn = maybeAsync(\n plugin.pre,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n yield* fn.call(pass, file);\n }\n }\n\n // merge all plugin visitors into a single visitor\n const visitor = traverse.visitors.merge(\n visitors,\n passes,\n file.opts.wrapPluginVisitorMethod,\n );\n if (process.env.BABEL_8_BREAKING) {\n traverse(file.ast.program, visitor, file.scope, null, file.path, true);\n } else {\n traverse(file.ast, visitor, file.scope);\n }\n\n for (const [plugin, pass] of passPairs) {\n if (plugin.post) {\n const fn = maybeAsync(\n plugin.post,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n yield* fn.call(pass, file);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/normalize-file.js b/framework-core/node_modules/@babel/core/lib/transformation/normalize-file.js new file mode 100644 index 0000000..20c5dc0 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/normalize-file.js @@ -0,0 +1,129 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = normalizeFile; +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _debug() { + const data = require("debug"); + _debug = function () { + return data; + }; + return data; +} +function _t() { + const data = require("@babel/types"); + _t = function () { + return data; + }; + return data; +} +function _convertSourceMap() { + const data = require("convert-source-map"); + _convertSourceMap = function () { + return data; + }; + return data; +} +var _file = require("./file/file.js"); +var _index = require("../parser/index.js"); +var _cloneDeep = require("./util/clone-deep.js"); +const { + file, + traverseFast +} = _t(); +const debug = _debug()("babel:transform:file"); +const INLINE_SOURCEMAP_REGEX = /^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,.*$/; +const EXTERNAL_SOURCEMAP_REGEX = /^[@#][ \t]+sourceMappingURL=([^\s'"`]+)[ \t]*$/; +function* normalizeFile(pluginPasses, options, code, ast) { + code = `${code || ""}`; + if (ast) { + if (ast.type === "Program") { + ast = file(ast, [], []); + } else if (ast.type !== "File") { + throw new Error("AST root must be a Program or File node"); + } + if (options.cloneInputAst) { + ast = (0, _cloneDeep.default)(ast); + } + } else { + ast = yield* (0, _index.default)(pluginPasses, options, code); + } + let inputMap = null; + if (options.inputSourceMap !== false) { + if (typeof options.inputSourceMap === "object") { + inputMap = _convertSourceMap().fromObject(options.inputSourceMap); + } + if (!inputMap) { + const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast); + if (lastComment) { + try { + inputMap = _convertSourceMap().fromComment("//" + lastComment); + } catch (err) { + { + debug("discarding unknown inline input sourcemap"); + } + } + } + } + if (!inputMap) { + const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast); + if (typeof options.filename === "string" && lastComment) { + try { + const match = EXTERNAL_SOURCEMAP_REGEX.exec(lastComment); + const inputMapContent = _fs().readFileSync(_path().resolve(_path().dirname(options.filename), match[1]), "utf8"); + inputMap = _convertSourceMap().fromJSON(inputMapContent); + } catch (err) { + debug("discarding unknown file input sourcemap", err); + } + } else if (lastComment) { + debug("discarding un-loadable file input sourcemap"); + } + } + } + return new _file.default(options, { + code, + ast: ast, + inputMap + }); +} +function extractCommentsFromList(regex, comments, lastComment) { + if (comments) { + comments = comments.filter(({ + value + }) => { + if (regex.test(value)) { + lastComment = value; + return false; + } + return true; + }); + } + return [comments, lastComment]; +} +function extractComments(regex, ast) { + let lastComment = null; + traverseFast(ast, node => { + [node.leadingComments, lastComment] = extractCommentsFromList(regex, node.leadingComments, lastComment); + [node.innerComments, lastComment] = extractCommentsFromList(regex, node.innerComments, lastComment); + [node.trailingComments, lastComment] = extractCommentsFromList(regex, node.trailingComments, lastComment); + }); + return lastComment; +} +0 && 0; + +//# sourceMappingURL=normalize-file.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/normalize-file.js.map b/framework-core/node_modules/@babel/core/lib/transformation/normalize-file.js.map new file mode 100644 index 0000000..30b7dc8 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/normalize-file.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_fs","data","require","_path","_debug","_t","_convertSourceMap","_file","_index","_cloneDeep","file","traverseFast","debug","buildDebug","INLINE_SOURCEMAP_REGEX","EXTERNAL_SOURCEMAP_REGEX","normalizeFile","pluginPasses","options","code","ast","type","Error","cloneInputAst","cloneDeep","parser","inputMap","inputSourceMap","convertSourceMap","fromObject","lastComment","extractComments","fromComment","err","filename","match","exec","inputMapContent","fs","readFileSync","path","resolve","dirname","fromJSON","File","extractCommentsFromList","regex","comments","filter","value","test","node","leadingComments","innerComments","trailingComments"],"sources":["../../src/transformation/normalize-file.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { file, traverseFast } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { NormalizedOptions, PluginPasses } from \"../config/index.ts\";\nimport convertSourceMap from \"convert-source-map\";\nimport type { SourceMapConverter as Converter } from \"convert-source-map\";\nimport File from \"./file/file.ts\";\nimport parser from \"../parser/index.ts\";\nimport cloneDeep from \"./util/clone-deep.ts\";\n\nconst debug = buildDebug(\"babel:transform:file\");\n\n// These regexps are copied from the convert-source-map package,\n// but without // or /* at the beginning of the comment.\n\nconst INLINE_SOURCEMAP_REGEX =\n /^[@#]\\s+sourceMappingURL=data:(?:application|text)\\/json;(?:charset[:=]\\S+?;)?base64,.*$/;\nconst EXTERNAL_SOURCEMAP_REGEX =\n /^[@#][ \\t]+sourceMappingURL=([^\\s'\"`]+)[ \\t]*$/;\n\nexport type NormalizedFile = {\n code: string;\n ast: t.File;\n inputMap: Converter | null;\n};\n\nexport default function* normalizeFile(\n pluginPasses: PluginPasses,\n options: NormalizedOptions,\n code: string,\n ast?: t.File | t.Program | null,\n): Handler {\n code = `${code || \"\"}`;\n\n if (ast) {\n if (ast.type === \"Program\") {\n ast = file(ast, [], []);\n } else if (ast.type !== \"File\") {\n throw new Error(\"AST root must be a Program or File node\");\n }\n\n if (options.cloneInputAst) {\n ast = cloneDeep(ast);\n }\n } else {\n ast = yield* parser(pluginPasses, options, code);\n }\n\n let inputMap = null;\n if (options.inputSourceMap !== false) {\n // If an explicit object is passed in, it overrides the processing of\n // source maps that may be in the file itself.\n if (typeof options.inputSourceMap === \"object\") {\n inputMap = convertSourceMap.fromObject(options.inputSourceMap);\n }\n\n if (!inputMap) {\n const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast);\n if (lastComment) {\n try {\n inputMap = convertSourceMap.fromComment(\"//\" + lastComment);\n } catch (err) {\n if (process.env.BABEL_8_BREAKING) {\n console.warn(\n \"discarding unknown inline input sourcemap\",\n options.filename,\n err,\n );\n } else {\n debug(\"discarding unknown inline input sourcemap\");\n }\n }\n }\n }\n\n if (!inputMap) {\n const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast);\n if (typeof options.filename === \"string\" && lastComment) {\n try {\n // when `lastComment` is non-null, EXTERNAL_SOURCEMAP_REGEX must have matches\n const match: [string, string] = EXTERNAL_SOURCEMAP_REGEX.exec(\n lastComment,\n ) as any;\n const inputMapContent = fs.readFileSync(\n path.resolve(path.dirname(options.filename), match[1]),\n \"utf8\",\n );\n inputMap = convertSourceMap.fromJSON(inputMapContent);\n } catch (err) {\n debug(\"discarding unknown file input sourcemap\", err);\n }\n } else if (lastComment) {\n debug(\"discarding un-loadable file input sourcemap\");\n }\n }\n }\n\n return new File(options, {\n code,\n ast: ast,\n inputMap,\n });\n}\n\nfunction extractCommentsFromList(\n regex: RegExp,\n comments: t.Comment[],\n lastComment: string | null,\n): [t.Comment[], string | null] {\n if (comments) {\n comments = comments.filter(({ value }) => {\n if (regex.test(value)) {\n lastComment = value;\n return false;\n }\n return true;\n });\n }\n return [comments, lastComment];\n}\n\nfunction extractComments(regex: RegExp, ast: t.Node) {\n let lastComment: string = null;\n traverseFast(ast, node => {\n [node.leadingComments, lastComment] = extractCommentsFromList(\n regex,\n node.leadingComments,\n lastComment,\n );\n [node.innerComments, lastComment] = extractCommentsFromList(\n regex,\n node.innerComments,\n lastComment,\n );\n [node.trailingComments, lastComment] = extractCommentsFromList(\n regex,\n node.trailingComments,\n lastComment,\n );\n });\n return lastComment;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/normalize-opts.js b/framework-core/node_modules/@babel/core/lib/transformation/normalize-opts.js new file mode 100644 index 0000000..c4d9d8b --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/normalize-opts.js @@ -0,0 +1,59 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = normalizeOptions; +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function normalizeOptions(config) { + const { + filename, + cwd, + filenameRelative = typeof filename === "string" ? _path().relative(cwd, filename) : "unknown", + sourceType = "module", + inputSourceMap, + sourceMaps = !!inputSourceMap, + sourceRoot = config.options.moduleRoot, + sourceFileName = _path().basename(filenameRelative), + comments = true, + compact = "auto" + } = config.options; + const opts = config.options; + const options = Object.assign({}, opts, { + parserOpts: Object.assign({ + sourceType: _path().extname(filenameRelative) === ".mjs" ? "module" : sourceType, + sourceFileName: filename, + plugins: [] + }, opts.parserOpts), + generatorOpts: Object.assign({ + filename, + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + retainLines: opts.retainLines, + comments, + shouldPrintComment: opts.shouldPrintComment, + compact, + minified: opts.minified, + sourceMaps: !!sourceMaps, + sourceRoot, + sourceFileName + }, opts.generatorOpts) + }); + for (const plugins of config.passes) { + for (const plugin of plugins) { + if (plugin.manipulateOptions) { + plugin.manipulateOptions(options, options.parserOpts); + } + } + } + return options; +} +0 && 0; + +//# sourceMappingURL=normalize-opts.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/normalize-opts.js.map b/framework-core/node_modules/@babel/core/lib/transformation/normalize-opts.js.map new file mode 100644 index 0000000..a6070fd --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/normalize-opts.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","data","require","normalizeOptions","config","filename","cwd","filenameRelative","path","relative","sourceType","inputSourceMap","sourceMaps","sourceRoot","options","moduleRoot","sourceFileName","basename","comments","compact","opts","Object","assign","parserOpts","extname","plugins","generatorOpts","auxiliaryCommentBefore","auxiliaryCommentAfter","retainLines","shouldPrintComment","minified","passes","plugin","manipulateOptions"],"sources":["../../src/transformation/normalize-opts.ts"],"sourcesContent":["import path from \"node:path\";\nimport type { NormalizedOptions, ResolvedConfig } from \"../config/index.ts\";\n\nexport default function normalizeOptions(\n config: ResolvedConfig,\n): NormalizedOptions {\n const {\n filename,\n cwd,\n filenameRelative = typeof filename === \"string\"\n ? path.relative(cwd, filename)\n : \"unknown\",\n sourceType = \"module\",\n inputSourceMap,\n sourceMaps = !!inputSourceMap,\n sourceRoot = process.env.BABEL_8_BREAKING\n ? undefined\n : // @ts-ignore(Babel 7 vs Babel 8) moduleRoot is a Babel 7 option\n config.options.moduleRoot,\n\n sourceFileName = path.basename(filenameRelative),\n\n comments = true,\n compact = \"auto\",\n } = config.options;\n\n const opts = config.options;\n\n const options: NormalizedOptions = {\n ...opts,\n\n parserOpts: {\n sourceType:\n path.extname(filenameRelative) === \".mjs\" ? \"module\" : sourceType,\n\n // @ts-expect-error We should have passed `sourceFilename` here\n // pending https://github.com/babel/babel/issues/15917#issuecomment-2789278964\n sourceFileName: filename,\n plugins: [],\n ...opts.parserOpts,\n },\n\n generatorOpts: {\n // General generator flags.\n filename,\n\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n retainLines: opts.retainLines,\n comments,\n shouldPrintComment: opts.shouldPrintComment,\n compact,\n minified: opts.minified,\n\n // Source-map generation flags.\n // babel-generator does not differentiate between `true`, `\"inline\"` or `\"both\"`\n sourceMaps: !!sourceMaps,\n sourceRoot,\n sourceFileName,\n\n ...opts.generatorOpts,\n },\n };\n\n for (const plugins of config.passes) {\n for (const plugin of plugins) {\n if (plugin.manipulateOptions) {\n plugin.manipulateOptions(options, options.parserOpts);\n }\n }\n }\n\n return options;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGe,SAASE,gBAAgBA,CACtCC,MAAsB,EACH;EACnB,MAAM;IACJC,QAAQ;IACRC,GAAG;IACHC,gBAAgB,GAAG,OAAOF,QAAQ,KAAK,QAAQ,GAC3CG,MAAGA,CAAC,CAACC,QAAQ,CAACH,GAAG,EAAED,QAAQ,CAAC,GAC5B,SAAS;IACbK,UAAU,GAAG,QAAQ;IACrBC,cAAc;IACdC,UAAU,GAAG,CAAC,CAACD,cAAc;IAC7BE,UAAU,GAGNT,MAAM,CAACU,OAAO,CAACC,UAAU;IAE7BC,cAAc,GAAGR,MAAGA,CAAC,CAACS,QAAQ,CAACV,gBAAgB,CAAC;IAEhDW,QAAQ,GAAG,IAAI;IACfC,OAAO,GAAG;EACZ,CAAC,GAAGf,MAAM,CAACU,OAAO;EAElB,MAAMM,IAAI,GAAGhB,MAAM,CAACU,OAAO;EAE3B,MAAMA,OAA0B,GAAAO,MAAA,CAAAC,MAAA,KAC3BF,IAAI;IAEPG,UAAU,EAAAF,MAAA,CAAAC,MAAA;MACRZ,UAAU,EACRF,MAAGA,CAAC,CAACgB,OAAO,CAACjB,gBAAgB,CAAC,KAAK,MAAM,GAAG,QAAQ,GAAGG,UAAU;MAInEM,cAAc,EAAEX,QAAQ;MACxBoB,OAAO,EAAE;IAAE,GACRL,IAAI,CAACG,UAAU,CACnB;IAEDG,aAAa,EAAAL,MAAA,CAAAC,MAAA;MAEXjB,QAAQ;MAERsB,sBAAsB,EAAEP,IAAI,CAACO,sBAAsB;MACnDC,qBAAqB,EAAER,IAAI,CAACQ,qBAAqB;MACjDC,WAAW,EAAET,IAAI,CAACS,WAAW;MAC7BX,QAAQ;MACRY,kBAAkB,EAAEV,IAAI,CAACU,kBAAkB;MAC3CX,OAAO;MACPY,QAAQ,EAAEX,IAAI,CAACW,QAAQ;MAIvBnB,UAAU,EAAE,CAAC,CAACA,UAAU;MACxBC,UAAU;MACVG;IAAc,GAEXI,IAAI,CAACM,aAAa;EACtB,EACF;EAED,KAAK,MAAMD,OAAO,IAAIrB,MAAM,CAAC4B,MAAM,EAAE;IACnC,KAAK,MAAMC,MAAM,IAAIR,OAAO,EAAE;MAC5B,IAAIQ,MAAM,CAACC,iBAAiB,EAAE;QAC5BD,MAAM,CAACC,iBAAiB,CAACpB,OAAO,EAAEA,OAAO,CAACS,UAAU,CAAC;MACvD;IACF;EACF;EAEA,OAAOT,OAAO;AAChB;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/plugin-pass.js b/framework-core/node_modules/@babel/core/lib/transformation/plugin-pass.js new file mode 100644 index 0000000..d8f2c5c --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/plugin-pass.js @@ -0,0 +1,50 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +class PluginPass { + constructor(file, key, options, isAsync) { + this._map = new Map(); + this.key = void 0; + this.file = void 0; + this.opts = void 0; + this.cwd = void 0; + this.filename = void 0; + this.isAsync = void 0; + this.key = key; + this.file = file; + this.opts = options || {}; + this.cwd = file.opts.cwd; + this.filename = file.opts.filename; + this.isAsync = isAsync; + } + set(key, val) { + this._map.set(key, val); + } + get(key) { + return this._map.get(key); + } + availableHelper(name, versionRange) { + return this.file.availableHelper(name, versionRange); + } + addHelper(name) { + return this.file.addHelper(name); + } + buildCodeFrameError(node, msg, _Error) { + return this.file.buildCodeFrameError(node, msg, _Error); + } +} +exports.default = PluginPass; +{ + PluginPass.prototype.getModuleName = function getModuleName() { + return this.file.getModuleName(); + }; + PluginPass.prototype.addImport = function addImport() { + this.file.addImport(); + }; +} +0 && 0; + +//# sourceMappingURL=plugin-pass.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/plugin-pass.js.map b/framework-core/node_modules/@babel/core/lib/transformation/plugin-pass.js.map new file mode 100644 index 0000000..e691707 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/plugin-pass.js.map @@ -0,0 +1 @@ +{"version":3,"names":["PluginPass","constructor","file","key","options","isAsync","_map","Map","opts","cwd","filename","set","val","get","availableHelper","name","versionRange","addHelper","buildCodeFrameError","node","msg","_Error","exports","default","prototype","getModuleName","addImport"],"sources":["../../src/transformation/plugin-pass.ts"],"sourcesContent":["import type * as t from \"@babel/types\";\nimport type File from \"./file/file.ts\";\n\nexport default class PluginPass {\n _map: Map = new Map();\n key: string | undefined | null;\n file: File;\n opts: Partial;\n\n /**\n * The working directory that Babel's programmatic options are loaded\n * relative to.\n */\n cwd: string;\n\n /** The absolute path of the file being compiled. */\n filename: string | void;\n\n /**\n * Is Babel executed in async mode or not.\n */\n isAsync: boolean;\n\n constructor(\n file: File,\n key: string | null,\n options: Options | undefined,\n isAsync: boolean,\n ) {\n this.key = key;\n this.file = file;\n this.opts = options || {};\n this.cwd = file.opts.cwd;\n this.filename = file.opts.filename;\n this.isAsync = isAsync;\n }\n\n set(key: unknown, val: unknown) {\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n availableHelper(name: string, versionRange?: string | null) {\n return this.file.availableHelper(name, versionRange);\n }\n\n addHelper(name: string) {\n return this.file.addHelper(name);\n }\n\n buildCodeFrameError(\n node: t.Node | undefined | null,\n msg: string,\n _Error?: typeof Error,\n ) {\n return this.file.buildCodeFrameError(node, msg, _Error);\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n (PluginPass as any).prototype.getModuleName = function getModuleName(\n this: PluginPass,\n ): string | undefined {\n // @ts-expect-error only exists in Babel 7\n return this.file.getModuleName();\n };\n (PluginPass as any).prototype.addImport = function addImport(\n this: PluginPass,\n ): void {\n // @ts-expect-error only exists in Babel 7\n this.file.addImport();\n };\n}\n"],"mappings":";;;;;;AAGe,MAAMA,UAAU,CAAmB;EAoBhDC,WAAWA,CACTC,IAAU,EACVC,GAAkB,EAClBC,OAA4B,EAC5BC,OAAgB,EAChB;IAAA,KAxBFC,IAAI,GAA0B,IAAIC,GAAG,CAAC,CAAC;IAAA,KACvCJ,GAAG;IAAA,KACHD,IAAI;IAAA,KACJM,IAAI;IAAA,KAMJC,GAAG;IAAA,KAGHC,QAAQ;IAAA,KAKRL,OAAO;IAQL,IAAI,CAACF,GAAG,GAAGA,GAAG;IACd,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACM,IAAI,GAAGJ,OAAO,IAAI,CAAC,CAAC;IACzB,IAAI,CAACK,GAAG,GAAGP,IAAI,CAACM,IAAI,CAACC,GAAG;IACxB,IAAI,CAACC,QAAQ,GAAGR,IAAI,CAACM,IAAI,CAACE,QAAQ;IAClC,IAAI,CAACL,OAAO,GAAGA,OAAO;EACxB;EAEAM,GAAGA,CAACR,GAAY,EAAES,GAAY,EAAE;IAC9B,IAAI,CAACN,IAAI,CAACK,GAAG,CAACR,GAAG,EAAES,GAAG,CAAC;EACzB;EAEAC,GAAGA,CAACV,GAAY,EAAO;IACrB,OAAO,IAAI,CAACG,IAAI,CAACO,GAAG,CAACV,GAAG,CAAC;EAC3B;EAEAW,eAAeA,CAACC,IAAY,EAAEC,YAA4B,EAAE;IAC1D,OAAO,IAAI,CAACd,IAAI,CAACY,eAAe,CAACC,IAAI,EAAEC,YAAY,CAAC;EACtD;EAEAC,SAASA,CAACF,IAAY,EAAE;IACtB,OAAO,IAAI,CAACb,IAAI,CAACe,SAAS,CAACF,IAAI,CAAC;EAClC;EAEAG,mBAAmBA,CACjBC,IAA+B,EAC/BC,GAAW,EACXC,MAAqB,EACrB;IACA,OAAO,IAAI,CAACnB,IAAI,CAACgB,mBAAmB,CAACC,IAAI,EAAEC,GAAG,EAAEC,MAAM,CAAC;EACzD;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAvB,UAAA;AAEkC;EAChCA,UAAU,CAASwB,SAAS,CAACC,aAAa,GAAG,SAASA,aAAaA,CAAA,EAE9C;IAEpB,OAAO,IAAI,CAACvB,IAAI,CAACuB,aAAa,CAAC,CAAC;EAClC,CAAC;EACAzB,UAAU,CAASwB,SAAS,CAACE,SAAS,GAAG,SAASA,SAASA,CAAA,EAEpD;IAEN,IAAI,CAACxB,IAAI,CAACwB,SAAS,CAAC,CAAC;EACvB,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/transformation/util/clone-deep.js b/framework-core/node_modules/@babel/core/lib/transformation/util/clone-deep.js new file mode 100644 index 0000000..bc8eaa8 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/util/clone-deep.js @@ -0,0 +1,56 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; +const circleSet = new Set(); +let depth = 0; +function deepClone(value, cache, allowCircle) { + if (value !== null) { + if (allowCircle) { + if (cache.has(value)) return cache.get(value); + } else if (++depth > 250) { + if (circleSet.has(value)) { + depth = 0; + circleSet.clear(); + throw new Error("Babel-deepClone: Cycles are not allowed in AST"); + } + circleSet.add(value); + } + let cloned; + if (Array.isArray(value)) { + cloned = new Array(value.length); + if (allowCircle) cache.set(value, cloned); + for (let i = 0; i < value.length; i++) { + cloned[i] = typeof value[i] !== "object" ? value[i] : deepClone(value[i], cache, allowCircle); + } + } else { + cloned = {}; + if (allowCircle) cache.set(value, cloned); + const keys = Object.keys(value); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + cloned[key] = typeof value[key] !== "object" ? value[key] : deepClone(value[key], cache, allowCircle || key === "leadingComments" || key === "innerComments" || key === "trailingComments" || key === "extra"); + } + } + if (!allowCircle) { + if (depth-- > 250) circleSet.delete(value); + } + return cloned; + } + return value; +} +function _default(value) { + if (typeof value !== "object") return value; + { + try { + return deepClone(value, new Map(), true); + } catch (_) { + return structuredClone(value); + } + } +} +0 && 0; + +//# sourceMappingURL=clone-deep.js.map diff --git a/framework-core/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map b/framework-core/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map new file mode 100644 index 0000000..2c0a564 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map @@ -0,0 +1 @@ +{"version":3,"names":["circleSet","Set","depth","deepClone","value","cache","allowCircle","has","get","clear","Error","add","cloned","Array","isArray","length","set","i","keys","Object","key","delete","_default","Map","_","structuredClone"],"sources":["../../../src/transformation/util/clone-deep.ts"],"sourcesContent":["const circleSet = new Set();\nlet depth = 0;\n// https://github.com/babel/babel/pull/14583#discussion_r882828856\nfunction deepClone(\n value: any,\n cache: Map,\n allowCircle: boolean,\n): any {\n if (value !== null) {\n if (allowCircle) {\n if (cache.has(value)) return cache.get(value);\n } else if (++depth > 250) {\n if (circleSet.has(value)) {\n depth = 0;\n circleSet.clear();\n throw new Error(\"Babel-deepClone: Cycles are not allowed in AST\");\n }\n circleSet.add(value);\n }\n let cloned: any;\n if (Array.isArray(value)) {\n cloned = new Array(value.length);\n if (allowCircle) cache.set(value, cloned);\n for (let i = 0; i < value.length; i++) {\n cloned[i] =\n typeof value[i] !== \"object\"\n ? value[i]\n : deepClone(value[i], cache, allowCircle);\n }\n } else {\n cloned = {};\n if (allowCircle) cache.set(value, cloned);\n const keys = Object.keys(value);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n cloned[key] =\n typeof value[key] !== \"object\"\n ? value[key]\n : deepClone(\n value[key],\n cache,\n allowCircle ||\n key === \"leadingComments\" ||\n key === \"innerComments\" ||\n key === \"trailingComments\" ||\n key === \"extra\",\n );\n }\n }\n if (!allowCircle) {\n if (depth-- > 250) circleSet.delete(value);\n }\n return cloned;\n }\n return value;\n}\n\nexport default function (value: T): T {\n if (typeof value !== \"object\") return value;\n\n if (process.env.BABEL_8_BREAKING) {\n if (!process.env.IS_PUBLISH && depth > 0) {\n throw new Error(\"depth > 0\");\n }\n return deepClone(value, new Map(), false);\n } else {\n try {\n return deepClone(value, new Map(), true);\n } catch (_) {\n return structuredClone(value);\n }\n }\n}\n"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;AAC3B,IAAIC,KAAK,GAAG,CAAC;AAEb,SAASC,SAASA,CAChBC,KAAU,EACVC,KAAoB,EACpBC,WAAoB,EACf;EACL,IAAIF,KAAK,KAAK,IAAI,EAAE;IAClB,IAAIE,WAAW,EAAE;MACf,IAAID,KAAK,CAACE,GAAG,CAACH,KAAK,CAAC,EAAE,OAAOC,KAAK,CAACG,GAAG,CAACJ,KAAK,CAAC;IAC/C,CAAC,MAAM,IAAI,EAAEF,KAAK,GAAG,GAAG,EAAE;MACxB,IAAIF,SAAS,CAACO,GAAG,CAACH,KAAK,CAAC,EAAE;QACxBF,KAAK,GAAG,CAAC;QACTF,SAAS,CAACS,KAAK,CAAC,CAAC;QACjB,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;MACnE;MACAV,SAAS,CAACW,GAAG,CAACP,KAAK,CAAC;IACtB;IACA,IAAIQ,MAAW;IACf,IAAIC,KAAK,CAACC,OAAO,CAACV,KAAK,CAAC,EAAE;MACxBQ,MAAM,GAAG,IAAIC,KAAK,CAACT,KAAK,CAACW,MAAM,CAAC;MAChC,IAAIT,WAAW,EAAED,KAAK,CAACW,GAAG,CAACZ,KAAK,EAAEQ,MAAM,CAAC;MACzC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,KAAK,CAACW,MAAM,EAAEE,CAAC,EAAE,EAAE;QACrCL,MAAM,CAACK,CAAC,CAAC,GACP,OAAOb,KAAK,CAACa,CAAC,CAAC,KAAK,QAAQ,GACxBb,KAAK,CAACa,CAAC,CAAC,GACRd,SAAS,CAACC,KAAK,CAACa,CAAC,CAAC,EAAEZ,KAAK,EAAEC,WAAW,CAAC;MAC/C;IACF,CAAC,MAAM;MACLM,MAAM,GAAG,CAAC,CAAC;MACX,IAAIN,WAAW,EAAED,KAAK,CAACW,GAAG,CAACZ,KAAK,EAAEQ,MAAM,CAAC;MACzC,MAAMM,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACd,KAAK,CAAC;MAC/B,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,IAAI,CAACH,MAAM,EAAEE,CAAC,EAAE,EAAE;QACpC,MAAMG,GAAG,GAAGF,IAAI,CAACD,CAAC,CAAC;QACnBL,MAAM,CAACQ,GAAG,CAAC,GACT,OAAOhB,KAAK,CAACgB,GAAG,CAAC,KAAK,QAAQ,GAC1BhB,KAAK,CAACgB,GAAG,CAAC,GACVjB,SAAS,CACPC,KAAK,CAACgB,GAAG,CAAC,EACVf,KAAK,EACLC,WAAW,IACTc,GAAG,KAAK,iBAAiB,IACzBA,GAAG,KAAK,eAAe,IACvBA,GAAG,KAAK,kBAAkB,IAC1BA,GAAG,KAAK,OACZ,CAAC;MACT;IACF;IACA,IAAI,CAACd,WAAW,EAAE;MAChB,IAAIJ,KAAK,EAAE,GAAG,GAAG,EAAEF,SAAS,CAACqB,MAAM,CAACjB,KAAK,CAAC;IAC5C;IACA,OAAOQ,MAAM;EACf;EACA,OAAOR,KAAK;AACd;AAEe,SAAAkB,SAAalB,KAAQ,EAAK;EACvC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK;EAOpC;IACL,IAAI;MACF,OAAOD,SAAS,CAACC,KAAK,EAAE,IAAImB,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;IAC1C,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV,OAAOC,eAAe,CAACrB,KAAK,CAAC;IAC/B;EACF;AACF;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/lib/vendor/import-meta-resolve.js b/framework-core/node_modules/@babel/core/lib/vendor/import-meta-resolve.js new file mode 100644 index 0000000..90a5911 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/vendor/import-meta-resolve.js @@ -0,0 +1,1042 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.moduleResolve = moduleResolve; +exports.resolve = resolve; +function _assert() { + const data = require("assert"); + _assert = function () { + return data; + }; + return data; +} +function _fs() { + const data = _interopRequireWildcard(require("fs"), true); + _fs = function () { + return data; + }; + return data; +} +function _process() { + const data = require("process"); + _process = function () { + return data; + }; + return data; +} +function _url() { + const data = require("url"); + _url = function () { + return data; + }; + return data; +} +function _path() { + const data = require("path"); + _path = function () { + return data; + }; + return data; +} +function _module() { + const data = require("module"); + _module = function () { + return data; + }; + return data; +} +function _v() { + const data = require("v8"); + _v = function () { + return data; + }; + return data; +} +function _util() { + const data = require("util"); + _util = function () { + return data; + }; + return data; +} +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } +const own$1 = {}.hasOwnProperty; +const classRegExp = /^([A-Z][a-z\d]*)+$/; +const kTypes = new Set(['string', 'function', 'number', 'object', 'Function', 'Object', 'boolean', 'bigint', 'symbol']); +const codes = {}; +function formatList(array, type = 'and') { + return array.length < 3 ? array.join(` ${type} `) : `${array.slice(0, -1).join(', ')}, ${type} ${array[array.length - 1]}`; +} +const messages = new Map(); +const nodeInternalPrefix = '__node_internal_'; +let userStackTraceLimit; +codes.ERR_INVALID_ARG_TYPE = createError('ERR_INVALID_ARG_TYPE', (name, expected, actual) => { + _assert()(typeof name === 'string', "'name' must be a string"); + if (!Array.isArray(expected)) { + expected = [expected]; + } + let message = 'The '; + if (name.endsWith(' argument')) { + message += `${name} `; + } else { + const type = name.includes('.') ? 'property' : 'argument'; + message += `"${name}" ${type} `; + } + message += 'must be '; + const types = []; + const instances = []; + const other = []; + for (const value of expected) { + _assert()(typeof value === 'string', 'All expected entries have to be of type string'); + if (kTypes.has(value)) { + types.push(value.toLowerCase()); + } else if (classRegExp.exec(value) === null) { + _assert()(value !== 'object', 'The value "object" should be written as "Object"'); + other.push(value); + } else { + instances.push(value); + } + } + if (instances.length > 0) { + const pos = types.indexOf('object'); + if (pos !== -1) { + types.slice(pos, 1); + instances.push('Object'); + } + } + if (types.length > 0) { + message += `${types.length > 1 ? 'one of type' : 'of type'} ${formatList(types, 'or')}`; + if (instances.length > 0 || other.length > 0) message += ' or '; + } + if (instances.length > 0) { + message += `an instance of ${formatList(instances, 'or')}`; + if (other.length > 0) message += ' or '; + } + if (other.length > 0) { + if (other.length > 1) { + message += `one of ${formatList(other, 'or')}`; + } else { + if (other[0].toLowerCase() !== other[0]) message += 'an '; + message += `${other[0]}`; + } + } + message += `. Received ${determineSpecificType(actual)}`; + return message; +}, TypeError); +codes.ERR_INVALID_MODULE_SPECIFIER = createError('ERR_INVALID_MODULE_SPECIFIER', (request, reason, base = undefined) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ''}`; +}, TypeError); +codes.ERR_INVALID_PACKAGE_CONFIG = createError('ERR_INVALID_PACKAGE_CONFIG', (path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ''}${message ? `. ${message}` : ''}`; +}, Error); +codes.ERR_INVALID_PACKAGE_TARGET = createError('ERR_INVALID_PACKAGE_TARGET', (packagePath, key, target, isImport = false, base = undefined) => { + const relatedError = typeof target === 'string' && !isImport && target.length > 0 && !target.startsWith('./'); + if (key === '.') { + _assert()(isImport === false); + return `Invalid "exports" main target ${JSON.stringify(target)} defined ` + `in the package config ${packagePath}package.json${base ? ` imported from ${base}` : ''}${relatedError ? '; targets must start with "./"' : ''}`; + } + return `Invalid "${isImport ? 'imports' : 'exports'}" target ${JSON.stringify(target)} defined for '${key}' in the package config ${packagePath}package.json${base ? ` imported from ${base}` : ''}${relatedError ? '; targets must start with "./"' : ''}`; +}, Error); +codes.ERR_MODULE_NOT_FOUND = createError('ERR_MODULE_NOT_FOUND', (path, base, exactUrl = false) => { + return `Cannot find ${exactUrl ? 'module' : 'package'} '${path}' imported from ${base}`; +}, Error); +codes.ERR_NETWORK_IMPORT_DISALLOWED = createError('ERR_NETWORK_IMPORT_DISALLOWED', "import of '%s' by %s is not supported: %s", Error); +codes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError('ERR_PACKAGE_IMPORT_NOT_DEFINED', (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ''} imported from ${base}`; +}, TypeError); +codes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError('ERR_PACKAGE_PATH_NOT_EXPORTED', (packagePath, subpath, base = undefined) => { + if (subpath === '.') return `No "exports" main defined in ${packagePath}package.json${base ? ` imported from ${base}` : ''}`; + return `Package subpath '${subpath}' is not defined by "exports" in ${packagePath}package.json${base ? ` imported from ${base}` : ''}`; +}, Error); +codes.ERR_UNSUPPORTED_DIR_IMPORT = createError('ERR_UNSUPPORTED_DIR_IMPORT', "Directory import '%s' is not supported " + 'resolving ES modules imported from %s', Error); +codes.ERR_UNSUPPORTED_RESOLVE_REQUEST = createError('ERR_UNSUPPORTED_RESOLVE_REQUEST', 'Failed to resolve module specifier "%s" from "%s": Invalid relative URL or base scheme is not hierarchical.', TypeError); +codes.ERR_UNKNOWN_FILE_EXTENSION = createError('ERR_UNKNOWN_FILE_EXTENSION', (extension, path) => { + return `Unknown file extension "${extension}" for ${path}`; +}, TypeError); +codes.ERR_INVALID_ARG_VALUE = createError('ERR_INVALID_ARG_VALUE', (name, value, reason = 'is invalid') => { + let inspected = (0, _util().inspect)(value); + if (inspected.length > 128) { + inspected = `${inspected.slice(0, 128)}...`; + } + const type = name.includes('.') ? 'property' : 'argument'; + return `The ${type} '${name}' ${reason}. Received ${inspected}`; +}, TypeError); +function createError(sym, value, constructor) { + messages.set(sym, value); + return makeNodeErrorWithCode(constructor, sym); +} +function makeNodeErrorWithCode(Base, key) { + return NodeError; + function NodeError(...parameters) { + const limit = Error.stackTraceLimit; + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0; + const error = new Base(); + if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit; + const message = getMessage(key, parameters, error); + Object.defineProperties(error, { + message: { + value: message, + enumerable: false, + writable: true, + configurable: true + }, + toString: { + value() { + return `${this.name} [${key}]: ${this.message}`; + }, + enumerable: false, + writable: true, + configurable: true + } + }); + captureLargerStackTrace(error); + error.code = key; + return error; + } +} +function isErrorStackTraceLimitWritable() { + try { + if (_v().startupSnapshot.isBuildingSnapshot()) { + return false; + } + } catch (_unused) {} + const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit'); + if (desc === undefined) { + return Object.isExtensible(Error); + } + return own$1.call(desc, 'writable') && desc.writable !== undefined ? desc.writable : desc.set !== undefined; +} +function hideStackFrames(wrappedFunction) { + const hidden = nodeInternalPrefix + wrappedFunction.name; + Object.defineProperty(wrappedFunction, 'name', { + value: hidden + }); + return wrappedFunction; +} +const captureLargerStackTrace = hideStackFrames(function (error) { + const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable(); + if (stackTraceLimitIsWritable) { + userStackTraceLimit = Error.stackTraceLimit; + Error.stackTraceLimit = Number.POSITIVE_INFINITY; + } + Error.captureStackTrace(error); + if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit; + return error; +}); +function getMessage(key, parameters, self) { + const message = messages.get(key); + _assert()(message !== undefined, 'expected `message` to be found'); + if (typeof message === 'function') { + _assert()(message.length <= parameters.length, `Code: ${key}; The provided arguments length (${parameters.length}) does not ` + `match the required ones (${message.length}).`); + return Reflect.apply(message, self, parameters); + } + const regex = /%[dfijoOs]/g; + let expectedLength = 0; + while (regex.exec(message) !== null) expectedLength++; + _assert()(expectedLength === parameters.length, `Code: ${key}; The provided arguments length (${parameters.length}) does not ` + `match the required ones (${expectedLength}).`); + if (parameters.length === 0) return message; + parameters.unshift(message); + return Reflect.apply(_util().format, null, parameters); +} +function determineSpecificType(value) { + if (value === null || value === undefined) { + return String(value); + } + if (typeof value === 'function' && value.name) { + return `function ${value.name}`; + } + if (typeof value === 'object') { + if (value.constructor && value.constructor.name) { + return `an instance of ${value.constructor.name}`; + } + return `${(0, _util().inspect)(value, { + depth: -1 + })}`; + } + let inspected = (0, _util().inspect)(value, { + colors: false + }); + if (inspected.length > 28) { + inspected = `${inspected.slice(0, 25)}...`; + } + return `type ${typeof value} (${inspected})`; +} +const hasOwnProperty$1 = {}.hasOwnProperty; +const { + ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG$1 +} = codes; +const cache = new Map(); +function read(jsonPath, { + base, + specifier +}) { + const existing = cache.get(jsonPath); + if (existing) { + return existing; + } + let string; + try { + string = _fs().default.readFileSync(_path().toNamespacedPath(jsonPath), 'utf8'); + } catch (error) { + const exception = error; + if (exception.code !== 'ENOENT') { + throw exception; + } + } + const result = { + exists: false, + pjsonPath: jsonPath, + main: undefined, + name: undefined, + type: 'none', + exports: undefined, + imports: undefined + }; + if (string !== undefined) { + let parsed; + try { + parsed = JSON.parse(string); + } catch (error_) { + const cause = error_; + const error = new ERR_INVALID_PACKAGE_CONFIG$1(jsonPath, (base ? `"${specifier}" from ` : '') + (0, _url().fileURLToPath)(base || specifier), cause.message); + error.cause = cause; + throw error; + } + result.exists = true; + if (hasOwnProperty$1.call(parsed, 'name') && typeof parsed.name === 'string') { + result.name = parsed.name; + } + if (hasOwnProperty$1.call(parsed, 'main') && typeof parsed.main === 'string') { + result.main = parsed.main; + } + if (hasOwnProperty$1.call(parsed, 'exports')) { + result.exports = parsed.exports; + } + if (hasOwnProperty$1.call(parsed, 'imports')) { + result.imports = parsed.imports; + } + if (hasOwnProperty$1.call(parsed, 'type') && (parsed.type === 'commonjs' || parsed.type === 'module')) { + result.type = parsed.type; + } + } + cache.set(jsonPath, result); + return result; +} +function getPackageScopeConfig(resolved) { + let packageJSONUrl = new URL('package.json', resolved); + while (true) { + const packageJSONPath = packageJSONUrl.pathname; + if (packageJSONPath.endsWith('node_modules/package.json')) { + break; + } + const packageConfig = read((0, _url().fileURLToPath)(packageJSONUrl), { + specifier: resolved + }); + if (packageConfig.exists) { + return packageConfig; + } + const lastPackageJSONUrl = packageJSONUrl; + packageJSONUrl = new URL('../package.json', packageJSONUrl); + if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { + break; + } + } + const packageJSONPath = (0, _url().fileURLToPath)(packageJSONUrl); + return { + pjsonPath: packageJSONPath, + exists: false, + type: 'none' + }; +} +function getPackageType(url) { + return getPackageScopeConfig(url).type; +} +const { + ERR_UNKNOWN_FILE_EXTENSION +} = codes; +const hasOwnProperty = {}.hasOwnProperty; +const extensionFormatMap = { + __proto__: null, + '.cjs': 'commonjs', + '.js': 'module', + '.json': 'json', + '.mjs': 'module' +}; +function mimeToFormat(mime) { + if (mime && /\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(mime)) return 'module'; + if (mime === 'application/json') return 'json'; + return null; +} +const protocolHandlers = { + __proto__: null, + 'data:': getDataProtocolModuleFormat, + 'file:': getFileProtocolModuleFormat, + 'http:': getHttpProtocolModuleFormat, + 'https:': getHttpProtocolModuleFormat, + 'node:'() { + return 'builtin'; + } +}; +function getDataProtocolModuleFormat(parsed) { + const { + 1: mime + } = /^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(parsed.pathname) || [null, null, null]; + return mimeToFormat(mime); +} +function extname(url) { + const pathname = url.pathname; + let index = pathname.length; + while (index--) { + const code = pathname.codePointAt(index); + if (code === 47) { + return ''; + } + if (code === 46) { + return pathname.codePointAt(index - 1) === 47 ? '' : pathname.slice(index); + } + } + return ''; +} +function getFileProtocolModuleFormat(url, _context, ignoreErrors) { + const value = extname(url); + if (value === '.js') { + const packageType = getPackageType(url); + if (packageType !== 'none') { + return packageType; + } + return 'commonjs'; + } + if (value === '') { + const packageType = getPackageType(url); + if (packageType === 'none' || packageType === 'commonjs') { + return 'commonjs'; + } + return 'module'; + } + const format = extensionFormatMap[value]; + if (format) return format; + if (ignoreErrors) { + return undefined; + } + const filepath = (0, _url().fileURLToPath)(url); + throw new ERR_UNKNOWN_FILE_EXTENSION(value, filepath); +} +function getHttpProtocolModuleFormat() {} +function defaultGetFormatWithoutErrors(url, context) { + const protocol = url.protocol; + if (!hasOwnProperty.call(protocolHandlers, protocol)) { + return null; + } + return protocolHandlers[protocol](url, context, true) || null; +} +const { + ERR_INVALID_ARG_VALUE +} = codes; +const DEFAULT_CONDITIONS = Object.freeze(['node', 'import']); +const DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS); +function getDefaultConditions() { + return DEFAULT_CONDITIONS; +} +function getDefaultConditionsSet() { + return DEFAULT_CONDITIONS_SET; +} +function getConditionsSet(conditions) { + if (conditions !== undefined && conditions !== getDefaultConditions()) { + if (!Array.isArray(conditions)) { + throw new ERR_INVALID_ARG_VALUE('conditions', conditions, 'expected an array'); + } + return new Set(conditions); + } + return getDefaultConditionsSet(); +} +const RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace]; +const { + ERR_NETWORK_IMPORT_DISALLOWED, + ERR_INVALID_MODULE_SPECIFIER, + ERR_INVALID_PACKAGE_CONFIG, + ERR_INVALID_PACKAGE_TARGET, + ERR_MODULE_NOT_FOUND, + ERR_PACKAGE_IMPORT_NOT_DEFINED, + ERR_PACKAGE_PATH_NOT_EXPORTED, + ERR_UNSUPPORTED_DIR_IMPORT, + ERR_UNSUPPORTED_RESOLVE_REQUEST +} = codes; +const own = {}.hasOwnProperty; +const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i; +const deprecatedInvalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; +const invalidPackageNameRegEx = /^\.|%|\\/; +const patternRegEx = /\*/g; +const encodedSeparatorRegEx = /%2f|%5c/i; +const emittedPackageWarnings = new Set(); +const doubleSlashRegEx = /[/\\]{2}/; +function emitInvalidSegmentDeprecation(target, request, match, packageJsonUrl, internal, base, isTarget) { + if (_process().noDeprecation) { + return; + } + const pjsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null; + _process().emitWarning(`Use of deprecated ${double ? 'double slash' : 'leading or trailing slash matching'} resolving "${target}" for module ` + `request "${request}" ${request === match ? '' : `matched to "${match}" `}in the "${internal ? 'imports' : 'exports'}" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, _url().fileURLToPath)(base)}` : ''}.`, 'DeprecationWarning', 'DEP0166'); +} +function emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) { + if (_process().noDeprecation) { + return; + } + const format = defaultGetFormatWithoutErrors(url, { + parentURL: base.href + }); + if (format !== 'module') return; + const urlPath = (0, _url().fileURLToPath)(url.href); + const packagePath = (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)); + const basePath = (0, _url().fileURLToPath)(base); + if (!main) { + _process().emitWarning(`No "main" or "exports" field defined in the package.json for ${packagePath} resolving the main entry point "${urlPath.slice(packagePath.length)}", imported from ${basePath}.\nDefault "index" lookups for the main are deprecated for ES modules.`, 'DeprecationWarning', 'DEP0151'); + } else if (_path().resolve(packagePath, main) !== urlPath) { + _process().emitWarning(`Package ${packagePath} has a "main" field set to "${main}", ` + `excluding the full filename and extension to the resolved file at "${urlPath.slice(packagePath.length)}", imported from ${basePath}.\n Automatic extension resolution of the "main" field is ` + 'deprecated for ES modules.', 'DeprecationWarning', 'DEP0151'); + } +} +function tryStatSync(path) { + try { + return (0, _fs().statSync)(path); + } catch (_unused2) {} +} +function fileExists(url) { + const stats = (0, _fs().statSync)(url, { + throwIfNoEntry: false + }); + const isFile = stats ? stats.isFile() : undefined; + return isFile === null || isFile === undefined ? false : isFile; +} +function legacyMainResolve(packageJsonUrl, packageConfig, base) { + let guess; + if (packageConfig.main !== undefined) { + guess = new (_url().URL)(packageConfig.main, packageJsonUrl); + if (fileExists(guess)) return guess; + const tries = [`./${packageConfig.main}.js`, `./${packageConfig.main}.json`, `./${packageConfig.main}.node`, `./${packageConfig.main}/index.js`, `./${packageConfig.main}/index.json`, `./${packageConfig.main}/index.node`]; + let i = -1; + while (++i < tries.length) { + guess = new (_url().URL)(tries[i], packageJsonUrl); + if (fileExists(guess)) break; + guess = undefined; + } + if (guess) { + emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); + return guess; + } + } + const tries = ['./index.js', './index.json', './index.node']; + let i = -1; + while (++i < tries.length) { + guess = new (_url().URL)(tries[i], packageJsonUrl); + if (fileExists(guess)) break; + guess = undefined; + } + if (guess) { + emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); + return guess; + } + throw new ERR_MODULE_NOT_FOUND((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} +function finalizeResolution(resolved, base, preserveSymlinks) { + if (encodedSeparatorRegEx.exec(resolved.pathname) !== null) { + throw new ERR_INVALID_MODULE_SPECIFIER(resolved.pathname, 'must not include encoded "/" or "\\" characters', (0, _url().fileURLToPath)(base)); + } + let filePath; + try { + filePath = (0, _url().fileURLToPath)(resolved); + } catch (error) { + const cause = error; + Object.defineProperty(cause, 'input', { + value: String(resolved) + }); + Object.defineProperty(cause, 'module', { + value: String(base) + }); + throw cause; + } + const stats = tryStatSync(filePath.endsWith('/') ? filePath.slice(-1) : filePath); + if (stats && stats.isDirectory()) { + const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, (0, _url().fileURLToPath)(base)); + error.url = String(resolved); + throw error; + } + if (!stats || !stats.isFile()) { + const error = new ERR_MODULE_NOT_FOUND(filePath || resolved.pathname, base && (0, _url().fileURLToPath)(base), true); + error.url = String(resolved); + throw error; + } + if (!preserveSymlinks) { + const real = (0, _fs().realpathSync)(filePath); + const { + search, + hash + } = resolved; + resolved = (0, _url().pathToFileURL)(real + (filePath.endsWith(_path().sep) ? '/' : '')); + resolved.search = search; + resolved.hash = hash; + } + return resolved; +} +function importNotDefined(specifier, packageJsonUrl, base) { + return new ERR_PACKAGE_IMPORT_NOT_DEFINED(specifier, packageJsonUrl && (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} +function exportsNotFound(subpath, packageJsonUrl, base) { + return new ERR_PACKAGE_PATH_NOT_EXPORTED((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, base && (0, _url().fileURLToPath)(base)); +} +function throwInvalidSubpath(request, match, packageJsonUrl, internal, base) { + const reason = `request is not a valid match in pattern "${match}" for the "${internal ? 'imports' : 'exports'}" resolution of ${(0, _url().fileURLToPath)(packageJsonUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER(request, reason, base && (0, _url().fileURLToPath)(base)); +} +function invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) { + target = typeof target === 'object' && target !== null ? JSON.stringify(target, null, '') : `${target}`; + return new ERR_INVALID_PACKAGE_TARGET((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, target, internal, base && (0, _url().fileURLToPath)(base)); +} +function resolvePackageTargetString(target, subpath, match, packageJsonUrl, base, pattern, internal, isPathMap, conditions) { + if (subpath !== '' && !pattern && target[target.length - 1] !== '/') throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); + if (!target.startsWith('./')) { + if (internal && !target.startsWith('../') && !target.startsWith('/')) { + let isURL = false; + try { + new (_url().URL)(target); + isURL = true; + } catch (_unused3) {} + if (!isURL) { + const exportTarget = pattern ? RegExpPrototypeSymbolReplace.call(patternRegEx, target, () => subpath) : target + subpath; + return packageResolve(exportTarget, packageJsonUrl, conditions); + } + } + throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); + } + if (invalidSegmentRegEx.exec(target.slice(2)) !== null) { + if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) { + if (!isPathMap) { + const request = pattern ? match.replace('*', () => subpath) : match + subpath; + const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call(patternRegEx, target, () => subpath) : target; + emitInvalidSegmentDeprecation(resolvedTarget, request, match, packageJsonUrl, internal, base, true); + } + } else { + throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); + } + } + const resolved = new (_url().URL)(target, packageJsonUrl); + const resolvedPath = resolved.pathname; + const packagePath = new (_url().URL)('.', packageJsonUrl).pathname; + if (!resolvedPath.startsWith(packagePath)) throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); + if (subpath === '') return resolved; + if (invalidSegmentRegEx.exec(subpath) !== null) { + const request = pattern ? match.replace('*', () => subpath) : match + subpath; + if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) { + if (!isPathMap) { + const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call(patternRegEx, target, () => subpath) : target; + emitInvalidSegmentDeprecation(resolvedTarget, request, match, packageJsonUrl, internal, base, false); + } + } else { + throwInvalidSubpath(request, match, packageJsonUrl, internal, base); + } + } + if (pattern) { + return new (_url().URL)(RegExpPrototypeSymbolReplace.call(patternRegEx, resolved.href, () => subpath)); + } + return new (_url().URL)(subpath, resolved); +} +function isArrayIndex(key) { + const keyNumber = Number(key); + if (`${keyNumber}` !== key) return false; + return keyNumber >= 0 && keyNumber < 0xffffffff; +} +function resolvePackageTarget(packageJsonUrl, target, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions) { + if (typeof target === 'string') { + return resolvePackageTargetString(target, subpath, packageSubpath, packageJsonUrl, base, pattern, internal, isPathMap, conditions); + } + if (Array.isArray(target)) { + const targetList = target; + if (targetList.length === 0) return null; + let lastException; + let i = -1; + while (++i < targetList.length) { + const targetItem = targetList[i]; + let resolveResult; + try { + resolveResult = resolvePackageTarget(packageJsonUrl, targetItem, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions); + } catch (error) { + const exception = error; + lastException = exception; + if (exception.code === 'ERR_INVALID_PACKAGE_TARGET') continue; + throw error; + } + if (resolveResult === undefined) continue; + if (resolveResult === null) { + lastException = null; + continue; + } + return resolveResult; + } + if (lastException === undefined || lastException === null) { + return null; + } + throw lastException; + } + if (typeof target === 'object' && target !== null) { + const keys = Object.getOwnPropertyNames(target); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain numeric property keys.'); + } + } + i = -1; + while (++i < keys.length) { + const key = keys[i]; + if (key === 'default' || conditions && conditions.has(key)) { + const conditionalTarget = target[key]; + const resolveResult = resolvePackageTarget(packageJsonUrl, conditionalTarget, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions); + if (resolveResult === undefined) continue; + return resolveResult; + } + } + return null; + } + if (target === null) { + return null; + } + throw invalidPackageTarget(packageSubpath, target, packageJsonUrl, internal, base); +} +function isConditionalExportsMainSugar(exports, packageJsonUrl, base) { + if (typeof exports === 'string' || Array.isArray(exports)) return true; + if (typeof exports !== 'object' || exports === null) return false; + const keys = Object.getOwnPropertyNames(exports); + let isConditionalSugar = false; + let i = 0; + let keyIndex = -1; + while (++keyIndex < keys.length) { + const key = keys[keyIndex]; + const currentIsConditionalSugar = key === '' || key[0] !== '.'; + if (i++ === 0) { + isConditionalSugar = currentIsConditionalSugar; + } else if (isConditionalSugar !== currentIsConditionalSugar) { + throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain some keys starting with \'.\' and some not.' + ' The exports object must either be an object of package subpath keys' + ' or an object of main entry condition name keys only.'); + } + } + return isConditionalSugar; +} +function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { + if (_process().noDeprecation) { + return; + } + const pjsonPath = (0, _url().fileURLToPath)(pjsonUrl); + if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return; + emittedPackageWarnings.add(pjsonPath + '|' + match); + _process().emitWarning(`Use of deprecated trailing slash pattern mapping "${match}" in the ` + `"exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, _url().fileURLToPath)(base)}` : ''}. Mapping specifiers ending in "/" is no longer supported.`, 'DeprecationWarning', 'DEP0155'); +} +function packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions) { + let exports = packageConfig.exports; + if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) { + exports = { + '.': exports + }; + } + if (own.call(exports, packageSubpath) && !packageSubpath.includes('*') && !packageSubpath.endsWith('/')) { + const target = exports[packageSubpath]; + const resolveResult = resolvePackageTarget(packageJsonUrl, target, '', packageSubpath, base, false, false, false, conditions); + if (resolveResult === null || resolveResult === undefined) { + throw exportsNotFound(packageSubpath, packageJsonUrl, base); + } + return resolveResult; + } + let bestMatch = ''; + let bestMatchSubpath = ''; + const keys = Object.getOwnPropertyNames(exports); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + const patternIndex = key.indexOf('*'); + if (patternIndex !== -1 && packageSubpath.startsWith(key.slice(0, patternIndex))) { + if (packageSubpath.endsWith('/')) { + emitTrailingSlashPatternDeprecation(packageSubpath, packageJsonUrl, base); + } + const patternTrailer = key.slice(patternIndex + 1); + if (packageSubpath.length >= key.length && packageSubpath.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && key.lastIndexOf('*') === patternIndex) { + bestMatch = key; + bestMatchSubpath = packageSubpath.slice(patternIndex, packageSubpath.length - patternTrailer.length); + } + } + } + if (bestMatch) { + const target = exports[bestMatch]; + const resolveResult = resolvePackageTarget(packageJsonUrl, target, bestMatchSubpath, bestMatch, base, true, false, packageSubpath.endsWith('/'), conditions); + if (resolveResult === null || resolveResult === undefined) { + throw exportsNotFound(packageSubpath, packageJsonUrl, base); + } + return resolveResult; + } + throw exportsNotFound(packageSubpath, packageJsonUrl, base); +} +function patternKeyCompare(a, b) { + const aPatternIndex = a.indexOf('*'); + const bPatternIndex = b.indexOf('*'); + const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; + const baseLengthB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; + if (baseLengthA > baseLengthB) return -1; + if (baseLengthB > baseLengthA) return 1; + if (aPatternIndex === -1) return 1; + if (bPatternIndex === -1) return -1; + if (a.length > b.length) return -1; + if (b.length > a.length) return 1; + return 0; +} +function packageImportsResolve(name, base, conditions) { + if (name === '#' || name.startsWith('#/') || name.endsWith('/')) { + const reason = 'is not a valid internal imports specifier name'; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, (0, _url().fileURLToPath)(base)); + } + let packageJsonUrl; + const packageConfig = getPackageScopeConfig(base); + if (packageConfig.exists) { + packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (own.call(imports, name) && !name.includes('*')) { + const resolveResult = resolvePackageTarget(packageJsonUrl, imports[name], '', name, base, false, true, false, conditions); + if (resolveResult !== null && resolveResult !== undefined) { + return resolveResult; + } + } else { + let bestMatch = ''; + let bestMatchSubpath = ''; + const keys = Object.getOwnPropertyNames(imports); + let i = -1; + while (++i < keys.length) { + const key = keys[i]; + const patternIndex = key.indexOf('*'); + if (patternIndex !== -1 && name.startsWith(key.slice(0, -1))) { + const patternTrailer = key.slice(patternIndex + 1); + if (name.length >= key.length && name.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && key.lastIndexOf('*') === patternIndex) { + bestMatch = key; + bestMatchSubpath = name.slice(patternIndex, name.length - patternTrailer.length); + } + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const resolveResult = resolvePackageTarget(packageJsonUrl, target, bestMatchSubpath, bestMatch, base, true, true, false, conditions); + if (resolveResult !== null && resolveResult !== undefined) { + return resolveResult; + } + } + } + } + } + throw importNotDefined(name, packageJsonUrl, base); +} +function parsePackageName(specifier, base) { + let separatorIndex = specifier.indexOf('/'); + let validPackageName = true; + let isScoped = false; + if (specifier[0] === '@') { + isScoped = true; + if (separatorIndex === -1 || specifier.length === 0) { + validPackageName = false; + } else { + separatorIndex = specifier.indexOf('/', separatorIndex + 1); + } + } + const packageName = separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex); + if (invalidPackageNameRegEx.exec(packageName) !== null) { + validPackageName = false; + } + if (!validPackageName) { + throw new ERR_INVALID_MODULE_SPECIFIER(specifier, 'is not a valid package name', (0, _url().fileURLToPath)(base)); + } + const packageSubpath = '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex)); + return { + packageName, + packageSubpath, + isScoped + }; +} +function packageResolve(specifier, base, conditions) { + if (_module().builtinModules.includes(specifier)) { + return new (_url().URL)('node:' + specifier); + } + const { + packageName, + packageSubpath, + isScoped + } = parsePackageName(specifier, base); + const packageConfig = getPackageScopeConfig(base); + if (packageConfig.exists) { + const packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); + if (packageConfig.name === packageName && packageConfig.exports !== undefined && packageConfig.exports !== null) { + return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions); + } + } + let packageJsonUrl = new (_url().URL)('./node_modules/' + packageName + '/package.json', base); + let packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + let lastPath; + do { + const stat = tryStatSync(packageJsonPath.slice(0, -13)); + if (!stat || !stat.isDirectory()) { + lastPath = packageJsonPath; + packageJsonUrl = new (_url().URL)((isScoped ? '../../../../node_modules/' : '../../../node_modules/') + packageName + '/package.json', packageJsonUrl); + packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); + continue; + } + const packageConfig = read(packageJsonPath, { + base, + specifier + }); + if (packageConfig.exports !== undefined && packageConfig.exports !== null) { + return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions); + } + if (packageSubpath === '.') { + return legacyMainResolve(packageJsonUrl, packageConfig, base); + } + return new (_url().URL)(packageSubpath, packageJsonUrl); + } while (packageJsonPath.length !== lastPath.length); + throw new ERR_MODULE_NOT_FOUND(packageName, (0, _url().fileURLToPath)(base), false); +} +function isRelativeSpecifier(specifier) { + if (specifier[0] === '.') { + if (specifier.length === 1 || specifier[1] === '/') return true; + if (specifier[1] === '.' && (specifier.length === 2 || specifier[2] === '/')) { + return true; + } + } + return false; +} +function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { + if (specifier === '') return false; + if (specifier[0] === '/') return true; + return isRelativeSpecifier(specifier); +} +function moduleResolve(specifier, base, conditions, preserveSymlinks) { + const protocol = base.protocol; + const isData = protocol === 'data:'; + const isRemote = isData || protocol === 'http:' || protocol === 'https:'; + let resolved; + if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { + try { + resolved = new (_url().URL)(specifier, base); + } catch (error_) { + const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base); + error.cause = error_; + throw error; + } + } else if (protocol === 'file:' && specifier[0] === '#') { + resolved = packageImportsResolve(specifier, base, conditions); + } else { + try { + resolved = new (_url().URL)(specifier); + } catch (error_) { + if (isRemote && !_module().builtinModules.includes(specifier)) { + const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base); + error.cause = error_; + throw error; + } + resolved = packageResolve(specifier, base, conditions); + } + } + _assert()(resolved !== undefined, 'expected to be defined'); + if (resolved.protocol !== 'file:') { + return resolved; + } + return finalizeResolution(resolved, base, preserveSymlinks); +} +function checkIfDisallowedImport(specifier, parsed, parsedParentURL) { + if (parsedParentURL) { + const parentProtocol = parsedParentURL.protocol; + if (parentProtocol === 'http:' || parentProtocol === 'https:') { + if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { + const parsedProtocol = parsed == null ? void 0 : parsed.protocol; + if (parsedProtocol && parsedProtocol !== 'https:' && parsedProtocol !== 'http:') { + throw new ERR_NETWORK_IMPORT_DISALLOWED(specifier, parsedParentURL, 'remote imports cannot import from a local location.'); + } + return { + url: (parsed == null ? void 0 : parsed.href) || '' + }; + } + if (_module().builtinModules.includes(specifier)) { + throw new ERR_NETWORK_IMPORT_DISALLOWED(specifier, parsedParentURL, 'remote imports cannot import from a local location.'); + } + throw new ERR_NETWORK_IMPORT_DISALLOWED(specifier, parsedParentURL, 'only relative and absolute specifiers are supported.'); + } + } +} +function isURL(self) { + return Boolean(self && typeof self === 'object' && 'href' in self && typeof self.href === 'string' && 'protocol' in self && typeof self.protocol === 'string' && self.href && self.protocol); +} +function throwIfInvalidParentURL(parentURL) { + if (parentURL === undefined) { + return; + } + if (typeof parentURL !== 'string' && !isURL(parentURL)) { + throw new codes.ERR_INVALID_ARG_TYPE('parentURL', ['string', 'URL'], parentURL); + } +} +function defaultResolve(specifier, context = {}) { + const { + parentURL + } = context; + _assert()(parentURL !== undefined, 'expected `parentURL` to be defined'); + throwIfInvalidParentURL(parentURL); + let parsedParentURL; + if (parentURL) { + try { + parsedParentURL = new (_url().URL)(parentURL); + } catch (_unused4) {} + } + let parsed; + let protocol; + try { + parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier) ? new (_url().URL)(specifier, parsedParentURL) : new (_url().URL)(specifier); + protocol = parsed.protocol; + if (protocol === 'data:') { + return { + url: parsed.href, + format: null + }; + } + } catch (_unused5) {} + const maybeReturn = checkIfDisallowedImport(specifier, parsed, parsedParentURL); + if (maybeReturn) return maybeReturn; + if (protocol === undefined && parsed) { + protocol = parsed.protocol; + } + if (protocol === 'node:') { + return { + url: specifier + }; + } + if (parsed && parsed.protocol === 'node:') return { + url: specifier + }; + const conditions = getConditionsSet(context.conditions); + const url = moduleResolve(specifier, new (_url().URL)(parentURL), conditions, false); + return { + url: url.href, + format: defaultGetFormatWithoutErrors(url, { + parentURL + }) + }; +} +function resolve(specifier, parent) { + if (!parent) { + throw new Error('Please pass `parent`: `import-meta-resolve` cannot ponyfill that'); + } + try { + return defaultResolve(specifier, { + parentURL: parent + }).url; + } catch (error) { + const exception = error; + if ((exception.code === 'ERR_UNSUPPORTED_DIR_IMPORT' || exception.code === 'ERR_MODULE_NOT_FOUND') && typeof exception.url === 'string') { + return exception.url; + } + throw error; + } +} +0 && 0; + +//# sourceMappingURL=import-meta-resolve.js.map diff --git a/framework-core/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map b/framework-core/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map new file mode 100644 index 0000000..d9e5b42 --- /dev/null +++ b/framework-core/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_assert","data","require","_fs","_interopRequireWildcard","_process","_url","_path","_module","_v","_util","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","own$1","classRegExp","kTypes","Set","codes","formatList","array","type","length","join","slice","messages","Map","nodeInternalPrefix","userStackTraceLimit","ERR_INVALID_ARG_TYPE","createError","name","expected","actual","assert","Array","isArray","message","endsWith","includes","types","instances","other","value","push","toLowerCase","exec","pos","indexOf","determineSpecificType","TypeError","ERR_INVALID_MODULE_SPECIFIER","request","reason","base","undefined","ERR_INVALID_PACKAGE_CONFIG","path","Error","ERR_INVALID_PACKAGE_TARGET","packagePath","key","target","isImport","relatedError","startsWith","JSON","stringify","ERR_MODULE_NOT_FOUND","exactUrl","ERR_NETWORK_IMPORT_DISALLOWED","ERR_PACKAGE_IMPORT_NOT_DEFINED","specifier","ERR_PACKAGE_PATH_NOT_EXPORTED","subpath","ERR_UNSUPPORTED_DIR_IMPORT","ERR_UNSUPPORTED_RESOLVE_REQUEST","ERR_UNKNOWN_FILE_EXTENSION","extension","ERR_INVALID_ARG_VALUE","inspected","inspect","sym","constructor","makeNodeErrorWithCode","Base","NodeError","parameters","limit","stackTraceLimit","isErrorStackTraceLimitWritable","error","getMessage","defineProperties","enumerable","writable","configurable","toString","captureLargerStackTrace","code","v8","startupSnapshot","isBuildingSnapshot","_unused","desc","isExtensible","hideStackFrames","wrappedFunction","hidden","stackTraceLimitIsWritable","Number","POSITIVE_INFINITY","captureStackTrace","self","Reflect","apply","regex","expectedLength","unshift","format","String","depth","colors","hasOwnProperty$1","ERR_INVALID_PACKAGE_CONFIG$1","cache","read","jsonPath","existing","string","fs","readFileSync","toNamespacedPath","exception","result","exists","pjsonPath","main","exports","imports","parsed","parse","error_","cause","fileURLToPath","getPackageScopeConfig","resolved","packageJSONUrl","URL","packageJSONPath","pathname","packageConfig","lastPackageJSONUrl","getPackageType","url","extensionFormatMap","mimeToFormat","mime","test","protocolHandlers","getDataProtocolModuleFormat","getFileProtocolModuleFormat","getHttpProtocolModuleFormat","node:","extname","index","codePointAt","_context","ignoreErrors","packageType","filepath","defaultGetFormatWithoutErrors","context","protocol","DEFAULT_CONDITIONS","freeze","DEFAULT_CONDITIONS_SET","getDefaultConditions","getDefaultConditionsSet","getConditionsSet","conditions","RegExpPrototypeSymbolReplace","RegExp","prototype","Symbol","replace","own","invalidSegmentRegEx","deprecatedInvalidSegmentRegEx","invalidPackageNameRegEx","patternRegEx","encodedSeparatorRegEx","emittedPackageWarnings","doubleSlashRegEx","emitInvalidSegmentDeprecation","match","packageJsonUrl","internal","isTarget","process","noDeprecation","double","emitWarning","emitLegacyIndexDeprecation","parentURL","href","urlPath","URL$1","basePath","resolve","tryStatSync","statSync","_unused2","fileExists","stats","throwIfNoEntry","isFile","legacyMainResolve","guess","tries","finalizeResolution","preserveSymlinks","filePath","isDirectory","real","realpathSync","search","hash","pathToFileURL","sep","importNotDefined","exportsNotFound","throwInvalidSubpath","invalidPackageTarget","resolvePackageTargetString","pattern","isPathMap","isURL","_unused3","exportTarget","packageResolve","resolvedTarget","resolvedPath","isArrayIndex","keyNumber","resolvePackageTarget","packageSubpath","targetList","lastException","targetItem","resolveResult","keys","getOwnPropertyNames","conditionalTarget","isConditionalExportsMainSugar","isConditionalSugar","keyIndex","currentIsConditionalSugar","emitTrailingSlashPatternDeprecation","pjsonUrl","add","packageExportsResolve","bestMatch","bestMatchSubpath","patternIndex","patternTrailer","patternKeyCompare","lastIndexOf","a","b","aPatternIndex","bPatternIndex","baseLengthA","baseLengthB","packageImportsResolve","parsePackageName","separatorIndex","validPackageName","isScoped","packageName","builtinModules","packageJsonPath","lastPath","stat","isRelativeSpecifier","shouldBeTreatedAsRelativeOrAbsolutePath","moduleResolve","isData","isRemote","checkIfDisallowedImport","parsedParentURL","parentProtocol","parsedProtocol","Boolean","throwIfInvalidParentURL","defaultResolve","_unused4","_unused5","maybeReturn","parent"],"sources":["../../src/vendor/import-meta-resolve.js"],"sourcesContent":["\n/****************************************************************************\\\n * NOTE FROM BABEL AUTHORS *\n * This file is inlined from https://github.com/wooorm/import-meta-resolve, *\n * because we need to compile it to CommonJS. *\n\\****************************************************************************/\n\n/*\n(The MIT License)\n\nCopyright (c) 2021 Titus Wormer \n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n---\n\nThis is a derivative work based on:\n.\nWhich is licensed:\n\n\"\"\"\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\nThis license applies to parts of Node.js originating from the\nhttps://github.com/joyent/node repository:\n\n\"\"\"\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n*/\n\nimport assert from 'assert';\nimport fs, { realpathSync, statSync } from 'fs';\nimport process from 'process';\nimport { fileURLToPath, URL as URL$1, pathToFileURL } from 'url';\nimport path from 'path';\nimport { builtinModules } from 'module';\nimport v8 from 'v8';\nimport { format, inspect } from 'util';\n\n/**\n * @typedef ErrnoExceptionFields\n * @property {number | undefined} [errnode]\n * @property {string | undefined} [code]\n * @property {string | undefined} [path]\n * @property {string | undefined} [syscall]\n * @property {string | undefined} [url]\n *\n * @typedef {Error & ErrnoExceptionFields} ErrnoException\n */\n\n\nconst own$1 = {}.hasOwnProperty;\n\nconst classRegExp = /^([A-Z][a-z\\d]*)+$/;\n// Sorted by a rough estimate on most frequently used entries.\nconst kTypes = new Set([\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]);\n\nconst codes = {};\n\n/**\n * Create a list string in the form like 'A and B' or 'A, B, ..., and Z'.\n * We cannot use Intl.ListFormat because it's not available in\n * --without-intl builds.\n *\n * @param {Array} array\n * An array of strings.\n * @param {string} [type]\n * The list type to be inserted before the last element.\n * @returns {string}\n */\nfunction formatList(array, type = 'and') {\n return array.length < 3\n ? array.join(` ${type} `)\n : `${array.slice(0, -1).join(', ')}, ${type} ${array[array.length - 1]}`\n}\n\n/** @type {Map} */\nconst messages = new Map();\nconst nodeInternalPrefix = '__node_internal_';\n/** @type {number} */\nlet userStackTraceLimit;\n\ncodes.ERR_INVALID_ARG_TYPE = createError(\n 'ERR_INVALID_ARG_TYPE',\n /**\n * @param {string} name\n * @param {Array | string} expected\n * @param {unknown} actual\n */\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\");\n if (!Array.isArray(expected)) {\n expected = [expected];\n }\n\n let message = 'The ';\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n message += `${name} `;\n } else {\n const type = name.includes('.') ? 'property' : 'argument';\n message += `\"${name}\" ${type} `;\n }\n\n message += 'must be ';\n\n /** @type {Array} */\n const types = [];\n /** @type {Array} */\n const instances = [];\n /** @type {Array} */\n const other = [];\n\n for (const value of expected) {\n assert(\n typeof value === 'string',\n 'All expected entries have to be of type string'\n );\n\n if (kTypes.has(value)) {\n types.push(value.toLowerCase());\n } else if (classRegExp.exec(value) === null) {\n assert(\n value !== 'object',\n 'The value \"object\" should be written as \"Object\"'\n );\n other.push(value);\n } else {\n instances.push(value);\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object');\n if (pos !== -1) {\n types.slice(pos, 1);\n instances.push('Object');\n }\n }\n\n if (types.length > 0) {\n message += `${types.length > 1 ? 'one of type' : 'of type'} ${formatList(\n types,\n 'or'\n )}`;\n if (instances.length > 0 || other.length > 0) message += ' or ';\n }\n\n if (instances.length > 0) {\n message += `an instance of ${formatList(instances, 'or')}`;\n if (other.length > 0) message += ' or ';\n }\n\n if (other.length > 0) {\n if (other.length > 1) {\n message += `one of ${formatList(other, 'or')}`;\n } else {\n if (other[0].toLowerCase() !== other[0]) message += 'an ';\n message += `${other[0]}`;\n }\n }\n\n message += `. Received ${determineSpecificType(actual)}`;\n\n return message\n },\n TypeError\n);\n\ncodes.ERR_INVALID_MODULE_SPECIFIER = createError(\n 'ERR_INVALID_MODULE_SPECIFIER',\n /**\n * @param {string} request\n * @param {string} reason\n * @param {string} [base]\n */\n (request, reason, base = undefined) => {\n return `Invalid module \"${request}\" ${reason}${\n base ? ` imported from ${base}` : ''\n }`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_PACKAGE_CONFIG = createError(\n 'ERR_INVALID_PACKAGE_CONFIG',\n /**\n * @param {string} path\n * @param {string} [base]\n * @param {string} [message]\n */\n (path, base, message) => {\n return `Invalid package config ${path}${\n base ? ` while importing ${base}` : ''\n }${message ? `. ${message}` : ''}`\n },\n Error\n);\n\ncodes.ERR_INVALID_PACKAGE_TARGET = createError(\n 'ERR_INVALID_PACKAGE_TARGET',\n /**\n * @param {string} packagePath\n * @param {string} key\n * @param {unknown} target\n * @param {boolean} [isImport=false]\n * @param {string} [base]\n */\n (packagePath, key, target, isImport = false, base = undefined) => {\n const relatedError =\n typeof target === 'string' &&\n !isImport &&\n target.length > 0 &&\n !target.startsWith('./');\n if (key === '.') {\n assert(isImport === false);\n return (\n `Invalid \"exports\" main target ${JSON.stringify(target)} defined ` +\n `in the package config ${packagePath}package.json${\n base ? ` imported from ${base}` : ''\n }${relatedError ? '; targets must start with \"./\"' : ''}`\n )\n }\n\n return `Invalid \"${\n isImport ? 'imports' : 'exports'\n }\" target ${JSON.stringify(\n target\n )} defined for '${key}' in the package config ${packagePath}package.json${\n base ? ` imported from ${base}` : ''\n }${relatedError ? '; targets must start with \"./\"' : ''}`\n },\n Error\n);\n\ncodes.ERR_MODULE_NOT_FOUND = createError(\n 'ERR_MODULE_NOT_FOUND',\n /**\n * @param {string} path\n * @param {string} base\n * @param {boolean} [exactUrl]\n */\n (path, base, exactUrl = false) => {\n return `Cannot find ${\n exactUrl ? 'module' : 'package'\n } '${path}' imported from ${base}`\n },\n Error\n);\n\ncodes.ERR_NETWORK_IMPORT_DISALLOWED = createError(\n 'ERR_NETWORK_IMPORT_DISALLOWED',\n \"import of '%s' by %s is not supported: %s\",\n Error\n);\n\ncodes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(\n 'ERR_PACKAGE_IMPORT_NOT_DEFINED',\n /**\n * @param {string} specifier\n * @param {string} packagePath\n * @param {string} base\n */\n (specifier, packagePath, base) => {\n return `Package import specifier \"${specifier}\" is not defined${\n packagePath ? ` in package ${packagePath}package.json` : ''\n } imported from ${base}`\n },\n TypeError\n);\n\ncodes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(\n 'ERR_PACKAGE_PATH_NOT_EXPORTED',\n /**\n * @param {string} packagePath\n * @param {string} subpath\n * @param {string} [base]\n */\n (packagePath, subpath, base = undefined) => {\n if (subpath === '.')\n return `No \"exports\" main defined in ${packagePath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n return `Package subpath '${subpath}' is not defined by \"exports\" in ${packagePath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n },\n Error\n);\n\ncodes.ERR_UNSUPPORTED_DIR_IMPORT = createError(\n 'ERR_UNSUPPORTED_DIR_IMPORT',\n \"Directory import '%s' is not supported \" +\n 'resolving ES modules imported from %s',\n Error\n);\n\ncodes.ERR_UNSUPPORTED_RESOLVE_REQUEST = createError(\n 'ERR_UNSUPPORTED_RESOLVE_REQUEST',\n 'Failed to resolve module specifier \"%s\" from \"%s\": Invalid relative URL or base scheme is not hierarchical.',\n TypeError\n);\n\ncodes.ERR_UNKNOWN_FILE_EXTENSION = createError(\n 'ERR_UNKNOWN_FILE_EXTENSION',\n /**\n * @param {string} extension\n * @param {string} path\n */\n (extension, path) => {\n return `Unknown file extension \"${extension}\" for ${path}`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_ARG_VALUE = createError(\n 'ERR_INVALID_ARG_VALUE',\n /**\n * @param {string} name\n * @param {unknown} value\n * @param {string} [reason='is invalid']\n */\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value);\n\n if (inspected.length > 128) {\n inspected = `${inspected.slice(0, 128)}...`;\n }\n\n const type = name.includes('.') ? 'property' : 'argument';\n\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n // Note: extra classes have been shaken out.\n // , RangeError\n);\n\n/**\n * Utility function for registering the error codes. Only used here. Exported\n * *only* to allow for testing.\n * @param {string} sym\n * @param {MessageFunction | string} value\n * @param {ErrorConstructor} constructor\n * @returns {new (...parameters: Array) => Error}\n */\nfunction createError(sym, value, constructor) {\n // Special case for SystemError that formats the error message differently\n // The SystemErrors only have SystemError as their base classes.\n messages.set(sym, value);\n\n return makeNodeErrorWithCode(constructor, sym)\n}\n\n/**\n * @param {ErrorConstructor} Base\n * @param {string} key\n * @returns {ErrorConstructor}\n */\nfunction makeNodeErrorWithCode(Base, key) {\n // @ts-expect-error It’s a Node error.\n return NodeError\n /**\n * @param {Array} parameters\n */\n function NodeError(...parameters) {\n const limit = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n const error = new Base();\n // Reset the limit and setting the name property.\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n const message = getMessage(key, parameters, error);\n Object.defineProperties(error, {\n // Note: no need to implement `kIsNodeError` symbol, would be hard,\n // probably.\n message: {\n value: message,\n enumerable: false,\n writable: true,\n configurable: true\n },\n toString: {\n /** @this {Error} */\n value() {\n return `${this.name} [${key}]: ${this.message}`\n },\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n captureLargerStackTrace(error);\n // @ts-expect-error It’s a Node error.\n error.code = key;\n return error\n }\n}\n\n/**\n * @returns {boolean}\n */\nfunction isErrorStackTraceLimitWritable() {\n // Do no touch Error.stackTraceLimit as V8 would attempt to install\n // it again during deserialization.\n try {\n if (v8.startupSnapshot.isBuildingSnapshot()) {\n return false\n }\n } catch {}\n\n const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit');\n if (desc === undefined) {\n return Object.isExtensible(Error)\n }\n\n return own$1.call(desc, 'writable') && desc.writable !== undefined\n ? desc.writable\n : desc.set !== undefined\n}\n\n/**\n * This function removes unnecessary frames from Node.js core errors.\n * @template {(...parameters: unknown[]) => unknown} T\n * @param {T} wrappedFunction\n * @returns {T}\n */\nfunction hideStackFrames(wrappedFunction) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + wrappedFunction.name;\n Object.defineProperty(wrappedFunction, 'name', {value: hidden});\n return wrappedFunction\n}\n\nconst captureLargerStackTrace = hideStackFrames(\n /**\n * @param {Error} error\n * @returns {Error}\n */\n // @ts-expect-error: fine\n function (error) {\n const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n if (stackTraceLimitIsWritable) {\n userStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Number.POSITIVE_INFINITY;\n }\n\n Error.captureStackTrace(error);\n\n // Reset the limit\n if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n\n return error\n }\n);\n\n/**\n * @param {string} key\n * @param {Array} parameters\n * @param {Error} self\n * @returns {string}\n */\nfunction getMessage(key, parameters, self) {\n const message = messages.get(key);\n assert(message !== undefined, 'expected `message` to be found');\n\n if (typeof message === 'function') {\n assert(\n message.length <= parameters.length, // Default options do not count.\n `Code: ${key}; The provided arguments length (${parameters.length}) does not ` +\n `match the required ones (${message.length}).`\n );\n return Reflect.apply(message, self, parameters)\n }\n\n const regex = /%[dfijoOs]/g;\n let expectedLength = 0;\n while (regex.exec(message) !== null) expectedLength++;\n assert(\n expectedLength === parameters.length,\n `Code: ${key}; The provided arguments length (${parameters.length}) does not ` +\n `match the required ones (${expectedLength}).`\n );\n if (parameters.length === 0) return message\n\n parameters.unshift(message);\n return Reflect.apply(format, null, parameters)\n}\n\n/**\n * Determine the specific type of a value for type-mismatch errors.\n * @param {unknown} value\n * @returns {string}\n */\nfunction determineSpecificType(value) {\n if (value === null || value === undefined) {\n return String(value)\n }\n\n if (typeof value === 'function' && value.name) {\n return `function ${value.name}`\n }\n\n if (typeof value === 'object') {\n if (value.constructor && value.constructor.name) {\n return `an instance of ${value.constructor.name}`\n }\n\n return `${inspect(value, {depth: -1})}`\n }\n\n let inspected = inspect(value, {colors: false});\n\n if (inspected.length > 28) {\n inspected = `${inspected.slice(0, 25)}...`;\n }\n\n return `type ${typeof value} (${inspected})`\n}\n\n// Manually “tree shaken” from:\n// \n// Last checked on: Apr 29, 2023.\n// Removed the native dependency.\n// Also: no need to cache, we do that in resolve already.\n\n\nconst hasOwnProperty$1 = {}.hasOwnProperty;\n\nconst {ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG$1} = codes;\n\n/** @type {Map} */\nconst cache = new Map();\n\n/**\n * @param {string} jsonPath\n * @param {{specifier: URL | string, base?: URL}} options\n * @returns {PackageConfig}\n */\nfunction read(jsonPath, {base, specifier}) {\n const existing = cache.get(jsonPath);\n\n if (existing) {\n return existing\n }\n\n /** @type {string | undefined} */\n let string;\n\n try {\n string = fs.readFileSync(path.toNamespacedPath(jsonPath), 'utf8');\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n\n if (exception.code !== 'ENOENT') {\n throw exception\n }\n }\n\n /** @type {PackageConfig} */\n const result = {\n exists: false,\n pjsonPath: jsonPath,\n main: undefined,\n name: undefined,\n type: 'none', // Ignore unknown types for forwards compatibility\n exports: undefined,\n imports: undefined\n };\n\n if (string !== undefined) {\n /** @type {Record} */\n let parsed;\n\n try {\n parsed = JSON.parse(string);\n } catch (error_) {\n const cause = /** @type {ErrnoException} */ (error_);\n const error = new ERR_INVALID_PACKAGE_CONFIG$1(\n jsonPath,\n (base ? `\"${specifier}\" from ` : '') + fileURLToPath(base || specifier),\n cause.message\n );\n error.cause = cause;\n throw error\n }\n\n result.exists = true;\n\n if (\n hasOwnProperty$1.call(parsed, 'name') &&\n typeof parsed.name === 'string'\n ) {\n result.name = parsed.name;\n }\n\n if (\n hasOwnProperty$1.call(parsed, 'main') &&\n typeof parsed.main === 'string'\n ) {\n result.main = parsed.main;\n }\n\n if (hasOwnProperty$1.call(parsed, 'exports')) {\n // @ts-expect-error: assume valid.\n result.exports = parsed.exports;\n }\n\n if (hasOwnProperty$1.call(parsed, 'imports')) {\n // @ts-expect-error: assume valid.\n result.imports = parsed.imports;\n }\n\n // Ignore unknown types for forwards compatibility\n if (\n hasOwnProperty$1.call(parsed, 'type') &&\n (parsed.type === 'commonjs' || parsed.type === 'module')\n ) {\n result.type = parsed.type;\n }\n }\n\n cache.set(jsonPath, result);\n\n return result\n}\n\n/**\n * @param {URL | string} resolved\n * @returns {PackageConfig}\n */\nfunction getPackageScopeConfig(resolved) {\n // Note: in Node, this is now a native module.\n let packageJSONUrl = new URL('package.json', resolved);\n\n while (true) {\n const packageJSONPath = packageJSONUrl.pathname;\n if (packageJSONPath.endsWith('node_modules/package.json')) {\n break\n }\n\n const packageConfig = read(fileURLToPath(packageJSONUrl), {\n specifier: resolved\n });\n\n if (packageConfig.exists) {\n return packageConfig\n }\n\n const lastPackageJSONUrl = packageJSONUrl;\n packageJSONUrl = new URL('../package.json', packageJSONUrl);\n\n // Terminates at root where ../package.json equals ../../package.json\n // (can't just check \"/package.json\" for Windows support).\n if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) {\n break\n }\n }\n\n const packageJSONPath = fileURLToPath(packageJSONUrl);\n // ^^ Note: in Node, this is now a native module.\n\n return {\n pjsonPath: packageJSONPath,\n exists: false,\n type: 'none'\n }\n}\n\n/**\n * Returns the package type for a given URL.\n * @param {URL} url - The URL to get the package type for.\n * @returns {PackageType}\n */\nfunction getPackageType(url) {\n // To do @anonrig: Write a C++ function that returns only \"type\".\n return getPackageScopeConfig(url).type\n}\n\n// Manually “tree shaken” from:\n// \n// Last checked on: Apr 29, 2023.\n\n\nconst {ERR_UNKNOWN_FILE_EXTENSION} = codes;\n\nconst hasOwnProperty = {}.hasOwnProperty;\n\n/** @type {Record} */\nconst extensionFormatMap = {\n // @ts-expect-error: hush.\n __proto__: null,\n '.cjs': 'commonjs',\n '.js': 'module',\n '.json': 'json',\n '.mjs': 'module'\n};\n\n/**\n * @param {string | null} mime\n * @returns {string | null}\n */\nfunction mimeToFormat(mime) {\n if (\n mime &&\n /\\s*(text|application)\\/javascript\\s*(;\\s*charset=utf-?8\\s*)?/i.test(mime)\n )\n return 'module'\n if (mime === 'application/json') return 'json'\n return null\n}\n\n/**\n * @callback ProtocolHandler\n * @param {URL} parsed\n * @param {{parentURL: string, source?: Buffer}} context\n * @param {boolean} ignoreErrors\n * @returns {string | null | void}\n */\n\n/**\n * @type {Record}\n */\nconst protocolHandlers = {\n // @ts-expect-error: hush.\n __proto__: null,\n 'data:': getDataProtocolModuleFormat,\n 'file:': getFileProtocolModuleFormat,\n 'http:': getHttpProtocolModuleFormat,\n 'https:': getHttpProtocolModuleFormat,\n 'node:'() {\n return 'builtin'\n }\n};\n\n/**\n * @param {URL} parsed\n */\nfunction getDataProtocolModuleFormat(parsed) {\n const {1: mime} = /^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(\n parsed.pathname\n ) || [null, null, null];\n return mimeToFormat(mime)\n}\n\n/**\n * Returns the file extension from a URL.\n *\n * Should give similar result to\n * `require('node:path').extname(require('node:url').fileURLToPath(url))`\n * when used with a `file:` URL.\n *\n * @param {URL} url\n * @returns {string}\n */\nfunction extname(url) {\n const pathname = url.pathname;\n let index = pathname.length;\n\n while (index--) {\n const code = pathname.codePointAt(index);\n\n if (code === 47 /* `/` */) {\n return ''\n }\n\n if (code === 46 /* `.` */) {\n return pathname.codePointAt(index - 1) === 47 /* `/` */\n ? ''\n : pathname.slice(index)\n }\n }\n\n return ''\n}\n\n/**\n * @type {ProtocolHandler}\n */\nfunction getFileProtocolModuleFormat(url, _context, ignoreErrors) {\n const value = extname(url);\n\n if (value === '.js') {\n const packageType = getPackageType(url);\n\n if (packageType !== 'none') {\n return packageType\n }\n\n return 'commonjs'\n }\n\n if (value === '') {\n const packageType = getPackageType(url);\n\n // Legacy behavior\n if (packageType === 'none' || packageType === 'commonjs') {\n return 'commonjs'\n }\n\n // Note: we don’t implement WASM, so we don’t need\n // `getFormatOfExtensionlessFile` from `formats`.\n return 'module'\n }\n\n const format = extensionFormatMap[value];\n if (format) return format\n\n // Explicit undefined return indicates load hook should rerun format check\n if (ignoreErrors) {\n return undefined\n }\n\n const filepath = fileURLToPath(url);\n throw new ERR_UNKNOWN_FILE_EXTENSION(value, filepath)\n}\n\nfunction getHttpProtocolModuleFormat() {\n // To do: HTTPS imports.\n}\n\n/**\n * @param {URL} url\n * @param {{parentURL: string}} context\n * @returns {string | null}\n */\nfunction defaultGetFormatWithoutErrors(url, context) {\n const protocol = url.protocol;\n\n if (!hasOwnProperty.call(protocolHandlers, protocol)) {\n return null\n }\n\n return protocolHandlers[protocol](url, context, true) || null\n}\n\n// Manually “tree shaken” from:\n// \n// Last checked on: Apr 29, 2023.\n\n\nconst {ERR_INVALID_ARG_VALUE} = codes;\n\n// In Node itself these values are populated from CLI arguments, before any\n// user code runs.\n// Here we just define the defaults.\nconst DEFAULT_CONDITIONS = Object.freeze(['node', 'import']);\nconst DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS);\n\n/**\n * Returns the default conditions for ES module loading.\n */\nfunction getDefaultConditions() {\n return DEFAULT_CONDITIONS\n}\n\n/**\n * Returns the default conditions for ES module loading, as a Set.\n */\nfunction getDefaultConditionsSet() {\n return DEFAULT_CONDITIONS_SET\n}\n\n/**\n * @param {Array} [conditions]\n * @returns {Set}\n */\nfunction getConditionsSet(conditions) {\n if (conditions !== undefined && conditions !== getDefaultConditions()) {\n if (!Array.isArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE(\n 'conditions',\n conditions,\n 'expected an array'\n )\n }\n\n return new Set(conditions)\n }\n\n return getDefaultConditionsSet()\n}\n\n// Manually “tree shaken” from:\n// \n// Last checked on: Apr 29, 2023.\n\n\nconst RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace];\n\nconst {\n ERR_NETWORK_IMPORT_DISALLOWED,\n ERR_INVALID_MODULE_SPECIFIER,\n ERR_INVALID_PACKAGE_CONFIG,\n ERR_INVALID_PACKAGE_TARGET,\n ERR_MODULE_NOT_FOUND,\n ERR_PACKAGE_IMPORT_NOT_DEFINED,\n ERR_PACKAGE_PATH_NOT_EXPORTED,\n ERR_UNSUPPORTED_DIR_IMPORT,\n ERR_UNSUPPORTED_RESOLVE_REQUEST\n} = codes;\n\nconst own = {}.hasOwnProperty;\n\nconst invalidSegmentRegEx =\n /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\\\|\\/|$)/i;\nconst deprecatedInvalidSegmentRegEx =\n /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\\\|\\/|$)/i;\nconst invalidPackageNameRegEx = /^\\.|%|\\\\/;\nconst patternRegEx = /\\*/g;\nconst encodedSeparatorRegEx = /%2f|%5c/i;\n/** @type {Set} */\nconst emittedPackageWarnings = new Set();\n\nconst doubleSlashRegEx = /[/\\\\]{2}/;\n\n/**\n *\n * @param {string} target\n * @param {string} request\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} base\n * @param {boolean} isTarget\n */\nfunction emitInvalidSegmentDeprecation(\n target,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n isTarget\n) {\n // @ts-expect-error: apparently it does exist, TS.\n if (process.noDeprecation) {\n return\n }\n\n const pjsonPath = fileURLToPath(packageJsonUrl);\n const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null;\n process.emitWarning(\n `Use of deprecated ${\n double ? 'double slash' : 'leading or trailing slash matching'\n } resolving \"${target}\" for module ` +\n `request \"${request}\" ${\n request === match ? '' : `matched to \"${match}\" `\n }in the \"${\n internal ? 'imports' : 'exports'\n }\" field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }.`,\n 'DeprecationWarning',\n 'DEP0166'\n );\n}\n\n/**\n * @param {URL} url\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {string} [main]\n * @returns {void}\n */\nfunction emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) {\n // @ts-expect-error: apparently it does exist, TS.\n if (process.noDeprecation) {\n return\n }\n\n const format = defaultGetFormatWithoutErrors(url, {parentURL: base.href});\n if (format !== 'module') return\n const urlPath = fileURLToPath(url.href);\n const packagePath = fileURLToPath(new URL$1('.', packageJsonUrl));\n const basePath = fileURLToPath(base);\n if (!main) {\n process.emitWarning(\n `No \"main\" or \"exports\" field defined in the package.json for ${packagePath} resolving the main entry point \"${urlPath.slice(\n packagePath.length\n )}\", imported from ${basePath}.\\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\n 'DeprecationWarning',\n 'DEP0151'\n );\n } else if (path.resolve(packagePath, main) !== urlPath) {\n process.emitWarning(\n `Package ${packagePath} has a \"main\" field set to \"${main}\", ` +\n `excluding the full filename and extension to the resolved file at \"${urlPath.slice(\n packagePath.length\n )}\", imported from ${basePath}.\\n Automatic extension resolution of the \"main\" field is ` +\n 'deprecated for ES modules.',\n 'DeprecationWarning',\n 'DEP0151'\n );\n }\n}\n\n/**\n * @param {string} path\n * @returns {Stats | undefined}\n */\nfunction tryStatSync(path) {\n // Note: from Node 15 onwards we can use `throwIfNoEntry: false` instead.\n try {\n return statSync(path)\n } catch {\n // Note: in Node code this returns `new Stats`,\n // but in Node 22 that’s marked as a deprecated internal API.\n // Which, well, we kinda are, but still to prevent that warning,\n // just yield `undefined`.\n }\n}\n\n/**\n * Legacy CommonJS main resolution:\n * 1. let M = pkg_url + (json main field)\n * 2. TRY(M, M.js, M.json, M.node)\n * 3. TRY(M/index.js, M/index.json, M/index.node)\n * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node)\n * 5. NOT_FOUND\n *\n * @param {URL} url\n * @returns {boolean}\n */\nfunction fileExists(url) {\n const stats = statSync(url, {throwIfNoEntry: false});\n const isFile = stats ? stats.isFile() : undefined;\n return isFile === null || isFile === undefined ? false : isFile\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {PackageConfig} packageConfig\n * @param {URL} base\n * @returns {URL}\n */\nfunction legacyMainResolve(packageJsonUrl, packageConfig, base) {\n /** @type {URL | undefined} */\n let guess;\n if (packageConfig.main !== undefined) {\n guess = new URL$1(packageConfig.main, packageJsonUrl);\n // Note: fs check redundances will be handled by Descriptor cache here.\n if (fileExists(guess)) return guess\n\n const tries = [\n `./${packageConfig.main}.js`,\n `./${packageConfig.main}.json`,\n `./${packageConfig.main}.node`,\n `./${packageConfig.main}/index.js`,\n `./${packageConfig.main}/index.json`,\n `./${packageConfig.main}/index.node`\n ];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL$1(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(\n guess,\n packageJsonUrl,\n base,\n packageConfig.main\n );\n return guess\n }\n // Fallthrough.\n }\n\n const tries = ['./index.js', './index.json', './index.node'];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL$1(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);\n return guess\n }\n\n // Not found.\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath(new URL$1('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {URL} resolved\n * @param {URL} base\n * @param {boolean} [preserveSymlinks]\n * @returns {URL}\n */\nfunction finalizeResolution(resolved, base, preserveSymlinks) {\n if (encodedSeparatorRegEx.exec(resolved.pathname) !== null) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname,\n 'must not include encoded \"/\" or \"\\\\\" characters',\n fileURLToPath(base)\n )\n }\n\n /** @type {string} */\n let filePath;\n\n try {\n filePath = fileURLToPath(resolved);\n } catch (error) {\n const cause = /** @type {ErrnoException} */ (error);\n Object.defineProperty(cause, 'input', {value: String(resolved)});\n Object.defineProperty(cause, 'module', {value: String(base)});\n throw cause\n }\n\n const stats = tryStatSync(\n filePath.endsWith('/') ? filePath.slice(-1) : filePath\n );\n\n if (stats && stats.isDirectory()) {\n const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, fileURLToPath(base));\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!stats || !stats.isFile()) {\n const error = new ERR_MODULE_NOT_FOUND(\n filePath || resolved.pathname,\n base && fileURLToPath(base),\n true\n );\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!preserveSymlinks) {\n const real = realpathSync(filePath);\n const {search, hash} = resolved;\n resolved = pathToFileURL(real + (filePath.endsWith(path.sep) ? '/' : ''));\n resolved.search = search;\n resolved.hash = hash;\n }\n\n return resolved\n}\n\n/**\n * @param {string} specifier\n * @param {URL | undefined} packageJsonUrl\n * @param {URL} base\n * @returns {Error}\n */\nfunction importNotDefined(specifier, packageJsonUrl, base) {\n return new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier,\n packageJsonUrl && fileURLToPath(new URL$1('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {Error}\n */\nfunction exportsNotFound(subpath, packageJsonUrl, base) {\n return new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath(new URL$1('.', packageJsonUrl)),\n subpath,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} request\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidSubpath(request, match, packageJsonUrl, internal, base) {\n const reason = `request is not a valid match in pattern \"${match}\" for the \"${\n internal ? 'imports' : 'exports'\n }\" resolution of ${fileURLToPath(packageJsonUrl)}`;\n throw new ERR_INVALID_MODULE_SPECIFIER(\n request,\n reason,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {unknown} target\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {Error}\n */\nfunction invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) {\n target =\n typeof target === 'object' && target !== null\n ? JSON.stringify(target, null, '')\n : `${target}`;\n\n return new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath(new URL$1('.', packageJsonUrl)),\n subpath,\n target,\n internal,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} target\n * @param {string} subpath\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {boolean} isPathMap\n * @param {Set | undefined} conditions\n * @returns {URL}\n */\nfunction resolvePackageTargetString(\n target,\n subpath,\n match,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n) {\n if (subpath !== '' && !pattern && target[target.length - 1] !== '/')\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n\n if (!target.startsWith('./')) {\n if (internal && !target.startsWith('../') && !target.startsWith('/')) {\n let isURL = false;\n\n try {\n new URL$1(target);\n isURL = true;\n } catch {\n // Continue regardless of error.\n }\n\n if (!isURL) {\n const exportTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target + subpath;\n\n return packageResolve(exportTarget, packageJsonUrl, conditions)\n }\n }\n\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n }\n\n if (invalidSegmentRegEx.exec(target.slice(2)) !== null) {\n if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) {\n if (!isPathMap) {\n const request = pattern\n ? match.replace('*', () => subpath)\n : match + subpath;\n const resolvedTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n true\n );\n }\n } else {\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n }\n }\n\n const resolved = new URL$1(target, packageJsonUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL$1('.', packageJsonUrl).pathname;\n\n if (!resolvedPath.startsWith(packagePath))\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n\n if (subpath === '') return resolved\n\n if (invalidSegmentRegEx.exec(subpath) !== null) {\n const request = pattern\n ? match.replace('*', () => subpath)\n : match + subpath;\n if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) {\n if (!isPathMap) {\n const resolvedTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n false\n );\n }\n } else {\n throwInvalidSubpath(request, match, packageJsonUrl, internal, base);\n }\n }\n\n if (pattern) {\n return new URL$1(\n RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n resolved.href,\n () => subpath\n )\n )\n }\n\n return new URL$1(subpath, resolved)\n}\n\n/**\n * @param {string} key\n * @returns {boolean}\n */\nfunction isArrayIndex(key) {\n const keyNumber = Number(key);\n if (`${keyNumber}` !== key) return false\n return keyNumber >= 0 && keyNumber < 0xff_ff_ff_ff\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {unknown} target\n * @param {string} subpath\n * @param {string} packageSubpath\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {boolean} isPathMap\n * @param {Set | undefined} conditions\n * @returns {URL | null}\n */\nfunction resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n) {\n if (typeof target === 'string') {\n return resolvePackageTargetString(\n target,\n subpath,\n packageSubpath,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n )\n }\n\n if (Array.isArray(target)) {\n /** @type {Array} */\n const targetList = target;\n if (targetList.length === 0) return null\n\n /** @type {ErrnoException | null | undefined} */\n let lastException;\n let i = -1;\n\n while (++i < targetList.length) {\n const targetItem = targetList[i];\n /** @type {URL | null} */\n let resolveResult;\n try {\n resolveResult = resolvePackageTarget(\n packageJsonUrl,\n targetItem,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n lastException = exception;\n if (exception.code === 'ERR_INVALID_PACKAGE_TARGET') continue\n throw error\n }\n\n if (resolveResult === undefined) continue\n\n if (resolveResult === null) {\n lastException = null;\n continue\n }\n\n return resolveResult\n }\n\n if (lastException === undefined || lastException === null) {\n return null\n }\n\n throw lastException\n }\n\n if (typeof target === 'object' && target !== null) {\n const keys = Object.getOwnPropertyNames(target);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (isArrayIndex(key)) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain numeric property keys.'\n )\n }\n }\n\n i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (key === 'default' || (conditions && conditions.has(key))) {\n // @ts-expect-error: indexable.\n const conditionalTarget = /** @type {unknown} */ (target[key]);\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n conditionalTarget,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n if (resolveResult === undefined) continue\n return resolveResult\n }\n }\n\n return null\n }\n\n if (target === null) {\n return null\n }\n\n throw invalidPackageTarget(\n packageSubpath,\n target,\n packageJsonUrl,\n internal,\n base\n )\n}\n\n/**\n * @param {unknown} exports\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {boolean}\n */\nfunction isConditionalExportsMainSugar(exports, packageJsonUrl, base) {\n if (typeof exports === 'string' || Array.isArray(exports)) return true\n if (typeof exports !== 'object' || exports === null) return false\n\n const keys = Object.getOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n let keyIndex = -1;\n while (++keyIndex < keys.length) {\n const key = keys[keyIndex];\n const currentIsConditionalSugar = key === '' || key[0] !== '.';\n if (i++ === 0) {\n isConditionalSugar = currentIsConditionalSugar;\n } else if (isConditionalSugar !== currentIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain some keys starting with \\'.\\' and some not.' +\n ' The exports object must either be an object of package subpath keys' +\n ' or an object of main entry condition name keys only.'\n )\n }\n }\n\n return isConditionalSugar\n}\n\n/**\n * @param {string} match\n * @param {URL} pjsonUrl\n * @param {URL} base\n */\nfunction emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) {\n // @ts-expect-error: apparently it does exist, TS.\n if (process.noDeprecation) {\n return\n }\n\n const pjsonPath = fileURLToPath(pjsonUrl);\n if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return\n emittedPackageWarnings.add(pjsonPath + '|' + match);\n process.emitWarning(\n `Use of deprecated trailing slash pattern mapping \"${match}\" in the ` +\n `\"exports\" field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }. Mapping specifiers ending in \"/\" is no longer supported.`,\n 'DeprecationWarning',\n 'DEP0155'\n );\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {string} packageSubpath\n * @param {Record} packageConfig\n * @param {URL} base\n * @param {Set | undefined} conditions\n * @returns {URL}\n */\nfunction packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n) {\n let exports = packageConfig.exports;\n\n if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) {\n exports = {'.': exports};\n }\n\n if (\n own.call(exports, packageSubpath) &&\n !packageSubpath.includes('*') &&\n !packageSubpath.endsWith('/')\n ) {\n // @ts-expect-error: indexable.\n const target = exports[packageSubpath];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n '',\n packageSubpath,\n base,\n false,\n false,\n false,\n conditions\n );\n if (resolveResult === null || resolveResult === undefined) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n }\n\n return resolveResult\n }\n\n let bestMatch = '';\n let bestMatchSubpath = '';\n const keys = Object.getOwnPropertyNames(exports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n const patternIndex = key.indexOf('*');\n\n if (\n patternIndex !== -1 &&\n packageSubpath.startsWith(key.slice(0, patternIndex))\n ) {\n // When this reaches EOL, this can throw at the top of the whole function:\n //\n // if (StringPrototypeEndsWith(packageSubpath, '/'))\n // throwInvalidSubpath(packageSubpath)\n //\n // To match \"imports\" and the spec.\n if (packageSubpath.endsWith('/')) {\n emitTrailingSlashPatternDeprecation(\n packageSubpath,\n packageJsonUrl,\n base\n );\n }\n\n const patternTrailer = key.slice(patternIndex + 1);\n\n if (\n packageSubpath.length >= key.length &&\n packageSubpath.endsWith(patternTrailer) &&\n patternKeyCompare(bestMatch, key) === 1 &&\n key.lastIndexOf('*') === patternIndex\n ) {\n bestMatch = key;\n bestMatchSubpath = packageSubpath.slice(\n patternIndex,\n packageSubpath.length - patternTrailer.length\n );\n }\n }\n }\n\n if (bestMatch) {\n // @ts-expect-error: indexable.\n const target = /** @type {unknown} */ (exports[bestMatch]);\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n false,\n packageSubpath.endsWith('/'),\n conditions\n );\n\n if (resolveResult === null || resolveResult === undefined) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n }\n\n return resolveResult\n }\n\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n}\n\n/**\n * @param {string} a\n * @param {string} b\n */\nfunction patternKeyCompare(a, b) {\n const aPatternIndex = a.indexOf('*');\n const bPatternIndex = b.indexOf('*');\n const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n const baseLengthB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n if (baseLengthA > baseLengthB) return -1\n if (baseLengthB > baseLengthA) return 1\n if (aPatternIndex === -1) return 1\n if (bPatternIndex === -1) return -1\n if (a.length > b.length) return -1\n if (b.length > a.length) return 1\n return 0\n}\n\n/**\n * @param {string} name\n * @param {URL} base\n * @param {Set} [conditions]\n * @returns {URL}\n */\nfunction packageImportsResolve(name, base, conditions) {\n if (name === '#' || name.startsWith('#/') || name.endsWith('/')) {\n const reason = 'is not a valid internal imports specifier name';\n throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base))\n }\n\n /** @type {URL | undefined} */\n let packageJsonUrl;\n\n const packageConfig = getPackageScopeConfig(base);\n\n if (packageConfig.exists) {\n packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (own.call(imports, name) && !name.includes('*')) {\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n imports[name],\n '',\n name,\n base,\n false,\n true,\n false,\n conditions\n );\n if (resolveResult !== null && resolveResult !== undefined) {\n return resolveResult\n }\n } else {\n let bestMatch = '';\n let bestMatchSubpath = '';\n const keys = Object.getOwnPropertyNames(imports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n const patternIndex = key.indexOf('*');\n\n if (patternIndex !== -1 && name.startsWith(key.slice(0, -1))) {\n const patternTrailer = key.slice(patternIndex + 1);\n if (\n name.length >= key.length &&\n name.endsWith(patternTrailer) &&\n patternKeyCompare(bestMatch, key) === 1 &&\n key.lastIndexOf('*') === patternIndex\n ) {\n bestMatch = key;\n bestMatchSubpath = name.slice(\n patternIndex,\n name.length - patternTrailer.length\n );\n }\n }\n }\n\n if (bestMatch) {\n const target = imports[bestMatch];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n true,\n false,\n conditions\n );\n\n if (resolveResult !== null && resolveResult !== undefined) {\n return resolveResult\n }\n }\n }\n }\n }\n\n throw importNotDefined(name, packageJsonUrl, base)\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n */\nfunction parsePackageName(specifier, base) {\n let separatorIndex = specifier.indexOf('/');\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === '@') {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = specifier.indexOf('/', separatorIndex + 1);\n }\n }\n\n const packageName =\n separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);\n\n // Package name cannot have leading . and cannot have percent-encoding or\n // \\\\ separators.\n if (invalidPackageNameRegEx.exec(packageName) !== null) {\n validPackageName = false;\n }\n\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier,\n 'is not a valid package name',\n fileURLToPath(base)\n )\n }\n\n const packageSubpath =\n '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex));\n\n return {packageName, packageSubpath, isScoped}\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n * @param {Set | undefined} conditions\n * @returns {URL}\n */\nfunction packageResolve(specifier, base, conditions) {\n if (builtinModules.includes(specifier)) {\n return new URL$1('node:' + specifier)\n }\n\n const {packageName, packageSubpath, isScoped} = parsePackageName(\n specifier,\n base\n );\n\n // ResolveSelf\n const packageConfig = getPackageScopeConfig(base);\n\n // Can’t test.\n /* c8 ignore next 16 */\n if (packageConfig.exists) {\n const packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n if (\n packageConfig.name === packageName &&\n packageConfig.exports !== undefined &&\n packageConfig.exports !== null\n ) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n )\n }\n }\n\n let packageJsonUrl = new URL$1(\n './node_modules/' + packageName + '/package.json',\n base\n );\n let packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {string} */\n let lastPath;\n do {\n const stat = tryStatSync(packageJsonPath.slice(0, -13));\n if (!stat || !stat.isDirectory()) {\n lastPath = packageJsonPath;\n packageJsonUrl = new URL$1(\n (isScoped ? '../../../../node_modules/' : '../../../node_modules/') +\n packageName +\n '/package.json',\n packageJsonUrl\n );\n packageJsonPath = fileURLToPath(packageJsonUrl);\n continue\n }\n\n // Package match.\n const packageConfig = read(packageJsonPath, {base, specifier});\n if (packageConfig.exports !== undefined && packageConfig.exports !== null) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n )\n }\n\n if (packageSubpath === '.') {\n return legacyMainResolve(packageJsonUrl, packageConfig, base)\n }\n\n return new URL$1(packageSubpath, packageJsonUrl)\n // Cross-platform root check.\n } while (packageJsonPath.length !== lastPath.length)\n\n throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), false)\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === '.') {\n if (specifier.length === 1 || specifier[1] === '/') return true\n if (\n specifier[1] === '.' &&\n (specifier.length === 2 || specifier[2] === '/')\n ) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === '') return false\n if (specifier[0] === '/') return true\n return isRelativeSpecifier(specifier)\n}\n\n/**\n * The “Resolver Algorithm Specification” as detailed in the Node docs (which is\n * sync and slightly lower-level than `resolve`).\n *\n * @param {string} specifier\n * `/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`, etc.\n * @param {URL} base\n * Full URL (to a file) that `specifier` is resolved relative from.\n * @param {Set} [conditions]\n * Conditions.\n * @param {boolean} [preserveSymlinks]\n * Keep symlinks instead of resolving them.\n * @returns {URL}\n * A URL object to the found thing.\n */\nfunction moduleResolve(specifier, base, conditions, preserveSymlinks) {\n // Note: The Node code supports `base` as a string (in this internal API) too,\n // we don’t.\n const protocol = base.protocol;\n const isData = protocol === 'data:';\n const isRemote = isData || protocol === 'http:' || protocol === 'https:';\n // Order swapped from spec for minor perf gain.\n // Ok since relative URLs cannot parse as URLs.\n /** @type {URL | undefined} */\n let resolved;\n\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n try {\n resolved = new URL$1(specifier, base);\n } catch (error_) {\n const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);\n error.cause = error_;\n throw error\n }\n } else if (protocol === 'file:' && specifier[0] === '#') {\n resolved = packageImportsResolve(specifier, base, conditions);\n } else {\n try {\n resolved = new URL$1(specifier);\n } catch (error_) {\n // Note: actual code uses `canBeRequiredWithoutScheme`.\n if (isRemote && !builtinModules.includes(specifier)) {\n const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);\n error.cause = error_;\n throw error\n }\n\n resolved = packageResolve(specifier, base, conditions);\n }\n }\n\n assert(resolved !== undefined, 'expected to be defined');\n\n if (resolved.protocol !== 'file:') {\n return resolved\n }\n\n return finalizeResolution(resolved, base, preserveSymlinks)\n}\n\n/**\n * @param {string} specifier\n * @param {URL | undefined} parsed\n * @param {URL | undefined} parsedParentURL\n */\nfunction checkIfDisallowedImport(specifier, parsed, parsedParentURL) {\n if (parsedParentURL) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const parentProtocol = parsedParentURL.protocol;\n\n if (parentProtocol === 'http:' || parentProtocol === 'https:') {\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const parsedProtocol = parsed?.protocol;\n\n // `data:` and `blob:` disallowed due to allowing file: access via\n // indirection\n if (\n parsedProtocol &&\n parsedProtocol !== 'https:' &&\n parsedProtocol !== 'http:'\n ) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'remote imports cannot import from a local location.'\n )\n }\n\n return {url: parsed?.href || ''}\n }\n\n if (builtinModules.includes(specifier)) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'remote imports cannot import from a local location.'\n )\n }\n\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'only relative and absolute specifiers are supported.'\n )\n }\n }\n}\n\n// Note: this is from:\n// \n/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * @template {unknown} Value\n * @param {Value} self\n * @returns {Value is URL}\n */\nfunction isURL(self) {\n return Boolean(\n self &&\n typeof self === 'object' &&\n 'href' in self &&\n typeof self.href === 'string' &&\n 'protocol' in self &&\n typeof self.protocol === 'string' &&\n self.href &&\n self.protocol\n )\n}\n\n/**\n * Validate user-input in `context` supplied by a custom loader.\n *\n * @param {unknown} parentURL\n * @returns {asserts parentURL is URL | string | undefined}\n */\nfunction throwIfInvalidParentURL(parentURL) {\n if (parentURL === undefined) {\n return // Main entry point, so no parent\n }\n\n if (typeof parentURL !== 'string' && !isURL(parentURL)) {\n throw new codes.ERR_INVALID_ARG_TYPE(\n 'parentURL',\n ['string', 'URL'],\n parentURL\n )\n }\n}\n\n/**\n * @param {string} specifier\n * @param {{parentURL?: string, conditions?: Array}} context\n * @returns {{url: string, format?: string | null}}\n */\nfunction defaultResolve(specifier, context = {}) {\n const {parentURL} = context;\n assert(parentURL !== undefined, 'expected `parentURL` to be defined');\n throwIfInvalidParentURL(parentURL);\n\n /** @type {URL | undefined} */\n let parsedParentURL;\n if (parentURL) {\n try {\n parsedParentURL = new URL$1(parentURL);\n } catch {\n // Ignore exception\n }\n }\n\n /** @type {URL | undefined} */\n let parsed;\n /** @type {string | undefined} */\n let protocol;\n\n try {\n parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier)\n ? new URL$1(specifier, parsedParentURL)\n : new URL$1(specifier);\n\n // Avoid accessing the `protocol` property due to the lazy getters.\n protocol = parsed.protocol;\n\n if (protocol === 'data:') {\n return {url: parsed.href, format: null}\n }\n } catch {\n // Ignore exception\n }\n\n // There are multiple deep branches that can either throw or return; instead\n // of duplicating that deeply nested logic for the possible returns, DRY and\n // check for a return. This seems the least gnarly.\n const maybeReturn = checkIfDisallowedImport(\n specifier,\n parsed,\n parsedParentURL\n );\n\n if (maybeReturn) return maybeReturn\n\n // This must come after checkIfDisallowedImport\n if (protocol === undefined && parsed) {\n protocol = parsed.protocol;\n }\n\n if (protocol === 'node:') {\n return {url: specifier}\n }\n\n // This must come after checkIfDisallowedImport\n if (parsed && parsed.protocol === 'node:') return {url: specifier}\n\n const conditions = getConditionsSet(context.conditions);\n\n const url = moduleResolve(specifier, new URL$1(parentURL), conditions, false);\n\n return {\n // Do NOT cast `url` to a string: that will work even when there are real\n // problems, silencing them\n url: url.href,\n format: defaultGetFormatWithoutErrors(url, {parentURL})\n }\n}\n\n/**\n * @typedef {import('./lib/errors.js').ErrnoException} ErrnoException\n */\n\n\n/**\n * Match `import.meta.resolve` except that `parent` is required (you can pass\n * `import.meta.url`).\n *\n * @param {string} specifier\n * The module specifier to resolve relative to parent\n * (`/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`,\n * etc).\n * @param {string} parent\n * The absolute parent module URL to resolve from.\n * You must pass `import.meta.url` or something else.\n * @returns {string}\n * Returns a string to a full `file:`, `data:`, or `node:` URL\n * to the found thing.\n */\nfunction resolve(specifier, parent) {\n if (!parent) {\n throw new Error(\n 'Please pass `parent`: `import-meta-resolve` cannot ponyfill that'\n )\n }\n\n try {\n return defaultResolve(specifier, {parentURL: parent}).url\n } catch (error) {\n // See: \n const exception = /** @type {ErrnoException} */ (error);\n\n if (\n (exception.code === 'ERR_UNSUPPORTED_DIR_IMPORT' ||\n exception.code === 'ERR_MODULE_NOT_FOUND') &&\n typeof exception.url === 'string'\n ) {\n return exception.url\n }\n\n throw error\n }\n}\n\nexport { moduleResolve, resolve };\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/node_modules/.bin/semver b/framework-core/node_modules/@babel/core/node_modules/.bin/semver new file mode 120000 index 0000000..5aaadf4 --- /dev/null +++ b/framework-core/node_modules/@babel/core/node_modules/.bin/semver @@ -0,0 +1 @@ +../semver/bin/semver.js \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/node_modules/semver/LICENSE b/framework-core/node_modules/@babel/core/node_modules/semver/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/framework-core/node_modules/@babel/core/node_modules/semver/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/framework-core/node_modules/@babel/core/node_modules/semver/README.md b/framework-core/node_modules/@babel/core/node_modules/semver/README.md new file mode 100644 index 0000000..2293a14 --- /dev/null +++ b/framework-core/node_modules/@babel/core/node_modules/semver/README.md @@ -0,0 +1,443 @@ +semver(1) -- The semantic versioner for npm +=========================================== + +## Install + +```bash +npm install semver +```` + +## Usage + +As a node module: + +```js +const semver = require('semver') + +semver.valid('1.2.3') // '1.2.3' +semver.valid('a.b.c') // null +semver.clean(' =v1.2.3 ') // '1.2.3' +semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true +semver.gt('1.2.3', '9.8.7') // false +semver.lt('1.2.3', '9.8.7') // true +semver.minVersion('>=1.0.0') // '1.0.0' +semver.valid(semver.coerce('v2')) // '2.0.0' +semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' +``` + +As a command-line utility: + +``` +$ semver -h + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, or prerelease. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them. +``` + +## Versions + +A "version" is described by the `v2.0.0` specification found at +. + +A leading `"="` or `"v"` character is stripped off and ignored. + +## Ranges + +A `version range` is a set of `comparators` which specify versions +that satisfy the range. + +A `comparator` is composed of an `operator` and a `version`. The set +of primitive `operators` is: + +* `<` Less than +* `<=` Less than or equal to +* `>` Greater than +* `>=` Greater than or equal to +* `=` Equal. If no operator is specified, then equality is assumed, + so this operator is optional, but MAY be included. + +For example, the comparator `>=1.2.7` would match the versions +`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` +or `1.1.0`. + +Comparators can be joined by whitespace to form a `comparator set`, +which is satisfied by the **intersection** of all of the comparators +it includes. + +A range is composed of one or more comparator sets, joined by `||`. A +version matches a range if and only if every comparator in at least +one of the `||`-separated comparator sets is satisfied by the version. + +For example, the range `>=1.2.7 <1.3.0` would match the versions +`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, +or `1.1.0`. + +The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, +`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. + +### Prerelease Tags + +If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then +it will only be allowed to satisfy comparator sets if at least one +comparator with the same `[major, minor, patch]` tuple also has a +prerelease tag. + +For example, the range `>1.2.3-alpha.3` would be allowed to match the +version `1.2.3-alpha.7`, but it would *not* be satisfied by +`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater +than" `1.2.3-alpha.3` according to the SemVer sort rules. The version +range only accepts prerelease tags on the `1.2.3` version. The +version `3.4.5` *would* satisfy the range, because it does not have a +prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. + +The purpose for this behavior is twofold. First, prerelease versions +frequently are updated very quickly, and contain many breaking changes +that are (by the author's design) not yet fit for public consumption. +Therefore, by default, they are excluded from range matching +semantics. + +Second, a user who has opted into using a prerelease version has +clearly indicated the intent to use *that specific* set of +alpha/beta/rc versions. By including a prerelease tag in the range, +the user is indicating that they are aware of the risk. However, it +is still not appropriate to assume that they have opted into taking a +similar risk on the *next* set of prerelease versions. + +Note that this behavior can be suppressed (treating all prerelease +versions as if they were normal versions, for the purpose of range +matching) by setting the `includePrerelease` flag on the options +object to any +[functions](https://github.com/npm/node-semver#functions) that do +range matching. + +#### Prerelease Identifiers + +The method `.inc` takes an additional `identifier` string argument that +will append the value of the string as a prerelease identifier: + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta') +// '1.2.4-beta.0' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta +1.2.4-beta.0 +``` + +Which then can be used to increment further: + +```bash +$ semver 1.2.4-beta.0 -i prerelease +1.2.4-beta.1 +``` + +### Advanced Range Syntax + +Advanced range syntax desugars to primitive comparators in +deterministic ways. + +Advanced ranges may be combined in the same way as primitive +comparators using white space or `||`. + +#### Hyphen Ranges `X.Y.Z - A.B.C` + +Specifies an inclusive set. + +* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` + +If a partial version is provided as the first version in the inclusive +range, then the missing pieces are replaced with zeroes. + +* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` + +If a partial version is provided as the second version in the +inclusive range, then all versions that start with the supplied parts +of the tuple are accepted, but nothing that would be greater than the +provided tuple parts. + +* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0` +* `1.2.3 - 2` := `>=1.2.3 <3.0.0` + +#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` + +Any of `X`, `x`, or `*` may be used to "stand in" for one of the +numeric values in the `[major, minor, patch]` tuple. + +* `*` := `>=0.0.0` (Any version satisfies) +* `1.x` := `>=1.0.0 <2.0.0` (Matching major version) +* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions) + +A partial version range is treated as an X-Range, so the special +character is in fact optional. + +* `""` (empty string) := `*` := `>=0.0.0` +* `1` := `1.x.x` := `>=1.0.0 <2.0.0` +* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0` + +#### Tilde Ranges `~1.2.3` `~1.2` `~1` + +Allows patch-level changes if a minor version is specified on the +comparator. Allows minor-level changes if not. + +* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0` +* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`) +* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`) +* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0` +* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`) +* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`) +* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. + +#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` + +Allows changes that do not modify the left-most non-zero element in the +`[major, minor, patch]` tuple. In other words, this allows patch and +minor updates for versions `1.0.0` and above, patch updates for +versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. + +Many authors treat a `0.x` version as if the `x` were the major +"breaking-change" indicator. + +Caret ranges are ideal when an author may make breaking changes +between `0.2.4` and `0.3.0` releases, which is a common practice. +However, it presumes that there will *not* be breaking changes between +`0.2.4` and `0.2.5`. It allows for changes that are presumed to be +additive (but non-breaking), according to commonly observed practices. + +* `^1.2.3` := `>=1.2.3 <2.0.0` +* `^0.2.3` := `>=0.2.3 <0.3.0` +* `^0.0.3` := `>=0.0.3 <0.0.4` +* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. +* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the + `0.0.3` version *only* will be allowed, if they are greater than or + equal to `beta`. So, `0.0.3-pr.2` would be allowed. + +When parsing caret ranges, a missing `patch` value desugars to the +number `0`, but will allow flexibility within that value, even if the +major and minor versions are both `0`. + +* `^1.2.x` := `>=1.2.0 <2.0.0` +* `^0.0.x` := `>=0.0.0 <0.1.0` +* `^0.0` := `>=0.0.0 <0.1.0` + +A missing `minor` and `patch` values will desugar to zero, but also +allow flexibility within those values, even if the major version is +zero. + +* `^1.x` := `>=1.0.0 <2.0.0` +* `^0.x` := `>=0.0.0 <1.0.0` + +### Range Grammar + +Putting all this together, here is a Backus-Naur grammar for ranges, +for the benefit of parser authors: + +```bnf +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ +``` + +## Functions + +All methods and classes take a final `options` object argument. All +options in this object are `false` by default. The options supported +are: + +- `loose` Be more forgiving about not-quite-valid semver strings. + (Any resulting output will always be 100% strict compliant, of + course.) For backwards compatibility reasons, if the `options` + argument is a boolean value instead of an object, it is interpreted + to be the `loose` param. +- `includePrerelease` Set to suppress the [default + behavior](https://github.com/npm/node-semver#prerelease-tags) of + excluding prerelease tagged versions from ranges unless they are + explicitly opted into. + +Strict-mode Comparators and Ranges will be strict about the SemVer +strings that they parse. + +* `valid(v)`: Return the parsed version, or null if it's not valid. +* `inc(v, release)`: Return the version incremented by the release + type (`major`, `premajor`, `minor`, `preminor`, `patch`, + `prepatch`, or `prerelease`), or null if it's not valid + * `premajor` in one call will bump the version up to the next major + version and down to a prerelease of that major version. + `preminor`, and `prepatch` work the same way. + * If called from a non-prerelease version, the `prerelease` will work the + same as `prepatch`. It increments the patch version, then makes a + prerelease. If the input version is already a prerelease it simply + increments it. +* `prerelease(v)`: Returns an array of prerelease components, or null + if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` +* `major(v)`: Return the major version number. +* `minor(v)`: Return the minor version number. +* `patch(v)`: Return the patch version number. +* `intersects(r1, r2, loose)`: Return true if the two supplied ranges + or comparators intersect. +* `parse(v)`: Attempt to parse a string as a semantic version, returning either + a `SemVer` object or `null`. + +### Comparison + +* `gt(v1, v2)`: `v1 > v2` +* `gte(v1, v2)`: `v1 >= v2` +* `lt(v1, v2)`: `v1 < v2` +* `lte(v1, v2)`: `v1 <= v2` +* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, + even if they're not the exact same string. You already know how to + compare strings. +* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. +* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call + the corresponding function above. `"==="` and `"!=="` do simple + string comparison, but are included for completeness. Throws if an + invalid comparison string is provided. +* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if + `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. +* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions + in descending order when passed to `Array.sort()`. +* `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions + are equal. Sorts in ascending order if passed to `Array.sort()`. + `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. +* `diff(v1, v2)`: Returns difference between two versions by the release type + (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), + or null if the versions are the same. + +### Comparators + +* `intersects(comparator)`: Return true if the comparators intersect + +### Ranges + +* `validRange(range)`: Return the valid range or null if it's not valid +* `satisfies(version, range)`: Return true if the version satisfies the + range. +* `maxSatisfying(versions, range)`: Return the highest version in the list + that satisfies the range, or `null` if none of them do. +* `minSatisfying(versions, range)`: Return the lowest version in the list + that satisfies the range, or `null` if none of them do. +* `minVersion(range)`: Return the lowest version that can possibly match + the given range. +* `gtr(version, range)`: Return `true` if version is greater than all the + versions possible in the range. +* `ltr(version, range)`: Return `true` if version is less than all the + versions possible in the range. +* `outside(version, range, hilo)`: Return true if the version is outside + the bounds of the range in either the high or low direction. The + `hilo` argument must be either the string `'>'` or `'<'`. (This is + the function called by `gtr` and `ltr`.) +* `intersects(range)`: Return true if any of the ranges comparators intersect + +Note that, since ranges may be non-contiguous, a version might not be +greater than a range, less than a range, *or* satisfy a range! For +example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` +until `2.0.0`, so the version `1.2.10` would not be greater than the +range (because `2.0.1` satisfies, which is higher), nor less than the +range (since `1.2.8` satisfies, which is lower), and it also does not +satisfy the range. + +If you want to know if a version satisfies or does not satisfy a +range, use the `satisfies(version, range)` function. + +### Coercion + +* `coerce(version, options)`: Coerces a string to semver if possible + +This aims to provide a very forgiving translation of a non-semver string to +semver. It looks for the first digit in a string, and consumes all +remaining characters which satisfy at least a partial semver (e.g., `1`, +`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer +versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All +surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes +`3.4.0`). Only text which lacks digits will fail coercion (`version one` +is not valid). The maximum length for any semver component considered for +coercion is 16 characters; longer components will be ignored +(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any +semver component is `Integer.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value +components are invalid (`9999999999999999.4.7.4` is likely invalid). + +If the `options.rtl` flag is set, then `coerce` will return the right-most +coercible tuple that does not share an ending index with a longer coercible +tuple. For example, `1.2.3.4` will return `2.3.4` in rtl mode, not +`4.0.0`. `1.2.3/4` will return `4.0.0`, because the `4` is not a part of +any other overlapping SemVer tuple. + +### Clean + +* `clean(version)`: Clean a string to be a valid semver if possible + +This will return a cleaned and trimmed semver version. If the provided version is not valid a null will be returned. This does not work for ranges. + +ex. +* `s.clean(' = v 2.1.5foo')`: `null` +* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean(' = v 2.1.5-foo')`: `null` +* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean('=v2.1.5')`: `'2.1.5'` +* `s.clean(' =v2.1.5')`: `2.1.5` +* `s.clean(' 2.1.5 ')`: `'2.1.5'` +* `s.clean('~1.0.0')`: `null` diff --git a/framework-core/node_modules/@babel/core/node_modules/semver/bin/semver.js b/framework-core/node_modules/@babel/core/node_modules/semver/bin/semver.js new file mode 100755 index 0000000..666034a --- /dev/null +++ b/framework-core/node_modules/@babel/core/node_modules/semver/bin/semver.js @@ -0,0 +1,174 @@ +#!/usr/bin/env node +// Standalone semver comparison program. +// Exits successfully and prints matching version(s) if +// any supplied version is valid and passes all tests. + +var argv = process.argv.slice(2) + +var versions = [] + +var range = [] + +var inc = null + +var version = require('../package.json').version + +var loose = false + +var includePrerelease = false + +var coerce = false + +var rtl = false + +var identifier + +var semver = require('../semver') + +var reverse = false + +var options = {} + +main() + +function main () { + if (!argv.length) return help() + while (argv.length) { + var a = argv.shift() + var indexOfEqualSign = a.indexOf('=') + if (indexOfEqualSign !== -1) { + a = a.slice(0, indexOfEqualSign) + argv.unshift(a.slice(indexOfEqualSign + 1)) + } + switch (a) { + case '-rv': case '-rev': case '--rev': case '--reverse': + reverse = true + break + case '-l': case '--loose': + loose = true + break + case '-p': case '--include-prerelease': + includePrerelease = true + break + case '-v': case '--version': + versions.push(argv.shift()) + break + case '-i': case '--inc': case '--increment': + switch (argv[0]) { + case 'major': case 'minor': case 'patch': case 'prerelease': + case 'premajor': case 'preminor': case 'prepatch': + inc = argv.shift() + break + default: + inc = 'patch' + break + } + break + case '--preid': + identifier = argv.shift() + break + case '-r': case '--range': + range.push(argv.shift()) + break + case '-c': case '--coerce': + coerce = true + break + case '--rtl': + rtl = true + break + case '--ltr': + rtl = false + break + case '-h': case '--help': case '-?': + return help() + default: + versions.push(a) + break + } + } + + var options = { loose: loose, includePrerelease: includePrerelease, rtl: rtl } + + versions = versions.map(function (v) { + return coerce ? (semver.coerce(v, options) || { version: v }).version : v + }).filter(function (v) { + return semver.valid(v) + }) + if (!versions.length) return fail() + if (inc && (versions.length !== 1 || range.length)) { return failInc() } + + for (var i = 0, l = range.length; i < l; i++) { + versions = versions.filter(function (v) { + return semver.satisfies(v, range[i], options) + }) + if (!versions.length) return fail() + } + return success(versions) +} + +function failInc () { + console.error('--inc can only be used on a single version with no range') + fail() +} + +function fail () { process.exit(1) } + +function success () { + var compare = reverse ? 'rcompare' : 'compare' + versions.sort(function (a, b) { + return semver[compare](a, b, options) + }).map(function (v) { + return semver.clean(v, options) + }).map(function (v) { + return inc ? semver.inc(v, inc, options, identifier) : v + }).forEach(function (v, i, _) { console.log(v) }) +} + +function help () { + console.log(['SemVer ' + version, + '', + 'A JavaScript implementation of the https://semver.org/ specification', + 'Copyright Isaac Z. Schlueter', + '', + 'Usage: semver [options] [ [...]]', + 'Prints valid versions sorted by SemVer precedence', + '', + 'Options:', + '-r --range ', + ' Print versions that match the specified range.', + '', + '-i --increment []', + ' Increment a version by the specified level. Level can', + ' be one of: major, minor, patch, premajor, preminor,', + " prepatch, or prerelease. Default level is 'patch'.", + ' Only one version may be specified.', + '', + '--preid ', + ' Identifier to be used to prefix premajor, preminor,', + ' prepatch or prerelease version increments.', + '', + '-l --loose', + ' Interpret versions and ranges loosely', + '', + '-p --include-prerelease', + ' Always include prerelease versions in range matching', + '', + '-c --coerce', + ' Coerce a string into SemVer if possible', + ' (does not imply --loose)', + '', + '--rtl', + ' Coerce version strings right to left', + '', + '--ltr', + ' Coerce version strings left to right (default)', + '', + 'Program exits successfully if any valid version satisfies', + 'all supplied ranges, and prints all satisfying versions.', + '', + 'If no satisfying versions are found, then exits failure.', + '', + 'Versions are printed in ascending order, so supplying', + 'multiple versions to the utility will just sort them.' + ].join('\n')) +} diff --git a/framework-core/node_modules/@babel/core/node_modules/semver/package.json b/framework-core/node_modules/@babel/core/node_modules/semver/package.json new file mode 100644 index 0000000..6b970a6 --- /dev/null +++ b/framework-core/node_modules/@babel/core/node_modules/semver/package.json @@ -0,0 +1,38 @@ +{ + "name": "semver", + "version": "6.3.1", + "description": "The semantic version parser used by npm.", + "main": "semver.js", + "scripts": { + "test": "tap test/ --100 --timeout=30", + "lint": "echo linting disabled", + "postlint": "template-oss-check", + "template-oss-apply": "template-oss-apply --force", + "lintfix": "npm run lint -- --fix", + "snap": "tap test/ --100 --timeout=30", + "posttest": "npm run lint" + }, + "devDependencies": { + "@npmcli/template-oss": "4.17.0", + "tap": "^12.7.0" + }, + "license": "ISC", + "repository": { + "type": "git", + "url": "https://github.com/npm/node-semver.git" + }, + "bin": { + "semver": "./bin/semver.js" + }, + "files": [ + "bin", + "range.bnf", + "semver.js" + ], + "author": "GitHub Inc.", + "templateOSS": { + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "content": "./scripts/template-oss", + "version": "4.17.0" + } +} diff --git a/framework-core/node_modules/@babel/core/node_modules/semver/range.bnf b/framework-core/node_modules/@babel/core/node_modules/semver/range.bnf new file mode 100644 index 0000000..d4c6ae0 --- /dev/null +++ b/framework-core/node_modules/@babel/core/node_modules/semver/range.bnf @@ -0,0 +1,16 @@ +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | [1-9] ( [0-9] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ diff --git a/framework-core/node_modules/@babel/core/node_modules/semver/semver.js b/framework-core/node_modules/@babel/core/node_modules/semver/semver.js new file mode 100644 index 0000000..39319c1 --- /dev/null +++ b/framework-core/node_modules/@babel/core/node_modules/semver/semver.js @@ -0,0 +1,1643 @@ +exports = module.exports = SemVer + +var debug +/* istanbul ignore next */ +if (typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG)) { + debug = function () { + var args = Array.prototype.slice.call(arguments, 0) + args.unshift('SEMVER') + console.log.apply(console, args) + } +} else { + debug = function () {} +} + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +exports.SEMVER_SPEC_VERSION = '2.0.0' + +var MAX_LENGTH = 256 +var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +var MAX_SAFE_COMPONENT_LENGTH = 16 + +var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 + +// The actual regexps go on exports.re +var re = exports.re = [] +var safeRe = exports.safeRe = [] +var src = exports.src = [] +var t = exports.tokens = {} +var R = 0 + +function tok (n) { + t[n] = R++ +} + +var LETTERDASHNUMBER = '[a-zA-Z0-9-]' + +// Replace some greedy regex tokens to prevent regex dos issues. These regex are +// used internally via the safeRe object since all inputs in this library get +// normalized first to trim and collapse all extra whitespace. The original +// regexes are exported for userland consumption and lower level usage. A +// future breaking change could export the safer regex only with a note that +// all input should have extra whitespace removed. +var safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], +] + +function makeSafeRe (value) { + for (var i = 0; i < safeRegexReplacements.length; i++) { + var token = safeRegexReplacements[i][0] + var max = safeRegexReplacements[i][1] + value = value + .split(token + '*').join(token + '{0,' + max + '}') + .split(token + '+').join(token + '{1,' + max + '}') + } + return value +} + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +tok('NUMERICIDENTIFIER') +src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*' +tok('NUMERICIDENTIFIERLOOSE') +src[t.NUMERICIDENTIFIERLOOSE] = '\\d+' + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +tok('NONNUMERICIDENTIFIER') +src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*' + +// ## Main Version +// Three dot-separated numeric identifiers. + +tok('MAINVERSION') +src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIER] + ')' + +tok('MAINVERSIONLOOSE') +src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')' + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. + +tok('PRERELEASEIDENTIFIER') +src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] + + '|' + src[t.NONNUMERICIDENTIFIER] + ')' + +tok('PRERELEASEIDENTIFIERLOOSE') +src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] + + '|' + src[t.NONNUMERICIDENTIFIER] + ')' + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +tok('PRERELEASE') +src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] + + '(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))' + +tok('PRERELEASELOOSE') +src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] + + '(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))' + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +tok('BUILDIDENTIFIER') +src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+' + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +tok('BUILD') +src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] + + '(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))' + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +tok('FULL') +tok('FULLPLAIN') +src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] + + src[t.PRERELEASE] + '?' + + src[t.BUILD] + '?' + +src[t.FULL] = '^' + src[t.FULLPLAIN] + '$' + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +tok('LOOSEPLAIN') +src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] + + src[t.PRERELEASELOOSE] + '?' + + src[t.BUILD] + '?' + +tok('LOOSE') +src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$' + +tok('GTLT') +src[t.GTLT] = '((?:<|>)?=?)' + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +tok('XRANGEIDENTIFIERLOOSE') +src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*' +tok('XRANGEIDENTIFIER') +src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*' + +tok('XRANGEPLAIN') +src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + + '(?:' + src[t.PRERELEASE] + ')?' + + src[t.BUILD] + '?' + + ')?)?' + +tok('XRANGEPLAINLOOSE') +src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + + '(?:' + src[t.PRERELEASELOOSE] + ')?' + + src[t.BUILD] + '?' + + ')?)?' + +tok('XRANGE') +src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$' +tok('XRANGELOOSE') +src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$' + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +tok('COERCE') +src[t.COERCE] = '(^|[^\\d])' + + '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:$|[^\\d])' +tok('COERCERTL') +re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g') +safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g') + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +tok('LONETILDE') +src[t.LONETILDE] = '(?:~>?)' + +tok('TILDETRIM') +src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+' +re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g') +safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g') +var tildeTrimReplace = '$1~' + +tok('TILDE') +src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$' +tok('TILDELOOSE') +src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$' + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +tok('LONECARET') +src[t.LONECARET] = '(?:\\^)' + +tok('CARETTRIM') +src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+' +re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g') +safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g') +var caretTrimReplace = '$1^' + +tok('CARET') +src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$' +tok('CARETLOOSE') +src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$' + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +tok('COMPARATORLOOSE') +src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$' +tok('COMPARATOR') +src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$' + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +tok('COMPARATORTRIM') +src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] + + '\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')' + +// this one has to use the /g flag +re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g') +safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g') +var comparatorTrimReplace = '$1$2$3' + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +tok('HYPHENRANGE') +src[t.HYPHENRANGE] = '^\\s*(' + src[t.XRANGEPLAIN] + ')' + + '\\s+-\\s+' + + '(' + src[t.XRANGEPLAIN] + ')' + + '\\s*$' + +tok('HYPHENRANGELOOSE') +src[t.HYPHENRANGELOOSE] = '^\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' + + '\\s+-\\s+' + + '(' + src[t.XRANGEPLAINLOOSE] + ')' + + '\\s*$' + +// Star ranges basically just allow anything at all. +tok('STAR') +src[t.STAR] = '(<|>)?=?\\s*\\*' + +// Compile to actual regexp objects. +// All are flag-free, unless they were created above with a flag. +for (var i = 0; i < R; i++) { + debug(i, src[i]) + if (!re[i]) { + re[i] = new RegExp(src[i]) + + // Replace all greedy whitespace to prevent regex dos issues. These regex are + // used internally via the safeRe object since all inputs in this library get + // normalized first to trim and collapse all extra whitespace. The original + // regexes are exported for userland consumption and lower level usage. A + // future breaking change could export the safer regex only with a note that + // all input should have extra whitespace removed. + safeRe[i] = new RegExp(makeSafeRe(src[i])) + } +} + +exports.parse = parse +function parse (version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (version instanceof SemVer) { + return version + } + + if (typeof version !== 'string') { + return null + } + + if (version.length > MAX_LENGTH) { + return null + } + + var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL] + if (!r.test(version)) { + return null + } + + try { + return new SemVer(version, options) + } catch (er) { + return null + } +} + +exports.valid = valid +function valid (version, options) { + var v = parse(version, options) + return v ? v.version : null +} + +exports.clean = clean +function clean (version, options) { + var s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} + +exports.SemVer = SemVer + +function SemVer (version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + if (version instanceof SemVer) { + if (version.loose === options.loose) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError('Invalid Version: ' + version) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') + } + + if (!(this instanceof SemVer)) { + return new SemVer(version, options) + } + + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + + var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]) + + if (!m) { + throw new TypeError('Invalid Version: ' + version) + } + + this.raw = version + + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map(function (id) { + if (/^[0-9]+$/.test(id)) { + var num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }) + } + + this.build = m[5] ? m[5].split('.') : [] + this.format() +} + +SemVer.prototype.format = function () { + this.version = this.major + '.' + this.minor + '.' + this.patch + if (this.prerelease.length) { + this.version += '-' + this.prerelease.join('.') + } + return this.version +} + +SemVer.prototype.toString = function () { + return this.version +} + +SemVer.prototype.compare = function (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + return this.compareMain(other) || this.comparePre(other) +} + +SemVer.prototype.compareMain = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + return compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) +} + +SemVer.prototype.comparePre = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + var i = 0 + do { + var a = this.prerelease[i] + var b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) +} + +SemVer.prototype.compareBuild = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + var i = 0 + do { + var a = this.build[i] + var b = other.build[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) +} + +// preminor will bump the version up to the next minor release, and immediately +// down to pre-release. premajor and prepatch work the same way. +SemVer.prototype.inc = function (release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier) + this.inc('pre', identifier) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier) + } + this.inc('pre', identifier) + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if (this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0) { + this.major++ + } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0] + } else { + var i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + this.prerelease.push(0) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0] + } + } else { + this.prerelease = [identifier, 0] + } + } + break + + default: + throw new Error('invalid increment argument: ' + release) + } + this.format() + this.raw = this.version + return this +} + +exports.inc = inc +function inc (version, release, loose, identifier) { + if (typeof (loose) === 'string') { + identifier = loose + loose = undefined + } + + try { + return new SemVer(version, loose).inc(release, identifier).version + } catch (er) { + return null + } +} + +exports.diff = diff +function diff (version1, version2) { + if (eq(version1, version2)) { + return null + } else { + var v1 = parse(version1) + var v2 = parse(version2) + var prefix = '' + if (v1.prerelease.length || v2.prerelease.length) { + prefix = 'pre' + var defaultResult = 'prerelease' + } + for (var key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return prefix + key + } + } + } + return defaultResult // may be undefined + } +} + +exports.compareIdentifiers = compareIdentifiers + +var numeric = /^[0-9]+$/ +function compareIdentifiers (a, b) { + var anum = numeric.test(a) + var bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +} + +exports.rcompareIdentifiers = rcompareIdentifiers +function rcompareIdentifiers (a, b) { + return compareIdentifiers(b, a) +} + +exports.major = major +function major (a, loose) { + return new SemVer(a, loose).major +} + +exports.minor = minor +function minor (a, loose) { + return new SemVer(a, loose).minor +} + +exports.patch = patch +function patch (a, loose) { + return new SemVer(a, loose).patch +} + +exports.compare = compare +function compare (a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)) +} + +exports.compareLoose = compareLoose +function compareLoose (a, b) { + return compare(a, b, true) +} + +exports.compareBuild = compareBuild +function compareBuild (a, b, loose) { + var versionA = new SemVer(a, loose) + var versionB = new SemVer(b, loose) + return versionA.compare(versionB) || versionA.compareBuild(versionB) +} + +exports.rcompare = rcompare +function rcompare (a, b, loose) { + return compare(b, a, loose) +} + +exports.sort = sort +function sort (list, loose) { + return list.sort(function (a, b) { + return exports.compareBuild(a, b, loose) + }) +} + +exports.rsort = rsort +function rsort (list, loose) { + return list.sort(function (a, b) { + return exports.compareBuild(b, a, loose) + }) +} + +exports.gt = gt +function gt (a, b, loose) { + return compare(a, b, loose) > 0 +} + +exports.lt = lt +function lt (a, b, loose) { + return compare(a, b, loose) < 0 +} + +exports.eq = eq +function eq (a, b, loose) { + return compare(a, b, loose) === 0 +} + +exports.neq = neq +function neq (a, b, loose) { + return compare(a, b, loose) !== 0 +} + +exports.gte = gte +function gte (a, b, loose) { + return compare(a, b, loose) >= 0 +} + +exports.lte = lte +function lte (a, b, loose) { + return compare(a, b, loose) <= 0 +} + +exports.cmp = cmp +function cmp (a, op, b, loose) { + switch (op) { + case '===': + if (typeof a === 'object') + a = a.version + if (typeof b === 'object') + b = b.version + return a === b + + case '!==': + if (typeof a === 'object') + a = a.version + if (typeof b === 'object') + b = b.version + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError('Invalid operator: ' + op) + } +} + +exports.Comparator = Comparator +function Comparator (comp, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } + + if (!(this instanceof Comparator)) { + return new Comparator(comp, options) + } + + comp = comp.trim().split(/\s+/).join(' ') + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) + + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } + + debug('comp', this) +} + +var ANY = {} +Comparator.prototype.parse = function (comp) { + var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR] + var m = comp.match(r) + + if (!m) { + throw new TypeError('Invalid comparator: ' + comp) + } + + this.operator = m[1] !== undefined ? m[1] : '' + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } +} + +Comparator.prototype.toString = function () { + return this.value +} + +Comparator.prototype.test = function (version) { + debug('Comparator.test', version, this.options.loose) + + if (this.semver === ANY || version === ANY) { + return true + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) +} + +Comparator.prototype.intersects = function (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + var rangeTmp + + if (this.operator === '') { + if (this.value === '') { + return true + } + rangeTmp = new Range(comp.value, options) + return satisfies(this.value, rangeTmp, options) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + rangeTmp = new Range(this.value, options) + return satisfies(comp.semver, rangeTmp, options) + } + + var sameDirectionIncreasing = + (this.operator === '>=' || this.operator === '>') && + (comp.operator === '>=' || comp.operator === '>') + var sameDirectionDecreasing = + (this.operator === '<=' || this.operator === '<') && + (comp.operator === '<=' || comp.operator === '<') + var sameSemVer = this.semver.version === comp.semver.version + var differentDirectionsInclusive = + (this.operator === '>=' || this.operator === '<=') && + (comp.operator === '>=' || comp.operator === '<=') + var oppositeDirectionsLessThan = + cmp(this.semver, '<', comp.semver, options) && + ((this.operator === '>=' || this.operator === '>') && + (comp.operator === '<=' || comp.operator === '<')) + var oppositeDirectionsGreaterThan = + cmp(this.semver, '>', comp.semver, options) && + ((this.operator === '<=' || this.operator === '<') && + (comp.operator === '>=' || comp.operator === '>')) + + return sameDirectionIncreasing || sameDirectionDecreasing || + (sameSemVer && differentDirectionsInclusive) || + oppositeDirectionsLessThan || oppositeDirectionsGreaterThan +} + +exports.Range = Range +function Range (range, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (range instanceof Range) { + if (range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + return new Range(range.value, options) + } + + if (!(this instanceof Range)) { + return new Range(range, options) + } + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First reduce all whitespace as much as possible so we do not have to rely + // on potentially slow regexes like \s*. This is then stored and used for + // future error messages as well. + this.raw = range + .trim() + .split(/\s+/) + .join(' ') + + // First, split based on boolean or || + this.set = this.raw.split('||').map(function (range) { + return this.parseRange(range.trim()) + }, this).filter(function (c) { + // throw out any that are not relevant for whatever reason + return c.length + }) + + if (!this.set.length) { + throw new TypeError('Invalid SemVer Range: ' + this.raw) + } + + this.format() +} + +Range.prototype.format = function () { + this.range = this.set.map(function (comps) { + return comps.join(' ').trim() + }).join('||').trim() + return this.range +} + +Range.prototype.toString = function () { + return this.range +} + +Range.prototype.parseRange = function (range) { + var loose = this.options.loose + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE] + range = range.replace(hr, hyphenReplace) + debug('hyphen replace', range) + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range, safeRe[t.COMPARATORTRIM]) + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace) + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace) + + // normalize spaces + range = range.split(/\s+/).join(' ') + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR] + var set = range.split(' ').map(function (comp) { + return parseComparator(comp, this.options) + }, this).join(' ').split(/\s+/) + if (this.options.loose) { + // in loose mode, throw out any that are not valid comparators + set = set.filter(function (comp) { + return !!comp.match(compRe) + }) + } + set = set.map(function (comp) { + return new Comparator(comp, this.options) + }, this) + + return set +} + +Range.prototype.intersects = function (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some(function (thisComparators) { + return ( + isSatisfiable(thisComparators, options) && + range.set.some(function (rangeComparators) { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every(function (thisComparator) { + return rangeComparators.every(function (rangeComparator) { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) +} + +// take a set of comparators and determine whether there +// exists a version which can satisfy it +function isSatisfiable (comparators, options) { + var result = true + var remainingComparators = comparators.slice() + var testComparator = remainingComparators.pop() + + while (result && remainingComparators.length) { + result = remainingComparators.every(function (otherComparator) { + return testComparator.intersects(otherComparator, options) + }) + + testComparator = remainingComparators.pop() + } + + return result +} + +// Mostly just for testing and legacy API reasons +exports.toComparators = toComparators +function toComparators (range, options) { + return new Range(range, options).set.map(function (comp) { + return comp.map(function (c) { + return c.value + }).join(' ').trim().split(' ') + }) +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +function parseComparator (comp, options) { + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} + +function isX (id) { + return !id || id.toLowerCase() === 'x' || id === '*' +} + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceTilde(comp, options) + }).join(' ') +} + +function replaceTilde (comp, options) { + var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE] + return comp.replace(r, function (_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else if (pr) { + debug('replaceTilde pr', pr) + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } else { + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceCaret(comp, options) + }).join(' ') +} + +function replaceCaret (comp, options) { + debug('caret', comp, options) + var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET] + return comp.replace(r, function (_, M, m, p, pr) { + debug('caret', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + if (M === '0') { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else { + ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0' + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + (+M + 1) + '.0.0' + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + (+M + 1) + '.0.0' + } + } + + debug('caret return', ret) + return ret + }) +} + +function replaceXRanges (comp, options) { + debug('replaceXRanges', comp, options) + return comp.split(/\s+/).map(function (comp) { + return replaceXRange(comp, options) + }).join(' ') +} + +function replaceXRange (comp, options) { + comp = comp.trim() + var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE] + return comp.replace(r, function (ret, gtlt, M, m, p, pr) { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + var xM = isX(M) + var xm = xM || isX(m) + var xp = xm || isX(p) + var anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + ret = gtlt + M + '.' + m + '.' + p + pr + } else if (xm) { + ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr + } else if (xp) { + ret = '>=' + M + '.' + m + '.0' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + pr + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars (comp, options) { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(safeRe[t.STAR], '') +} + +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +function hyphenReplace ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = '>=' + fM + '.0.0' + } else if (isX(fp)) { + from = '>=' + fM + '.' + fm + '.0' + } else { + from = '>=' + from + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = '<' + (+tM + 1) + '.0.0' + } else if (isX(tp)) { + to = '<' + tM + '.' + (+tm + 1) + '.0' + } else if (tpr) { + to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr + } else { + to = '<=' + to + } + + return (from + ' ' + to).trim() +} + +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false +} + +function testSet (set, version, options) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} + +exports.satisfies = satisfies +function satisfies (version, range, options) { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} + +exports.maxSatisfying = maxSatisfying +function maxSatisfying (versions, range, options) { + var max = null + var maxSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} + +exports.minSatisfying = minSatisfying +function minSatisfying (versions, range, options) { + var min = null + var minSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} + +exports.minVersion = minVersion +function minVersion (range, loose) { + range = new Range(range, loose) + + var minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + comparators.forEach(function (comparator) { + // Clone to avoid manipulating the comparator's semver object. + var compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!minver || gt(minver, compver)) { + minver = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error('Unexpected operation: ' + comparator.operator) + } + }) + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} + +exports.validRange = validRange +function validRange (range, options) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} + +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr +function ltr (version, range, options) { + return outside(version, range, '<', options) +} + +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr +function gtr (version, range, options) { + return outside(version, range, '>', options) +} + +exports.outside = outside +function outside (version, range, hilo, options) { + version = new SemVer(version, options) + range = new Range(range, options) + + var gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisifes the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + var high = null + var low = null + + comparators.forEach(function (comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +exports.prerelease = prerelease +function prerelease (version, options) { + var parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} + +exports.intersects = intersects +function intersects (r1, r2, options) { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2) +} + +exports.coerce = coerce +function coerce (version, options) { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + var match = null + if (!options.rtl) { + match = version.match(safeRe[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + var next + while ((next = safeRe[t.COERCERTL].exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + safeRe[t.COERCERTL].lastIndex = -1 + } + + if (match === null) { + return null + } + + return parse(match[2] + + '.' + (match[3] || '0') + + '.' + (match[4] || '0'), options) +} diff --git a/framework-core/node_modules/@babel/core/package.json b/framework-core/node_modules/@babel/core/package.json new file mode 100644 index 0000000..c41df65 --- /dev/null +++ b/framework-core/node_modules/@babel/core/package.json @@ -0,0 +1,82 @@ +{ + "name": "@babel/core", + "version": "7.28.4", + "description": "Babel compiler core.", + "main": "./lib/index.js", + "author": "The Babel Team (https://babel.dev/team)", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-core" + }, + "homepage": "https://babel.dev/docs/en/next/babel-core", + "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen", + "keywords": [ + "6to5", + "babel", + "classes", + "const", + "es6", + "harmony", + "let", + "modules", + "transpile", + "transpiler", + "var", + "babel-core", + "compiler" + ], + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + }, + "browser": { + "./lib/config/files/index.js": "./lib/config/files/index-browser.js", + "./lib/config/resolve-targets.js": "./lib/config/resolve-targets-browser.js", + "./lib/transform-file.js": "./lib/transform-file-browser.js", + "./src/config/files/index.ts": "./src/config/files/index-browser.ts", + "./src/config/resolve-targets.ts": "./src/config/resolve-targets-browser.ts", + "./src/transform-file.ts": "./src/transform-file-browser.ts" + }, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "devDependencies": { + "@babel/helper-transform-fixture-test-runner": "^7.28.3", + "@babel/plugin-syntax-flow": "^7.27.1", + "@babel/plugin-transform-flow-strip-types": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/preset-env": "^7.28.3", + "@babel/preset-typescript": "^7.27.1", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/convert-source-map": "^2.0.0", + "@types/debug": "^4.1.0", + "@types/resolve": "^1.3.2", + "@types/semver": "^5.4.0", + "rimraf": "^3.0.0", + "ts-node": "^11.0.0-beta.1", + "tsx": "^4.20.3" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/core/src/config/files/index-browser.ts b/framework-core/node_modules/@babel/core/src/config/files/index-browser.ts new file mode 100644 index 0000000..435c068 --- /dev/null +++ b/framework-core/node_modules/@babel/core/src/config/files/index-browser.ts @@ -0,0 +1,115 @@ +/* c8 ignore start */ + +import type { Handler } from "gensync"; + +import type { + ConfigFile, + IgnoreFile, + RelativeConfig, + FilePackageData, +} from "./types.ts"; + +import type { CallerMetadata } from "../validation/options.ts"; + +export type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData }; + +export function findConfigUpwards( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + rootDir: string, +): string | null { + return null; +} + +// eslint-disable-next-line require-yield +export function* findPackageData(filepath: string): Handler { + return { + filepath, + directories: [], + pkg: null, + isPackage: false, + }; +} + +// eslint-disable-next-line require-yield +export function* findRelativeConfig( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + pkgData: FilePackageData, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + envName: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + caller: CallerMetadata | undefined, +): Handler { + return { config: null, ignore: null }; +} + +// eslint-disable-next-line require-yield +export function* findRootConfig( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dirname: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + envName: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + caller: CallerMetadata | undefined, +): Handler { + return null; +} + +// eslint-disable-next-line require-yield +export function* loadConfig( + name: string, + dirname: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + envName: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + caller: CallerMetadata | undefined, +): Handler { + throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); +} + +// eslint-disable-next-line require-yield +export function* resolveShowConfigPath( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dirname: string, +): Handler { + return null; +} + +export const ROOT_CONFIG_FILENAMES: string[] = []; + +type Resolved = + | { loader: "require"; filepath: string } + | { loader: "import"; filepath: string }; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function resolvePlugin(name: string, dirname: string): Resolved | null { + return null; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function resolvePreset(name: string, dirname: string): Resolved | null { + return null; +} + +export function loadPlugin( + name: string, + dirname: string, +): Handler<{ + filepath: string; + value: unknown; +}> { + throw new Error( + `Cannot load plugin ${name} relative to ${dirname} in a browser`, + ); +} + +export function loadPreset( + name: string, + dirname: string, +): Handler<{ + filepath: string; + value: unknown; +}> { + throw new Error( + `Cannot load preset ${name} relative to ${dirname} in a browser`, + ); +} diff --git a/framework-core/node_modules/@babel/core/src/config/files/index.ts b/framework-core/node_modules/@babel/core/src/config/files/index.ts new file mode 100644 index 0000000..b138e8d --- /dev/null +++ b/framework-core/node_modules/@babel/core/src/config/files/index.ts @@ -0,0 +1,29 @@ +type indexBrowserType = typeof import("./index-browser"); +type indexType = typeof import("./index"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of index-browser, since this file may be replaced at bundle time with index-browser. +({}) as any as indexBrowserType as indexType; + +export { findPackageData } from "./package.ts"; + +export { + findConfigUpwards, + findRelativeConfig, + findRootConfig, + loadConfig, + resolveShowConfigPath, + ROOT_CONFIG_FILENAMES, +} from "./configuration.ts"; +export type { + ConfigFile, + IgnoreFile, + RelativeConfig, + FilePackageData, +} from "./types.ts"; +export { + loadPlugin, + loadPreset, + resolvePlugin, + resolvePreset, +} from "./plugins.ts"; diff --git a/framework-core/node_modules/@babel/core/src/config/resolve-targets-browser.ts b/framework-core/node_modules/@babel/core/src/config/resolve-targets-browser.ts new file mode 100644 index 0000000..aa1edd1 --- /dev/null +++ b/framework-core/node_modules/@babel/core/src/config/resolve-targets-browser.ts @@ -0,0 +1,42 @@ +/* c8 ignore start */ + +import type { ValidatedOptions } from "./validation/options.ts"; +import getTargets, { + type InputTargets, +} from "@babel/helper-compilation-targets"; + +import type { Targets } from "@babel/helper-compilation-targets"; + +export function resolveBrowserslistConfigFile( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + browserslistConfigFile: string, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + configFilePath: string, +): string | void { + return undefined; +} + +export function resolveTargets( + options: ValidatedOptions, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + root: string, +): Targets { + const optTargets = options.targets; + let targets: InputTargets; + + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { browsers: optTargets }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = { ...optTargets, esmodules: "intersect" }; + } else { + // https://github.com/microsoft/TypeScript/issues/17002 + targets = optTargets as InputTargets; + } + } + + return getTargets(targets, { + ignoreBrowserslistConfig: true, + browserslistEnv: options.browserslistEnv, + }); +} diff --git a/framework-core/node_modules/@babel/core/src/config/resolve-targets.ts b/framework-core/node_modules/@babel/core/src/config/resolve-targets.ts new file mode 100644 index 0000000..21f8675 --- /dev/null +++ b/framework-core/node_modules/@babel/core/src/config/resolve-targets.ts @@ -0,0 +1,56 @@ +type browserType = typeof import("./resolve-targets-browser"); +type nodeType = typeof import("./resolve-targets"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of index-browser, since this file may be replaced at bundle time with index-browser. +({}) as any as browserType as nodeType; + +import type { ValidatedOptions } from "./validation/options.ts"; +import path from "node:path"; +import getTargets, { + type InputTargets, +} from "@babel/helper-compilation-targets"; + +import type { Targets } from "@babel/helper-compilation-targets"; + +export function resolveBrowserslistConfigFile( + browserslistConfigFile: string, + configFileDir: string, +): string | undefined { + return path.resolve(configFileDir, browserslistConfigFile); +} + +export function resolveTargets( + options: ValidatedOptions, + root: string, +): Targets { + const optTargets = options.targets; + let targets: InputTargets; + + if (typeof optTargets === "string" || Array.isArray(optTargets)) { + targets = { browsers: optTargets }; + } else if (optTargets) { + if ("esmodules" in optTargets) { + targets = { ...optTargets, esmodules: "intersect" }; + } else { + // https://github.com/microsoft/TypeScript/issues/17002 + targets = optTargets as InputTargets; + } + } + + const { browserslistConfigFile } = options; + let configFile; + let ignoreBrowserslistConfig = false; + if (typeof browserslistConfigFile === "string") { + configFile = browserslistConfigFile; + } else { + ignoreBrowserslistConfig = browserslistConfigFile === false; + } + + return getTargets(targets, { + ignoreBrowserslistConfig, + configFile, + configPath: root, + browserslistEnv: options.browserslistEnv, + }); +} diff --git a/framework-core/node_modules/@babel/core/src/transform-file-browser.ts b/framework-core/node_modules/@babel/core/src/transform-file-browser.ts new file mode 100644 index 0000000..0a15ca5 --- /dev/null +++ b/framework-core/node_modules/@babel/core/src/transform-file-browser.ts @@ -0,0 +1,33 @@ +/* c8 ignore start */ + +// duplicated from transform-file so we do not have to import anything here +type TransformFile = { + (filename: string, callback: (error: Error, file: null) => void): void; + ( + filename: string, + opts: any, + callback: (error: Error, file: null) => void, + ): void; +}; + +export const transformFile: TransformFile = function transformFile( + filename, + opts, + callback?: (error: Error, file: null) => void, +) { + if (typeof opts === "function") { + callback = opts; + } + + callback(new Error("Transforming files is not supported in browsers"), null); +}; + +export function transformFileSync(): never { + throw new Error("Transforming files is not supported in browsers"); +} + +export function transformFileAsync() { + return Promise.reject( + new Error("Transforming files is not supported in browsers"), + ); +} diff --git a/framework-core/node_modules/@babel/core/src/transform-file.ts b/framework-core/node_modules/@babel/core/src/transform-file.ts new file mode 100644 index 0000000..6bc2f83 --- /dev/null +++ b/framework-core/node_modules/@babel/core/src/transform-file.ts @@ -0,0 +1,55 @@ +import gensync, { type Handler } from "gensync"; + +import loadConfig from "./config/index.ts"; +import type { InputOptions, ResolvedConfig } from "./config/index.ts"; +import { run } from "./transformation/index.ts"; +import type { FileResult, FileResultCallback } from "./transformation/index.ts"; +import * as fs from "./gensync-utils/fs.ts"; + +type transformFileBrowserType = typeof import("./transform-file-browser"); +type transformFileType = typeof import("./transform-file"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of transform-file-browser, since this file may be replaced at bundle time with +// transform-file-browser. +({}) as any as transformFileBrowserType as transformFileType; + +const transformFileRunner = gensync(function* ( + filename: string, + opts?: InputOptions, +): Handler { + const options = { ...opts, filename }; + + const config: ResolvedConfig | null = yield* loadConfig(options); + if (config === null) return null; + + const code = yield* fs.readFile(filename, "utf8"); + return yield* run(config, code); +}); + +// @ts-expect-error TS doesn't detect that this signature is compatible +export function transformFile( + filename: string, + callback: FileResultCallback, +): void; +export function transformFile( + filename: string, + opts: InputOptions | undefined | null, + callback: FileResultCallback, +): void; +export function transformFile( + ...args: Parameters +) { + transformFileRunner.errback(...args); +} + +export function transformFileSync( + ...args: Parameters +) { + return transformFileRunner.sync(...args); +} +export function transformFileAsync( + ...args: Parameters +) { + return transformFileRunner.async(...args); +} diff --git a/framework-core/node_modules/@babel/generator/LICENSE b/framework-core/node_modules/@babel/generator/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/framework-core/node_modules/@babel/generator/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/framework-core/node_modules/@babel/generator/README.md b/framework-core/node_modules/@babel/generator/README.md new file mode 100644 index 0000000..d56149a --- /dev/null +++ b/framework-core/node_modules/@babel/generator/README.md @@ -0,0 +1,19 @@ +# @babel/generator + +> Turns an AST into code. + +See our website [@babel/generator](https://babeljs.io/docs/babel-generator) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20generator%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/generator +``` + +or using yarn: + +```sh +yarn add @babel/generator --dev +``` diff --git a/framework-core/node_modules/@babel/generator/lib/buffer.js b/framework-core/node_modules/@babel/generator/lib/buffer.js new file mode 100644 index 0000000..23bedfa --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/buffer.js @@ -0,0 +1,317 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +class Buffer { + constructor(map, indentChar) { + this._map = null; + this._buf = ""; + this._str = ""; + this._appendCount = 0; + this._last = 0; + this._queue = []; + this._queueCursor = 0; + this._canMarkIdName = true; + this._indentChar = ""; + this._fastIndentations = []; + this._position = { + line: 1, + column: 0 + }; + this._sourcePosition = { + identifierName: undefined, + identifierNamePos: undefined, + line: undefined, + column: undefined, + filename: undefined + }; + this._map = map; + this._indentChar = indentChar; + for (let i = 0; i < 64; i++) { + this._fastIndentations.push(indentChar.repeat(i)); + } + this._allocQueue(); + } + _allocQueue() { + const queue = this._queue; + for (let i = 0; i < 16; i++) { + queue.push({ + char: 0, + repeat: 1, + line: undefined, + column: undefined, + identifierName: undefined, + identifierNamePos: undefined, + filename: "" + }); + } + } + _pushQueue(char, repeat, line, column, filename) { + const cursor = this._queueCursor; + if (cursor === this._queue.length) { + this._allocQueue(); + } + const item = this._queue[cursor]; + item.char = char; + item.repeat = repeat; + item.line = line; + item.column = column; + item.filename = filename; + this._queueCursor++; + } + _popQueue() { + if (this._queueCursor === 0) { + throw new Error("Cannot pop from empty queue"); + } + return this._queue[--this._queueCursor]; + } + get() { + this._flush(); + const map = this._map; + const result = { + code: (this._buf + this._str).trimRight(), + decodedMap: map == null ? void 0 : map.getDecoded(), + get __mergedMap() { + return this.map; + }, + get map() { + const resultMap = map ? map.get() : null; + result.map = resultMap; + return resultMap; + }, + set map(value) { + Object.defineProperty(result, "map", { + value, + writable: true + }); + }, + get rawMappings() { + const mappings = map == null ? void 0 : map.getRawMappings(); + result.rawMappings = mappings; + return mappings; + }, + set rawMappings(value) { + Object.defineProperty(result, "rawMappings", { + value, + writable: true + }); + } + }; + return result; + } + append(str, maybeNewline) { + this._flush(); + this._append(str, this._sourcePosition, maybeNewline); + } + appendChar(char) { + this._flush(); + this._appendChar(char, 1, this._sourcePosition); + } + queue(char) { + if (char === 10) { + while (this._queueCursor !== 0) { + const char = this._queue[this._queueCursor - 1].char; + if (char !== 32 && char !== 9) { + break; + } + this._queueCursor--; + } + } + const sourcePosition = this._sourcePosition; + this._pushQueue(char, 1, sourcePosition.line, sourcePosition.column, sourcePosition.filename); + } + queueIndentation(repeat) { + if (repeat === 0) return; + this._pushQueue(-1, repeat, undefined, undefined, undefined); + } + _flush() { + const queueCursor = this._queueCursor; + const queue = this._queue; + for (let i = 0; i < queueCursor; i++) { + const item = queue[i]; + this._appendChar(item.char, item.repeat, item); + } + this._queueCursor = 0; + } + _appendChar(char, repeat, sourcePos) { + this._last = char; + if (char === -1) { + const fastIndentation = this._fastIndentations[repeat]; + if (fastIndentation !== undefined) { + this._str += fastIndentation; + } else { + this._str += repeat > 1 ? this._indentChar.repeat(repeat) : this._indentChar; + } + } else { + this._str += repeat > 1 ? String.fromCharCode(char).repeat(repeat) : String.fromCharCode(char); + } + if (char !== 10) { + this._mark(sourcePos.line, sourcePos.column, sourcePos.identifierName, sourcePos.identifierNamePos, sourcePos.filename); + this._position.column += repeat; + } else { + this._position.line++; + this._position.column = 0; + } + if (this._canMarkIdName) { + sourcePos.identifierName = undefined; + sourcePos.identifierNamePos = undefined; + } + } + _append(str, sourcePos, maybeNewline) { + const len = str.length; + const position = this._position; + this._last = str.charCodeAt(len - 1); + if (++this._appendCount > 4096) { + +this._str; + this._buf += this._str; + this._str = str; + this._appendCount = 0; + } else { + this._str += str; + } + if (!maybeNewline && !this._map) { + position.column += len; + return; + } + const { + column, + identifierName, + identifierNamePos, + filename + } = sourcePos; + let line = sourcePos.line; + if ((identifierName != null || identifierNamePos != null) && this._canMarkIdName) { + sourcePos.identifierName = undefined; + sourcePos.identifierNamePos = undefined; + } + let i = str.indexOf("\n"); + let last = 0; + if (i !== 0) { + this._mark(line, column, identifierName, identifierNamePos, filename); + } + while (i !== -1) { + position.line++; + position.column = 0; + last = i + 1; + if (last < len && line !== undefined) { + this._mark(++line, 0, null, null, filename); + } + i = str.indexOf("\n", last); + } + position.column += len - last; + } + _mark(line, column, identifierName, identifierNamePos, filename) { + var _this$_map; + (_this$_map = this._map) == null || _this$_map.mark(this._position, line, column, identifierName, identifierNamePos, filename); + } + removeTrailingNewline() { + const queueCursor = this._queueCursor; + if (queueCursor !== 0 && this._queue[queueCursor - 1].char === 10) { + this._queueCursor--; + } + } + removeLastSemicolon() { + const queueCursor = this._queueCursor; + if (queueCursor !== 0 && this._queue[queueCursor - 1].char === 59) { + this._queueCursor--; + } + } + getLastChar() { + const queueCursor = this._queueCursor; + return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last; + } + getNewlineCount() { + const queueCursor = this._queueCursor; + let count = 0; + if (queueCursor === 0) return this._last === 10 ? 1 : 0; + for (let i = queueCursor - 1; i >= 0; i--) { + if (this._queue[i].char !== 10) { + break; + } + count++; + } + return count === queueCursor && this._last === 10 ? count + 1 : count; + } + endsWithCharAndNewline() { + const queue = this._queue; + const queueCursor = this._queueCursor; + if (queueCursor !== 0) { + const lastCp = queue[queueCursor - 1].char; + if (lastCp !== 10) return; + if (queueCursor > 1) { + return queue[queueCursor - 2].char; + } else { + return this._last; + } + } + } + hasContent() { + return this._queueCursor !== 0 || !!this._last; + } + exactSource(loc, cb) { + if (!this._map) { + cb(); + return; + } + this.source("start", loc); + const identifierName = loc.identifierName; + const sourcePos = this._sourcePosition; + if (identifierName) { + this._canMarkIdName = false; + sourcePos.identifierName = identifierName; + } + cb(); + if (identifierName) { + this._canMarkIdName = true; + sourcePos.identifierName = undefined; + sourcePos.identifierNamePos = undefined; + } + this.source("end", loc); + } + source(prop, loc) { + if (!this._map) return; + this._normalizePosition(prop, loc, 0); + } + sourceWithOffset(prop, loc, columnOffset) { + if (!this._map) return; + this._normalizePosition(prop, loc, columnOffset); + } + _normalizePosition(prop, loc, columnOffset) { + const pos = loc[prop]; + const target = this._sourcePosition; + if (pos) { + target.line = pos.line; + target.column = Math.max(pos.column + columnOffset, 0); + target.filename = loc.filename; + } + } + getCurrentColumn() { + const queue = this._queue; + const queueCursor = this._queueCursor; + let lastIndex = -1; + let len = 0; + for (let i = 0; i < queueCursor; i++) { + const item = queue[i]; + if (item.char === 10) { + lastIndex = len; + } + len += item.repeat; + } + return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex; + } + getCurrentLine() { + let count = 0; + const queue = this._queue; + for (let i = 0; i < this._queueCursor; i++) { + if (queue[i].char === 10) { + count++; + } + } + return this._position.line + count; + } +} +exports.default = Buffer; + +//# sourceMappingURL=buffer.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/buffer.js.map b/framework-core/node_modules/@babel/generator/lib/buffer.js.map new file mode 100644 index 0000000..d92c017 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"names":["Buffer","constructor","map","indentChar","_map","_buf","_str","_appendCount","_last","_queue","_queueCursor","_canMarkIdName","_indentChar","_fastIndentations","_position","line","column","_sourcePosition","identifierName","undefined","identifierNamePos","filename","i","push","repeat","_allocQueue","queue","char","_pushQueue","cursor","length","item","_popQueue","Error","get","_flush","result","code","trimRight","decodedMap","getDecoded","__mergedMap","resultMap","value","Object","defineProperty","writable","rawMappings","mappings","getRawMappings","append","str","maybeNewline","_append","appendChar","_appendChar","sourcePosition","queueIndentation","queueCursor","sourcePos","fastIndentation","String","fromCharCode","_mark","len","position","charCodeAt","indexOf","last","_this$_map","mark","removeTrailingNewline","removeLastSemicolon","getLastChar","getNewlineCount","count","endsWithCharAndNewline","lastCp","hasContent","exactSource","loc","cb","source","prop","_normalizePosition","sourceWithOffset","columnOffset","pos","target","Math","max","getCurrentColumn","lastIndex","getCurrentLine","exports","default"],"sources":["../src/buffer.ts"],"sourcesContent":["import type SourceMap from \"./source-map.ts\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charcodes from \"charcodes\";\n\nexport type Pos = {\n line: number;\n column: number;\n index: number;\n};\nexport type Loc = {\n start?: Pos;\n end?: Pos;\n filename?: string;\n};\ntype SourcePos = {\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n filename: string | undefined;\n};\ntype InternalSourcePos = SourcePos & { identifierNamePos: Pos };\n\ntype QueueItem = {\n char: number;\n repeat: number;\n line: number | undefined;\n column: number | undefined;\n identifierName: undefined; // Not used, it always undefined.\n identifierNamePos: undefined; // Not used, it always undefined.\n filename: string | undefined;\n};\n\nexport default class Buffer {\n constructor(map: SourceMap | null, indentChar: string) {\n this._map = map;\n this._indentChar = indentChar;\n\n for (let i = 0; i < 64; i++) {\n this._fastIndentations.push(indentChar.repeat(i));\n }\n\n this._allocQueue();\n }\n\n _map: SourceMap = null;\n _buf = \"\";\n _str = \"\";\n _appendCount = 0;\n _last = 0;\n _queue: QueueItem[] = [];\n _queueCursor = 0;\n _canMarkIdName = true;\n _indentChar = \"\";\n _fastIndentations: string[] = [];\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: InternalSourcePos = {\n identifierName: undefined,\n identifierNamePos: undefined,\n line: undefined,\n column: undefined,\n filename: undefined,\n };\n\n _allocQueue() {\n const queue = this._queue;\n\n for (let i = 0; i < 16; i++) {\n queue.push({\n char: 0,\n repeat: 1,\n line: undefined,\n column: undefined,\n identifierName: undefined,\n identifierNamePos: undefined,\n filename: \"\",\n });\n }\n }\n\n _pushQueue(\n char: number,\n repeat: number,\n line: number | undefined,\n column: number | undefined,\n filename: string | undefined,\n ) {\n const cursor = this._queueCursor;\n if (cursor === this._queue.length) {\n this._allocQueue();\n }\n const item = this._queue[cursor];\n item.char = char;\n item.repeat = repeat;\n item.line = line;\n item.column = column;\n item.filename = filename;\n\n this._queueCursor++;\n }\n\n _popQueue(): QueueItem {\n if (this._queueCursor === 0) {\n throw new Error(\"Cannot pop from empty queue\");\n }\n return this._queue[--this._queueCursor];\n }\n\n /**\n * Get the final string output from the buffer, along with the sourcemap if one exists.\n */\n\n get() {\n this._flush();\n\n const map = this._map;\n const result = {\n // Whatever trim is used here should not execute a regex against the\n // source string since it may be arbitrarily large after all transformations\n code: (this._buf + this._str).trimRight(),\n // Decoded sourcemap is free to generate.\n decodedMap: map?.getDecoded(),\n // Used as a marker for backwards compatibility. We moved input map merging\n // into the generator. We cannot merge the input map a second time, so the\n // presence of this field tells us we've already done the work.\n get __mergedMap() {\n return this.map;\n },\n // Encoding the sourcemap is moderately CPU expensive.\n get map() {\n const resultMap = map ? map.get() : null;\n result.map = resultMap;\n return resultMap;\n },\n set map(value) {\n Object.defineProperty(result, \"map\", { value, writable: true });\n },\n // Retrieving the raw mappings is very memory intensive.\n get rawMappings() {\n const mappings = map?.getRawMappings();\n result.rawMappings = mappings;\n return mappings;\n },\n set rawMappings(value) {\n Object.defineProperty(result, \"rawMappings\", { value, writable: true });\n },\n };\n\n return result;\n }\n\n /**\n * Add a string to the buffer that cannot be reverted.\n */\n\n append(str: string, maybeNewline: boolean): void {\n this._flush();\n\n this._append(str, this._sourcePosition, maybeNewline);\n }\n\n appendChar(char: number): void {\n this._flush();\n this._appendChar(char, 1, this._sourcePosition);\n }\n\n /**\n * Add a string to the buffer than can be reverted.\n */\n queue(char: number): void {\n // Drop trailing spaces when a newline is inserted.\n if (char === charcodes.lineFeed) {\n while (this._queueCursor !== 0) {\n const char = this._queue[this._queueCursor - 1].char;\n if (char !== charcodes.space && char !== charcodes.tab) {\n break;\n }\n\n this._queueCursor--;\n }\n }\n\n const sourcePosition = this._sourcePosition;\n this._pushQueue(\n char,\n 1,\n sourcePosition.line,\n sourcePosition.column,\n sourcePosition.filename,\n );\n }\n\n /**\n * Same as queue, but this indentation will never have a sourcemap marker.\n */\n queueIndentation(repeat: number): void {\n if (repeat === 0) return;\n this._pushQueue(-1, repeat, undefined, undefined, undefined);\n }\n\n _flush(): void {\n const queueCursor = this._queueCursor;\n const queue = this._queue;\n for (let i = 0; i < queueCursor; i++) {\n const item: QueueItem = queue[i];\n this._appendChar(item.char, item.repeat, item);\n }\n this._queueCursor = 0;\n }\n\n _appendChar(\n char: number,\n repeat: number,\n sourcePos: InternalSourcePos,\n ): void {\n this._last = char;\n\n if (char === -1) {\n const fastIndentation = this._fastIndentations[repeat];\n if (fastIndentation !== undefined) {\n this._str += fastIndentation;\n } else {\n this._str +=\n repeat > 1 ? this._indentChar.repeat(repeat) : this._indentChar;\n }\n } else {\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n }\n\n if (char !== charcodes.lineFeed) {\n this._mark(\n sourcePos.line,\n sourcePos.column,\n sourcePos.identifierName,\n sourcePos.identifierNamePos,\n sourcePos.filename,\n );\n this._position.column += repeat;\n } else {\n this._position.line++;\n this._position.column = 0;\n }\n\n if (this._canMarkIdName) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n }\n\n _append(\n str: string,\n sourcePos: InternalSourcePos,\n maybeNewline: boolean,\n ): void {\n const len = str.length;\n const position = this._position;\n\n this._last = str.charCodeAt(len - 1);\n\n if (++this._appendCount > 4096) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n +this._str; // Unexplainable huge performance boost. Ref: https://github.com/davidmarkclements/flatstr License: MIT\n this._buf += this._str;\n this._str = str;\n this._appendCount = 0;\n } else {\n this._str += str;\n }\n\n if (!maybeNewline && !this._map) {\n position.column += len;\n return;\n }\n\n const { column, identifierName, identifierNamePos, filename } = sourcePos;\n let line = sourcePos.line;\n\n if (\n (identifierName != null || identifierNamePos != null) &&\n this._canMarkIdName\n ) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n\n // Search for newline chars. We search only for `\\n`, since both `\\r` and\n // `\\r\\n` are normalized to `\\n` during parse. We exclude `\\u2028` and\n // `\\u2029` for performance reasons, they're so uncommon that it's probably\n // ok. It's also unclear how other sourcemap utilities handle them...\n let i = str.indexOf(\"\\n\");\n let last = 0;\n\n // If the string starts with a newline char, then adding a mark is redundant.\n // This catches both \"no newlines\" and \"newline after several chars\".\n if (i !== 0) {\n this._mark(line, column, identifierName, identifierNamePos, filename);\n }\n\n // Now, find each remaining newline char in the string.\n while (i !== -1) {\n position.line++;\n position.column = 0;\n last = i + 1;\n\n // We mark the start of each line, which happens directly after this newline char\n // unless this is the last char.\n // When manually adding multi-line content (such as a comment), `line` will be `undefined`.\n if (last < len && line !== undefined) {\n this._mark(++line, 0, null, null, filename);\n }\n i = str.indexOf(\"\\n\", last);\n }\n position.column += len - last;\n }\n\n _mark(\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n identifierNamePos: Pos | undefined,\n filename: string | undefined,\n ): void {\n this._map?.mark(\n this._position,\n line,\n column,\n identifierName,\n identifierNamePos,\n filename,\n );\n }\n\n removeTrailingNewline(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.lineFeed\n ) {\n this._queueCursor--;\n }\n }\n\n removeLastSemicolon(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.semicolon\n ) {\n this._queueCursor--;\n }\n }\n\n getLastChar(): number {\n const queueCursor = this._queueCursor;\n return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last;\n }\n\n /**\n * This will only detect at most 1 newline after a call to `flush()`,\n * but this has not been found so far, and an accurate count can be achieved if needed later.\n */\n getNewlineCount(): number {\n const queueCursor = this._queueCursor;\n let count = 0;\n if (queueCursor === 0) return this._last === charcodes.lineFeed ? 1 : 0;\n for (let i = queueCursor - 1; i >= 0; i--) {\n if (this._queue[i].char !== charcodes.lineFeed) {\n break;\n }\n count++;\n }\n return count === queueCursor && this._last === charcodes.lineFeed\n ? count + 1\n : count;\n }\n\n /**\n * check if current _last + queue ends with newline, return the character before newline\n */\n endsWithCharAndNewline(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n if (queueCursor !== 0) {\n // every element in queue is one-length whitespace string\n const lastCp = queue[queueCursor - 1].char;\n if (lastCp !== charcodes.lineFeed) return;\n if (queueCursor > 1) {\n return queue[queueCursor - 2].char;\n } else {\n return this._last;\n }\n }\n // We assume that everything being matched is at most a single token plus some whitespace,\n // which everything currently is, but otherwise we'd have to expand _last or check _buf.\n }\n\n hasContent(): boolean {\n return this._queueCursor !== 0 || !!this._last;\n }\n\n /**\n * Certain sourcemap usecases expect mappings to be more accurate than\n * Babel's generic sourcemap handling allows. For now, we special-case\n * identifiers to allow for the primary cases to work.\n * The goal of this line is to ensure that the map output from Babel will\n * have an exact range on identifiers in the output code. Without this\n * line, Babel would potentially include some number of trailing tokens\n * that are printed after the identifier, but before another location has\n * been assigned.\n * This allows tooling like Rollup and Webpack to more accurately perform\n * their own transformations. Most importantly, this allows the import/export\n * transformations performed by those tools to loose less information when\n * applying their own transformations on top of the code and map results\n * generated by Babel itself.\n *\n * The primary example of this is the snippet:\n *\n * import mod from \"mod\";\n * mod();\n *\n * With this line, there will be one mapping range over \"mod\" and another\n * over \"();\", where previously it would have been a single mapping.\n */\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!this._map) {\n cb();\n return;\n }\n\n this.source(\"start\", loc);\n // @ts-expect-error identifierName is not defined\n const identifierName = loc.identifierName;\n const sourcePos = this._sourcePosition;\n if (identifierName) {\n this._canMarkIdName = false;\n sourcePos.identifierName = identifierName;\n }\n cb();\n\n if (identifierName) {\n this._canMarkIdName = true;\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n this.source(\"end\", loc);\n }\n\n /**\n * Sets a given position as the current source location so generated code after this call\n * will be given this position in the sourcemap.\n */\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!this._map) return;\n\n // Since this is called extremely often, we reuse the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, columnOffset);\n }\n\n _normalizePosition(prop: \"start\" | \"end\", loc: Loc, columnOffset: number) {\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n if (pos) {\n target.line = pos.line;\n // TODO: Fix https://github.com/babel/babel/issues/15712 in downstream\n target.column = Math.max(pos.column + columnOffset, 0);\n target.filename = loc.filename;\n }\n }\n\n getCurrentColumn(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n\n let lastIndex = -1;\n let len = 0;\n for (let i = 0; i < queueCursor; i++) {\n const item = queue[i];\n if (item.char === charcodes.lineFeed) {\n lastIndex = len;\n }\n len += item.repeat;\n }\n\n return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex;\n }\n\n getCurrentLine(): number {\n let count = 0;\n\n const queue = this._queue;\n for (let i = 0; i < this._queueCursor; i++) {\n if (queue[i].char === charcodes.lineFeed) {\n count++;\n }\n }\n\n return this._position.line + count;\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/base.js b/framework-core/node_modules/@babel/generator/lib/generators/base.js new file mode 100644 index 0000000..eca9077 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/base.js @@ -0,0 +1,87 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BlockStatement = BlockStatement; +exports.Directive = Directive; +exports.DirectiveLiteral = DirectiveLiteral; +exports.File = File; +exports.InterpreterDirective = InterpreterDirective; +exports.Placeholder = Placeholder; +exports.Program = Program; +function File(node) { + if (node.program) { + this.print(node.program.interpreter); + } + this.print(node.program); +} +function Program(node) { + var _node$directives; + this.noIndentInnerCommentsHere(); + this.printInnerComments(); + const directivesLen = (_node$directives = node.directives) == null ? void 0 : _node$directives.length; + if (directivesLen) { + var _node$directives$trai; + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, undefined, newline); + if (!((_node$directives$trai = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai.length)) { + this.newline(newline); + } + } + this.printSequence(node.body); +} +function BlockStatement(node) { + var _node$directives2; + this.tokenChar(123); + const exit = this.enterDelimited(); + const directivesLen = (_node$directives2 = node.directives) == null ? void 0 : _node$directives2.length; + if (directivesLen) { + var _node$directives$trai2; + const newline = node.body.length ? 2 : 1; + this.printSequence(node.directives, true, newline); + if (!((_node$directives$trai2 = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai2.length)) { + this.newline(newline); + } + } + this.printSequence(node.body, true); + exit(); + this.rightBrace(node); +} +function Directive(node) { + this.print(node.value); + this.semicolon(); +} +const unescapedSingleQuoteRE = /(?:^|[^\\])(?:\\\\)*'/; +const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/; +function DirectiveLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.token(raw); + return; + } + const { + value + } = node; + if (!unescapedDoubleQuoteRE.test(value)) { + this.token(`"${value}"`); + } else if (!unescapedSingleQuoteRE.test(value)) { + this.token(`'${value}'`); + } else { + throw new Error("Malformed AST: it is not possible to print a directive containing" + " both unescaped single and double quotes."); + } +} +function InterpreterDirective(node) { + this.token(`#!${node.value}`); + this.newline(1, true); +} +function Placeholder(node) { + this.token("%%"); + this.print(node.name); + this.token("%%"); + if (node.expectedNode === "Statement") { + this.semicolon(); + } +} + +//# sourceMappingURL=base.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/base.js.map b/framework-core/node_modules/@babel/generator/lib/generators/base.js.map new file mode 100644 index 0000000..c40d63c --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/base.js.map @@ -0,0 +1 @@ +{"version":3,"names":["File","node","program","print","interpreter","Program","_node$directives","noIndentInnerCommentsHere","printInnerComments","directivesLen","directives","length","_node$directives$trai","newline","body","printSequence","undefined","trailingComments","BlockStatement","_node$directives2","token","exit","enterDelimited","_node$directives$trai2","rightBrace","Directive","value","semicolon","unescapedSingleQuoteRE","unescapedDoubleQuoteRE","DirectiveLiteral","raw","getPossibleRaw","format","minified","test","Error","InterpreterDirective","Placeholder","name","expectedNode"],"sources":["../../src/generators/base.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function File(this: Printer, node: t.File) {\n if (node.program) {\n // Print this here to ensure that Program node 'leadingComments' still\n // get printed after the hashbang.\n this.print(node.program.interpreter);\n }\n\n this.print(node.program);\n}\n\nexport function Program(this: Printer, node: t.Program) {\n // An empty Program doesn't have any inner tokens, so\n // we must explicitly print its inner comments.\n this.noIndentInnerCommentsHere();\n this.printInnerComments();\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, undefined, newline);\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body);\n}\n\nexport function BlockStatement(this: Printer, node: t.BlockStatement) {\n this.token(\"{\");\n const exit = this.enterDelimited();\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, true, newline);\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body, true);\n\n exit();\n this.rightBrace(node);\n}\n\nexport function Directive(this: Printer, node: t.Directive) {\n this.print(node.value);\n this.semicolon();\n}\n\n// These regexes match an even number of \\ followed by a quote\nconst unescapedSingleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*'/;\nconst unescapedDoubleQuoteRE = /(?:^|[^\\\\])(?:\\\\\\\\)*\"/;\n\nexport function DirectiveLiteral(this: Printer, node: t.DirectiveLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const { value } = node;\n\n // NOTE: In directives we can't change escapings,\n // because they change the behavior.\n // e.g. \"us\\x65 strict\" (\\x65 is e) is not a \"use strict\" directive.\n\n if (!unescapedDoubleQuoteRE.test(value)) {\n this.token(`\"${value}\"`);\n } else if (!unescapedSingleQuoteRE.test(value)) {\n this.token(`'${value}'`);\n } else {\n throw new Error(\n \"Malformed AST: it is not possible to print a directive containing\" +\n \" both unescaped single and double quotes.\",\n );\n }\n}\n\nexport function InterpreterDirective(\n this: Printer,\n node: t.InterpreterDirective,\n) {\n this.token(`#!${node.value}`);\n this.newline(1, true);\n}\n\nexport function Placeholder(this: Printer, node: t.Placeholder) {\n this.token(\"%%\");\n this.print(node.name);\n this.token(\"%%\");\n\n if (node.expectedNode === \"Statement\") {\n this.semicolon();\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/classes.js b/framework-core/node_modules/@babel/generator/lib/generators/classes.js new file mode 100644 index 0000000..6cdc975 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/classes.js @@ -0,0 +1,212 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ClassAccessorProperty = ClassAccessorProperty; +exports.ClassBody = ClassBody; +exports.ClassExpression = exports.ClassDeclaration = ClassDeclaration; +exports.ClassMethod = ClassMethod; +exports.ClassPrivateMethod = ClassPrivateMethod; +exports.ClassPrivateProperty = ClassPrivateProperty; +exports.ClassProperty = ClassProperty; +exports.StaticBlock = StaticBlock; +exports._classMethodHead = _classMethodHead; +var _t = require("@babel/types"); +const { + isExportDefaultDeclaration, + isExportNamedDeclaration +} = _t; +function ClassDeclaration(node, parent) { + const inExport = isExportDefaultDeclaration(parent) || isExportNamedDeclaration(parent); + if (!inExport || !this._shouldPrintDecoratorsBeforeExport(parent)) { + this.printJoin(node.decorators); + } + if (node.declare) { + this.word("declare"); + this.space(); + } + if (node.abstract) { + this.word("abstract"); + this.space(); + } + this.word("class"); + if (node.id) { + this.space(); + this.print(node.id); + } + this.print(node.typeParameters); + if (node.superClass) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.superClass); + this.print(node.superTypeParameters); + } + if (node.implements) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements); + } + this.space(); + this.print(node.body); +} +function ClassBody(node) { + this.tokenChar(123); + if (node.body.length === 0) { + this.tokenChar(125); + } else { + this.newline(); + const separator = classBodyEmptySemicolonsPrinter(this, node); + separator == null || separator(-1); + const exit = this.enterDelimited(); + this.printJoin(node.body, true, true, separator, true); + exit(); + if (!this.endsWith(10)) this.newline(); + this.rightBrace(node); + } +} +function classBodyEmptySemicolonsPrinter(printer, node) { + if (!printer.tokenMap || node.start == null || node.end == null) { + return null; + } + const indexes = printer.tokenMap.getIndexes(node); + if (!indexes) return null; + let k = 1; + let occurrenceCount = 0; + let nextLocIndex = 0; + const advanceNextLocIndex = () => { + while (nextLocIndex < node.body.length && node.body[nextLocIndex].start == null) { + nextLocIndex++; + } + }; + advanceNextLocIndex(); + return i => { + if (nextLocIndex <= i) { + nextLocIndex = i + 1; + advanceNextLocIndex(); + } + const end = nextLocIndex === node.body.length ? node.end : node.body[nextLocIndex].start; + let tok; + while (k < indexes.length && printer.tokenMap.matchesOriginal(tok = printer._tokens[indexes[k]], ";") && tok.start < end) { + printer.token(";", undefined, occurrenceCount++); + k++; + } + }; +} +function ClassProperty(node) { + this.printJoin(node.decorators); + if (!node.static && !this.format.preserveFormat) { + var _node$key$loc; + const endLine = (_node$key$loc = node.key.loc) == null || (_node$key$loc = _node$key$loc.end) == null ? void 0 : _node$key$loc.line; + if (endLine) this.catchUp(endLine); + } + this.tsPrintClassMemberModifiers(node); + if (node.computed) { + this.tokenChar(91); + this.print(node.key); + this.tokenChar(93); + } else { + this._variance(node); + this.print(node.key); + } + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value); + } + this.semicolon(); +} +function ClassAccessorProperty(node) { + var _node$key$loc2; + this.printJoin(node.decorators); + const endLine = (_node$key$loc2 = node.key.loc) == null || (_node$key$loc2 = _node$key$loc2.end) == null ? void 0 : _node$key$loc2.line; + if (endLine) this.catchUp(endLine); + this.tsPrintClassMemberModifiers(node); + this.word("accessor", true); + this.space(); + if (node.computed) { + this.tokenChar(91); + this.print(node.key); + this.tokenChar(93); + } else { + this._variance(node); + this.print(node.key); + } + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value); + } + this.semicolon(); +} +function ClassPrivateProperty(node) { + this.printJoin(node.decorators); + this.tsPrintClassMemberModifiers(node); + this.print(node.key); + if (node.optional) { + this.tokenChar(63); + } + if (node.definite) { + this.tokenChar(33); + } + this.print(node.typeAnnotation); + if (node.value) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.value); + } + this.semicolon(); +} +function ClassMethod(node) { + this._classMethodHead(node); + this.space(); + this.print(node.body); +} +function ClassPrivateMethod(node) { + this._classMethodHead(node); + this.space(); + this.print(node.body); +} +function _classMethodHead(node) { + this.printJoin(node.decorators); + if (!this.format.preserveFormat) { + var _node$key$loc3; + const endLine = (_node$key$loc3 = node.key.loc) == null || (_node$key$loc3 = _node$key$loc3.end) == null ? void 0 : _node$key$loc3.line; + if (endLine) this.catchUp(endLine); + } + this.tsPrintClassMemberModifiers(node); + this._methodHead(node); +} +function StaticBlock(node) { + this.word("static"); + this.space(); + this.tokenChar(123); + if (node.body.length === 0) { + this.tokenChar(125); + } else { + this.newline(); + this.printSequence(node.body, true); + this.rightBrace(node); + } +} + +//# sourceMappingURL=classes.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/classes.js.map b/framework-core/node_modules/@babel/generator/lib/generators/classes.js.map new file mode 100644 index 0000000..8eea53a --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/classes.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","isExportDefaultDeclaration","isExportNamedDeclaration","ClassDeclaration","node","parent","inExport","_shouldPrintDecoratorsBeforeExport","printJoin","decorators","declare","word","space","abstract","id","print","typeParameters","superClass","superTypeParameters","implements","printList","body","ClassBody","token","length","newline","separator","classBodyEmptySemicolonsPrinter","exit","enterDelimited","endsWith","rightBrace","printer","tokenMap","start","end","indexes","getIndexes","k","occurrenceCount","nextLocIndex","advanceNextLocIndex","i","tok","matchesOriginal","_tokens","undefined","ClassProperty","static","format","preserveFormat","_node$key$loc","endLine","key","loc","line","catchUp","tsPrintClassMemberModifiers","computed","_variance","optional","definite","typeAnnotation","value","semicolon","ClassAccessorProperty","_node$key$loc2","ClassPrivateProperty","ClassMethod","_classMethodHead","ClassPrivateMethod","_node$key$loc3","_methodHead","StaticBlock","printSequence"],"sources":["../../src/generators/classes.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nexport function ClassDeclaration(\n this: Printer,\n node: t.ClassDeclaration,\n parent: t.Node,\n) {\n const inExport =\n isExportDefaultDeclaration(parent) || isExportNamedDeclaration(parent);\n\n if (\n !inExport ||\n !this._shouldPrintDecoratorsBeforeExport(\n parent as t.ExportDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n this.printJoin(node.decorators);\n }\n\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n if (node.abstract) {\n // TS\n this.word(\"abstract\");\n this.space();\n }\n\n this.word(\"class\");\n\n if (node.id) {\n this.space();\n this.print(node.id);\n }\n\n this.print(node.typeParameters);\n\n if (node.superClass) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.superClass);\n this.print(\n process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Renamed\n node.superTypeArguments\n : // @ts-ignore(Babel 7 vs Babel 8) Renamed\n node.superTypeParameters,\n );\n }\n\n if (node.implements) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements);\n }\n\n this.space();\n this.print(node.body);\n}\n\nexport { ClassDeclaration as ClassExpression };\n\nexport function ClassBody(this: Printer, node: t.ClassBody) {\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n\n const separator = classBodyEmptySemicolonsPrinter(this, node);\n separator?.(-1); // print leading semicolons in preserveFormat mode\n\n const exit = this.enterDelimited();\n this.printJoin(node.body, true, true, separator, true);\n exit();\n\n if (!this.endsWith(charCodes.lineFeed)) this.newline();\n\n this.rightBrace(node);\n }\n}\n\nfunction classBodyEmptySemicolonsPrinter(printer: Printer, node: t.ClassBody) {\n if (!printer.tokenMap || node.start == null || node.end == null) {\n return null;\n }\n\n // \"empty statements\" in class bodies are not represented in the AST.\n // Print them by checking if there are any ; tokens between the current AST\n // member and the next one.\n\n const indexes = printer.tokenMap.getIndexes(node);\n if (!indexes) return null;\n\n let k = 1; // start from 1 to skip '{'\n\n let occurrenceCount = 0;\n\n let nextLocIndex = 0;\n const advanceNextLocIndex = () => {\n while (\n nextLocIndex < node.body.length &&\n node.body[nextLocIndex].start == null\n ) {\n nextLocIndex++;\n }\n };\n advanceNextLocIndex();\n\n return (i: number) => {\n if (nextLocIndex <= i) {\n nextLocIndex = i + 1;\n advanceNextLocIndex();\n }\n\n const end =\n nextLocIndex === node.body.length\n ? node.end\n : node.body[nextLocIndex].start;\n\n let tok;\n while (\n k < indexes.length &&\n printer.tokenMap.matchesOriginal(\n (tok = printer._tokens[indexes[k]]),\n \";\",\n ) &&\n tok.start < end\n ) {\n printer.token(\";\", undefined, occurrenceCount++);\n k++;\n }\n };\n}\n\nexport function ClassProperty(this: Printer, node: t.ClassProperty) {\n this.printJoin(node.decorators);\n\n if (!node.static && !this.format.preserveFormat) {\n // catch up to property key, avoid line break\n // between member TS modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n }\n\n this.tsPrintClassMemberModifiers(node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key);\n this.token(\"]\");\n } else {\n this._variance(node);\n this.print(node.key);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\n\nexport function ClassAccessorProperty(\n this: Printer,\n node: t.ClassAccessorProperty,\n) {\n this.printJoin(node.decorators);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n // TS does not support class accessor property yet\n this.tsPrintClassMemberModifiers(node);\n\n this.word(\"accessor\", true);\n this.space();\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key);\n this.token(\"]\");\n } else {\n // Todo: Flow does not support class accessor property yet.\n this._variance(node);\n this.print(node.key);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\n\nexport function ClassPrivateProperty(\n this: Printer,\n node: t.ClassPrivateProperty,\n) {\n this.printJoin(node.decorators);\n this.tsPrintClassMemberModifiers(node);\n this.print(node.key);\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\n\nexport function ClassMethod(this: Printer, node: t.ClassMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body);\n}\n\nexport function ClassPrivateMethod(this: Printer, node: t.ClassPrivateMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body);\n}\n\nexport function _classMethodHead(\n this: Printer,\n node: t.ClassMethod | t.ClassPrivateMethod | t.TSDeclareMethod,\n) {\n this.printJoin(node.decorators);\n\n if (!this.format.preserveFormat) {\n // catch up to method key, avoid line break\n // between member modifiers/method heads and the method key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n }\n\n this.tsPrintClassMemberModifiers(node);\n this._methodHead(node);\n}\n\nexport function StaticBlock(this: Printer, node: t.StaticBlock) {\n this.word(\"static\");\n this.space();\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n this.printSequence(node.body, true);\n this.rightBrace(node);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/deprecated.js b/framework-core/node_modules/@babel/generator/lib/generators/deprecated.js new file mode 100644 index 0000000..fc02bf9 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/deprecated.js @@ -0,0 +1,28 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.addDeprecatedGenerators = addDeprecatedGenerators; +function addDeprecatedGenerators(PrinterClass) { + { + const deprecatedBabel7Generators = { + Noop() {}, + TSExpressionWithTypeArguments(node) { + this.print(node.expression); + this.print(node.typeParameters); + }, + DecimalLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.word(raw); + return; + } + this.word(node.value + "m"); + } + }; + Object.assign(PrinterClass.prototype, deprecatedBabel7Generators); + } +} + +//# sourceMappingURL=deprecated.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/deprecated.js.map b/framework-core/node_modules/@babel/generator/lib/generators/deprecated.js.map new file mode 100644 index 0000000..7327526 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/deprecated.js.map @@ -0,0 +1 @@ +{"version":3,"names":["addDeprecatedGenerators","PrinterClass","deprecatedBabel7Generators","Noop","TSExpressionWithTypeArguments","node","print","expression","typeParameters","DecimalLiteral","raw","getPossibleRaw","format","minified","undefined","word","value","Object","assign","prototype"],"sources":["../../src/generators/deprecated.ts"],"sourcesContent":["import type Printer from \"../printer\";\nimport type * as t from \"@babel/types\";\n\nexport type DeprecatedBabel7ASTTypes =\n | \"Noop\"\n | \"TSExpressionWithTypeArguments\"\n | \"DecimalLiteral\";\n\nexport function addDeprecatedGenerators(PrinterClass: typeof Printer) {\n // Add Babel 7 generator methods that is removed in Babel 8\n if (!process.env.BABEL_8_BREAKING) {\n const deprecatedBabel7Generators = {\n Noop(this: Printer) {},\n\n TSExpressionWithTypeArguments(\n this: Printer,\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n node: t.TSExpressionWithTypeArguments,\n ) {\n this.print(node.expression);\n this.print(node.typeParameters);\n },\n\n DecimalLiteral(this: Printer, node: any) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"m\");\n },\n } satisfies Record<\n DeprecatedBabel7ASTTypes,\n (this: Printer, node: any) => void\n >;\n Object.assign(PrinterClass.prototype, deprecatedBabel7Generators);\n }\n}\n"],"mappings":";;;;;;AAQO,SAASA,uBAAuBA,CAACC,YAA4B,EAAE;EAEjC;IACjC,MAAMC,0BAA0B,GAAG;MACjCC,IAAIA,CAAA,EAAgB,CAAC,CAAC;MAEtBC,6BAA6BA,CAG3BC,IAAqC,EACrC;QACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,UAAU,CAAC;QAC3B,IAAI,CAACD,KAAK,CAACD,IAAI,CAACG,cAAc,CAAC;MACjC,CAAC;MAEDC,cAAcA,CAAgBJ,IAAS,EAAE;QACvC,MAAMK,GAAG,GAAG,IAAI,CAACC,cAAc,CAACN,IAAI,CAAC;QACrC,IAAI,CAAC,IAAI,CAACO,MAAM,CAACC,QAAQ,IAAIH,GAAG,KAAKI,SAAS,EAAE;UAC9C,IAAI,CAACC,IAAI,CAACL,GAAG,CAAC;UACd;QACF;QACA,IAAI,CAACK,IAAI,CAACV,IAAI,CAACW,KAAK,GAAG,GAAG,CAAC;MAC7B;IACF,CAGC;IACDC,MAAM,CAACC,MAAM,CAACjB,YAAY,CAACkB,SAAS,EAAEjB,0BAA0B,CAAC;EACnE;AACF","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/expressions.js b/framework-core/node_modules/@babel/generator/lib/generators/expressions.js new file mode 100644 index 0000000..5fc870e --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/expressions.js @@ -0,0 +1,300 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.LogicalExpression = exports.BinaryExpression = exports.AssignmentExpression = AssignmentExpression; +exports.AssignmentPattern = AssignmentPattern; +exports.AwaitExpression = AwaitExpression; +exports.BindExpression = BindExpression; +exports.CallExpression = CallExpression; +exports.ConditionalExpression = ConditionalExpression; +exports.Decorator = Decorator; +exports.DoExpression = DoExpression; +exports.EmptyStatement = EmptyStatement; +exports.ExpressionStatement = ExpressionStatement; +exports.Import = Import; +exports.MemberExpression = MemberExpression; +exports.MetaProperty = MetaProperty; +exports.ModuleExpression = ModuleExpression; +exports.NewExpression = NewExpression; +exports.OptionalCallExpression = OptionalCallExpression; +exports.OptionalMemberExpression = OptionalMemberExpression; +exports.ParenthesizedExpression = ParenthesizedExpression; +exports.PrivateName = PrivateName; +exports.SequenceExpression = SequenceExpression; +exports.Super = Super; +exports.ThisExpression = ThisExpression; +exports.UnaryExpression = UnaryExpression; +exports.UpdateExpression = UpdateExpression; +exports.V8IntrinsicIdentifier = V8IntrinsicIdentifier; +exports.YieldExpression = YieldExpression; +exports._shouldPrintDecoratorsBeforeExport = _shouldPrintDecoratorsBeforeExport; +var _t = require("@babel/types"); +var _index = require("../node/index.js"); +const { + isCallExpression, + isLiteral, + isMemberExpression, + isNewExpression, + isPattern +} = _t; +function UnaryExpression(node) { + const { + operator + } = node; + if (operator === "void" || operator === "delete" || operator === "typeof" || operator === "throw") { + this.word(operator); + this.space(); + } else { + this.token(operator); + } + this.print(node.argument); +} +function DoExpression(node) { + if (node.async) { + this.word("async", true); + this.space(); + } + this.word("do"); + this.space(); + this.print(node.body); +} +function ParenthesizedExpression(node) { + this.tokenChar(40); + const exit = this.enterDelimited(); + this.print(node.expression); + exit(); + this.rightParens(node); +} +function UpdateExpression(node) { + if (node.prefix) { + this.token(node.operator); + this.print(node.argument); + } else { + this.print(node.argument, true); + this.token(node.operator); + } +} +function ConditionalExpression(node) { + this.print(node.test); + this.space(); + this.tokenChar(63); + this.space(); + this.print(node.consequent); + this.space(); + this.tokenChar(58); + this.space(); + this.print(node.alternate); +} +function NewExpression(node, parent) { + this.word("new"); + this.space(); + this.print(node.callee); + if (this.format.minified && node.arguments.length === 0 && !node.optional && !isCallExpression(parent, { + callee: node + }) && !isMemberExpression(parent) && !isNewExpression(parent)) { + return; + } + this.print(node.typeArguments); + { + this.print(node.typeParameters); + if (node.optional) { + this.token("?."); + } + } + if (node.arguments.length === 0 && this.tokenMap && !this.tokenMap.endMatches(node, ")")) { + return; + } + this.tokenChar(40); + const exit = this.enterDelimited(); + this.printList(node.arguments, this.shouldPrintTrailingComma(")")); + exit(); + this.rightParens(node); +} +function SequenceExpression(node) { + this.printList(node.expressions); +} +function ThisExpression() { + this.word("this"); +} +function Super() { + this.word("super"); +} +function _shouldPrintDecoratorsBeforeExport(node) { + if (typeof this.format.decoratorsBeforeExport === "boolean") { + return this.format.decoratorsBeforeExport; + } + return typeof node.start === "number" && node.start === node.declaration.start; +} +function Decorator(node) { + this.tokenChar(64); + this.print(node.expression); + this.newline(); +} +function OptionalMemberExpression(node) { + let { + computed + } = node; + const { + optional, + property + } = node; + this.print(node.object); + if (!computed && isMemberExpression(property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + if (isLiteral(property) && typeof property.value === "number") { + computed = true; + } + if (optional) { + this.token("?."); + } + if (computed) { + this.tokenChar(91); + this.print(property); + this.tokenChar(93); + } else { + if (!optional) { + this.tokenChar(46); + } + this.print(property); + } +} +function OptionalCallExpression(node) { + this.print(node.callee); + { + this.print(node.typeParameters); + } + if (node.optional) { + this.token("?."); + } + this.print(node.typeArguments); + this.tokenChar(40); + const exit = this.enterDelimited(); + this.printList(node.arguments); + exit(); + this.rightParens(node); +} +function CallExpression(node) { + this.print(node.callee); + this.print(node.typeArguments); + { + this.print(node.typeParameters); + } + this.tokenChar(40); + const exit = this.enterDelimited(); + this.printList(node.arguments, this.shouldPrintTrailingComma(")")); + exit(); + this.rightParens(node); +} +function Import() { + this.word("import"); +} +function AwaitExpression(node) { + this.word("await"); + this.space(); + this.print(node.argument); +} +function YieldExpression(node) { + if (node.delegate) { + this.word("yield", true); + this.tokenChar(42); + if (node.argument) { + this.space(); + this.print(node.argument); + } + } else if (node.argument) { + this.word("yield", true); + this.space(); + this.print(node.argument); + } else { + this.word("yield"); + } +} +function EmptyStatement() { + this.semicolon(true); +} +function ExpressionStatement(node) { + this.tokenContext |= _index.TokenContext.expressionStatement; + this.print(node.expression); + this.semicolon(); +} +function AssignmentPattern(node) { + this.print(node.left); + if (node.left.type === "Identifier" || isPattern(node.left)) { + if (node.left.optional) this.tokenChar(63); + this.print(node.left.typeAnnotation); + } + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.right); +} +function AssignmentExpression(node) { + this.print(node.left); + this.space(); + if (node.operator === "in" || node.operator === "instanceof") { + this.word(node.operator); + } else { + this.token(node.operator); + this._endsWithDiv = node.operator === "/"; + } + this.space(); + this.print(node.right); +} +function BindExpression(node) { + this.print(node.object); + this.token("::"); + this.print(node.callee); +} +function MemberExpression(node) { + this.print(node.object); + if (!node.computed && isMemberExpression(node.property)) { + throw new TypeError("Got a MemberExpression for MemberExpression property"); + } + let computed = node.computed; + if (isLiteral(node.property) && typeof node.property.value === "number") { + computed = true; + } + if (computed) { + const exit = this.enterDelimited(); + this.tokenChar(91); + this.print(node.property); + this.tokenChar(93); + exit(); + } else { + this.tokenChar(46); + this.print(node.property); + } +} +function MetaProperty(node) { + this.print(node.meta); + this.tokenChar(46); + this.print(node.property); +} +function PrivateName(node) { + this.tokenChar(35); + this.print(node.id); +} +function V8IntrinsicIdentifier(node) { + this.tokenChar(37); + this.word(node.name); +} +function ModuleExpression(node) { + this.word("module", true); + this.space(); + this.tokenChar(123); + this.indent(); + const { + body + } = node; + if (body.body.length || body.directives.length) { + this.newline(); + } + this.print(body); + this.dedent(); + this.rightBrace(node); +} + +//# sourceMappingURL=expressions.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/expressions.js.map b/framework-core/node_modules/@babel/generator/lib/generators/expressions.js.map new file mode 100644 index 0000000..a4abd45 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/expressions.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_index","isCallExpression","isLiteral","isMemberExpression","isNewExpression","isPattern","UnaryExpression","node","operator","word","space","token","print","argument","DoExpression","async","body","ParenthesizedExpression","exit","enterDelimited","expression","rightParens","UpdateExpression","prefix","ConditionalExpression","test","consequent","alternate","NewExpression","parent","callee","format","minified","arguments","length","optional","typeArguments","typeParameters","tokenMap","endMatches","printList","shouldPrintTrailingComma","SequenceExpression","expressions","ThisExpression","Super","_shouldPrintDecoratorsBeforeExport","decoratorsBeforeExport","start","declaration","Decorator","newline","OptionalMemberExpression","computed","property","object","TypeError","value","OptionalCallExpression","CallExpression","Import","AwaitExpression","YieldExpression","delegate","EmptyStatement","semicolon","ExpressionStatement","tokenContext","TokenContext","expressionStatement","AssignmentPattern","left","type","typeAnnotation","right","AssignmentExpression","_endsWithDiv","BindExpression","MemberExpression","MetaProperty","meta","PrivateName","id","V8IntrinsicIdentifier","name","ModuleExpression","indent","directives","dedent","rightBrace"],"sources":["../../src/generators/expressions.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isCallExpression,\n isLiteral,\n isMemberExpression,\n isNewExpression,\n isPattern,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\n\nexport function UnaryExpression(this: Printer, node: t.UnaryExpression) {\n const { operator } = node;\n if (\n operator === \"void\" ||\n operator === \"delete\" ||\n operator === \"typeof\" ||\n // throwExpressions\n operator === \"throw\"\n ) {\n this.word(operator);\n this.space();\n } else {\n this.token(operator);\n }\n\n this.print(node.argument);\n}\n\nexport function DoExpression(this: Printer, node: t.DoExpression) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n this.word(\"do\");\n this.space();\n this.print(node.body);\n}\n\nexport function ParenthesizedExpression(\n this: Printer,\n node: t.ParenthesizedExpression,\n) {\n this.token(\"(\");\n const exit = this.enterDelimited();\n this.print(node.expression);\n exit();\n this.rightParens(node);\n}\n\nexport function UpdateExpression(this: Printer, node: t.UpdateExpression) {\n if (node.prefix) {\n this.token(node.operator);\n this.print(node.argument);\n } else {\n this.print(node.argument, true);\n this.token(node.operator);\n }\n}\n\nexport function ConditionalExpression(\n this: Printer,\n node: t.ConditionalExpression,\n) {\n this.print(node.test);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.consequent);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.alternate);\n}\n\nexport function NewExpression(\n this: Printer,\n node: t.NewExpression,\n parent: t.Node,\n) {\n this.word(\"new\");\n this.space();\n this.print(node.callee);\n if (\n this.format.minified &&\n node.arguments.length === 0 &&\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n !node.optional &&\n !isCallExpression(parent, { callee: node }) &&\n !isMemberExpression(parent) &&\n !isNewExpression(parent)\n ) {\n return;\n }\n\n this.print(node.typeArguments);\n if (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n this.print(node.typeParameters); // Legacy TS AST\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n if (node.optional) {\n this.token(\"?.\");\n }\n }\n\n if (\n node.arguments.length === 0 &&\n this.tokenMap &&\n !this.tokenMap.endMatches(node, \")\")\n ) {\n return;\n }\n\n this.token(\"(\");\n const exit = this.enterDelimited();\n this.printList(node.arguments, this.shouldPrintTrailingComma(\")\"));\n exit();\n this.rightParens(node);\n}\n\nexport function SequenceExpression(this: Printer, node: t.SequenceExpression) {\n this.printList(node.expressions);\n}\n\nexport function ThisExpression(this: Printer) {\n this.word(\"this\");\n}\n\nexport function Super(this: Printer) {\n this.word(\"super\");\n}\n\nexport function _shouldPrintDecoratorsBeforeExport(\n this: Printer,\n node: t.ExportDeclaration & { declaration: t.ClassDeclaration },\n) {\n if (typeof this.format.decoratorsBeforeExport === \"boolean\") {\n return this.format.decoratorsBeforeExport;\n }\n return (\n typeof node.start === \"number\" && node.start === node.declaration.start\n );\n}\n\nexport function Decorator(this: Printer, node: t.Decorator) {\n this.token(\"@\");\n this.print(node.expression);\n this.newline();\n}\n\nexport function OptionalMemberExpression(\n this: Printer,\n node: t.OptionalMemberExpression,\n) {\n let { computed } = node;\n const { optional, property } = node;\n\n this.print(node.object);\n\n if (!computed && isMemberExpression(property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n // @ts-expect-error todo(flow->ts) maybe instead of typeof check specific literal types?\n if (isLiteral(property) && typeof property.value === \"number\") {\n computed = true;\n }\n if (optional) {\n this.token(\"?.\");\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(property);\n this.token(\"]\");\n } else {\n if (!optional) {\n this.token(\".\");\n }\n this.print(property);\n }\n}\n\nexport function OptionalCallExpression(\n this: Printer,\n node: t.OptionalCallExpression,\n) {\n this.print(node.callee);\n\n if (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n this.print(node.typeParameters); // legacy TS AST\n }\n\n if (node.optional) {\n this.token(\"?.\");\n }\n\n this.print(node.typeArguments);\n\n this.token(\"(\");\n const exit = this.enterDelimited();\n this.printList(node.arguments);\n exit();\n this.rightParens(node);\n}\n\nexport function CallExpression(this: Printer, node: t.CallExpression) {\n this.print(node.callee);\n\n this.print(node.typeArguments);\n if (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n this.print(node.typeParameters); // legacy TS AST\n }\n this.token(\"(\");\n const exit = this.enterDelimited();\n this.printList(node.arguments, this.shouldPrintTrailingComma(\")\"));\n exit();\n this.rightParens(node);\n}\n\nexport function Import(this: Printer) {\n this.word(\"import\");\n}\n\nexport function AwaitExpression(this: Printer, node: t.AwaitExpression) {\n this.word(\"await\");\n this.space();\n this.print(node.argument);\n}\n\nexport function YieldExpression(this: Printer, node: t.YieldExpression) {\n if (node.delegate) {\n this.word(\"yield\", true);\n this.token(\"*\");\n if (node.argument) {\n this.space();\n // line terminators are allowed after yield*\n this.print(node.argument);\n }\n } else if (node.argument) {\n this.word(\"yield\", true);\n this.space();\n this.print(node.argument);\n } else {\n this.word(\"yield\");\n }\n}\n\nexport function EmptyStatement(this: Printer) {\n this.semicolon(true /* force */);\n}\n\nexport function ExpressionStatement(\n this: Printer,\n node: t.ExpressionStatement,\n) {\n this.tokenContext |= TokenContext.expressionStatement;\n this.print(node.expression);\n this.semicolon();\n}\n\nexport function AssignmentPattern(this: Printer, node: t.AssignmentPattern) {\n this.print(node.left);\n if (node.left.type === \"Identifier\" || isPattern(node.left)) {\n if (node.left.optional) this.token(\"?\");\n this.print(node.left.typeAnnotation);\n }\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right);\n}\n\nexport function AssignmentExpression(\n this: Printer,\n node: t.AssignmentExpression | t.BinaryExpression | t.LogicalExpression,\n) {\n this.print(node.left);\n\n this.space();\n if (node.operator === \"in\" || node.operator === \"instanceof\") {\n this.word(node.operator);\n } else {\n this.token(node.operator);\n this._endsWithDiv = node.operator === \"/\";\n }\n this.space();\n\n this.print(node.right);\n}\n\nexport function BindExpression(this: Printer, node: t.BindExpression) {\n this.print(node.object);\n this.token(\"::\");\n this.print(node.callee);\n}\n\nexport {\n AssignmentExpression as BinaryExpression,\n AssignmentExpression as LogicalExpression,\n};\n\nexport function MemberExpression(this: Printer, node: t.MemberExpression) {\n this.print(node.object);\n\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n let computed = node.computed;\n // @ts-expect-error todo(flow->ts) maybe use specific literal types\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n\n if (computed) {\n const exit = this.enterDelimited();\n this.token(\"[\");\n this.print(node.property);\n this.token(\"]\");\n exit();\n } else {\n this.token(\".\");\n this.print(node.property);\n }\n}\n\nexport function MetaProperty(this: Printer, node: t.MetaProperty) {\n this.print(node.meta);\n this.token(\".\");\n this.print(node.property);\n}\n\nexport function PrivateName(this: Printer, node: t.PrivateName) {\n this.token(\"#\");\n this.print(node.id);\n}\n\nexport function V8IntrinsicIdentifier(\n this: Printer,\n node: t.V8IntrinsicIdentifier,\n) {\n this.token(\"%\");\n this.word(node.name);\n}\n\nexport function ModuleExpression(this: Printer, node: t.ModuleExpression) {\n this.word(\"module\", true);\n this.space();\n this.token(\"{\");\n this.indent();\n const { body } = node;\n if (body.body.length || body.directives.length) {\n this.newline();\n }\n this.print(body);\n this.dedent();\n this.rightBrace(node);\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/flow.js b/framework-core/node_modules/@babel/generator/lib/generators/flow.js new file mode 100644 index 0000000..322aa34 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/flow.js @@ -0,0 +1,660 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AnyTypeAnnotation = AnyTypeAnnotation; +exports.ArrayTypeAnnotation = ArrayTypeAnnotation; +exports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation; +exports.BooleanTypeAnnotation = BooleanTypeAnnotation; +exports.DeclareClass = DeclareClass; +exports.DeclareExportAllDeclaration = DeclareExportAllDeclaration; +exports.DeclareExportDeclaration = DeclareExportDeclaration; +exports.DeclareFunction = DeclareFunction; +exports.DeclareInterface = DeclareInterface; +exports.DeclareModule = DeclareModule; +exports.DeclareModuleExports = DeclareModuleExports; +exports.DeclareOpaqueType = DeclareOpaqueType; +exports.DeclareTypeAlias = DeclareTypeAlias; +exports.DeclareVariable = DeclareVariable; +exports.DeclaredPredicate = DeclaredPredicate; +exports.EmptyTypeAnnotation = EmptyTypeAnnotation; +exports.EnumBooleanBody = EnumBooleanBody; +exports.EnumBooleanMember = EnumBooleanMember; +exports.EnumDeclaration = EnumDeclaration; +exports.EnumDefaultedMember = EnumDefaultedMember; +exports.EnumNumberBody = EnumNumberBody; +exports.EnumNumberMember = EnumNumberMember; +exports.EnumStringBody = EnumStringBody; +exports.EnumStringMember = EnumStringMember; +exports.EnumSymbolBody = EnumSymbolBody; +exports.ExistsTypeAnnotation = ExistsTypeAnnotation; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.FunctionTypeParam = FunctionTypeParam; +exports.IndexedAccessType = IndexedAccessType; +exports.InferredPredicate = InferredPredicate; +exports.InterfaceDeclaration = InterfaceDeclaration; +exports.GenericTypeAnnotation = exports.ClassImplements = exports.InterfaceExtends = InterfaceExtends; +exports.InterfaceTypeAnnotation = InterfaceTypeAnnotation; +exports.IntersectionTypeAnnotation = IntersectionTypeAnnotation; +exports.MixedTypeAnnotation = MixedTypeAnnotation; +exports.NullLiteralTypeAnnotation = NullLiteralTypeAnnotation; +exports.NullableTypeAnnotation = NullableTypeAnnotation; +Object.defineProperty(exports, "NumberLiteralTypeAnnotation", { + enumerable: true, + get: function () { + return _types2.NumericLiteral; + } +}); +exports.NumberTypeAnnotation = NumberTypeAnnotation; +exports.ObjectTypeAnnotation = ObjectTypeAnnotation; +exports.ObjectTypeCallProperty = ObjectTypeCallProperty; +exports.ObjectTypeIndexer = ObjectTypeIndexer; +exports.ObjectTypeInternalSlot = ObjectTypeInternalSlot; +exports.ObjectTypeProperty = ObjectTypeProperty; +exports.ObjectTypeSpreadProperty = ObjectTypeSpreadProperty; +exports.OpaqueType = OpaqueType; +exports.OptionalIndexedAccessType = OptionalIndexedAccessType; +exports.QualifiedTypeIdentifier = QualifiedTypeIdentifier; +Object.defineProperty(exports, "StringLiteralTypeAnnotation", { + enumerable: true, + get: function () { + return _types2.StringLiteral; + } +}); +exports.StringTypeAnnotation = StringTypeAnnotation; +exports.SymbolTypeAnnotation = SymbolTypeAnnotation; +exports.ThisTypeAnnotation = ThisTypeAnnotation; +exports.TupleTypeAnnotation = TupleTypeAnnotation; +exports.TypeAlias = TypeAlias; +exports.TypeAnnotation = TypeAnnotation; +exports.TypeCastExpression = TypeCastExpression; +exports.TypeParameter = TypeParameter; +exports.TypeParameterDeclaration = exports.TypeParameterInstantiation = TypeParameterInstantiation; +exports.TypeofTypeAnnotation = TypeofTypeAnnotation; +exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.Variance = Variance; +exports.VoidTypeAnnotation = VoidTypeAnnotation; +exports._interfaceish = _interfaceish; +exports._variance = _variance; +var _t = require("@babel/types"); +var _modules = require("./modules.js"); +var _index = require("../node/index.js"); +var _types2 = require("./types.js"); +const { + isDeclareExportDeclaration, + isStatement +} = _t; +function AnyTypeAnnotation() { + this.word("any"); +} +function ArrayTypeAnnotation(node) { + this.print(node.elementType, true); + this.tokenChar(91); + this.tokenChar(93); +} +function BooleanTypeAnnotation() { + this.word("boolean"); +} +function BooleanLiteralTypeAnnotation(node) { + this.word(node.value ? "true" : "false"); +} +function NullLiteralTypeAnnotation() { + this.word("null"); +} +function DeclareClass(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("class"); + this.space(); + this._interfaceish(node); +} +function DeclareFunction(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("function"); + this.space(); + this.print(node.id); + this.print(node.id.typeAnnotation.typeAnnotation); + if (node.predicate) { + this.space(); + this.print(node.predicate); + } + this.semicolon(); +} +function InferredPredicate() { + this.tokenChar(37); + this.word("checks"); +} +function DeclaredPredicate(node) { + this.tokenChar(37); + this.word("checks"); + this.tokenChar(40); + this.print(node.value); + this.tokenChar(41); +} +function DeclareInterface(node) { + this.word("declare"); + this.space(); + this.InterfaceDeclaration(node); +} +function DeclareModule(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.space(); + this.print(node.id); + this.space(); + this.print(node.body); +} +function DeclareModuleExports(node) { + this.word("declare"); + this.space(); + this.word("module"); + this.tokenChar(46); + this.word("exports"); + this.print(node.typeAnnotation); +} +function DeclareTypeAlias(node) { + this.word("declare"); + this.space(); + this.TypeAlias(node); +} +function DeclareOpaqueType(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.OpaqueType(node); +} +function DeclareVariable(node, parent) { + if (!isDeclareExportDeclaration(parent)) { + this.word("declare"); + this.space(); + } + this.word("var"); + this.space(); + this.print(node.id); + this.print(node.id.typeAnnotation); + this.semicolon(); +} +function DeclareExportDeclaration(node) { + this.word("declare"); + this.space(); + this.word("export"); + this.space(); + if (node.default) { + this.word("default"); + this.space(); + } + FlowExportDeclaration.call(this, node); +} +function DeclareExportAllDeclaration(node) { + this.word("declare"); + this.space(); + _modules.ExportAllDeclaration.call(this, node); +} +function EnumDeclaration(node) { + const { + id, + body + } = node; + this.word("enum"); + this.space(); + this.print(id); + this.print(body); +} +function enumExplicitType(context, name, hasExplicitType) { + if (hasExplicitType) { + context.space(); + context.word("of"); + context.space(); + context.word(name); + } + context.space(); +} +function enumBody(context, node) { + const { + members + } = node; + context.token("{"); + context.indent(); + context.newline(); + for (const member of members) { + context.print(member); + context.newline(); + } + if (node.hasUnknownMembers) { + context.token("..."); + context.newline(); + } + context.dedent(); + context.token("}"); +} +function EnumBooleanBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "boolean", explicitType); + enumBody(this, node); +} +function EnumNumberBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "number", explicitType); + enumBody(this, node); +} +function EnumStringBody(node) { + const { + explicitType + } = node; + enumExplicitType(this, "string", explicitType); + enumBody(this, node); +} +function EnumSymbolBody(node) { + enumExplicitType(this, "symbol", true); + enumBody(this, node); +} +function EnumDefaultedMember(node) { + const { + id + } = node; + this.print(id); + this.tokenChar(44); +} +function enumInitializedMember(context, node) { + context.print(node.id); + context.space(); + context.token("="); + context.space(); + context.print(node.init); + context.token(","); +} +function EnumBooleanMember(node) { + enumInitializedMember(this, node); +} +function EnumNumberMember(node) { + enumInitializedMember(this, node); +} +function EnumStringMember(node) { + enumInitializedMember(this, node); +} +function FlowExportDeclaration(node) { + if (node.declaration) { + const declar = node.declaration; + this.print(declar); + if (!isStatement(declar)) this.semicolon(); + } else { + this.tokenChar(123); + if (node.specifiers.length) { + this.space(); + this.printList(node.specifiers); + this.space(); + } + this.tokenChar(125); + if (node.source) { + this.space(); + this.word("from"); + this.space(); + this.print(node.source); + } + this.semicolon(); + } +} +function ExistsTypeAnnotation() { + this.tokenChar(42); +} +function FunctionTypeAnnotation(node, parent) { + this.print(node.typeParameters); + this.tokenChar(40); + if (node.this) { + this.word("this"); + this.tokenChar(58); + this.space(); + this.print(node.this.typeAnnotation); + if (node.params.length || node.rest) { + this.tokenChar(44); + this.space(); + } + } + this.printList(node.params); + if (node.rest) { + if (node.params.length) { + this.tokenChar(44); + this.space(); + } + this.token("..."); + this.print(node.rest); + } + this.tokenChar(41); + const type = parent == null ? void 0 : parent.type; + if (type != null && (type === "ObjectTypeCallProperty" || type === "ObjectTypeInternalSlot" || type === "DeclareFunction" || type === "ObjectTypeProperty" && parent.method)) { + this.tokenChar(58); + } else { + this.space(); + this.token("=>"); + } + this.space(); + this.print(node.returnType); +} +function FunctionTypeParam(node) { + this.print(node.name); + if (node.optional) this.tokenChar(63); + if (node.name) { + this.tokenChar(58); + this.space(); + } + this.print(node.typeAnnotation); +} +function InterfaceExtends(node) { + this.print(node.id); + this.print(node.typeParameters, true); +} +function _interfaceish(node) { + var _node$extends; + this.print(node.id); + this.print(node.typeParameters); + if ((_node$extends = node.extends) != null && _node$extends.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends); + } + if (node.type === "DeclareClass") { + var _node$mixins, _node$implements; + if ((_node$mixins = node.mixins) != null && _node$mixins.length) { + this.space(); + this.word("mixins"); + this.space(); + this.printList(node.mixins); + } + if ((_node$implements = node.implements) != null && _node$implements.length) { + this.space(); + this.word("implements"); + this.space(); + this.printList(node.implements); + } + } + this.space(); + this.print(node.body); +} +function _variance(node) { + var _node$variance; + const kind = (_node$variance = node.variance) == null ? void 0 : _node$variance.kind; + if (kind != null) { + if (kind === "plus") { + this.tokenChar(43); + } else if (kind === "minus") { + this.tokenChar(45); + } + } +} +function InterfaceDeclaration(node) { + this.word("interface"); + this.space(); + this._interfaceish(node); +} +function andSeparator(occurrenceCount) { + this.space(); + this.token("&", false, occurrenceCount); + this.space(); +} +function InterfaceTypeAnnotation(node) { + var _node$extends2; + this.word("interface"); + if ((_node$extends2 = node.extends) != null && _node$extends2.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(node.extends); + } + this.space(); + this.print(node.body); +} +function IntersectionTypeAnnotation(node) { + this.printJoin(node.types, undefined, undefined, andSeparator); +} +function MixedTypeAnnotation() { + this.word("mixed"); +} +function EmptyTypeAnnotation() { + this.word("empty"); +} +function NullableTypeAnnotation(node) { + this.tokenChar(63); + this.print(node.typeAnnotation); +} +function NumberTypeAnnotation() { + this.word("number"); +} +function StringTypeAnnotation() { + this.word("string"); +} +function ThisTypeAnnotation() { + this.word("this"); +} +function TupleTypeAnnotation(node) { + this.tokenChar(91); + this.printList(node.types); + this.tokenChar(93); +} +function TypeofTypeAnnotation(node) { + this.word("typeof"); + this.space(); + this.print(node.argument); +} +function TypeAlias(node) { + this.word("type"); + this.space(); + this.print(node.id); + this.print(node.typeParameters); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.right); + this.semicolon(); +} +function TypeAnnotation(node, parent) { + this.tokenChar(58); + this.space(); + if (parent.type === "ArrowFunctionExpression") { + this.tokenContext |= _index.TokenContext.arrowFlowReturnType; + } else if (node.optional) { + this.tokenChar(63); + } + this.print(node.typeAnnotation); +} +function TypeParameterInstantiation(node) { + this.tokenChar(60); + this.printList(node.params); + this.tokenChar(62); +} +function TypeParameter(node) { + this._variance(node); + this.word(node.name); + if (node.bound) { + this.print(node.bound); + } + if (node.default) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.default); + } +} +function OpaqueType(node) { + this.word("opaque"); + this.space(); + this.word("type"); + this.space(); + this.print(node.id); + this.print(node.typeParameters); + if (node.supertype) { + this.tokenChar(58); + this.space(); + this.print(node.supertype); + } + if (node.impltype) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.impltype); + } + this.semicolon(); +} +function ObjectTypeAnnotation(node) { + if (node.exact) { + this.token("{|"); + } else { + this.tokenChar(123); + } + const props = [...node.properties, ...(node.callProperties || []), ...(node.indexers || []), ...(node.internalSlots || [])]; + if (props.length) { + this.newline(); + this.space(); + this.printJoin(props, true, true, undefined, undefined, function addNewlines(leading) { + if (leading && !props[0]) return 1; + }, () => { + if (props.length !== 1 || node.inexact) { + this.tokenChar(44); + this.space(); + } + }); + this.space(); + } + if (node.inexact) { + this.indent(); + this.token("..."); + if (props.length) { + this.newline(); + } + this.dedent(); + } + if (node.exact) { + this.token("|}"); + } else { + this.tokenChar(125); + } +} +function ObjectTypeInternalSlot(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this.tokenChar(91); + this.tokenChar(91); + this.print(node.id); + this.tokenChar(93); + this.tokenChar(93); + if (node.optional) this.tokenChar(63); + if (!node.method) { + this.tokenChar(58); + this.space(); + } + this.print(node.value); +} +function ObjectTypeCallProperty(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this.print(node.value); +} +function ObjectTypeIndexer(node) { + if (node.static) { + this.word("static"); + this.space(); + } + this._variance(node); + this.tokenChar(91); + if (node.id) { + this.print(node.id); + this.tokenChar(58); + this.space(); + } + this.print(node.key); + this.tokenChar(93); + this.tokenChar(58); + this.space(); + this.print(node.value); +} +function ObjectTypeProperty(node) { + if (node.proto) { + this.word("proto"); + this.space(); + } + if (node.static) { + this.word("static"); + this.space(); + } + if (node.kind === "get" || node.kind === "set") { + this.word(node.kind); + this.space(); + } + this._variance(node); + this.print(node.key); + if (node.optional) this.tokenChar(63); + if (!node.method) { + this.tokenChar(58); + this.space(); + } + this.print(node.value); +} +function ObjectTypeSpreadProperty(node) { + this.token("..."); + this.print(node.argument); +} +function QualifiedTypeIdentifier(node) { + this.print(node.qualification); + this.tokenChar(46); + this.print(node.id); +} +function SymbolTypeAnnotation() { + this.word("symbol"); +} +function orSeparator(occurrenceCount) { + this.space(); + this.token("|", false, occurrenceCount); + this.space(); +} +function UnionTypeAnnotation(node) { + this.printJoin(node.types, undefined, undefined, orSeparator); +} +function TypeCastExpression(node) { + this.tokenChar(40); + this.print(node.expression); + this.print(node.typeAnnotation); + this.tokenChar(41); +} +function Variance(node) { + if (node.kind === "plus") { + this.tokenChar(43); + } else { + this.tokenChar(45); + } +} +function VoidTypeAnnotation() { + this.word("void"); +} +function IndexedAccessType(node) { + this.print(node.objectType, true); + this.tokenChar(91); + this.print(node.indexType); + this.tokenChar(93); +} +function OptionalIndexedAccessType(node) { + this.print(node.objectType); + if (node.optional) { + this.token("?."); + } + this.tokenChar(91); + this.print(node.indexType); + this.tokenChar(93); +} + +//# sourceMappingURL=flow.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/flow.js.map b/framework-core/node_modules/@babel/generator/lib/generators/flow.js.map new file mode 100644 index 0000000..a50152a --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/flow.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_modules","_index","_types2","isDeclareExportDeclaration","isStatement","AnyTypeAnnotation","word","ArrayTypeAnnotation","node","print","elementType","token","BooleanTypeAnnotation","BooleanLiteralTypeAnnotation","value","NullLiteralTypeAnnotation","DeclareClass","parent","space","_interfaceish","DeclareFunction","id","typeAnnotation","predicate","semicolon","InferredPredicate","DeclaredPredicate","DeclareInterface","InterfaceDeclaration","DeclareModule","body","DeclareModuleExports","DeclareTypeAlias","TypeAlias","DeclareOpaqueType","OpaqueType","DeclareVariable","DeclareExportDeclaration","default","FlowExportDeclaration","call","DeclareExportAllDeclaration","ExportAllDeclaration","EnumDeclaration","enumExplicitType","context","name","hasExplicitType","enumBody","members","indent","newline","member","hasUnknownMembers","dedent","EnumBooleanBody","explicitType","EnumNumberBody","EnumStringBody","EnumSymbolBody","EnumDefaultedMember","enumInitializedMember","init","EnumBooleanMember","EnumNumberMember","EnumStringMember","declaration","declar","specifiers","length","printList","source","ExistsTypeAnnotation","FunctionTypeAnnotation","typeParameters","this","params","rest","type","method","returnType","FunctionTypeParam","optional","InterfaceExtends","_node$extends","extends","_node$mixins","_node$implements","mixins","implements","_variance","_node$variance","kind","variance","andSeparator","occurrenceCount","InterfaceTypeAnnotation","_node$extends2","IntersectionTypeAnnotation","printJoin","types","undefined","MixedTypeAnnotation","EmptyTypeAnnotation","NullableTypeAnnotation","NumberTypeAnnotation","StringTypeAnnotation","ThisTypeAnnotation","TupleTypeAnnotation","TypeofTypeAnnotation","argument","right","TypeAnnotation","tokenContext","TokenContext","arrowFlowReturnType","TypeParameterInstantiation","TypeParameter","bound","supertype","impltype","ObjectTypeAnnotation","exact","props","properties","callProperties","indexers","internalSlots","addNewlines","leading","inexact","ObjectTypeInternalSlot","static","ObjectTypeCallProperty","ObjectTypeIndexer","key","ObjectTypeProperty","proto","ObjectTypeSpreadProperty","QualifiedTypeIdentifier","qualification","SymbolTypeAnnotation","orSeparator","UnionTypeAnnotation","TypeCastExpression","expression","Variance","VoidTypeAnnotation","IndexedAccessType","objectType","indexType","OptionalIndexedAccessType"],"sources":["../../src/generators/flow.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport { isDeclareExportDeclaration, isStatement } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { ExportAllDeclaration } from \"./modules.ts\";\nimport { TokenContext } from \"../node/index.ts\";\n\nexport function AnyTypeAnnotation(this: Printer) {\n this.word(\"any\");\n}\n\nexport function ArrayTypeAnnotation(\n this: Printer,\n node: t.ArrayTypeAnnotation,\n) {\n this.print(node.elementType, true);\n this.token(\"[\");\n this.token(\"]\");\n}\n\nexport function BooleanTypeAnnotation(this: Printer) {\n this.word(\"boolean\");\n}\n\nexport function BooleanLiteralTypeAnnotation(\n this: Printer,\n node: t.BooleanLiteralTypeAnnotation,\n) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteralTypeAnnotation(this: Printer) {\n this.word(\"null\");\n}\n\nexport function DeclareClass(\n this: Printer,\n node: t.DeclareClass,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"class\");\n this.space();\n this._interfaceish(node);\n}\n\nexport function DeclareFunction(\n this: Printer,\n node: t.DeclareFunction,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"function\");\n this.space();\n this.print(node.id);\n // @ts-ignore(Babel 7 vs Babel 8) TODO(Babel 8) Remove this comment, since we'll remove the Noop node\n this.print(node.id.typeAnnotation.typeAnnotation);\n\n if (node.predicate) {\n this.space();\n this.print(node.predicate);\n }\n\n this.semicolon();\n}\n\nexport function InferredPredicate(this: Printer) {\n this.token(\"%\");\n this.word(\"checks\");\n}\n\nexport function DeclaredPredicate(this: Printer, node: t.DeclaredPredicate) {\n this.token(\"%\");\n this.word(\"checks\");\n this.token(\"(\");\n this.print(node.value);\n this.token(\")\");\n}\n\nexport function DeclareInterface(this: Printer, node: t.DeclareInterface) {\n this.word(\"declare\");\n this.space();\n this.InterfaceDeclaration(node);\n}\n\nexport function DeclareModule(this: Printer, node: t.DeclareModule) {\n this.word(\"declare\");\n this.space();\n this.word(\"module\");\n this.space();\n this.print(node.id);\n this.space();\n this.print(node.body);\n}\n\nexport function DeclareModuleExports(\n this: Printer,\n node: t.DeclareModuleExports,\n) {\n this.word(\"declare\");\n this.space();\n this.word(\"module\");\n this.token(\".\");\n this.word(\"exports\");\n this.print(node.typeAnnotation);\n}\n\nexport function DeclareTypeAlias(this: Printer, node: t.DeclareTypeAlias) {\n this.word(\"declare\");\n this.space();\n this.TypeAlias(node);\n}\n\nexport function DeclareOpaqueType(\n this: Printer,\n node: t.DeclareOpaqueType,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.OpaqueType(node);\n}\n\nexport function DeclareVariable(\n this: Printer,\n node: t.DeclareVariable,\n parent: t.Node,\n) {\n if (!isDeclareExportDeclaration(parent)) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"var\");\n this.space();\n this.print(node.id);\n this.print(node.id.typeAnnotation);\n this.semicolon();\n}\n\nexport function DeclareExportDeclaration(\n this: Printer,\n node: t.DeclareExportDeclaration,\n) {\n this.word(\"declare\");\n this.space();\n this.word(\"export\");\n this.space();\n if (node.default) {\n this.word(\"default\");\n this.space();\n }\n\n FlowExportDeclaration.call(this, node);\n}\n\nexport function DeclareExportAllDeclaration(\n this: Printer,\n node: t.DeclareExportAllDeclaration,\n) {\n this.word(\"declare\");\n this.space();\n ExportAllDeclaration.call(this, node);\n}\n\nexport function EnumDeclaration(this: Printer, node: t.EnumDeclaration) {\n const { id, body } = node;\n this.word(\"enum\");\n this.space();\n this.print(id);\n this.print(body);\n}\n\nfunction enumExplicitType(\n context: Printer,\n name: string,\n hasExplicitType: boolean,\n) {\n if (hasExplicitType) {\n context.space();\n context.word(\"of\");\n context.space();\n context.word(name);\n }\n context.space();\n}\n\nfunction enumBody(context: Printer, node: t.EnumBody) {\n const { members } = node;\n context.token(\"{\");\n context.indent();\n context.newline();\n for (const member of members) {\n context.print(member);\n context.newline();\n }\n if (node.hasUnknownMembers) {\n context.token(\"...\");\n context.newline();\n }\n context.dedent();\n context.token(\"}\");\n}\n\nexport function EnumBooleanBody(this: Printer, node: t.EnumBooleanBody) {\n const { explicitType } = node;\n enumExplicitType(this, \"boolean\", explicitType);\n enumBody(this, node);\n}\n\nexport function EnumNumberBody(this: Printer, node: t.EnumNumberBody) {\n const { explicitType } = node;\n enumExplicitType(this, \"number\", explicitType);\n enumBody(this, node);\n}\n\nexport function EnumStringBody(this: Printer, node: t.EnumStringBody) {\n const { explicitType } = node;\n enumExplicitType(this, \"string\", explicitType);\n enumBody(this, node);\n}\n\nexport function EnumSymbolBody(this: Printer, node: t.EnumSymbolBody) {\n enumExplicitType(this, \"symbol\", true);\n enumBody(this, node);\n}\n\nexport function EnumDefaultedMember(\n this: Printer,\n node: t.EnumDefaultedMember,\n) {\n const { id } = node;\n this.print(id);\n this.token(\",\");\n}\n\nfunction enumInitializedMember(\n context: Printer,\n node: t.EnumBooleanMember | t.EnumNumberMember | t.EnumStringMember,\n) {\n context.print(node.id);\n context.space();\n context.token(\"=\");\n context.space();\n context.print(node.init);\n context.token(\",\");\n}\n\nexport function EnumBooleanMember(this: Printer, node: t.EnumBooleanMember) {\n enumInitializedMember(this, node);\n}\n\nexport function EnumNumberMember(this: Printer, node: t.EnumNumberMember) {\n enumInitializedMember(this, node);\n}\n\nexport function EnumStringMember(this: Printer, node: t.EnumStringMember) {\n enumInitializedMember(this, node);\n}\n\nfunction FlowExportDeclaration(\n this: Printer,\n node: t.DeclareExportDeclaration,\n) {\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar);\n if (!isStatement(declar)) this.semicolon();\n } else {\n this.token(\"{\");\n if (node.specifiers.length) {\n this.space();\n this.printList(node.specifiers);\n this.space();\n }\n this.token(\"}\");\n\n if (node.source) {\n this.space();\n this.word(\"from\");\n this.space();\n this.print(node.source);\n }\n\n this.semicolon();\n }\n}\n\nexport function ExistsTypeAnnotation(this: Printer) {\n this.token(\"*\");\n}\n\nexport function FunctionTypeAnnotation(\n this: Printer,\n node: t.FunctionTypeAnnotation,\n parent?: t.Node,\n) {\n this.print(node.typeParameters);\n this.token(\"(\");\n\n if (node.this) {\n this.word(\"this\");\n this.token(\":\");\n this.space();\n this.print(node.this.typeAnnotation);\n if (node.params.length || node.rest) {\n this.token(\",\");\n this.space();\n }\n }\n\n this.printList(node.params);\n\n if (node.rest) {\n if (node.params.length) {\n this.token(\",\");\n this.space();\n }\n this.token(\"...\");\n this.print(node.rest);\n }\n\n this.token(\")\");\n\n // this node type is overloaded, not sure why but it makes it EXTREMELY annoying\n\n const type = parent?.type;\n if (\n type != null &&\n (type === \"ObjectTypeCallProperty\" ||\n type === \"ObjectTypeInternalSlot\" ||\n type === \"DeclareFunction\" ||\n (type === \"ObjectTypeProperty\" && parent.method))\n ) {\n this.token(\":\");\n } else {\n this.space();\n this.token(\"=>\");\n }\n\n this.space();\n this.print(node.returnType);\n}\n\nexport function FunctionTypeParam(this: Printer, node: t.FunctionTypeParam) {\n this.print(node.name);\n if (node.optional) this.token(\"?\");\n if (node.name) {\n this.token(\":\");\n this.space();\n }\n this.print(node.typeAnnotation);\n}\n\nexport function InterfaceExtends(this: Printer, node: t.InterfaceExtends) {\n this.print(node.id);\n this.print(node.typeParameters, true);\n}\n\nexport {\n InterfaceExtends as ClassImplements,\n InterfaceExtends as GenericTypeAnnotation,\n};\n\nexport function _interfaceish(\n this: Printer,\n node: t.InterfaceDeclaration | t.DeclareInterface | t.DeclareClass,\n) {\n this.print(node.id);\n this.print(node.typeParameters);\n if (node.extends?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends);\n }\n if (node.type === \"DeclareClass\") {\n if (node.mixins?.length) {\n this.space();\n this.word(\"mixins\");\n this.space();\n this.printList(node.mixins);\n }\n if (node.implements?.length) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements);\n }\n }\n this.space();\n this.print(node.body);\n}\n\nexport function _variance(\n this: Printer,\n node:\n | t.TypeParameter\n | t.ObjectTypeIndexer\n | t.ObjectTypeProperty\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty,\n) {\n const kind = node.variance?.kind;\n if (kind != null) {\n if (kind === \"plus\") {\n this.token(\"+\");\n } else if (kind === \"minus\") {\n this.token(\"-\");\n }\n }\n}\n\nexport function InterfaceDeclaration(\n this: Printer,\n node: t.InterfaceDeclaration | t.DeclareInterface,\n) {\n this.word(\"interface\");\n this.space();\n this._interfaceish(node);\n}\n\nfunction andSeparator(this: Printer, occurrenceCount: number) {\n this.space();\n this.token(\"&\", false, occurrenceCount);\n this.space();\n}\n\nexport function InterfaceTypeAnnotation(\n this: Printer,\n node: t.InterfaceTypeAnnotation,\n) {\n this.word(\"interface\");\n if (node.extends?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends);\n }\n this.space();\n this.print(node.body);\n}\n\nexport function IntersectionTypeAnnotation(\n this: Printer,\n node: t.IntersectionTypeAnnotation,\n) {\n this.printJoin(node.types, undefined, undefined, andSeparator);\n}\n\nexport function MixedTypeAnnotation(this: Printer) {\n this.word(\"mixed\");\n}\n\nexport function EmptyTypeAnnotation(this: Printer) {\n this.word(\"empty\");\n}\n\nexport function NullableTypeAnnotation(\n this: Printer,\n node: t.NullableTypeAnnotation,\n) {\n this.token(\"?\");\n this.print(node.typeAnnotation);\n}\n\nexport {\n NumericLiteral as NumberLiteralTypeAnnotation,\n StringLiteral as StringLiteralTypeAnnotation,\n} from \"./types.ts\";\n\nexport function NumberTypeAnnotation(this: Printer) {\n this.word(\"number\");\n}\n\nexport function StringTypeAnnotation(this: Printer) {\n this.word(\"string\");\n}\n\nexport function ThisTypeAnnotation(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TupleTypeAnnotation(\n this: Printer,\n node: t.TupleTypeAnnotation,\n) {\n this.token(\"[\");\n this.printList(node.types);\n this.token(\"]\");\n}\n\nexport function TypeofTypeAnnotation(\n this: Printer,\n node: t.TypeofTypeAnnotation,\n) {\n this.word(\"typeof\");\n this.space();\n this.print(node.argument);\n}\n\nexport function TypeAlias(\n this: Printer,\n node: t.TypeAlias | t.DeclareTypeAlias,\n) {\n this.word(\"type\");\n this.space();\n this.print(node.id);\n this.print(node.typeParameters);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right);\n this.semicolon();\n}\n\nexport function TypeAnnotation(\n this: Printer,\n node: t.TypeAnnotation,\n parent: t.Node,\n) {\n this.token(\":\");\n this.space();\n if (parent.type === \"ArrowFunctionExpression\") {\n this.tokenContext |= TokenContext.arrowFlowReturnType;\n } else if (\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n node.optional\n ) {\n this.token(\"?\");\n }\n this.print(node.typeAnnotation);\n}\n\nexport function TypeParameterInstantiation(\n this: Printer,\n node: t.TypeParameterInstantiation,\n): void {\n this.token(\"<\");\n this.printList(node.params);\n this.token(\">\");\n}\n\nexport { TypeParameterInstantiation as TypeParameterDeclaration };\n\nexport function TypeParameter(this: Printer, node: t.TypeParameter) {\n this._variance(node);\n\n this.word(node.name);\n\n if (node.bound) {\n this.print(node.bound);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default);\n }\n}\n\nexport function OpaqueType(\n this: Printer,\n node: t.OpaqueType | t.DeclareOpaqueType,\n) {\n this.word(\"opaque\");\n this.space();\n this.word(\"type\");\n this.space();\n this.print(node.id);\n this.print(node.typeParameters);\n if (node.supertype) {\n this.token(\":\");\n this.space();\n this.print(node.supertype);\n }\n\n if (node.impltype) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.impltype);\n }\n this.semicolon();\n}\n\nexport function ObjectTypeAnnotation(\n this: Printer,\n node: t.ObjectTypeAnnotation,\n) {\n if (node.exact) {\n this.token(\"{|\");\n } else {\n this.token(\"{\");\n }\n\n // TODO: remove the array fallbacks and instead enforce the types to require an array\n const props = [\n ...node.properties,\n ...(node.callProperties || []),\n ...(node.indexers || []),\n ...(node.internalSlots || []),\n ];\n\n if (props.length) {\n this.newline();\n\n this.space();\n\n this.printJoin(\n props,\n true,\n true,\n undefined,\n undefined,\n function addNewlines(leading) {\n if (leading && !props[0]) return 1;\n },\n () => {\n if (props.length !== 1 || node.inexact) {\n this.token(\",\");\n this.space();\n }\n },\n );\n\n this.space();\n }\n\n if (node.inexact) {\n this.indent();\n this.token(\"...\");\n if (props.length) {\n this.newline();\n }\n this.dedent();\n }\n\n if (node.exact) {\n this.token(\"|}\");\n } else {\n this.token(\"}\");\n }\n}\n\nexport function ObjectTypeInternalSlot(\n this: Printer,\n node: t.ObjectTypeInternalSlot,\n) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.token(\"[\");\n this.token(\"[\");\n this.print(node.id);\n this.token(\"]\");\n this.token(\"]\");\n if (node.optional) this.token(\"?\");\n if (!node.method) {\n this.token(\":\");\n this.space();\n }\n this.print(node.value);\n}\n\nexport function ObjectTypeCallProperty(\n this: Printer,\n node: t.ObjectTypeCallProperty,\n) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.print(node.value);\n}\n\nexport function ObjectTypeIndexer(this: Printer, node: t.ObjectTypeIndexer) {\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this._variance(node);\n this.token(\"[\");\n if (node.id) {\n this.print(node.id);\n this.token(\":\");\n this.space();\n }\n this.print(node.key);\n this.token(\"]\");\n this.token(\":\");\n this.space();\n this.print(node.value);\n}\n\nexport function ObjectTypeProperty(this: Printer, node: t.ObjectTypeProperty) {\n if (node.proto) {\n this.word(\"proto\");\n this.space();\n }\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n if (node.kind === \"get\" || node.kind === \"set\") {\n this.word(node.kind);\n this.space();\n }\n this._variance(node);\n this.print(node.key);\n if (node.optional) this.token(\"?\");\n if (!node.method) {\n this.token(\":\");\n this.space();\n }\n this.print(node.value);\n}\n\nexport function ObjectTypeSpreadProperty(\n this: Printer,\n node: t.ObjectTypeSpreadProperty,\n) {\n this.token(\"...\");\n this.print(node.argument);\n}\n\nexport function QualifiedTypeIdentifier(\n this: Printer,\n node: t.QualifiedTypeIdentifier,\n) {\n this.print(node.qualification);\n this.token(\".\");\n this.print(node.id);\n}\n\nexport function SymbolTypeAnnotation(this: Printer) {\n this.word(\"symbol\");\n}\n\nfunction orSeparator(this: Printer, occurrenceCount: number) {\n this.space();\n this.token(\"|\", false, occurrenceCount);\n this.space();\n}\n\nexport function UnionTypeAnnotation(\n this: Printer,\n node: t.UnionTypeAnnotation,\n) {\n this.printJoin(node.types, undefined, undefined, orSeparator);\n}\n\nexport function TypeCastExpression(this: Printer, node: t.TypeCastExpression) {\n this.token(\"(\");\n this.print(node.expression);\n this.print(node.typeAnnotation);\n this.token(\")\");\n}\n\nexport function Variance(this: Printer, node: t.Variance) {\n if (node.kind === \"plus\") {\n this.token(\"+\");\n } else {\n this.token(\"-\");\n }\n}\n\nexport function VoidTypeAnnotation(this: Printer) {\n this.word(\"void\");\n}\n\nexport function IndexedAccessType(this: Printer, node: t.IndexedAccessType) {\n this.print(node.objectType, true);\n this.token(\"[\");\n this.print(node.indexType);\n this.token(\"]\");\n}\n\nexport function OptionalIndexedAccessType(\n this: Printer,\n node: t.OptionalIndexedAccessType,\n) {\n this.print(node.objectType);\n if (node.optional) {\n this.token(\"?.\");\n }\n this.token(\"[\");\n this.print(node.indexType);\n this.token(\"]\");\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/index.js b/framework-core/node_modules/@babel/generator/lib/generators/index.js new file mode 100644 index 0000000..331c73f --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/index.js @@ -0,0 +1,128 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var _templateLiterals = require("./template-literals.js"); +Object.keys(_templateLiterals).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _templateLiterals[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _templateLiterals[key]; + } + }); +}); +var _expressions = require("./expressions.js"); +Object.keys(_expressions).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _expressions[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _expressions[key]; + } + }); +}); +var _statements = require("./statements.js"); +Object.keys(_statements).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _statements[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _statements[key]; + } + }); +}); +var _classes = require("./classes.js"); +Object.keys(_classes).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _classes[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _classes[key]; + } + }); +}); +var _methods = require("./methods.js"); +Object.keys(_methods).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _methods[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _methods[key]; + } + }); +}); +var _modules = require("./modules.js"); +Object.keys(_modules).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _modules[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _modules[key]; + } + }); +}); +var _types = require("./types.js"); +Object.keys(_types).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _types[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _types[key]; + } + }); +}); +var _flow = require("./flow.js"); +Object.keys(_flow).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _flow[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _flow[key]; + } + }); +}); +var _base = require("./base.js"); +Object.keys(_base).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _base[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _base[key]; + } + }); +}); +var _jsx = require("./jsx.js"); +Object.keys(_jsx).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _jsx[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _jsx[key]; + } + }); +}); +var _typescript = require("./typescript.js"); +Object.keys(_typescript).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (key in exports && exports[key] === _typescript[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _typescript[key]; + } + }); +}); + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/index.js.map b/framework-core/node_modules/@babel/generator/lib/generators/index.js.map new file mode 100644 index 0000000..e8b0341 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_templateLiterals","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_expressions","_statements","_classes","_methods","_modules","_types","_flow","_base","_jsx","_typescript"],"sources":["../../src/generators/index.ts"],"sourcesContent":["export * from \"./template-literals.ts\";\nexport * from \"./expressions.ts\";\nexport * from \"./statements.ts\";\nexport * from \"./classes.ts\";\nexport * from \"./methods.ts\";\nexport * from \"./modules.ts\";\nexport * from \"./types.ts\";\nexport * from \"./flow.ts\";\nexport * from \"./base.ts\";\nexport * from \"./jsx.ts\";\nexport * from \"./typescript.ts\";\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/jsx.js b/framework-core/node_modules/@babel/generator/lib/generators/jsx.js new file mode 100644 index 0000000..2650ec1 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/jsx.js @@ -0,0 +1,126 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.JSXAttribute = JSXAttribute; +exports.JSXClosingElement = JSXClosingElement; +exports.JSXClosingFragment = JSXClosingFragment; +exports.JSXElement = JSXElement; +exports.JSXEmptyExpression = JSXEmptyExpression; +exports.JSXExpressionContainer = JSXExpressionContainer; +exports.JSXFragment = JSXFragment; +exports.JSXIdentifier = JSXIdentifier; +exports.JSXMemberExpression = JSXMemberExpression; +exports.JSXNamespacedName = JSXNamespacedName; +exports.JSXOpeningElement = JSXOpeningElement; +exports.JSXOpeningFragment = JSXOpeningFragment; +exports.JSXSpreadAttribute = JSXSpreadAttribute; +exports.JSXSpreadChild = JSXSpreadChild; +exports.JSXText = JSXText; +function JSXAttribute(node) { + this.print(node.name); + if (node.value) { + this.tokenChar(61); + this.print(node.value); + } +} +function JSXIdentifier(node) { + this.word(node.name); +} +function JSXNamespacedName(node) { + this.print(node.namespace); + this.tokenChar(58); + this.print(node.name); +} +function JSXMemberExpression(node) { + this.print(node.object); + this.tokenChar(46); + this.print(node.property); +} +function JSXSpreadAttribute(node) { + this.tokenChar(123); + this.token("..."); + this.print(node.argument); + this.rightBrace(node); +} +function JSXExpressionContainer(node) { + this.tokenChar(123); + this.print(node.expression); + this.rightBrace(node); +} +function JSXSpreadChild(node) { + this.tokenChar(123); + this.token("..."); + this.print(node.expression); + this.rightBrace(node); +} +function JSXText(node) { + const raw = this.getPossibleRaw(node); + if (raw !== undefined) { + this.token(raw, true); + } else { + this.token(node.value, true); + } +} +function JSXElement(node) { + const open = node.openingElement; + this.print(open); + if (open.selfClosing) return; + this.indent(); + for (const child of node.children) { + this.print(child); + } + this.dedent(); + this.print(node.closingElement); +} +function spaceSeparator() { + this.space(); +} +function JSXOpeningElement(node) { + this.tokenChar(60); + this.print(node.name); + { + if (node.typeArguments) { + this.print(node.typeArguments); + } + this.print(node.typeParameters); + } + if (node.attributes.length > 0) { + this.space(); + this.printJoin(node.attributes, undefined, undefined, spaceSeparator); + } + if (node.selfClosing) { + this.space(); + this.tokenChar(47); + } + this.tokenChar(62); +} +function JSXClosingElement(node) { + this.tokenChar(60); + this.tokenChar(47); + this.print(node.name); + this.tokenChar(62); +} +function JSXEmptyExpression() { + this.printInnerComments(); +} +function JSXFragment(node) { + this.print(node.openingFragment); + this.indent(); + for (const child of node.children) { + this.print(child); + } + this.dedent(); + this.print(node.closingFragment); +} +function JSXOpeningFragment() { + this.tokenChar(60); + this.tokenChar(62); +} +function JSXClosingFragment() { + this.token(" 0) {\n this.space();\n this.printJoin(node.attributes, undefined, undefined, spaceSeparator);\n }\n if (node.selfClosing) {\n this.space();\n this.token(\"/\");\n }\n this.token(\">\");\n}\n\nexport function JSXClosingElement(this: Printer, node: t.JSXClosingElement) {\n this.token(\"<\");\n this.token(\"/\");\n this.print(node.name);\n this.token(\">\");\n}\n\nexport function JSXEmptyExpression(this: Printer) {\n // This node is empty, so forcefully print its inner comments.\n this.printInnerComments();\n}\n\nexport function JSXFragment(this: Printer, node: t.JSXFragment) {\n this.print(node.openingFragment);\n\n this.indent();\n for (const child of node.children) {\n this.print(child);\n }\n this.dedent();\n\n this.print(node.closingFragment);\n}\n\nexport function JSXOpeningFragment(this: Printer) {\n this.token(\"<\");\n this.token(\">\");\n}\n\nexport function JSXClosingFragment(this: Printer) {\n this.token(\"\");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAGO,SAASA,YAAYA,CAAgBC,IAAoB,EAAE;EAChE,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,IAAI,CAAC;EACrB,IAAIF,IAAI,CAACG,KAAK,EAAE;IACd,IAAI,CAACC,SAAK,GAAI,CAAC;IACf,IAAI,CAACH,KAAK,CAACD,IAAI,CAACG,KAAK,CAAC;EACxB;AACF;AAEO,SAASE,aAAaA,CAAgBL,IAAqB,EAAE;EAClE,IAAI,CAACM,IAAI,CAACN,IAAI,CAACE,IAAI,CAAC;AACtB;AAEO,SAASK,iBAAiBA,CAAgBP,IAAyB,EAAE;EAC1E,IAAI,CAACC,KAAK,CAACD,IAAI,CAACQ,SAAS,CAAC;EAC1B,IAAI,CAACJ,SAAK,GAAI,CAAC;EACf,IAAI,CAACH,KAAK,CAACD,IAAI,CAACE,IAAI,CAAC;AACvB;AAEO,SAASO,mBAAmBA,CAEjCT,IAA2B,EAC3B;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACU,MAAM,CAAC;EACvB,IAAI,CAACN,SAAK,GAAI,CAAC;EACf,IAAI,CAACH,KAAK,CAACD,IAAI,CAACW,QAAQ,CAAC;AAC3B;AAEO,SAASC,kBAAkBA,CAAgBZ,IAA0B,EAAE;EAC5E,IAAI,CAACI,SAAK,IAAI,CAAC;EACf,IAAI,CAACA,KAAK,CAAC,KAAK,CAAC;EACjB,IAAI,CAACH,KAAK,CAACD,IAAI,CAACa,QAAQ,CAAC;EACzB,IAAI,CAACC,UAAU,CAACd,IAAI,CAAC;AACvB;AAEO,SAASe,sBAAsBA,CAEpCf,IAA8B,EAC9B;EACA,IAAI,CAACI,SAAK,IAAI,CAAC;EACf,IAAI,CAACH,KAAK,CAACD,IAAI,CAACgB,UAAU,CAAC;EAC3B,IAAI,CAACF,UAAU,CAACd,IAAI,CAAC;AACvB;AAEO,SAASiB,cAAcA,CAAgBjB,IAAsB,EAAE;EACpE,IAAI,CAACI,SAAK,IAAI,CAAC;EACf,IAAI,CAACA,KAAK,CAAC,KAAK,CAAC;EACjB,IAAI,CAACH,KAAK,CAACD,IAAI,CAACgB,UAAU,CAAC;EAC3B,IAAI,CAACF,UAAU,CAACd,IAAI,CAAC;AACvB;AAEO,SAASkB,OAAOA,CAAgBlB,IAAe,EAAE;EACtD,MAAMmB,GAAG,GAAG,IAAI,CAACC,cAAc,CAACpB,IAAI,CAAC;EAErC,IAAImB,GAAG,KAAKE,SAAS,EAAE;IACrB,IAAI,CAACjB,KAAK,CAACe,GAAG,EAAE,IAAI,CAAC;EACvB,CAAC,MAAM;IACL,IAAI,CAACf,KAAK,CAACJ,IAAI,CAACG,KAAK,EAAE,IAAI,CAAC;EAC9B;AACF;AAEO,SAASmB,UAAUA,CAAgBtB,IAAkB,EAAE;EAC5D,MAAMuB,IAAI,GAAGvB,IAAI,CAACwB,cAAc;EAChC,IAAI,CAACvB,KAAK,CAACsB,IAAI,CAAC;EAChB,IAAIA,IAAI,CAACE,WAAW,EAAE;EAEtB,IAAI,CAACC,MAAM,CAAC,CAAC;EACb,KAAK,MAAMC,KAAK,IAAI3B,IAAI,CAAC4B,QAAQ,EAAE;IACjC,IAAI,CAAC3B,KAAK,CAAC0B,KAAK,CAAC;EACnB;EACA,IAAI,CAACE,MAAM,CAAC,CAAC;EAEb,IAAI,CAAC5B,KAAK,CAACD,IAAI,CAAC8B,cAAc,CAAC;AACjC;AAEA,SAASC,cAAcA,CAAA,EAAgB;EACrC,IAAI,CAACC,KAAK,CAAC,CAAC;AACd;AAEO,SAASC,iBAAiBA,CAAgBjC,IAAyB,EAAE;EAC1E,IAAI,CAACI,SAAK,GAAI,CAAC;EACf,IAAI,CAACH,KAAK,CAACD,IAAI,CAACE,IAAI,CAAC;EAId;IACL,IAAIF,IAAI,CAACkC,aAAa,EAAE;MACtB,IAAI,CAACjC,KAAK,CAACD,IAAI,CAACkC,aAAa,CAAC;IAChC;IAEA,IAAI,CAACjC,KAAK,CAACD,IAAI,CAACmC,cAAc,CAAC;EACjC;EAEA,IAAInC,IAAI,CAACoC,UAAU,CAACC,MAAM,GAAG,CAAC,EAAE;IAC9B,IAAI,CAACL,KAAK,CAAC,CAAC;IACZ,IAAI,CAACM,SAAS,CAACtC,IAAI,CAACoC,UAAU,EAAEf,SAAS,EAAEA,SAAS,EAAEU,cAAc,CAAC;EACvE;EACA,IAAI/B,IAAI,CAACyB,WAAW,EAAE;IACpB,IAAI,CAACO,KAAK,CAAC,CAAC;IACZ,IAAI,CAAC5B,SAAK,GAAI,CAAC;EACjB;EACA,IAAI,CAACA,SAAK,GAAI,CAAC;AACjB;AAEO,SAASmC,iBAAiBA,CAAgBvC,IAAyB,EAAE;EAC1E,IAAI,CAACI,SAAK,GAAI,CAAC;EACf,IAAI,CAACA,SAAK,GAAI,CAAC;EACf,IAAI,CAACH,KAAK,CAACD,IAAI,CAACE,IAAI,CAAC;EACrB,IAAI,CAACE,SAAK,GAAI,CAAC;AACjB;AAEO,SAASoC,kBAAkBA,CAAA,EAAgB;EAEhD,IAAI,CAACC,kBAAkB,CAAC,CAAC;AAC3B;AAEO,SAASC,WAAWA,CAAgB1C,IAAmB,EAAE;EAC9D,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC2C,eAAe,CAAC;EAEhC,IAAI,CAACjB,MAAM,CAAC,CAAC;EACb,KAAK,MAAMC,KAAK,IAAI3B,IAAI,CAAC4B,QAAQ,EAAE;IACjC,IAAI,CAAC3B,KAAK,CAAC0B,KAAK,CAAC;EACnB;EACA,IAAI,CAACE,MAAM,CAAC,CAAC;EAEb,IAAI,CAAC5B,KAAK,CAACD,IAAI,CAAC4C,eAAe,CAAC;AAClC;AAEO,SAASC,kBAAkBA,CAAA,EAAgB;EAChD,IAAI,CAACzC,SAAK,GAAI,CAAC;EACf,IAAI,CAACA,SAAK,GAAI,CAAC;AACjB;AAEO,SAAS0C,kBAAkBA,CAAA,EAAgB;EAChD,IAAI,CAAC1C,KAAK,CAAC,IAAI,CAAC;EAChB,IAAI,CAACA,SAAK,GAAI,CAAC;AACjB","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/methods.js b/framework-core/node_modules/@babel/generator/lib/generators/methods.js new file mode 100644 index 0000000..eabb16d --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/methods.js @@ -0,0 +1,198 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ArrowFunctionExpression = ArrowFunctionExpression; +exports.FunctionDeclaration = exports.FunctionExpression = FunctionExpression; +exports._functionHead = _functionHead; +exports._methodHead = _methodHead; +exports._param = _param; +exports._parameters = _parameters; +exports._params = _params; +exports._predicate = _predicate; +exports._shouldPrintArrowParamsParens = _shouldPrintArrowParamsParens; +var _t = require("@babel/types"); +var _index = require("../node/index.js"); +const { + isIdentifier +} = _t; +function _params(node, idNode, parentNode) { + this.print(node.typeParameters); + const nameInfo = _getFuncIdName.call(this, idNode, parentNode); + if (nameInfo) { + this.sourceIdentifierName(nameInfo.name, nameInfo.pos); + } + this.tokenChar(40); + this._parameters(node.params, ")"); + const noLineTerminator = node.type === "ArrowFunctionExpression"; + this.print(node.returnType, noLineTerminator); + this._noLineTerminator = noLineTerminator; +} +function _parameters(parameters, endToken) { + const exit = this.enterDelimited(); + const trailingComma = this.shouldPrintTrailingComma(endToken); + const paramLength = parameters.length; + for (let i = 0; i < paramLength; i++) { + this._param(parameters[i]); + if (trailingComma || i < paramLength - 1) { + this.token(",", null, i); + this.space(); + } + } + this.token(endToken); + exit(); +} +function _param(parameter) { + this.printJoin(parameter.decorators); + this.print(parameter); + if (parameter.optional) { + this.tokenChar(63); + } + this.print(parameter.typeAnnotation); +} +function _methodHead(node) { + const kind = node.kind; + const key = node.key; + if (kind === "get" || kind === "set") { + this.word(kind); + this.space(); + } + if (node.async) { + this.word("async", true); + this.space(); + } + if (kind === "method" || kind === "init") { + if (node.generator) { + this.tokenChar(42); + } + } + if (node.computed) { + this.tokenChar(91); + this.print(key); + this.tokenChar(93); + } else { + this.print(key); + } + if (node.optional) { + this.tokenChar(63); + } + this._params(node, node.computed && node.key.type !== "StringLiteral" ? undefined : node.key, undefined); +} +function _predicate(node, noLineTerminatorAfter) { + if (node.predicate) { + if (!node.returnType) { + this.tokenChar(58); + } + this.space(); + this.print(node.predicate, noLineTerminatorAfter); + } +} +function _functionHead(node, parent) { + if (node.async) { + this.word("async"); + if (!this.format.preserveFormat) { + this._endsWithInnerRaw = false; + } + this.space(); + } + this.word("function"); + if (node.generator) { + if (!this.format.preserveFormat) { + this._endsWithInnerRaw = false; + } + this.tokenChar(42); + } + this.space(); + if (node.id) { + this.print(node.id); + } + this._params(node, node.id, parent); + if (node.type !== "TSDeclareFunction") { + this._predicate(node); + } +} +function FunctionExpression(node, parent) { + this._functionHead(node, parent); + this.space(); + this.print(node.body); +} +function ArrowFunctionExpression(node, parent) { + if (node.async) { + this.word("async", true); + this.space(); + } + if (this._shouldPrintArrowParamsParens(node)) { + this._params(node, undefined, parent); + } else { + this.print(node.params[0], true); + } + this._predicate(node, true); + this.space(); + this.printInnerComments(); + this.token("=>"); + this.space(); + this.tokenContext |= _index.TokenContext.arrowBody; + this.print(node.body); +} +function _shouldPrintArrowParamsParens(node) { + var _firstParam$leadingCo, _firstParam$trailingC; + if (node.params.length !== 1) return true; + if (node.typeParameters || node.returnType || node.predicate) { + return true; + } + const firstParam = node.params[0]; + if (!isIdentifier(firstParam) || firstParam.typeAnnotation || firstParam.optional || (_firstParam$leadingCo = firstParam.leadingComments) != null && _firstParam$leadingCo.length || (_firstParam$trailingC = firstParam.trailingComments) != null && _firstParam$trailingC.length) { + return true; + } + if (this.tokenMap) { + if (node.loc == null) return true; + if (this.tokenMap.findMatching(node, "(") !== null) return true; + const arrowToken = this.tokenMap.findMatching(node, "=>"); + if ((arrowToken == null ? void 0 : arrowToken.loc) == null) return true; + return arrowToken.loc.start.line !== node.loc.start.line; + } + if (this.format.retainLines) return true; + return false; +} +function _getFuncIdName(idNode, parent) { + let id = idNode; + if (!id && parent) { + const parentType = parent.type; + if (parentType === "VariableDeclarator") { + id = parent.id; + } else if (parentType === "AssignmentExpression" || parentType === "AssignmentPattern") { + id = parent.left; + } else if (parentType === "ObjectProperty" || parentType === "ClassProperty") { + if (!parent.computed || parent.key.type === "StringLiteral") { + id = parent.key; + } + } else if (parentType === "ClassPrivateProperty" || parentType === "ClassAccessorProperty") { + id = parent.key; + } + } + if (!id) return; + let nameInfo; + if (id.type === "Identifier") { + var _id$loc, _id$loc2; + nameInfo = { + pos: (_id$loc = id.loc) == null ? void 0 : _id$loc.start, + name: ((_id$loc2 = id.loc) == null ? void 0 : _id$loc2.identifierName) || id.name + }; + } else if (id.type === "PrivateName") { + var _id$loc3; + nameInfo = { + pos: (_id$loc3 = id.loc) == null ? void 0 : _id$loc3.start, + name: "#" + id.id.name + }; + } else if (id.type === "StringLiteral") { + var _id$loc4; + nameInfo = { + pos: (_id$loc4 = id.loc) == null ? void 0 : _id$loc4.start, + name: id.value + }; + } + return nameInfo; +} + +//# sourceMappingURL=methods.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/methods.js.map b/framework-core/node_modules/@babel/generator/lib/generators/methods.js.map new file mode 100644 index 0000000..a0f221f --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/methods.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_index","isIdentifier","_params","node","idNode","parentNode","print","typeParameters","nameInfo","_getFuncIdName","call","sourceIdentifierName","name","pos","token","_parameters","params","noLineTerminator","type","returnType","_noLineTerminator","parameters","endToken","exit","enterDelimited","trailingComma","shouldPrintTrailingComma","paramLength","length","i","_param","space","parameter","printJoin","decorators","optional","typeAnnotation","_methodHead","kind","key","word","async","generator","computed","undefined","_predicate","noLineTerminatorAfter","predicate","_functionHead","parent","format","preserveFormat","_endsWithInnerRaw","id","FunctionExpression","body","ArrowFunctionExpression","_shouldPrintArrowParamsParens","printInnerComments","tokenContext","TokenContext","arrowBody","_firstParam$leadingCo","_firstParam$trailingC","firstParam","leadingComments","trailingComments","tokenMap","loc","findMatching","arrowToken","start","line","retainLines","parentType","left","_id$loc","_id$loc2","identifierName","_id$loc3","_id$loc4","value"],"sources":["../../src/generators/methods.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\nimport { isIdentifier, type ParentMaps } from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\n\ntype ParentsOf = ParentMaps[T[\"type\"]];\n\nexport function _params(\n this: Printer,\n node: t.Function | t.TSDeclareMethod | t.TSDeclareFunction,\n idNode: t.Expression | t.PrivateName,\n parentNode: ParentsOf,\n) {\n this.print(node.typeParameters);\n\n const nameInfo = _getFuncIdName.call(this, idNode, parentNode);\n if (nameInfo) {\n this.sourceIdentifierName(nameInfo.name, nameInfo.pos);\n }\n\n this.token(\"(\");\n this._parameters(node.params, \")\");\n\n const noLineTerminator = node.type === \"ArrowFunctionExpression\";\n this.print(node.returnType, noLineTerminator);\n\n this._noLineTerminator = noLineTerminator;\n}\n\nexport function _parameters(\n this: Printer,\n parameters: t.Function[\"params\"],\n endToken: string,\n) {\n const exit = this.enterDelimited();\n\n const trailingComma = this.shouldPrintTrailingComma(endToken);\n\n const paramLength = parameters.length;\n for (let i = 0; i < paramLength; i++) {\n this._param(parameters[i]);\n\n if (trailingComma || i < paramLength - 1) {\n this.token(\",\", null, i);\n this.space();\n }\n }\n\n this.token(endToken);\n exit();\n}\n\nexport function _param(\n this: Printer,\n parameter: t.Identifier | t.RestElement | t.Pattern | t.TSParameterProperty,\n) {\n // @ts-expect-error decorators is not in VoidPattern\n this.printJoin(parameter.decorators);\n this.print(parameter);\n if (\n // @ts-expect-error optional is not in TSParameterProperty\n parameter.optional\n ) {\n this.token(\"?\"); // TS / flow\n }\n\n this.print(\n // @ts-expect-error typeAnnotation is not in TSParameterProperty\n parameter.typeAnnotation,\n ); // TS / flow\n}\n\nexport function _methodHead(this: Printer, node: t.Method | t.TSDeclareMethod) {\n const kind = node.kind;\n const key = node.key;\n\n if (kind === \"get\" || kind === \"set\") {\n this.word(kind);\n this.space();\n }\n\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n\n if (\n kind === \"method\" ||\n // @ts-expect-error Fixme: kind: \"init\" is not defined\n kind === \"init\"\n ) {\n if (node.generator) {\n this.token(\"*\");\n }\n }\n\n if (node.computed) {\n this.token(\"[\");\n this.print(key);\n this.token(\"]\");\n } else {\n this.print(key);\n }\n\n if (\n // @ts-expect-error optional is not in ObjectMethod\n node.optional\n ) {\n // TS\n this.token(\"?\");\n }\n\n this._params(\n node,\n node.computed && node.key.type !== \"StringLiteral\" ? undefined : node.key,\n undefined,\n );\n}\n\nexport function _predicate(\n this: Printer,\n node:\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.ArrowFunctionExpression,\n noLineTerminatorAfter?: boolean,\n) {\n if (node.predicate) {\n if (!node.returnType) {\n this.token(\":\");\n }\n this.space();\n this.print(node.predicate, noLineTerminatorAfter);\n }\n}\n\nexport function _functionHead(\n this: Printer,\n node: t.FunctionDeclaration | t.FunctionExpression | t.TSDeclareFunction,\n parent: ParentsOf,\n) {\n if (node.async) {\n this.word(\"async\");\n if (!this.format.preserveFormat) {\n // We prevent inner comments from being printed here,\n // so that they are always consistently printed in the\n // same place regardless of the function type.\n this._endsWithInnerRaw = false;\n }\n this.space();\n }\n this.word(\"function\");\n if (node.generator) {\n if (!this.format.preserveFormat) {\n // We prevent inner comments from being printed here,\n // so that they are always consistently printed in the\n // same place regardless of the function type.\n this._endsWithInnerRaw = false;\n }\n this.token(\"*\");\n }\n\n this.space();\n if (node.id) {\n this.print(node.id);\n }\n\n this._params(node, node.id, parent);\n if (node.type !== \"TSDeclareFunction\") {\n this._predicate(node);\n }\n}\n\nexport function FunctionExpression(\n this: Printer,\n node: t.FunctionExpression,\n parent: ParentsOf,\n) {\n this._functionHead(node, parent);\n this.space();\n this.print(node.body);\n}\n\nexport { FunctionExpression as FunctionDeclaration };\n\nexport function ArrowFunctionExpression(\n this: Printer,\n node: t.ArrowFunctionExpression,\n parent: ParentsOf,\n) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n\n if (this._shouldPrintArrowParamsParens(node)) {\n this._params(node, undefined, parent);\n } else {\n this.print(node.params[0], true);\n }\n\n this._predicate(node, true);\n this.space();\n // When printing (x)/*1*/=>{}, we remove the parentheses\n // and thus there aren't two contiguous inner tokens.\n // We forcefully print inner comments here.\n this.printInnerComments();\n this.token(\"=>\");\n\n this.space();\n\n this.tokenContext |= TokenContext.arrowBody;\n this.print(node.body);\n}\n\n// Try to avoid printing parens in simple cases, but only if we're pretty\n// sure that they aren't needed by type annotations or potential newlines.\nexport function _shouldPrintArrowParamsParens(\n this: Printer,\n node: t.ArrowFunctionExpression,\n): boolean {\n if (node.params.length !== 1) return true;\n\n if (node.typeParameters || node.returnType || node.predicate) {\n return true;\n }\n\n const firstParam = node.params[0];\n if (\n !isIdentifier(firstParam) ||\n firstParam.typeAnnotation ||\n firstParam.optional ||\n // Flow does not support `foo /*: string*/ => {};`\n firstParam.leadingComments?.length ||\n firstParam.trailingComments?.length\n ) {\n return true;\n }\n\n if (this.tokenMap) {\n if (node.loc == null) return true;\n if (this.tokenMap.findMatching(node, \"(\") !== null) return true;\n const arrowToken = this.tokenMap.findMatching(node, \"=>\");\n if (arrowToken?.loc == null) return true;\n return arrowToken.loc.start.line !== node.loc.start.line;\n }\n\n if (this.format.retainLines) return true;\n\n return false;\n}\n\nfunction _getFuncIdName(\n this: Printer,\n idNode: t.Expression | t.PrivateName,\n parent: ParentsOf,\n) {\n let id: t.Expression | t.PrivateName | t.LVal | t.VoidPattern = idNode;\n\n if (!id && parent) {\n const parentType = parent.type;\n\n if (parentType === \"VariableDeclarator\") {\n id = parent.id;\n } else if (\n parentType === \"AssignmentExpression\" ||\n parentType === \"AssignmentPattern\"\n ) {\n id = parent.left;\n } else if (\n parentType === \"ObjectProperty\" ||\n parentType === \"ClassProperty\"\n ) {\n if (!parent.computed || parent.key.type === \"StringLiteral\") {\n id = parent.key;\n }\n } else if (\n parentType === \"ClassPrivateProperty\" ||\n parentType === \"ClassAccessorProperty\"\n ) {\n id = parent.key;\n }\n }\n\n if (!id) return;\n\n let nameInfo;\n\n if (id.type === \"Identifier\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.loc?.identifierName || id.name,\n };\n } else if (id.type === \"PrivateName\") {\n nameInfo = {\n pos: id.loc?.start,\n name: \"#\" + id.id.name,\n };\n } else if (id.type === \"StringLiteral\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.value,\n };\n }\n\n return nameInfo;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/modules.js b/framework-core/node_modules/@babel/generator/lib/generators/modules.js new file mode 100644 index 0000000..8b536d9 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/modules.js @@ -0,0 +1,287 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ExportAllDeclaration = ExportAllDeclaration; +exports.ExportDefaultDeclaration = ExportDefaultDeclaration; +exports.ExportDefaultSpecifier = ExportDefaultSpecifier; +exports.ExportNamedDeclaration = ExportNamedDeclaration; +exports.ExportNamespaceSpecifier = ExportNamespaceSpecifier; +exports.ExportSpecifier = ExportSpecifier; +exports.ImportAttribute = ImportAttribute; +exports.ImportDeclaration = ImportDeclaration; +exports.ImportDefaultSpecifier = ImportDefaultSpecifier; +exports.ImportExpression = ImportExpression; +exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; +exports.ImportSpecifier = ImportSpecifier; +exports._printAttributes = _printAttributes; +var _t = require("@babel/types"); +var _index = require("../node/index.js"); +const { + isClassDeclaration, + isExportDefaultSpecifier, + isExportNamespaceSpecifier, + isImportDefaultSpecifier, + isImportNamespaceSpecifier, + isStatement +} = _t; +function ImportSpecifier(node) { + if (node.importKind === "type" || node.importKind === "typeof") { + this.word(node.importKind); + this.space(); + } + this.print(node.imported); + if (node.local && node.local.name !== node.imported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.local); + } +} +function ImportDefaultSpecifier(node) { + this.print(node.local); +} +function ExportDefaultSpecifier(node) { + this.print(node.exported); +} +function ExportSpecifier(node) { + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + this.print(node.local); + if (node.exported && node.local.name !== node.exported.name) { + this.space(); + this.word("as"); + this.space(); + this.print(node.exported); + } +} +function ExportNamespaceSpecifier(node) { + this.tokenChar(42); + this.space(); + this.word("as"); + this.space(); + this.print(node.exported); +} +let warningShown = false; +function _printAttributes(node, hasPreviousBrace) { + var _node$extra; + const { + importAttributesKeyword + } = this.format; + const { + attributes, + assertions + } = node; + if (attributes && !importAttributesKeyword && node.extra && (node.extra.deprecatedAssertSyntax || node.extra.deprecatedWithLegacySyntax) && !warningShown) { + warningShown = true; + console.warn(`\ +You are using import attributes, without specifying the desired output syntax. +Please specify the "importAttributesKeyword" generator option, whose value can be one of: + - "with" : \`import { a } from "b" with { type: "json" };\` + - "assert" : \`import { a } from "b" assert { type: "json" };\` + - "with-legacy" : \`import { a } from "b" with type: "json";\` +`); + } + const useAssertKeyword = importAttributesKeyword === "assert" || !importAttributesKeyword && assertions; + this.word(useAssertKeyword ? "assert" : "with"); + this.space(); + if (!useAssertKeyword && (importAttributesKeyword === "with-legacy" || !importAttributesKeyword && (_node$extra = node.extra) != null && _node$extra.deprecatedWithLegacySyntax)) { + this.printList(attributes || assertions); + return; + } + const occurrenceCount = hasPreviousBrace ? 1 : 0; + this.token("{", null, occurrenceCount); + this.space(); + this.printList(attributes || assertions, this.shouldPrintTrailingComma("}")); + this.space(); + this.token("}", null, occurrenceCount); +} +function ExportAllDeclaration(node) { + var _node$attributes, _node$assertions; + this.word("export"); + this.space(); + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + this.tokenChar(42); + this.space(); + this.word("from"); + this.space(); + if ((_node$attributes = node.attributes) != null && _node$attributes.length || (_node$assertions = node.assertions) != null && _node$assertions.length) { + this.print(node.source, true); + this.space(); + this._printAttributes(node, false); + } else { + this.print(node.source); + } + this.semicolon(); +} +function maybePrintDecoratorsBeforeExport(printer, node) { + if (isClassDeclaration(node.declaration) && printer._shouldPrintDecoratorsBeforeExport(node)) { + printer.printJoin(node.declaration.decorators); + } +} +function ExportNamedDeclaration(node) { + maybePrintDecoratorsBeforeExport(this, node); + this.word("export"); + this.space(); + if (node.declaration) { + const declar = node.declaration; + this.print(declar); + if (!isStatement(declar)) this.semicolon(); + } else { + if (node.exportKind === "type") { + this.word("type"); + this.space(); + } + const specifiers = node.specifiers.slice(0); + let hasSpecial = false; + for (;;) { + const first = specifiers[0]; + if (isExportDefaultSpecifier(first) || isExportNamespaceSpecifier(first)) { + hasSpecial = true; + this.print(specifiers.shift()); + if (specifiers.length) { + this.tokenChar(44); + this.space(); + } + } else { + break; + } + } + let hasBrace = false; + if (specifiers.length || !specifiers.length && !hasSpecial) { + hasBrace = true; + this.tokenChar(123); + if (specifiers.length) { + this.space(); + this.printList(specifiers, this.shouldPrintTrailingComma("}")); + this.space(); + } + this.tokenChar(125); + } + if (node.source) { + var _node$attributes2, _node$assertions2; + this.space(); + this.word("from"); + this.space(); + if ((_node$attributes2 = node.attributes) != null && _node$attributes2.length || (_node$assertions2 = node.assertions) != null && _node$assertions2.length) { + this.print(node.source, true); + this.space(); + this._printAttributes(node, hasBrace); + } else { + this.print(node.source); + } + } + this.semicolon(); + } +} +function ExportDefaultDeclaration(node) { + maybePrintDecoratorsBeforeExport(this, node); + this.word("export"); + this.noIndentInnerCommentsHere(); + this.space(); + this.word("default"); + this.space(); + this.tokenContext |= _index.TokenContext.exportDefault; + const declar = node.declaration; + this.print(declar); + if (!isStatement(declar)) this.semicolon(); +} +function ImportDeclaration(node) { + var _node$attributes3, _node$assertions3; + this.word("import"); + this.space(); + const isTypeKind = node.importKind === "type" || node.importKind === "typeof"; + if (isTypeKind) { + this.noIndentInnerCommentsHere(); + this.word(node.importKind); + this.space(); + } else if (node.module) { + this.noIndentInnerCommentsHere(); + this.word("module"); + this.space(); + } else if (node.phase) { + this.noIndentInnerCommentsHere(); + this.word(node.phase); + this.space(); + } + const specifiers = node.specifiers.slice(0); + const hasSpecifiers = !!specifiers.length; + while (hasSpecifiers) { + const first = specifiers[0]; + if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) { + this.print(specifiers.shift()); + if (specifiers.length) { + this.tokenChar(44); + this.space(); + } + } else { + break; + } + } + let hasBrace = false; + if (specifiers.length) { + hasBrace = true; + this.tokenChar(123); + this.space(); + this.printList(specifiers, this.shouldPrintTrailingComma("}")); + this.space(); + this.tokenChar(125); + } else if (isTypeKind && !hasSpecifiers) { + hasBrace = true; + this.tokenChar(123); + this.tokenChar(125); + } + if (hasSpecifiers || isTypeKind) { + this.space(); + this.word("from"); + this.space(); + } + if ((_node$attributes3 = node.attributes) != null && _node$attributes3.length || (_node$assertions3 = node.assertions) != null && _node$assertions3.length) { + this.print(node.source, true); + this.space(); + this._printAttributes(node, hasBrace); + } else { + this.print(node.source); + } + this.semicolon(); +} +function ImportAttribute(node) { + this.print(node.key); + this.tokenChar(58); + this.space(); + this.print(node.value); +} +function ImportNamespaceSpecifier(node) { + this.tokenChar(42); + this.space(); + this.word("as"); + this.space(); + this.print(node.local); +} +function ImportExpression(node) { + this.word("import"); + if (node.phase) { + this.tokenChar(46); + this.word(node.phase); + } + this.tokenChar(40); + const shouldPrintTrailingComma = this.shouldPrintTrailingComma(")"); + this.print(node.source); + if (node.options != null) { + this.tokenChar(44); + this.space(); + this.print(node.options); + } + if (shouldPrintTrailingComma) { + this.tokenChar(44); + } + this.rightParens(node); +} + +//# sourceMappingURL=modules.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/modules.js.map b/framework-core/node_modules/@babel/generator/lib/generators/modules.js.map new file mode 100644 index 0000000..66a2d4d --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/modules.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_index","isClassDeclaration","isExportDefaultSpecifier","isExportNamespaceSpecifier","isImportDefaultSpecifier","isImportNamespaceSpecifier","isStatement","ImportSpecifier","node","importKind","word","space","print","imported","local","name","ImportDefaultSpecifier","ExportDefaultSpecifier","exported","ExportSpecifier","exportKind","ExportNamespaceSpecifier","token","warningShown","_printAttributes","hasPreviousBrace","_node$extra","importAttributesKeyword","format","attributes","assertions","extra","deprecatedAssertSyntax","deprecatedWithLegacySyntax","console","warn","useAssertKeyword","printList","occurrenceCount","shouldPrintTrailingComma","ExportAllDeclaration","_node$attributes","_node$assertions","length","source","semicolon","maybePrintDecoratorsBeforeExport","printer","declaration","_shouldPrintDecoratorsBeforeExport","printJoin","decorators","ExportNamedDeclaration","declar","specifiers","slice","hasSpecial","first","shift","hasBrace","_node$attributes2","_node$assertions2","ExportDefaultDeclaration","noIndentInnerCommentsHere","tokenContext","TokenContext","exportDefault","ImportDeclaration","_node$attributes3","_node$assertions3","isTypeKind","module","phase","hasSpecifiers","ImportAttribute","key","value","ImportNamespaceSpecifier","ImportExpression","options","rightParens"],"sources":["../../src/generators/modules.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isClassDeclaration,\n isExportDefaultSpecifier,\n isExportNamespaceSpecifier,\n isImportDefaultSpecifier,\n isImportNamespaceSpecifier,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\n\nexport function ImportSpecifier(this: Printer, node: t.ImportSpecifier) {\n if (node.importKind === \"type\" || node.importKind === \"typeof\") {\n this.word(node.importKind);\n this.space();\n }\n\n this.print(node.imported);\n // @ts-expect-error todo(flow-ts) maybe check node type instead of relying on name to be undefined on t.StringLiteral\n if (node.local && node.local.name !== node.imported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local);\n }\n}\n\nexport function ImportDefaultSpecifier(\n this: Printer,\n node: t.ImportDefaultSpecifier,\n) {\n this.print(node.local);\n}\n\nexport function ExportDefaultSpecifier(\n this: Printer,\n node: t.ExportDefaultSpecifier,\n) {\n this.print(node.exported);\n}\n\nexport function ExportSpecifier(this: Printer, node: t.ExportSpecifier) {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n\n this.print(node.local);\n // @ts-expect-error todo(flow-ts) maybe check node type instead of relying on name to be undefined on t.StringLiteral\n if (node.exported && node.local.name !== node.exported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported);\n }\n}\n\nexport function ExportNamespaceSpecifier(\n this: Printer,\n node: t.ExportNamespaceSpecifier,\n) {\n this.token(\"*\");\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported);\n}\n\nlet warningShown = false;\n\nexport function _printAttributes(\n this: Printer,\n node: Extract,\n hasPreviousBrace: boolean,\n) {\n const { importAttributesKeyword } = this.format;\n const { attributes, assertions } = node;\n\n if (\n !process.env.BABEL_8_BREAKING &&\n attributes &&\n !importAttributesKeyword &&\n node.extra &&\n (node.extra.deprecatedAssertSyntax ||\n node.extra.deprecatedWithLegacySyntax) &&\n // In the production build only show the warning once.\n // We want to show it per-usage locally for tests.\n (!process.env.IS_PUBLISH || !warningShown)\n ) {\n warningShown = true;\n console.warn(`\\\nYou are using import attributes, without specifying the desired output syntax.\nPlease specify the \"importAttributesKeyword\" generator option, whose value can be one of:\n - \"with\" : \\`import { a } from \"b\" with { type: \"json\" };\\`\n - \"assert\" : \\`import { a } from \"b\" assert { type: \"json\" };\\`\n - \"with-legacy\" : \\`import { a } from \"b\" with type: \"json\";\\`\n`);\n }\n\n const useAssertKeyword =\n importAttributesKeyword === \"assert\" ||\n (!importAttributesKeyword && assertions);\n\n this.word(useAssertKeyword ? \"assert\" : \"with\");\n this.space();\n\n if (\n !process.env.BABEL_8_BREAKING &&\n !useAssertKeyword &&\n (importAttributesKeyword === \"with-legacy\" ||\n (!importAttributesKeyword && node.extra?.deprecatedWithLegacySyntax))\n ) {\n // with-legacy\n this.printList(attributes || assertions);\n return;\n }\n\n const occurrenceCount = hasPreviousBrace ? 1 : 0;\n\n this.token(\"{\", null, occurrenceCount);\n this.space();\n this.printList(attributes || assertions, this.shouldPrintTrailingComma(\"}\"));\n this.space();\n this.token(\"}\", null, occurrenceCount);\n}\n\nexport function ExportAllDeclaration(\n this: Printer,\n node: t.ExportAllDeclaration | t.DeclareExportAllDeclaration,\n) {\n this.word(\"export\");\n this.space();\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n this.token(\"*\");\n this.space();\n this.word(\"from\");\n this.space();\n if (node.attributes?.length || node.assertions?.length) {\n this.print(node.source, true);\n this.space();\n this._printAttributes(node, false);\n } else {\n this.print(node.source);\n }\n\n this.semicolon();\n}\n\nfunction maybePrintDecoratorsBeforeExport(\n printer: Printer,\n node: t.ExportNamedDeclaration | t.ExportDefaultDeclaration,\n) {\n if (\n isClassDeclaration(node.declaration) &&\n printer._shouldPrintDecoratorsBeforeExport(\n node as t.ExportNamedDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n printer.printJoin(node.declaration.decorators);\n }\n}\n\nexport function ExportNamedDeclaration(\n this: Printer,\n node: t.ExportNamedDeclaration,\n) {\n maybePrintDecoratorsBeforeExport(this, node);\n\n this.word(\"export\");\n this.space();\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar);\n if (!isStatement(declar)) this.semicolon();\n } else {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n\n const specifiers = node.specifiers.slice(0);\n\n // print \"special\" specifiers first\n let hasSpecial = false;\n for (;;) {\n const first = specifiers[0];\n if (\n isExportDefaultSpecifier(first) ||\n isExportNamespaceSpecifier(first)\n ) {\n hasSpecial = true;\n this.print(specifiers.shift());\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n let hasBrace = false;\n if (specifiers.length || (!specifiers.length && !hasSpecial)) {\n hasBrace = true;\n this.token(\"{\");\n if (specifiers.length) {\n this.space();\n this.printList(specifiers, this.shouldPrintTrailingComma(\"}\"));\n this.space();\n }\n this.token(\"}\");\n }\n\n if (node.source) {\n this.space();\n this.word(\"from\");\n this.space();\n if (node.attributes?.length || node.assertions?.length) {\n this.print(node.source, true);\n this.space();\n this._printAttributes(node, hasBrace);\n } else {\n this.print(node.source);\n }\n }\n\n this.semicolon();\n }\n}\n\nexport function ExportDefaultDeclaration(\n this: Printer,\n node: t.ExportDefaultDeclaration,\n) {\n maybePrintDecoratorsBeforeExport(this, node);\n\n this.word(\"export\");\n this.noIndentInnerCommentsHere();\n this.space();\n this.word(\"default\");\n this.space();\n this.tokenContext |= TokenContext.exportDefault;\n const declar = node.declaration;\n this.print(declar);\n if (!isStatement(declar)) this.semicolon();\n}\n\nexport function ImportDeclaration(this: Printer, node: t.ImportDeclaration) {\n this.word(\"import\");\n this.space();\n\n const isTypeKind = node.importKind === \"type\" || node.importKind === \"typeof\";\n if (isTypeKind) {\n this.noIndentInnerCommentsHere();\n this.word(node.importKind);\n this.space();\n } else if (node.module) {\n this.noIndentInnerCommentsHere();\n this.word(\"module\");\n this.space();\n } else if (node.phase) {\n this.noIndentInnerCommentsHere();\n this.word(node.phase);\n this.space();\n }\n\n const specifiers = node.specifiers.slice(0);\n const hasSpecifiers = !!specifiers.length;\n // print \"special\" specifiers first. The loop condition is constant,\n // but there is a \"break\" in the body.\n while (hasSpecifiers) {\n const first = specifiers[0];\n if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) {\n this.print(specifiers.shift());\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n let hasBrace = false;\n if (specifiers.length) {\n hasBrace = true;\n this.token(\"{\");\n this.space();\n this.printList(specifiers, this.shouldPrintTrailingComma(\"}\"));\n this.space();\n this.token(\"}\");\n } else if (isTypeKind && !hasSpecifiers) {\n hasBrace = true;\n this.token(\"{\");\n this.token(\"}\");\n }\n\n if (hasSpecifiers || isTypeKind) {\n this.space();\n this.word(\"from\");\n this.space();\n }\n\n if (node.attributes?.length || node.assertions?.length) {\n this.print(node.source, true);\n this.space();\n this._printAttributes(node, hasBrace);\n } else {\n this.print(node.source);\n }\n\n this.semicolon();\n}\n\nexport function ImportAttribute(this: Printer, node: t.ImportAttribute) {\n this.print(node.key);\n this.token(\":\");\n this.space();\n this.print(node.value);\n}\n\nexport function ImportNamespaceSpecifier(\n this: Printer,\n node: t.ImportNamespaceSpecifier,\n) {\n this.token(\"*\");\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local);\n}\n\nexport function ImportExpression(this: Printer, node: t.ImportExpression) {\n this.word(\"import\");\n if (node.phase) {\n this.token(\".\");\n this.word(node.phase);\n }\n this.token(\"(\");\n const shouldPrintTrailingComma = this.shouldPrintTrailingComma(\")\");\n this.print(node.source);\n if (node.options != null) {\n this.token(\",\");\n this.space();\n this.print(node.options);\n }\n if (shouldPrintTrailingComma) {\n this.token(\",\");\n }\n this.rightParens(node);\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/statements.js b/framework-core/node_modules/@babel/generator/lib/generators/statements.js new file mode 100644 index 0000000..b4c7258 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/statements.js @@ -0,0 +1,279 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BreakStatement = BreakStatement; +exports.CatchClause = CatchClause; +exports.ContinueStatement = ContinueStatement; +exports.DebuggerStatement = DebuggerStatement; +exports.DoWhileStatement = DoWhileStatement; +exports.ForOfStatement = exports.ForInStatement = void 0; +exports.ForStatement = ForStatement; +exports.IfStatement = IfStatement; +exports.LabeledStatement = LabeledStatement; +exports.ReturnStatement = ReturnStatement; +exports.SwitchCase = SwitchCase; +exports.SwitchStatement = SwitchStatement; +exports.ThrowStatement = ThrowStatement; +exports.TryStatement = TryStatement; +exports.VariableDeclaration = VariableDeclaration; +exports.VariableDeclarator = VariableDeclarator; +exports.WhileStatement = WhileStatement; +exports.WithStatement = WithStatement; +var _t = require("@babel/types"); +const { + isFor, + isForStatement, + isIfStatement, + isStatement +} = _t; +function WithStatement(node) { + this.word("with"); + this.space(); + this.tokenChar(40); + this.print(node.object); + this.tokenChar(41); + this.printBlock(node); +} +function IfStatement(node) { + this.word("if"); + this.space(); + this.tokenChar(40); + this.print(node.test); + this.tokenChar(41); + this.space(); + const needsBlock = node.alternate && isIfStatement(getLastStatement(node.consequent)); + if (needsBlock) { + this.tokenChar(123); + this.newline(); + this.indent(); + } + this.printAndIndentOnComments(node.consequent); + if (needsBlock) { + this.dedent(); + this.newline(); + this.tokenChar(125); + } + if (node.alternate) { + if (this.endsWith(125)) this.space(); + this.word("else"); + this.space(); + this.printAndIndentOnComments(node.alternate); + } +} +function getLastStatement(statement) { + const { + body + } = statement; + if (isStatement(body) === false) { + return statement; + } + return getLastStatement(body); +} +function ForStatement(node) { + this.word("for"); + this.space(); + this.tokenChar(40); + { + const exit = this.enterForStatementInit(); + this.print(node.init); + exit(); + } + this.tokenChar(59); + if (node.test) { + this.space(); + this.print(node.test); + } + this.token(";", false, 1); + if (node.update) { + this.space(); + this.print(node.update); + } + this.tokenChar(41); + this.printBlock(node); +} +function WhileStatement(node) { + this.word("while"); + this.space(); + this.tokenChar(40); + this.print(node.test); + this.tokenChar(41); + this.printBlock(node); +} +function ForXStatement(node) { + this.word("for"); + this.space(); + const isForOf = node.type === "ForOfStatement"; + if (isForOf && node.await) { + this.word("await"); + this.space(); + } + this.noIndentInnerCommentsHere(); + this.tokenChar(40); + { + const exit = this.enterForXStatementInit(isForOf); + this.print(node.left); + exit == null || exit(); + } + this.space(); + this.word(isForOf ? "of" : "in"); + this.space(); + this.print(node.right); + this.tokenChar(41); + this.printBlock(node); +} +const ForInStatement = exports.ForInStatement = ForXStatement; +const ForOfStatement = exports.ForOfStatement = ForXStatement; +function DoWhileStatement(node) { + this.word("do"); + this.space(); + this.print(node.body); + this.space(); + this.word("while"); + this.space(); + this.tokenChar(40); + this.print(node.test); + this.tokenChar(41); + this.semicolon(); +} +function printStatementAfterKeyword(printer, node) { + if (node) { + printer.space(); + printer.printTerminatorless(node); + } + printer.semicolon(); +} +function BreakStatement(node) { + this.word("break"); + printStatementAfterKeyword(this, node.label); +} +function ContinueStatement(node) { + this.word("continue"); + printStatementAfterKeyword(this, node.label); +} +function ReturnStatement(node) { + this.word("return"); + printStatementAfterKeyword(this, node.argument); +} +function ThrowStatement(node) { + this.word("throw"); + printStatementAfterKeyword(this, node.argument); +} +function LabeledStatement(node) { + this.print(node.label); + this.tokenChar(58); + this.space(); + this.print(node.body); +} +function TryStatement(node) { + this.word("try"); + this.space(); + this.print(node.block); + this.space(); + if (node.handlers) { + this.print(node.handlers[0]); + } else { + this.print(node.handler); + } + if (node.finalizer) { + this.space(); + this.word("finally"); + this.space(); + this.print(node.finalizer); + } +} +function CatchClause(node) { + this.word("catch"); + this.space(); + if (node.param) { + this.tokenChar(40); + this.print(node.param); + this.print(node.param.typeAnnotation); + this.tokenChar(41); + this.space(); + } + this.print(node.body); +} +function SwitchStatement(node) { + this.word("switch"); + this.space(); + this.tokenChar(40); + this.print(node.discriminant); + this.tokenChar(41); + this.space(); + this.tokenChar(123); + this.printSequence(node.cases, true, undefined, function addNewlines(leading, cas) { + if (!leading && node.cases[node.cases.length - 1] === cas) return -1; + }); + this.rightBrace(node); +} +function SwitchCase(node) { + if (node.test) { + this.word("case"); + this.space(); + this.print(node.test); + this.tokenChar(58); + } else { + this.word("default"); + this.tokenChar(58); + } + if (node.consequent.length) { + this.newline(); + this.printSequence(node.consequent, true); + } +} +function DebuggerStatement() { + this.word("debugger"); + this.semicolon(); +} +function VariableDeclaration(node, parent) { + if (node.declare) { + this.word("declare"); + this.space(); + } + const { + kind + } = node; + if (kind === "await using") { + this.word("await"); + this.space(); + this.word("using", true); + } else { + this.word(kind, kind === "using"); + } + this.space(); + let hasInits = false; + if (!isFor(parent)) { + for (const declar of node.declarations) { + if (declar.init) { + hasInits = true; + } + } + } + this.printList(node.declarations, undefined, undefined, node.declarations.length > 1, hasInits ? function (occurrenceCount) { + this.token(",", false, occurrenceCount); + this.newline(); + } : undefined); + if (isFor(parent)) { + if (isForStatement(parent)) { + if (parent.init === node) return; + } else { + if (parent.left === node) return; + } + } + this.semicolon(); +} +function VariableDeclarator(node) { + this.print(node.id); + if (node.definite) this.tokenChar(33); + this.print(node.id.typeAnnotation); + if (node.init) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.init); + } +} + +//# sourceMappingURL=statements.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/statements.js.map b/framework-core/node_modules/@babel/generator/lib/generators/statements.js.map new file mode 100644 index 0000000..c977cc9 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/statements.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","isFor","isForStatement","isIfStatement","isStatement","WithStatement","node","word","space","token","print","object","printBlock","IfStatement","test","needsBlock","alternate","getLastStatement","consequent","newline","indent","printAndIndentOnComments","dedent","endsWith","statement","body","ForStatement","exit","enterForStatementInit","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","enterForXStatementInit","left","right","ForInStatement","exports","ForOfStatement","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","undefined","addNewlines","leading","cas","length","rightBrace","SwitchCase","DebuggerStatement","VariableDeclaration","parent","declare","kind","hasInits","declar","declarations","printList","occurrenceCount","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n {\n const exit = this.enterForStatementInit();\n this.print(node.init);\n exit();\n }\n\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test);\n }\n this.token(\";\", false, 1);\n\n if (node.update) {\n this.space();\n this.print(node.update);\n }\n\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test);\n this.token(\")\");\n this.printBlock(node);\n}\n\nfunction ForXStatement(this: Printer, node: t.ForXStatement) {\n this.word(\"for\");\n this.space();\n const isForOf = node.type === \"ForOfStatement\";\n if (isForOf && node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n {\n const exit = this.enterForXStatementInit(isForOf);\n this.print(node.left);\n exit?.();\n }\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport const ForInStatement = ForXStatement;\nexport const ForOfStatement = ForXStatement;\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(printer: Printer, node: t.Node) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label);\n this.token(\":\");\n this.space();\n this.print(node.body);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0]);\n } else {\n this.print(node.handler);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param);\n this.print(node.param.typeAnnotation);\n this.token(\")\");\n this.space();\n }\n this.print(node.body);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(\n node.cases,\n true,\n undefined,\n function addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n );\n\n this.rightBrace(node);\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, true);\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n if (kind === \"await using\") {\n this.word(\"await\");\n this.space();\n this.word(\"using\", true);\n } else {\n this.word(kind, kind === \"using\");\n }\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n this.printList(\n node.declarations,\n undefined,\n undefined,\n node.declarations.length > 1,\n hasInits\n ? function (this: Printer, occurrenceCount: number) {\n this.token(\",\", false, occurrenceCount);\n this.newline();\n }\n : undefined,\n );\n\n if (isFor(parent)) {\n // don't give semicolons to these nodes since they'll be inserted in the parent generator\n if (isForStatement(parent)) {\n if (parent.init === node) return;\n } else {\n if (parent.left === node) return;\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-ignore(Babel 7 vs Babel 8) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/template-literals.js b/framework-core/node_modules/@babel/generator/lib/generators/template-literals.js new file mode 100644 index 0000000..0e4b6a9 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/template-literals.js @@ -0,0 +1,40 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TaggedTemplateExpression = TaggedTemplateExpression; +exports.TemplateElement = TemplateElement; +exports.TemplateLiteral = TemplateLiteral; +exports._printTemplate = _printTemplate; +function TaggedTemplateExpression(node) { + this.print(node.tag); + { + this.print(node.typeParameters); + } + this.print(node.quasi); +} +function TemplateElement() { + throw new Error("TemplateElement printing is handled in TemplateLiteral"); +} +function _printTemplate(node, substitutions) { + const quasis = node.quasis; + let partRaw = "`"; + for (let i = 0; i < quasis.length - 1; i++) { + partRaw += quasis[i].value.raw; + this.token(partRaw + "${", true); + this.print(substitutions[i]); + partRaw = "}"; + if (this.tokenMap) { + const token = this.tokenMap.findMatching(node, "}", i); + if (token) this._catchUpTo(token.loc.start); + } + } + partRaw += quasis[quasis.length - 1].value.raw; + this.token(partRaw + "`", true); +} +function TemplateLiteral(node) { + this._printTemplate(node, node.expressions); +} + +//# sourceMappingURL=template-literals.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/template-literals.js.map b/framework-core/node_modules/@babel/generator/lib/generators/template-literals.js.map new file mode 100644 index 0000000..26bd4e9 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/template-literals.js.map @@ -0,0 +1 @@ +{"version":3,"names":["TaggedTemplateExpression","node","print","tag","typeParameters","quasi","TemplateElement","Error","_printTemplate","substitutions","quasis","partRaw","i","length","value","raw","token","tokenMap","findMatching","_catchUpTo","loc","start","TemplateLiteral","expressions"],"sources":["../../src/generators/template-literals.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function TaggedTemplateExpression(\n this: Printer,\n node: t.TaggedTemplateExpression,\n) {\n this.print(node.tag);\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n this.print(node.typeArguments);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n this.print(node.typeParameters);\n }\n this.print(node.quasi);\n}\n\nexport function TemplateElement(this: Printer) {\n throw new Error(\"TemplateElement printing is handled in TemplateLiteral\");\n}\n\nexport type TemplateLiteralBase = t.Node & {\n quasis: t.TemplateElement[];\n};\n\nexport function _printTemplate(\n this: Printer,\n node: TemplateLiteralBase,\n substitutions: T[],\n) {\n const quasis = node.quasis;\n let partRaw = \"`\";\n for (let i = 0; i < quasis.length - 1; i++) {\n partRaw += quasis[i].value.raw;\n this.token(partRaw + \"${\", true);\n this.print(substitutions[i]);\n partRaw = \"}\";\n\n // In Babel 7 we have individual tokens for ${ and }, so the automatic\n // catchup logic does not work. Manually look for those tokens.\n if (!process.env.BABEL_8_BREAKING && this.tokenMap) {\n const token = this.tokenMap.findMatching(node, \"}\", i);\n if (token) this._catchUpTo(token.loc.start);\n }\n }\n partRaw += quasis[quasis.length - 1].value.raw;\n this.token(partRaw + \"`\", true);\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n this._printTemplate(node, node.expressions);\n}\n"],"mappings":";;;;;;;;;AAGO,SAASA,wBAAwBA,CAEtCC,IAAgC,EAChC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAAC;EAIb;IAEL,IAAI,CAACD,KAAK,CAACD,IAAI,CAACG,cAAc,CAAC;EACjC;EACA,IAAI,CAACF,KAAK,CAACD,IAAI,CAACI,KAAK,CAAC;AACxB;AAEO,SAASC,eAAeA,CAAA,EAAgB;EAC7C,MAAM,IAAIC,KAAK,CAAC,wDAAwD,CAAC;AAC3E;AAMO,SAASC,cAAcA,CAE5BP,IAAyB,EACzBQ,aAAkB,EAClB;EACA,MAAMC,MAAM,GAAGT,IAAI,CAACS,MAAM;EAC1B,IAAIC,OAAO,GAAG,GAAG;EACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,MAAM,GAAG,CAAC,EAAED,CAAC,EAAE,EAAE;IAC1CD,OAAO,IAAID,MAAM,CAACE,CAAC,CAAC,CAACE,KAAK,CAACC,GAAG;IAC9B,IAAI,CAACC,KAAK,CAACL,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC;IAChC,IAAI,CAACT,KAAK,CAACO,aAAa,CAACG,CAAC,CAAC,CAAC;IAC5BD,OAAO,GAAG,GAAG;IAIb,IAAqC,IAAI,CAACM,QAAQ,EAAE;MAClD,MAAMD,KAAK,GAAG,IAAI,CAACC,QAAQ,CAACC,YAAY,CAACjB,IAAI,EAAE,GAAG,EAAEW,CAAC,CAAC;MACtD,IAAII,KAAK,EAAE,IAAI,CAACG,UAAU,CAACH,KAAK,CAACI,GAAG,CAACC,KAAK,CAAC;IAC7C;EACF;EACAV,OAAO,IAAID,MAAM,CAACA,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC,CAACC,KAAK,CAACC,GAAG;EAC9C,IAAI,CAACC,KAAK,CAACL,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC;AACjC;AAEO,SAASW,eAAeA,CAAgBrB,IAAuB,EAAE;EACtE,IAAI,CAACO,cAAc,CAACP,IAAI,EAAEA,IAAI,CAACsB,WAAW,CAAC;AAC7C","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/types.js b/framework-core/node_modules/@babel/generator/lib/generators/types.js new file mode 100644 index 0000000..7b93067 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/types.js @@ -0,0 +1,238 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ArgumentPlaceholder = ArgumentPlaceholder; +exports.ArrayPattern = exports.ArrayExpression = ArrayExpression; +exports.BigIntLiteral = BigIntLiteral; +exports.BooleanLiteral = BooleanLiteral; +exports.Identifier = Identifier; +exports.NullLiteral = NullLiteral; +exports.NumericLiteral = NumericLiteral; +exports.ObjectPattern = exports.ObjectExpression = ObjectExpression; +exports.ObjectMethod = ObjectMethod; +exports.ObjectProperty = ObjectProperty; +exports.PipelineBareFunction = PipelineBareFunction; +exports.PipelinePrimaryTopicReference = PipelinePrimaryTopicReference; +exports.PipelineTopicExpression = PipelineTopicExpression; +exports.RecordExpression = RecordExpression; +exports.RegExpLiteral = RegExpLiteral; +exports.SpreadElement = exports.RestElement = RestElement; +exports.StringLiteral = StringLiteral; +exports.TopicReference = TopicReference; +exports.TupleExpression = TupleExpression; +exports.VoidPattern = VoidPattern; +exports._getRawIdentifier = _getRawIdentifier; +var _t = require("@babel/types"); +var _jsesc = require("jsesc"); +const { + isAssignmentPattern, + isIdentifier +} = _t; +let lastRawIdentNode = null; +let lastRawIdentResult = ""; +function _getRawIdentifier(node) { + if (node === lastRawIdentNode) return lastRawIdentResult; + lastRawIdentNode = node; + const { + name + } = node; + const token = this.tokenMap.find(node, tok => tok.value === name); + if (token) { + lastRawIdentResult = this._originalCode.slice(token.start, token.end); + return lastRawIdentResult; + } + return lastRawIdentResult = node.name; +} +function Identifier(node) { + var _node$loc; + this.sourceIdentifierName(((_node$loc = node.loc) == null ? void 0 : _node$loc.identifierName) || node.name); + this.word(this.tokenMap ? this._getRawIdentifier(node) : node.name); +} +function ArgumentPlaceholder() { + this.tokenChar(63); +} +function RestElement(node) { + this.token("..."); + this.print(node.argument); +} +function ObjectExpression(node) { + const props = node.properties; + this.tokenChar(123); + if (props.length) { + const exit = this.enterDelimited(); + this.space(); + this.printList(props, this.shouldPrintTrailingComma("}"), true, true); + this.space(); + exit(); + } + this.sourceWithOffset("end", node.loc, -1); + this.tokenChar(125); +} +function ObjectMethod(node) { + this.printJoin(node.decorators); + this._methodHead(node); + this.space(); + this.print(node.body); +} +function ObjectProperty(node) { + this.printJoin(node.decorators); + if (node.computed) { + this.tokenChar(91); + this.print(node.key); + this.tokenChar(93); + } else { + if (isAssignmentPattern(node.value) && isIdentifier(node.key) && node.key.name === node.value.left.name) { + this.print(node.value); + return; + } + this.print(node.key); + if (node.shorthand && isIdentifier(node.key) && isIdentifier(node.value) && node.key.name === node.value.name) { + return; + } + } + this.tokenChar(58); + this.space(); + this.print(node.value); +} +function ArrayExpression(node) { + const elems = node.elements; + const len = elems.length; + this.tokenChar(91); + const exit = this.enterDelimited(); + for (let i = 0; i < elems.length; i++) { + const elem = elems[i]; + if (elem) { + if (i > 0) this.space(); + this.print(elem); + if (i < len - 1 || this.shouldPrintTrailingComma("]")) { + this.token(",", false, i); + } + } else { + this.token(",", false, i); + } + } + exit(); + this.tokenChar(93); +} +function RecordExpression(node) { + const props = node.properties; + let startToken; + let endToken; + { + if (this.format.recordAndTupleSyntaxType === "bar") { + startToken = "{|"; + endToken = "|}"; + } else if (this.format.recordAndTupleSyntaxType !== "hash" && this.format.recordAndTupleSyntaxType != null) { + throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)} received).`); + } else { + startToken = "#{"; + endToken = "}"; + } + } + this.token(startToken); + if (props.length) { + this.space(); + this.printList(props, this.shouldPrintTrailingComma(endToken), true, true); + this.space(); + } + this.token(endToken); +} +function TupleExpression(node) { + const elems = node.elements; + const len = elems.length; + let startToken; + let endToken; + { + if (this.format.recordAndTupleSyntaxType === "bar") { + startToken = "[|"; + endToken = "|]"; + } else if (this.format.recordAndTupleSyntaxType === "hash") { + startToken = "#["; + endToken = "]"; + } else { + throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`); + } + } + this.token(startToken); + for (let i = 0; i < elems.length; i++) { + const elem = elems[i]; + if (elem) { + if (i > 0) this.space(); + this.print(elem); + if (i < len - 1 || this.shouldPrintTrailingComma(endToken)) { + this.token(",", false, i); + } + } + } + this.token(endToken); +} +function RegExpLiteral(node) { + this.word(`/${node.pattern}/${node.flags}`); +} +function BooleanLiteral(node) { + this.word(node.value ? "true" : "false"); +} +function NullLiteral() { + this.word("null"); +} +function NumericLiteral(node) { + const raw = this.getPossibleRaw(node); + const opts = this.format.jsescOption; + const value = node.value; + const str = value + ""; + if (opts.numbers) { + this.number(_jsesc(value, opts), value); + } else if (raw == null) { + this.number(str, value); + } else if (this.format.minified) { + this.number(raw.length < str.length ? raw : str, value); + } else { + this.number(raw, value); + } +} +function StringLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.token(raw); + return; + } + const val = _jsesc(node.value, this.format.jsescOption); + this.token(val); +} +function BigIntLiteral(node) { + const raw = this.getPossibleRaw(node); + if (!this.format.minified && raw !== undefined) { + this.word(raw); + return; + } + this.word(node.value + "n"); +} +const validTopicTokenSet = new Set(["^^", "@@", "^", "%", "#"]); +function TopicReference() { + const { + topicToken + } = this.format; + if (validTopicTokenSet.has(topicToken)) { + this.token(topicToken); + } else { + const givenTopicTokenJSON = JSON.stringify(topicToken); + const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v)); + throw new Error(`The "topicToken" generator option must be one of ` + `${validTopics.join(", ")} (${givenTopicTokenJSON} received instead).`); + } +} +function PipelineTopicExpression(node) { + this.print(node.expression); +} +function PipelineBareFunction(node) { + this.print(node.callee); +} +function PipelinePrimaryTopicReference() { + this.tokenChar(35); +} +function VoidPattern() { + this.word("void"); +} + +//# sourceMappingURL=types.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/types.js.map b/framework-core/node_modules/@babel/generator/lib/generators/types.js.map new file mode 100644 index 0000000..4dce120 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/types.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_jsesc","isAssignmentPattern","isIdentifier","lastRawIdentNode","lastRawIdentResult","_getRawIdentifier","node","name","token","tokenMap","find","tok","value","_originalCode","slice","start","end","Identifier","_node$loc","sourceIdentifierName","loc","identifierName","word","ArgumentPlaceholder","RestElement","print","argument","ObjectExpression","props","properties","length","exit","enterDelimited","space","printList","shouldPrintTrailingComma","sourceWithOffset","ObjectMethod","printJoin","decorators","_methodHead","body","ObjectProperty","computed","key","left","shorthand","ArrayExpression","elems","elements","len","i","elem","RecordExpression","startToken","endToken","format","recordAndTupleSyntaxType","Error","JSON","stringify","TupleExpression","RegExpLiteral","pattern","flags","BooleanLiteral","NullLiteral","NumericLiteral","raw","getPossibleRaw","opts","jsescOption","str","numbers","number","jsesc","minified","StringLiteral","undefined","val","BigIntLiteral","validTopicTokenSet","Set","TopicReference","topicToken","has","givenTopicTokenJSON","validTopics","Array","from","v","join","PipelineTopicExpression","expression","PipelineBareFunction","callee","PipelinePrimaryTopicReference","VoidPattern"],"sources":["../../src/generators/types.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport { isAssignmentPattern, isIdentifier } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport jsesc from \"jsesc\";\n\nlet lastRawIdentNode: t.Identifier | null = null;\nlet lastRawIdentResult: string = \"\";\nexport function _getRawIdentifier(this: Printer, node: t.Identifier) {\n if (node === lastRawIdentNode) return lastRawIdentResult;\n lastRawIdentNode = node;\n\n const { name } = node;\n const token = this.tokenMap.find(node, tok => tok.value === name);\n if (token) {\n lastRawIdentResult = this._originalCode.slice(token.start, token.end);\n return lastRawIdentResult;\n }\n return (lastRawIdentResult = node.name);\n}\n\nexport function Identifier(this: Printer, node: t.Identifier) {\n this.sourceIdentifierName(node.loc?.identifierName || node.name);\n\n this.word(this.tokenMap ? this._getRawIdentifier(node) : node.name);\n}\n\nexport function ArgumentPlaceholder(this: Printer) {\n this.token(\"?\");\n}\n\nexport function RestElement(this: Printer, node: t.RestElement) {\n this.token(\"...\");\n this.print(node.argument);\n}\n\nexport { RestElement as SpreadElement };\n\nexport function ObjectExpression(this: Printer, node: t.ObjectExpression) {\n const props = node.properties;\n\n this.token(\"{\");\n\n if (props.length) {\n const exit = this.enterDelimited();\n this.space();\n this.printList(props, this.shouldPrintTrailingComma(\"}\"), true, true);\n this.space();\n exit();\n }\n\n this.sourceWithOffset(\"end\", node.loc, -1);\n\n this.token(\"}\");\n}\n\nexport { ObjectExpression as ObjectPattern };\n\nexport function ObjectMethod(this: Printer, node: t.ObjectMethod) {\n this.printJoin(node.decorators);\n this._methodHead(node);\n this.space();\n this.print(node.body);\n}\n\nexport function ObjectProperty(this: Printer, node: t.ObjectProperty) {\n this.printJoin(node.decorators);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key);\n this.token(\"]\");\n } else {\n // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});`\n if (\n isAssignmentPattern(node.value) &&\n isIdentifier(node.key) &&\n // @ts-expect-error todo(flow->ts) `.name` does not exist on some types in union\n node.key.name === node.value.left.name\n ) {\n this.print(node.value);\n return;\n }\n\n this.print(node.key);\n\n // shorthand!\n if (\n node.shorthand &&\n isIdentifier(node.key) &&\n isIdentifier(node.value) &&\n node.key.name === node.value.name\n ) {\n return;\n }\n }\n\n this.token(\":\");\n this.space();\n this.print(node.value);\n}\n\nexport function ArrayExpression(this: Printer, node: t.ArrayExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n this.token(\"[\");\n\n const exit = this.enterDelimited();\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem);\n if (i < len - 1 || this.shouldPrintTrailingComma(\"]\")) {\n this.token(\",\", false, i);\n }\n } else {\n // If the array expression ends with a hole, that hole\n // will be ignored by the interpreter, but if it ends with\n // two (or more) holes, we need to write out two (or more)\n // commas so that the resulting code is interpreted with\n // both (all) of the holes.\n this.token(\",\", false, i);\n }\n }\n\n exit();\n\n this.token(\"]\");\n}\n\nexport { ArrayExpression as ArrayPattern };\n\nexport function RecordExpression(this: Printer, node: t.RecordExpression) {\n const props = node.properties;\n\n let startToken;\n let endToken;\n if (process.env.BABEL_8_BREAKING) {\n startToken = \"#{\";\n endToken = \"}\";\n } else {\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"{|\";\n endToken = \"|}\";\n } else if (\n this.format.recordAndTupleSyntaxType !== \"hash\" &&\n this.format.recordAndTupleSyntaxType != null\n ) {\n throw new Error(\n `The \"recordAndTupleSyntaxType\" generator option must be \"bar\" or \"hash\" (${JSON.stringify(\n this.format.recordAndTupleSyntaxType,\n )} received).`,\n );\n } else {\n startToken = \"#{\";\n endToken = \"}\";\n }\n }\n\n this.token(startToken);\n\n if (props.length) {\n this.space();\n this.printList(props, this.shouldPrintTrailingComma(endToken), true, true);\n this.space();\n }\n this.token(endToken);\n}\n\nexport function TupleExpression(this: Printer, node: t.TupleExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n let startToken;\n let endToken;\n if (process.env.BABEL_8_BREAKING) {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"[|\";\n endToken = \"|]\";\n } else if (this.format.recordAndTupleSyntaxType === \"hash\") {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\n throw new Error(\n `${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`,\n );\n }\n }\n\n this.token(startToken);\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem);\n if (i < len - 1 || this.shouldPrintTrailingComma(endToken)) {\n this.token(\",\", false, i);\n }\n }\n }\n\n this.token(endToken);\n}\n\nexport function RegExpLiteral(this: Printer, node: t.RegExpLiteral) {\n this.word(`/${node.pattern}/${node.flags}`);\n}\n\nexport function BooleanLiteral(this: Printer, node: t.BooleanLiteral) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteral(this: Printer) {\n this.word(\"null\");\n}\n\nexport function NumericLiteral(this: Printer, node: t.NumericLiteral) {\n const raw = this.getPossibleRaw(node);\n const opts = this.format.jsescOption;\n const value = node.value;\n const str = value + \"\";\n if (opts.numbers) {\n this.number(jsesc(value, opts), value);\n } else if (raw == null) {\n this.number(str, value); // normalize\n } else if (this.format.minified) {\n this.number(raw.length < str.length ? raw : str, value);\n } else {\n this.number(raw, value);\n }\n}\n\nexport function StringLiteral(this: Printer, node: t.StringLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const val = jsesc(node.value, this.format.jsescOption);\n\n this.token(val);\n}\n\nexport function BigIntLiteral(this: Printer, node: t.BigIntLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"n\");\n}\n\n// Hack pipe operator\nconst validTopicTokenSet = new Set([\"^^\", \"@@\", \"^\", \"%\", \"#\"]);\nexport function TopicReference(this: Printer) {\n const { topicToken } = this.format;\n\n if (validTopicTokenSet.has(topicToken)) {\n this.token(topicToken);\n } else {\n const givenTopicTokenJSON = JSON.stringify(topicToken);\n const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v));\n throw new Error(\n `The \"topicToken\" generator option must be one of ` +\n `${validTopics.join(\", \")} (${givenTopicTokenJSON} received instead).`,\n );\n }\n}\n\n// Smart-mix pipe operator\nexport function PipelineTopicExpression(\n this: Printer,\n node: t.PipelineTopicExpression,\n) {\n this.print(node.expression);\n}\n\nexport function PipelineBareFunction(\n this: Printer,\n node: t.PipelineBareFunction,\n) {\n this.print(node.callee);\n}\n\nexport function PipelinePrimaryTopicReference(this: Printer) {\n this.token(\"#\");\n}\n\n// discard binding\nexport function VoidPattern(this: Printer) {\n this.word(\"void\");\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/generators/typescript.js b/framework-core/node_modules/@babel/generator/lib/generators/typescript.js new file mode 100644 index 0000000..6ebc107 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/typescript.js @@ -0,0 +1,724 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TSAnyKeyword = TSAnyKeyword; +exports.TSArrayType = TSArrayType; +exports.TSSatisfiesExpression = exports.TSAsExpression = TSTypeExpression; +exports.TSBigIntKeyword = TSBigIntKeyword; +exports.TSBooleanKeyword = TSBooleanKeyword; +exports.TSCallSignatureDeclaration = TSCallSignatureDeclaration; +exports.TSInterfaceHeritage = exports.TSClassImplements = TSClassImplements; +exports.TSConditionalType = TSConditionalType; +exports.TSConstructSignatureDeclaration = TSConstructSignatureDeclaration; +exports.TSConstructorType = TSConstructorType; +exports.TSDeclareFunction = TSDeclareFunction; +exports.TSDeclareMethod = TSDeclareMethod; +exports.TSEnumBody = TSEnumBody; +exports.TSEnumDeclaration = TSEnumDeclaration; +exports.TSEnumMember = TSEnumMember; +exports.TSExportAssignment = TSExportAssignment; +exports.TSExternalModuleReference = TSExternalModuleReference; +exports.TSFunctionType = TSFunctionType; +exports.TSImportEqualsDeclaration = TSImportEqualsDeclaration; +exports.TSImportType = TSImportType; +exports.TSIndexSignature = TSIndexSignature; +exports.TSIndexedAccessType = TSIndexedAccessType; +exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; +exports.TSInterfaceBody = TSInterfaceBody; +exports.TSInterfaceDeclaration = TSInterfaceDeclaration; +exports.TSIntersectionType = TSIntersectionType; +exports.TSIntrinsicKeyword = TSIntrinsicKeyword; +exports.TSLiteralType = TSLiteralType; +exports.TSMappedType = TSMappedType; +exports.TSMethodSignature = TSMethodSignature; +exports.TSModuleBlock = TSModuleBlock; +exports.TSModuleDeclaration = TSModuleDeclaration; +exports.TSNamedTupleMember = TSNamedTupleMember; +exports.TSNamespaceExportDeclaration = TSNamespaceExportDeclaration; +exports.TSNeverKeyword = TSNeverKeyword; +exports.TSNonNullExpression = TSNonNullExpression; +exports.TSNullKeyword = TSNullKeyword; +exports.TSNumberKeyword = TSNumberKeyword; +exports.TSObjectKeyword = TSObjectKeyword; +exports.TSOptionalType = TSOptionalType; +exports.TSParameterProperty = TSParameterProperty; +exports.TSParenthesizedType = TSParenthesizedType; +exports.TSPropertySignature = TSPropertySignature; +exports.TSQualifiedName = TSQualifiedName; +exports.TSRestType = TSRestType; +exports.TSStringKeyword = TSStringKeyword; +exports.TSSymbolKeyword = TSSymbolKeyword; +exports.TSTemplateLiteralType = TSTemplateLiteralType; +exports.TSThisType = TSThisType; +exports.TSTupleType = TSTupleType; +exports.TSTypeAliasDeclaration = TSTypeAliasDeclaration; +exports.TSTypeAnnotation = TSTypeAnnotation; +exports.TSTypeAssertion = TSTypeAssertion; +exports.TSTypeLiteral = TSTypeLiteral; +exports.TSTypeOperator = TSTypeOperator; +exports.TSTypeParameter = TSTypeParameter; +exports.TSTypeParameterDeclaration = exports.TSTypeParameterInstantiation = TSTypeParameterInstantiation; +exports.TSTypePredicate = TSTypePredicate; +exports.TSTypeQuery = TSTypeQuery; +exports.TSTypeReference = TSTypeReference; +exports.TSUndefinedKeyword = TSUndefinedKeyword; +exports.TSUnionType = TSUnionType; +exports.TSUnknownKeyword = TSUnknownKeyword; +exports.TSVoidKeyword = TSVoidKeyword; +exports.tsPrintClassMemberModifiers = tsPrintClassMemberModifiers; +exports.tsPrintFunctionOrConstructorType = tsPrintFunctionOrConstructorType; +exports.tsPrintPropertyOrMethodName = tsPrintPropertyOrMethodName; +exports.tsPrintSignatureDeclarationBase = tsPrintSignatureDeclarationBase; +function TSTypeAnnotation(node, parent) { + this.token((parent.type === "TSFunctionType" || parent.type === "TSConstructorType") && parent.typeAnnotation === node ? "=>" : ":"); + this.space(); + if (node.optional) this.tokenChar(63); + this.print(node.typeAnnotation); +} +function TSTypeParameterInstantiation(node, parent) { + this.tokenChar(60); + let printTrailingSeparator = parent.type === "ArrowFunctionExpression" && node.params.length === 1; + if (this.tokenMap && node.start != null && node.end != null) { + printTrailingSeparator && (printTrailingSeparator = !!this.tokenMap.find(node, t => this.tokenMap.matchesOriginal(t, ","))); + printTrailingSeparator || (printTrailingSeparator = this.shouldPrintTrailingComma(">")); + } + this.printList(node.params, printTrailingSeparator); + this.tokenChar(62); +} +function TSTypeParameter(node) { + if (node.const) { + this.word("const"); + this.space(); + } + if (node.in) { + this.word("in"); + this.space(); + } + if (node.out) { + this.word("out"); + this.space(); + } + this.word(node.name); + if (node.constraint) { + this.space(); + this.word("extends"); + this.space(); + this.print(node.constraint); + } + if (node.default) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.default); + } +} +function TSParameterProperty(node) { + if (node.accessibility) { + this.word(node.accessibility); + this.space(); + } + if (node.readonly) { + this.word("readonly"); + this.space(); + } + this._param(node.parameter); +} +function TSDeclareFunction(node, parent) { + if (node.declare) { + this.word("declare"); + this.space(); + } + this._functionHead(node, parent); + this.semicolon(); +} +function TSDeclareMethod(node) { + this._classMethodHead(node); + this.semicolon(); +} +function TSQualifiedName(node) { + this.print(node.left); + this.tokenChar(46); + this.print(node.right); +} +function TSCallSignatureDeclaration(node) { + this.tsPrintSignatureDeclarationBase(node); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function maybePrintTrailingCommaOrSemicolon(printer, node) { + if (!printer.tokenMap || !node.start || !node.end) { + printer.semicolon(); + return; + } + if (printer.tokenMap.endMatches(node, ",")) { + printer.token(","); + } else if (printer.tokenMap.endMatches(node, ";")) { + printer.semicolon(); + } +} +function TSConstructSignatureDeclaration(node) { + this.word("new"); + this.space(); + this.tsPrintSignatureDeclarationBase(node); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function TSPropertySignature(node) { + const { + readonly + } = node; + if (readonly) { + this.word("readonly"); + this.space(); + } + this.tsPrintPropertyOrMethodName(node); + this.print(node.typeAnnotation); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function tsPrintPropertyOrMethodName(node) { + if (node.computed) { + this.tokenChar(91); + } + this.print(node.key); + if (node.computed) { + this.tokenChar(93); + } + if (node.optional) { + this.tokenChar(63); + } +} +function TSMethodSignature(node) { + const { + kind + } = node; + if (kind === "set" || kind === "get") { + this.word(kind); + this.space(); + } + this.tsPrintPropertyOrMethodName(node); + this.tsPrintSignatureDeclarationBase(node); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function TSIndexSignature(node) { + const { + readonly, + static: isStatic + } = node; + if (isStatic) { + this.word("static"); + this.space(); + } + if (readonly) { + this.word("readonly"); + this.space(); + } + this.tokenChar(91); + this._parameters(node.parameters, "]"); + this.print(node.typeAnnotation); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function TSAnyKeyword() { + this.word("any"); +} +function TSBigIntKeyword() { + this.word("bigint"); +} +function TSUnknownKeyword() { + this.word("unknown"); +} +function TSNumberKeyword() { + this.word("number"); +} +function TSObjectKeyword() { + this.word("object"); +} +function TSBooleanKeyword() { + this.word("boolean"); +} +function TSStringKeyword() { + this.word("string"); +} +function TSSymbolKeyword() { + this.word("symbol"); +} +function TSVoidKeyword() { + this.word("void"); +} +function TSUndefinedKeyword() { + this.word("undefined"); +} +function TSNullKeyword() { + this.word("null"); +} +function TSNeverKeyword() { + this.word("never"); +} +function TSIntrinsicKeyword() { + this.word("intrinsic"); +} +function TSThisType() { + this.word("this"); +} +function TSFunctionType(node) { + this.tsPrintFunctionOrConstructorType(node); +} +function TSConstructorType(node) { + if (node.abstract) { + this.word("abstract"); + this.space(); + } + this.word("new"); + this.space(); + this.tsPrintFunctionOrConstructorType(node); +} +function tsPrintFunctionOrConstructorType(node) { + const { + typeParameters + } = node; + const parameters = node.parameters; + this.print(typeParameters); + this.tokenChar(40); + this._parameters(parameters, ")"); + this.space(); + const returnType = node.typeAnnotation; + this.print(returnType); +} +function TSTypeReference(node) { + const typeArguments = node.typeParameters; + this.print(node.typeName, !!typeArguments); + this.print(typeArguments); +} +function TSTypePredicate(node) { + if (node.asserts) { + this.word("asserts"); + this.space(); + } + this.print(node.parameterName); + if (node.typeAnnotation) { + this.space(); + this.word("is"); + this.space(); + this.print(node.typeAnnotation.typeAnnotation); + } +} +function TSTypeQuery(node) { + this.word("typeof"); + this.space(); + this.print(node.exprName); + const typeArguments = node.typeParameters; + if (typeArguments) { + this.print(typeArguments); + } +} +function TSTypeLiteral(node) { + printBraced(this, node, () => this.printJoin(node.members, true, true)); +} +function TSArrayType(node) { + this.print(node.elementType, true); + this.tokenChar(91); + this.tokenChar(93); +} +function TSTupleType(node) { + this.tokenChar(91); + this.printList(node.elementTypes, this.shouldPrintTrailingComma("]")); + this.tokenChar(93); +} +function TSOptionalType(node) { + this.print(node.typeAnnotation); + this.tokenChar(63); +} +function TSRestType(node) { + this.token("..."); + this.print(node.typeAnnotation); +} +function TSNamedTupleMember(node) { + this.print(node.label); + if (node.optional) this.tokenChar(63); + this.tokenChar(58); + this.space(); + this.print(node.elementType); +} +function TSUnionType(node) { + tsPrintUnionOrIntersectionType(this, node, "|"); +} +function TSIntersectionType(node) { + tsPrintUnionOrIntersectionType(this, node, "&"); +} +function tsPrintUnionOrIntersectionType(printer, node, sep) { + var _printer$tokenMap; + let hasLeadingToken = 0; + if ((_printer$tokenMap = printer.tokenMap) != null && _printer$tokenMap.startMatches(node, sep)) { + hasLeadingToken = 1; + printer.token(sep); + } + printer.printJoin(node.types, undefined, undefined, function (i) { + this.space(); + this.token(sep, null, i + hasLeadingToken); + this.space(); + }); +} +function TSConditionalType(node) { + this.print(node.checkType); + this.space(); + this.word("extends"); + this.space(); + this.print(node.extendsType); + this.space(); + this.tokenChar(63); + this.space(); + this.print(node.trueType); + this.space(); + this.tokenChar(58); + this.space(); + this.print(node.falseType); +} +function TSInferType(node) { + this.word("infer"); + this.print(node.typeParameter); +} +function TSParenthesizedType(node) { + this.tokenChar(40); + this.print(node.typeAnnotation); + this.tokenChar(41); +} +function TSTypeOperator(node) { + this.word(node.operator); + this.space(); + this.print(node.typeAnnotation); +} +function TSIndexedAccessType(node) { + this.print(node.objectType, true); + this.tokenChar(91); + this.print(node.indexType); + this.tokenChar(93); +} +function TSMappedType(node) { + const { + nameType, + optional, + readonly, + typeAnnotation + } = node; + this.tokenChar(123); + const exit = this.enterDelimited(); + this.space(); + if (readonly) { + tokenIfPlusMinus(this, readonly); + this.word("readonly"); + this.space(); + } + this.tokenChar(91); + { + this.word(node.typeParameter.name); + } + this.space(); + this.word("in"); + this.space(); + { + this.print(node.typeParameter.constraint); + } + if (nameType) { + this.space(); + this.word("as"); + this.space(); + this.print(nameType); + } + this.tokenChar(93); + if (optional) { + tokenIfPlusMinus(this, optional); + this.tokenChar(63); + } + if (typeAnnotation) { + this.tokenChar(58); + this.space(); + this.print(typeAnnotation); + } + this.space(); + exit(); + this.tokenChar(125); +} +function tokenIfPlusMinus(self, tok) { + if (tok !== true) { + self.token(tok); + } +} +function TSTemplateLiteralType(node) { + this._printTemplate(node, node.types); +} +function TSLiteralType(node) { + this.print(node.literal); +} +function TSClassImplements(node) { + this.print(node.expression); + this.print(node.typeArguments); +} +function TSInterfaceDeclaration(node) { + const { + declare, + id, + typeParameters, + extends: extendz, + body + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + this.word("interface"); + this.space(); + this.print(id); + this.print(typeParameters); + if (extendz != null && extendz.length) { + this.space(); + this.word("extends"); + this.space(); + this.printList(extendz); + } + this.space(); + this.print(body); +} +function TSInterfaceBody(node) { + printBraced(this, node, () => this.printJoin(node.body, true, true)); +} +function TSTypeAliasDeclaration(node) { + const { + declare, + id, + typeParameters, + typeAnnotation + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + this.word("type"); + this.space(); + this.print(id); + this.print(typeParameters); + this.space(); + this.tokenChar(61); + this.space(); + this.print(typeAnnotation); + this.semicolon(); +} +function TSTypeExpression(node) { + const { + type, + expression, + typeAnnotation + } = node; + this.print(expression, true); + this.space(); + this.word(type === "TSAsExpression" ? "as" : "satisfies"); + this.space(); + this.print(typeAnnotation); +} +function TSTypeAssertion(node) { + const { + typeAnnotation, + expression + } = node; + this.tokenChar(60); + this.print(typeAnnotation); + this.tokenChar(62); + this.space(); + this.print(expression); +} +function TSInstantiationExpression(node) { + this.print(node.expression); + { + this.print(node.typeParameters); + } +} +function TSEnumDeclaration(node) { + const { + declare, + const: isConst, + id + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + if (isConst) { + this.word("const"); + this.space(); + } + this.word("enum"); + this.space(); + this.print(id); + this.space(); + { + TSEnumBody.call(this, node); + } +} +function TSEnumBody(node) { + printBraced(this, node, () => { + var _this$shouldPrintTrai; + return this.printList(node.members, (_this$shouldPrintTrai = this.shouldPrintTrailingComma("}")) != null ? _this$shouldPrintTrai : true, true, true); + }); +} +function TSEnumMember(node) { + const { + id, + initializer + } = node; + this.print(id); + if (initializer) { + this.space(); + this.tokenChar(61); + this.space(); + this.print(initializer); + } +} +function TSModuleDeclaration(node) { + const { + declare, + id, + kind + } = node; + if (declare) { + this.word("declare"); + this.space(); + } + { + if (!node.global) { + this.word(kind != null ? kind : id.type === "Identifier" ? "namespace" : "module"); + this.space(); + } + this.print(id); + if (!node.body) { + this.semicolon(); + return; + } + let body = node.body; + while (body.type === "TSModuleDeclaration") { + this.tokenChar(46); + this.print(body.id); + body = body.body; + } + this.space(); + this.print(body); + } +} +function TSModuleBlock(node) { + printBraced(this, node, () => this.printSequence(node.body, true)); +} +function TSImportType(node) { + const { + argument, + qualifier, + options + } = node; + this.word("import"); + this.tokenChar(40); + this.print(argument); + if (options) { + this.tokenChar(44); + this.print(options); + } + this.tokenChar(41); + if (qualifier) { + this.tokenChar(46); + this.print(qualifier); + } + const typeArguments = node.typeParameters; + if (typeArguments) { + this.print(typeArguments); + } +} +function TSImportEqualsDeclaration(node) { + const { + id, + moduleReference + } = node; + if (node.isExport) { + this.word("export"); + this.space(); + } + this.word("import"); + this.space(); + this.print(id); + this.space(); + this.tokenChar(61); + this.space(); + this.print(moduleReference); + this.semicolon(); +} +function TSExternalModuleReference(node) { + this.token("require("); + this.print(node.expression); + this.tokenChar(41); +} +function TSNonNullExpression(node) { + this.print(node.expression); + this.tokenChar(33); +} +function TSExportAssignment(node) { + this.word("export"); + this.space(); + this.tokenChar(61); + this.space(); + this.print(node.expression); + this.semicolon(); +} +function TSNamespaceExportDeclaration(node) { + this.word("export"); + this.space(); + this.word("as"); + this.space(); + this.word("namespace"); + this.space(); + this.print(node.id); + this.semicolon(); +} +function tsPrintSignatureDeclarationBase(node) { + const { + typeParameters + } = node; + const parameters = node.parameters; + this.print(typeParameters); + this.tokenChar(40); + this._parameters(parameters, ")"); + const returnType = node.typeAnnotation; + this.print(returnType); +} +function tsPrintClassMemberModifiers(node) { + const isPrivateField = node.type === "ClassPrivateProperty"; + const isPublicField = node.type === "ClassAccessorProperty" || node.type === "ClassProperty"; + printModifiersList(this, node, [isPublicField && node.declare && "declare", !isPrivateField && node.accessibility]); + if (node.static) { + this.word("static"); + this.space(); + } + printModifiersList(this, node, [!isPrivateField && node.abstract && "abstract", !isPrivateField && node.override && "override", (isPublicField || isPrivateField) && node.readonly && "readonly"]); +} +function printBraced(printer, node, cb) { + printer.token("{"); + const exit = printer.enterDelimited(); + cb(); + exit(); + printer.rightBrace(node); +} +function printModifiersList(printer, node, modifiers) { + var _printer$tokenMap2; + const modifiersSet = new Set(); + for (const modifier of modifiers) { + if (modifier) modifiersSet.add(modifier); + } + (_printer$tokenMap2 = printer.tokenMap) == null || _printer$tokenMap2.find(node, tok => { + if (modifiersSet.has(tok.value)) { + printer.token(tok.value); + printer.space(); + modifiersSet.delete(tok.value); + return modifiersSet.size === 0; + } + }); + for (const modifier of modifiersSet) { + printer.word(modifier); + printer.space(); + } +} + +//# sourceMappingURL=typescript.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/generators/typescript.js.map b/framework-core/node_modules/@babel/generator/lib/generators/typescript.js.map new file mode 100644 index 0000000..81caf47 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/generators/typescript.js.map @@ -0,0 +1 @@ +{"version":3,"names":["TSTypeAnnotation","node","parent","token","type","typeAnnotation","space","optional","print","TSTypeParameterInstantiation","printTrailingSeparator","params","length","tokenMap","start","end","find","t","matchesOriginal","shouldPrintTrailingComma","printList","TSTypeParameter","const","word","in","out","name","constraint","default","TSParameterProperty","accessibility","readonly","_param","parameter","TSDeclareFunction","declare","_functionHead","semicolon","TSDeclareMethod","_classMethodHead","TSQualifiedName","left","right","TSCallSignatureDeclaration","tsPrintSignatureDeclarationBase","maybePrintTrailingCommaOrSemicolon","printer","endMatches","TSConstructSignatureDeclaration","TSPropertySignature","tsPrintPropertyOrMethodName","computed","key","TSMethodSignature","kind","TSIndexSignature","static","isStatic","_parameters","parameters","TSAnyKeyword","TSBigIntKeyword","TSUnknownKeyword","TSNumberKeyword","TSObjectKeyword","TSBooleanKeyword","TSStringKeyword","TSSymbolKeyword","TSVoidKeyword","TSUndefinedKeyword","TSNullKeyword","TSNeverKeyword","TSIntrinsicKeyword","TSThisType","TSFunctionType","tsPrintFunctionOrConstructorType","TSConstructorType","abstract","typeParameters","returnType","TSTypeReference","typeArguments","typeName","TSTypePredicate","asserts","parameterName","TSTypeQuery","exprName","TSTypeLiteral","printBraced","printJoin","members","TSArrayType","elementType","TSTupleType","elementTypes","TSOptionalType","TSRestType","TSNamedTupleMember","label","TSUnionType","tsPrintUnionOrIntersectionType","TSIntersectionType","sep","_printer$tokenMap","hasLeadingToken","startMatches","types","undefined","i","TSConditionalType","checkType","extendsType","trueType","falseType","TSInferType","typeParameter","TSParenthesizedType","TSTypeOperator","operator","TSIndexedAccessType","objectType","indexType","TSMappedType","nameType","exit","enterDelimited","tokenIfPlusMinus","self","tok","TSTemplateLiteralType","_printTemplate","TSLiteralType","literal","TSClassImplements","expression","TSInterfaceDeclaration","id","extends","extendz","body","TSInterfaceBody","TSTypeAliasDeclaration","TSTypeExpression","TSTypeAssertion","TSInstantiationExpression","TSEnumDeclaration","isConst","TSEnumBody","call","_this$shouldPrintTrai","TSEnumMember","initializer","TSModuleDeclaration","global","TSModuleBlock","printSequence","TSImportType","argument","qualifier","options","TSImportEqualsDeclaration","moduleReference","isExport","TSExternalModuleReference","TSNonNullExpression","TSExportAssignment","TSNamespaceExportDeclaration","tsPrintClassMemberModifiers","isPrivateField","isPublicField","printModifiersList","override","cb","rightBrace","modifiers","_printer$tokenMap2","modifiersSet","Set","modifier","add","has","value","delete","size"],"sources":["../../src/generators/typescript.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function TSTypeAnnotation(\n this: Printer,\n node: t.TSTypeAnnotation,\n parent: t.Node,\n) {\n // TODO(@nicolo-ribaudo): investigate not including => in the range\n // of the return type of an arrow function type\n this.token(\n (parent.type === \"TSFunctionType\" || parent.type === \"TSConstructorType\") &&\n (process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n parent.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n parent.typeAnnotation) === node\n ? \"=>\"\n : \":\",\n );\n this.space();\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n if (node.optional) this.token(\"?\");\n this.print(node.typeAnnotation);\n}\n\nexport function TSTypeParameterInstantiation(\n this: Printer,\n node: t.TSTypeParameterInstantiation,\n parent: t.Node,\n): void {\n this.token(\"<\");\n\n let printTrailingSeparator =\n parent.type === \"ArrowFunctionExpression\" && node.params.length === 1;\n if (this.tokenMap && node.start != null && node.end != null) {\n // Only force the trailing comma for pre-existing nodes if they\n // already had a comma (either because they were multi-param, or\n // because they had a trailing comma)\n printTrailingSeparator &&= !!this.tokenMap.find(node, t =>\n this.tokenMap.matchesOriginal(t, \",\"),\n );\n // Preserve the trailing comma if it was there before\n printTrailingSeparator ||= this.shouldPrintTrailingComma(\">\");\n }\n\n this.printList(node.params, printTrailingSeparator);\n this.token(\">\");\n}\n\nexport { TSTypeParameterInstantiation as TSTypeParameterDeclaration };\n\nexport function TSTypeParameter(this: Printer, node: t.TSTypeParameter) {\n if (node.const) {\n this.word(\"const\");\n this.space();\n }\n\n if (node.in) {\n this.word(\"in\");\n this.space();\n }\n\n if (node.out) {\n this.word(\"out\");\n this.space();\n }\n\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (node.name as unknown as string)\n : (node.name as unknown as t.Identifier).name,\n );\n\n if (node.constraint) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.constraint);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default);\n }\n}\n\nexport function TSParameterProperty(\n this: Printer,\n node: t.TSParameterProperty,\n) {\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n\n if (node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n\n this._param(node.parameter);\n}\n\nexport function TSDeclareFunction(\n this: Printer,\n node: t.TSDeclareFunction,\n parent: t.ParentMaps[\"TSDeclareFunction\"],\n) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n this._functionHead(node, parent);\n this.semicolon();\n}\n\nexport function TSDeclareMethod(this: Printer, node: t.TSDeclareMethod) {\n this._classMethodHead(node);\n this.semicolon();\n}\n\nexport function TSQualifiedName(this: Printer, node: t.TSQualifiedName) {\n this.print(node.left);\n this.token(\".\");\n this.print(node.right);\n}\n\nexport function TSCallSignatureDeclaration(\n this: Printer,\n node: t.TSCallSignatureDeclaration,\n) {\n this.tsPrintSignatureDeclarationBase(node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nfunction maybePrintTrailingCommaOrSemicolon(printer: Printer, node: t.Node) {\n if (!printer.tokenMap || !node.start || !node.end) {\n printer.semicolon();\n return;\n }\n\n if (printer.tokenMap.endMatches(node, \",\")) {\n printer.token(\",\");\n } else if (printer.tokenMap.endMatches(node, \";\")) {\n printer.semicolon();\n }\n}\n\nexport function TSConstructSignatureDeclaration(\n this: Printer,\n node: t.TSConstructSignatureDeclaration,\n) {\n this.word(\"new\");\n this.space();\n this.tsPrintSignatureDeclarationBase(node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nexport function TSPropertySignature(\n this: Printer,\n node: t.TSPropertySignature,\n) {\n const { readonly } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.print(node.typeAnnotation);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nexport function tsPrintPropertyOrMethodName(\n this: Printer,\n node: t.TSPropertySignature | t.TSMethodSignature,\n) {\n if (node.computed) {\n this.token(\"[\");\n }\n this.print(node.key);\n if (node.computed) {\n this.token(\"]\");\n }\n if (node.optional) {\n this.token(\"?\");\n }\n}\n\nexport function TSMethodSignature(this: Printer, node: t.TSMethodSignature) {\n const { kind } = node;\n if (kind === \"set\" || kind === \"get\") {\n this.word(kind);\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.tsPrintSignatureDeclarationBase(node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nexport function TSIndexSignature(this: Printer, node: t.TSIndexSignature) {\n const { readonly, static: isStatic } = node;\n if (isStatic) {\n this.word(\"static\");\n this.space();\n }\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.token(\"[\");\n this._parameters(node.parameters, \"]\");\n this.print(node.typeAnnotation);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nexport function TSAnyKeyword(this: Printer) {\n this.word(\"any\");\n}\nexport function TSBigIntKeyword(this: Printer) {\n this.word(\"bigint\");\n}\nexport function TSUnknownKeyword(this: Printer) {\n this.word(\"unknown\");\n}\nexport function TSNumberKeyword(this: Printer) {\n this.word(\"number\");\n}\nexport function TSObjectKeyword(this: Printer) {\n this.word(\"object\");\n}\nexport function TSBooleanKeyword(this: Printer) {\n this.word(\"boolean\");\n}\nexport function TSStringKeyword(this: Printer) {\n this.word(\"string\");\n}\nexport function TSSymbolKeyword(this: Printer) {\n this.word(\"symbol\");\n}\nexport function TSVoidKeyword(this: Printer) {\n this.word(\"void\");\n}\nexport function TSUndefinedKeyword(this: Printer) {\n this.word(\"undefined\");\n}\nexport function TSNullKeyword(this: Printer) {\n this.word(\"null\");\n}\nexport function TSNeverKeyword(this: Printer) {\n this.word(\"never\");\n}\nexport function TSIntrinsicKeyword(this: Printer) {\n this.word(\"intrinsic\");\n}\n\nexport function TSThisType(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TSFunctionType(this: Printer, node: t.TSFunctionType) {\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function TSConstructorType(this: Printer, node: t.TSConstructorType) {\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n this.word(\"new\");\n this.space();\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function tsPrintFunctionOrConstructorType(\n this: Printer,\n node: t.TSFunctionType | t.TSConstructorType,\n) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.params\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.parameters;\n this.print(typeParameters);\n this.token(\"(\");\n this._parameters(parameters, \")\");\n this.space();\n const returnType = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.typeAnnotation;\n this.print(returnType);\n}\n\nexport function TSTypeReference(this: Printer, node: t.TSTypeReference) {\n const typeArguments = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.typeArguments\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.typeParameters;\n this.print(node.typeName, !!typeArguments);\n this.print(typeArguments);\n}\n\nexport function TSTypePredicate(this: Printer, node: t.TSTypePredicate) {\n if (node.asserts) {\n this.word(\"asserts\");\n this.space();\n }\n this.print(node.parameterName);\n if (node.typeAnnotation) {\n this.space();\n this.word(\"is\");\n this.space();\n this.print(node.typeAnnotation.typeAnnotation);\n }\n}\n\nexport function TSTypeQuery(this: Printer, node: t.TSTypeQuery) {\n this.word(\"typeof\");\n this.space();\n this.print(node.exprName);\n\n const typeArguments = process.env.BABEL_8_BREAKING\n ? //@ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n node.typeArguments\n : //@ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n node.typeParameters;\n if (typeArguments) {\n this.print(typeArguments);\n }\n}\n\nexport function TSTypeLiteral(this: Printer, node: t.TSTypeLiteral) {\n printBraced(this, node, () => this.printJoin(node.members, true, true));\n}\n\nexport function TSArrayType(this: Printer, node: t.TSArrayType) {\n this.print(node.elementType, true);\n\n this.token(\"[\");\n this.token(\"]\");\n}\n\nexport function TSTupleType(this: Printer, node: t.TSTupleType) {\n this.token(\"[\");\n this.printList(node.elementTypes, this.shouldPrintTrailingComma(\"]\"));\n this.token(\"]\");\n}\n\nexport function TSOptionalType(this: Printer, node: t.TSOptionalType) {\n this.print(node.typeAnnotation);\n this.token(\"?\");\n}\n\nexport function TSRestType(this: Printer, node: t.TSRestType) {\n this.token(\"...\");\n this.print(node.typeAnnotation);\n}\n\nexport function TSNamedTupleMember(this: Printer, node: t.TSNamedTupleMember) {\n this.print(node.label);\n if (node.optional) this.token(\"?\");\n this.token(\":\");\n this.space();\n this.print(node.elementType);\n}\n\nexport function TSUnionType(this: Printer, node: t.TSUnionType) {\n tsPrintUnionOrIntersectionType(this, node, \"|\");\n}\n\nexport function TSIntersectionType(this: Printer, node: t.TSIntersectionType) {\n tsPrintUnionOrIntersectionType(this, node, \"&\");\n}\n\nfunction tsPrintUnionOrIntersectionType(\n printer: Printer,\n node: t.TSUnionType | t.TSIntersectionType,\n sep: \"|\" | \"&\",\n) {\n let hasLeadingToken = 0;\n if (printer.tokenMap?.startMatches(node, sep)) {\n hasLeadingToken = 1;\n printer.token(sep);\n }\n\n printer.printJoin(node.types, undefined, undefined, function (i) {\n this.space();\n this.token(sep, null, i + hasLeadingToken);\n this.space();\n });\n}\n\nexport function TSConditionalType(this: Printer, node: t.TSConditionalType) {\n this.print(node.checkType);\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.extendsType);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.trueType);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.falseType);\n}\n\nexport function TSInferType(this: Printer, node: t.TSInferType) {\n this.word(\"infer\");\n this.print(node.typeParameter);\n}\n\nexport function TSParenthesizedType(\n this: Printer,\n node: t.TSParenthesizedType,\n) {\n this.token(\"(\");\n this.print(node.typeAnnotation);\n this.token(\")\");\n}\n\nexport function TSTypeOperator(this: Printer, node: t.TSTypeOperator) {\n this.word(node.operator);\n this.space();\n this.print(node.typeAnnotation);\n}\n\nexport function TSIndexedAccessType(\n this: Printer,\n node: t.TSIndexedAccessType,\n) {\n this.print(node.objectType, true);\n this.token(\"[\");\n this.print(node.indexType);\n this.token(\"]\");\n}\n\nexport function TSMappedType(this: Printer, node: t.TSMappedType) {\n const { nameType, optional, readonly, typeAnnotation } = node;\n this.token(\"{\");\n const exit = this.enterDelimited();\n this.space();\n if (readonly) {\n tokenIfPlusMinus(this, readonly);\n this.word(\"readonly\");\n this.space();\n }\n\n this.token(\"[\");\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n this.word(node.key.name);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n this.word(node.typeParameter.name);\n }\n\n this.space();\n this.word(\"in\");\n this.space();\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n this.print(node.constraint);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n this.print(node.typeParameter.constraint);\n }\n\n if (nameType) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(nameType);\n }\n\n this.token(\"]\");\n\n if (optional) {\n tokenIfPlusMinus(this, optional);\n this.token(\"?\");\n }\n\n if (typeAnnotation) {\n this.token(\":\");\n this.space();\n this.print(typeAnnotation);\n }\n this.space();\n exit();\n this.token(\"}\");\n}\n\nfunction tokenIfPlusMinus(self: Printer, tok: true | \"+\" | \"-\") {\n if (tok !== true) {\n self.token(tok);\n }\n}\n\nexport function TSTemplateLiteralType(\n this: Printer,\n node: t.TSTemplateLiteralType,\n) {\n this._printTemplate(node, node.types);\n}\n\nexport function TSLiteralType(this: Printer, node: t.TSLiteralType) {\n this.print(node.literal);\n}\n\nexport function TSClassImplements(\n this: Printer,\n // TODO(Babel 8): Just use t.TSClassImplements\n node: t.Node & {\n expression: t.TSEntityName;\n typeArguments?: t.TSTypeParameterInstantiation;\n },\n) {\n this.print(node.expression);\n this.print(node.typeArguments);\n}\n\nexport { TSClassImplements as TSInterfaceHeritage };\n\nexport function TSInterfaceDeclaration(\n this: Printer,\n node: t.TSInterfaceDeclaration,\n) {\n const { declare, id, typeParameters, extends: extendz, body } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"interface\");\n this.space();\n this.print(id);\n this.print(typeParameters);\n if (extendz?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(extendz);\n }\n this.space();\n this.print(body);\n}\n\nexport function TSInterfaceBody(this: Printer, node: t.TSInterfaceBody) {\n printBraced(this, node, () => this.printJoin(node.body, true, true));\n}\n\nexport function TSTypeAliasDeclaration(\n this: Printer,\n node: t.TSTypeAliasDeclaration,\n) {\n const { declare, id, typeParameters, typeAnnotation } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"type\");\n this.space();\n this.print(id);\n this.print(typeParameters);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(typeAnnotation);\n this.semicolon();\n}\n\nfunction TSTypeExpression(\n this: Printer,\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n) {\n const { type, expression, typeAnnotation } = node;\n this.print(expression, true);\n this.space();\n this.word(type === \"TSAsExpression\" ? \"as\" : \"satisfies\");\n this.space();\n this.print(typeAnnotation);\n}\n\nexport {\n TSTypeExpression as TSAsExpression,\n TSTypeExpression as TSSatisfiesExpression,\n};\n\nexport function TSTypeAssertion(this: Printer, node: t.TSTypeAssertion) {\n const { typeAnnotation, expression } = node;\n this.token(\"<\");\n this.print(typeAnnotation);\n this.token(\">\");\n this.space();\n this.print(expression);\n}\n\nexport function TSInstantiationExpression(\n this: Printer,\n node: t.TSInstantiationExpression,\n) {\n this.print(node.expression);\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n this.print(node.typeArguments);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n this.print(node.typeParameters);\n }\n}\n\nexport function TSEnumDeclaration(this: Printer, node: t.TSEnumDeclaration) {\n const { declare, const: isConst, id } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n if (isConst) {\n this.word(\"const\");\n this.space();\n }\n this.word(\"enum\");\n this.space();\n this.print(id);\n this.space();\n\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n this.print(node.body);\n } else {\n // cast to TSEnumBody for Babel 7 AST\n TSEnumBody.call(this, node as unknown as t.TSEnumBody);\n }\n}\n\nexport function TSEnumBody(this: Printer, node: t.TSEnumBody) {\n printBraced(this, node, () =>\n this.printList(\n node.members,\n this.shouldPrintTrailingComma(\"}\") ??\n (process.env.BABEL_8_BREAKING ? false : true),\n true,\n true,\n ),\n );\n}\n\nexport function TSEnumMember(this: Printer, node: t.TSEnumMember) {\n const { id, initializer } = node;\n this.print(id);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer);\n }\n}\n\nexport function TSModuleDeclaration(\n this: Printer,\n node: t.TSModuleDeclaration,\n) {\n const { declare, id, kind } = node;\n\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (kind !== \"global\") {\n this.word(kind);\n this.space();\n }\n\n this.print(node.id);\n if (!node.body) {\n this.semicolon();\n return;\n }\n this.space();\n this.print(node.body);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n if (!node.global) {\n this.word(kind ?? (id.type === \"Identifier\" ? \"namespace\" : \"module\"));\n this.space();\n }\n\n this.print(id);\n\n if (!node.body) {\n this.semicolon();\n return;\n }\n\n let body = node.body;\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n while (body.type === \"TSModuleDeclaration\") {\n this.token(\".\");\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n this.print(body.id);\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n body = body.body;\n }\n\n this.space();\n this.print(body);\n }\n}\n\nexport function TSModuleBlock(this: Printer, node: t.TSModuleBlock) {\n printBraced(this, node, () => this.printSequence(node.body, true));\n}\n\nexport function TSImportType(this: Printer, node: t.TSImportType) {\n const { argument, qualifier, options } = node;\n this.word(\"import\");\n this.token(\"(\");\n this.print(argument);\n if (options) {\n this.token(\",\");\n this.print(options);\n }\n this.token(\")\");\n if (qualifier) {\n this.token(\".\");\n this.print(qualifier);\n }\n const typeArguments = process.env.BABEL_8_BREAKING\n ? //@ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n node.typeArguments\n : //@ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n node.typeParameters;\n if (typeArguments) {\n this.print(typeArguments);\n }\n}\n\nexport function TSImportEqualsDeclaration(\n this: Printer,\n node: t.TSImportEqualsDeclaration,\n) {\n const { id, moduleReference } = node;\n if (\n !process.env.BABEL_8_BREAKING &&\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n node.isExport\n ) {\n this.word(\"export\");\n this.space();\n }\n this.word(\"import\");\n this.space();\n this.print(id);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(moduleReference);\n this.semicolon();\n}\n\nexport function TSExternalModuleReference(\n this: Printer,\n node: t.TSExternalModuleReference,\n) {\n this.token(\"require(\");\n this.print(node.expression);\n this.token(\")\");\n}\n\nexport function TSNonNullExpression(\n this: Printer,\n node: t.TSNonNullExpression,\n) {\n this.print(node.expression);\n this.token(\"!\");\n}\n\nexport function TSExportAssignment(this: Printer, node: t.TSExportAssignment) {\n this.word(\"export\");\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.expression);\n this.semicolon();\n}\n\nexport function TSNamespaceExportDeclaration(\n this: Printer,\n node: t.TSNamespaceExportDeclaration,\n) {\n this.word(\"export\");\n this.space();\n this.word(\"as\");\n this.space();\n this.word(\"namespace\");\n this.space();\n this.print(node.id);\n this.semicolon();\n}\n\nexport function tsPrintSignatureDeclarationBase(this: Printer, node: any) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? node.params\n : node.parameters;\n this.print(typeParameters);\n this.token(\"(\");\n this._parameters(parameters, \")\");\n const returnType = process.env.BABEL_8_BREAKING\n ? node.returnType\n : node.typeAnnotation;\n this.print(returnType);\n}\n\nexport function tsPrintClassMemberModifiers(\n this: Printer,\n node:\n | t.ClassProperty\n | t.ClassAccessorProperty\n | t.ClassPrivateProperty\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.TSDeclareMethod,\n) {\n const isPrivateField = node.type === \"ClassPrivateProperty\";\n const isPublicField =\n node.type === \"ClassAccessorProperty\" || node.type === \"ClassProperty\";\n printModifiersList(this, node, [\n isPublicField && node.declare && \"declare\",\n !isPrivateField && node.accessibility,\n ]);\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n printModifiersList(this, node, [\n !isPrivateField && node.abstract && \"abstract\",\n !isPrivateField && node.override && \"override\",\n (isPublicField || isPrivateField) && node.readonly && \"readonly\",\n ]);\n}\n\nfunction printBraced(printer: Printer, node: t.Node, cb: () => void) {\n printer.token(\"{\");\n const exit = printer.enterDelimited();\n cb();\n exit();\n printer.rightBrace(node);\n}\n\nfunction printModifiersList(\n printer: Printer,\n node: t.Node,\n modifiers: (string | false | null)[],\n) {\n const modifiersSet = new Set();\n for (const modifier of modifiers) {\n if (modifier) modifiersSet.add(modifier);\n }\n\n printer.tokenMap?.find(node, tok => {\n if (modifiersSet.has(tok.value)) {\n printer.token(tok.value);\n printer.space();\n modifiersSet.delete(tok.value);\n return modifiersSet.size === 0;\n }\n });\n\n for (const modifier of modifiersSet) {\n printer.word(modifier);\n printer.space();\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/index.js b/framework-core/node_modules/@babel/generator/lib/index.js new file mode 100644 index 0000000..2e32510 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/index.js @@ -0,0 +1,112 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +exports.generate = generate; +var _sourceMap = require("./source-map.js"); +var _printer = require("./printer.js"); +function normalizeOptions(code, opts, ast) { + if (opts.experimental_preserveFormat) { + if (typeof code !== "string") { + throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string"); + } + if (!opts.retainLines) { + throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`"); + } + if (opts.compact && opts.compact !== "auto") { + throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option"); + } + if (opts.minified) { + throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option"); + } + if (opts.jsescOption) { + throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option"); + } + if (!Array.isArray(ast.tokens)) { + throw new Error("`experimental_preserveFormat` requires the AST to have attached the token of the input code. Make sure to enable the `tokens: true` parser option."); + } + } + const format = { + auxiliaryCommentBefore: opts.auxiliaryCommentBefore, + auxiliaryCommentAfter: opts.auxiliaryCommentAfter, + shouldPrintComment: opts.shouldPrintComment, + preserveFormat: opts.experimental_preserveFormat, + retainLines: opts.retainLines, + retainFunctionParens: opts.retainFunctionParens, + comments: opts.comments == null || opts.comments, + compact: opts.compact, + minified: opts.minified, + concise: opts.concise, + indent: { + adjustMultilineComment: true, + style: " " + }, + jsescOption: Object.assign({ + quotes: "double", + wrap: true, + minimal: false + }, opts.jsescOption), + topicToken: opts.topicToken, + importAttributesKeyword: opts.importAttributesKeyword + }; + { + var _opts$recordAndTupleS; + format.decoratorsBeforeExport = opts.decoratorsBeforeExport; + format.jsescOption.json = opts.jsonCompatibleStrings; + format.recordAndTupleSyntaxType = (_opts$recordAndTupleS = opts.recordAndTupleSyntaxType) != null ? _opts$recordAndTupleS : "hash"; + } + if (format.minified) { + format.compact = true; + format.shouldPrintComment = format.shouldPrintComment || (() => format.comments); + } else { + format.shouldPrintComment = format.shouldPrintComment || (value => format.comments || value.includes("@license") || value.includes("@preserve")); + } + if (format.compact === "auto") { + format.compact = typeof code === "string" && code.length > 500000; + if (format.compact) { + console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`); + } + } + if (format.compact || format.preserveFormat) { + format.indent.adjustMultilineComment = false; + } + const { + auxiliaryCommentBefore, + auxiliaryCommentAfter, + shouldPrintComment + } = format; + if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) { + format.auxiliaryCommentBefore = undefined; + } + if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) { + format.auxiliaryCommentAfter = undefined; + } + return format; +} +{ + exports.CodeGenerator = class CodeGenerator { + constructor(ast, opts = {}, code) { + this._ast = void 0; + this._format = void 0; + this._map = void 0; + this._ast = ast; + this._format = normalizeOptions(code, opts, ast); + this._map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; + } + generate() { + const printer = new _printer.default(this._format, this._map); + return printer.generate(this._ast); + } + }; +} +function generate(ast, opts = {}, code) { + const format = normalizeOptions(code, opts, ast); + const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; + const printer = new _printer.default(format, map, ast.tokens, typeof code === "string" ? code : null); + return printer.generate(ast); +} +var _default = exports.default = generate; + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/index.js.map b/framework-core/node_modules/@babel/generator/lib/index.js.map new file mode 100644 index 0000000..32a9492 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_sourceMap","require","_printer","normalizeOptions","code","opts","ast","experimental_preserveFormat","Error","retainLines","compact","minified","jsescOption","Array","isArray","tokens","format","auxiliaryCommentBefore","auxiliaryCommentAfter","shouldPrintComment","preserveFormat","retainFunctionParens","comments","concise","indent","adjustMultilineComment","style","Object","assign","quotes","wrap","minimal","topicToken","importAttributesKeyword","_opts$recordAndTupleS","decoratorsBeforeExport","json","jsonCompatibleStrings","recordAndTupleSyntaxType","value","includes","length","console","error","filename","undefined","exports","CodeGenerator","constructor","_ast","_format","_map","sourceMaps","SourceMap","generate","printer","Printer","map","_default","default"],"sources":["../src/index.ts"],"sourcesContent":["import SourceMap from \"./source-map.ts\";\nimport Printer from \"./printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\nimport type { Format } from \"./printer.ts\";\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\n\n/**\n * Normalize generator options, setting defaults.\n *\n * - Detects code indentation.\n * - If `opts.compact = \"auto\"` and the code is over 500KB, `compact` will be set to `true`.\n */\n\nfunction normalizeOptions(\n code: string | { [filename: string]: string },\n opts: GeneratorOptions,\n ast: t.Node,\n): Format {\n if (opts.experimental_preserveFormat) {\n if (typeof code !== \"string\") {\n throw new Error(\n \"`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string\",\n );\n }\n if (!opts.retainLines) {\n throw new Error(\n \"`experimental_preserveFormat` requires `retainLines` to be set to `true`\",\n );\n }\n if (opts.compact && opts.compact !== \"auto\") {\n throw new Error(\n \"`experimental_preserveFormat` is not compatible with the `compact` option\",\n );\n }\n if (opts.minified) {\n throw new Error(\n \"`experimental_preserveFormat` is not compatible with the `minified` option\",\n );\n }\n if (opts.jsescOption) {\n throw new Error(\n \"`experimental_preserveFormat` is not compatible with the `jsescOption` option\",\n );\n }\n if (!Array.isArray((ast as any).tokens)) {\n throw new Error(\n \"`experimental_preserveFormat` requires the AST to have attached the token of the input code. Make sure to enable the `tokens: true` parser option.\",\n );\n }\n }\n\n const format: Format = {\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n shouldPrintComment: opts.shouldPrintComment,\n preserveFormat: opts.experimental_preserveFormat,\n retainLines: opts.retainLines,\n retainFunctionParens: opts.retainFunctionParens,\n comments: opts.comments == null || opts.comments,\n compact: opts.compact,\n minified: opts.minified,\n concise: opts.concise,\n indent: {\n adjustMultilineComment: true,\n style: \" \",\n },\n jsescOption: {\n quotes: \"double\",\n wrap: true,\n minimal: process.env.BABEL_8_BREAKING ? true : false,\n ...opts.jsescOption,\n },\n topicToken: opts.topicToken,\n importAttributesKeyword: opts.importAttributesKeyword,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n format.decoratorsBeforeExport = opts.decoratorsBeforeExport;\n format.jsescOption.json = opts.jsonCompatibleStrings;\n format.recordAndTupleSyntaxType = opts.recordAndTupleSyntaxType ?? \"hash\";\n }\n\n if (format.minified) {\n format.compact = true;\n\n format.shouldPrintComment =\n format.shouldPrintComment || (() => format.comments);\n } else {\n format.shouldPrintComment =\n format.shouldPrintComment ||\n (value =>\n format.comments ||\n value.includes(\"@license\") ||\n value.includes(\"@preserve\"));\n }\n\n if (format.compact === \"auto\") {\n format.compact = typeof code === \"string\" && code.length > 500_000; // 500KB\n\n if (format.compact) {\n console.error(\n \"[BABEL] Note: The code generator has deoptimised the styling of \" +\n `${opts.filename} as it exceeds the max of ${\"500KB\"}.`,\n );\n }\n }\n\n if (format.compact || format.preserveFormat) {\n format.indent.adjustMultilineComment = false;\n }\n\n const { auxiliaryCommentBefore, auxiliaryCommentAfter, shouldPrintComment } =\n format;\n\n if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) {\n format.auxiliaryCommentBefore = undefined;\n }\n if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) {\n format.auxiliaryCommentAfter = undefined;\n }\n\n return format;\n}\n\nexport interface GeneratorOptions {\n /**\n * Optional string to add as a block comment at the start of the output file.\n */\n auxiliaryCommentBefore?: string;\n\n /**\n * Optional string to add as a block comment at the end of the output file.\n */\n auxiliaryCommentAfter?: string;\n\n /**\n * Function that takes a comment (as a string) and returns true if the comment should be included in the output.\n * By default, comments are included if `opts.comments` is `true` or if `opts.minified` is `false` and the comment\n * contains `@preserve` or `@license`.\n */\n shouldPrintComment?(comment: string): boolean;\n\n /**\n * Preserve the input code format while printing the transformed code.\n * This is experimental, and may have breaking changes in future\n * patch releases. It will be removed in a future minor release,\n * when it will graduate to stable.\n */\n experimental_preserveFormat?: boolean;\n\n /**\n * Attempt to use the same line numbers in the output code as in the source code (helps preserve stack traces).\n * Defaults to `false`.\n */\n retainLines?: boolean;\n\n /**\n * Retain parens around function expressions (could be used to change engine parsing behavior)\n * Defaults to `false`.\n */\n retainFunctionParens?: boolean;\n\n /**\n * Should comments be included in output? Defaults to `true`.\n */\n comments?: boolean;\n\n /**\n * Set to true to avoid adding whitespace for formatting. Defaults to the value of `opts.minified`.\n */\n compact?: boolean | \"auto\";\n\n /**\n * Should the output be minified. Defaults to `false`.\n */\n minified?: boolean;\n\n /**\n * Set to true to reduce whitespace (but not as much as opts.compact). Defaults to `false`.\n */\n concise?: boolean;\n\n /**\n * Used in warning messages\n */\n filename?: string;\n\n /**\n * Enable generating source maps. Defaults to `false`.\n */\n sourceMaps?: boolean;\n\n inputSourceMap?: any;\n\n /**\n * A root for all relative URLs in the source map.\n */\n sourceRoot?: string;\n\n /**\n * The filename for the source code (i.e. the code in the `code` argument).\n * This will only be used if `code` is a string.\n */\n sourceFileName?: string;\n\n /**\n * Set to true to run jsesc with \"json\": true to print \"\\u00A9\" vs. \"©\";\n * @deprecated use `jsescOptions: { json: true }` instead\n */\n jsonCompatibleStrings?: boolean;\n\n /**\n * Set to true to enable support for experimental decorators syntax before\n * module exports. If not specified, decorators will be printed in the same\n * position as they were in the input source code.\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n\n /**\n * Options for outputting jsesc representation.\n */\n jsescOption?: jsescOptions;\n\n /**\n * For use with the recordAndTuple token.\n * @deprecated It will be removed in Babel 8.\n */\n recordAndTupleSyntaxType?: \"bar\" | \"hash\";\n\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: \"%\" | \"#\" | \"@@\" | \"^^\" | \"^\";\n\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n}\n\nexport interface GeneratorResult {\n code: string;\n map: EncodedSourceMap | null;\n decodedMap: DecodedSourceMap | undefined;\n rawMappings: Mapping[] | undefined;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n /**\n * We originally exported the Generator class above, but to make it extra clear that it is a private API,\n * we have moved that to an internal class instance and simplified the interface to the two public methods\n * that we wish to support.\n */\n\n // eslint-disable-next-line no-restricted-globals\n exports.CodeGenerator = class CodeGenerator {\n private _ast: t.Node;\n private _format: Format | undefined;\n private _map: SourceMap | null;\n constructor(ast: t.Node, opts: GeneratorOptions = {}, code?: string) {\n this._ast = ast;\n this._format = normalizeOptions(code, opts, ast);\n this._map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n }\n generate(): GeneratorResult {\n const printer = new Printer(this._format, this._map);\n\n return printer.generate(this._ast);\n }\n };\n}\n\n/**\n * Turns an AST into code, maintaining sourcemaps, user preferences, and valid output.\n * @param ast - the abstract syntax tree from which to generate output code.\n * @param opts - used for specifying options for code generation.\n * @param code - the original source code, used for source maps.\n * @returns - an object containing the output code and source map.\n */\nexport function generate(\n ast: t.Node,\n opts: GeneratorOptions = {},\n code?: string | { [filename: string]: string },\n): GeneratorResult {\n const format = normalizeOptions(code, opts, ast);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n\n const printer = new Printer(\n format,\n map,\n (ast as any).tokens,\n typeof code === \"string\" ? code : null,\n );\n\n return printer.generate(ast);\n}\n\nexport default generate;\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/node/index.js b/framework-core/node_modules/@babel/generator/lib/node/index.js new file mode 100644 index 0000000..d612062 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/node/index.js @@ -0,0 +1,122 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.TokenContext = void 0; +exports.isLastChild = isLastChild; +exports.needsParens = needsParens; +exports.needsWhitespace = needsWhitespace; +exports.needsWhitespaceAfter = needsWhitespaceAfter; +exports.needsWhitespaceBefore = needsWhitespaceBefore; +var whitespace = require("./whitespace.js"); +var parens = require("./parentheses.js"); +var _t = require("@babel/types"); +const { + FLIPPED_ALIAS_KEYS, + VISITOR_KEYS, + isCallExpression, + isDecorator, + isExpressionStatement, + isMemberExpression, + isNewExpression, + isParenthesizedExpression +} = _t; +const TokenContext = exports.TokenContext = { + normal: 0, + expressionStatement: 1, + arrowBody: 2, + exportDefault: 4, + arrowFlowReturnType: 8, + forInitHead: 16, + forInHead: 32, + forOfHead: 64, + forInOrInitHeadAccumulate: 128, + forInOrInitHeadAccumulatePassThroughMask: 128 +}; +function expandAliases(obj) { + const map = new Map(); + function add(type, func) { + const fn = map.get(type); + map.set(type, fn ? function (node, parent, stack, getRawIdentifier) { + var _fn; + return (_fn = fn(node, parent, stack, getRawIdentifier)) != null ? _fn : func(node, parent, stack, getRawIdentifier); + } : func); + } + for (const type of Object.keys(obj)) { + const aliases = FLIPPED_ALIAS_KEYS[type]; + if (aliases) { + for (const alias of aliases) { + add(alias, obj[type]); + } + } else { + add(type, obj[type]); + } + } + return map; +} +const expandedParens = expandAliases(parens); +const expandedWhitespaceNodes = expandAliases(whitespace.nodes); +function isOrHasCallExpression(node) { + if (isCallExpression(node)) { + return true; + } + return isMemberExpression(node) && isOrHasCallExpression(node.object); +} +function needsWhitespace(node, parent, type) { + var _expandedWhitespaceNo; + if (!node) return false; + if (isExpressionStatement(node)) { + node = node.expression; + } + const flag = (_expandedWhitespaceNo = expandedWhitespaceNodes.get(node.type)) == null ? void 0 : _expandedWhitespaceNo(node, parent); + if (typeof flag === "number") { + return (flag & type) !== 0; + } + return false; +} +function needsWhitespaceBefore(node, parent) { + return needsWhitespace(node, parent, 1); +} +function needsWhitespaceAfter(node, parent) { + return needsWhitespace(node, parent, 2); +} +function needsParens(node, parent, tokenContext, getRawIdentifier) { + var _expandedParens$get; + if (!parent) return false; + if (isNewExpression(parent) && parent.callee === node) { + if (isOrHasCallExpression(node)) return true; + } + if (isDecorator(parent)) { + return !isDecoratorMemberExpression(node) && !(isCallExpression(node) && isDecoratorMemberExpression(node.callee)) && !isParenthesizedExpression(node); + } + return (_expandedParens$get = expandedParens.get(node.type)) == null ? void 0 : _expandedParens$get(node, parent, tokenContext, getRawIdentifier); +} +function isDecoratorMemberExpression(node) { + switch (node.type) { + case "Identifier": + return true; + case "MemberExpression": + return !node.computed && node.property.type === "Identifier" && isDecoratorMemberExpression(node.object); + default: + return false; + } +} +function isLastChild(parent, child) { + const visitorKeys = VISITOR_KEYS[parent.type]; + for (let i = visitorKeys.length - 1; i >= 0; i--) { + const val = parent[visitorKeys[i]]; + if (val === child) { + return true; + } else if (Array.isArray(val)) { + let j = val.length - 1; + while (j >= 0 && val[j] === null) j--; + return j >= 0 && val[j] === child; + } else if (val) { + return false; + } + } + return false; +} + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/node/index.js.map b/framework-core/node_modules/@babel/generator/lib/node/index.js.map new file mode 100644 index 0000000..2fbb904 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/node/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["whitespace","require","parens","_t","FLIPPED_ALIAS_KEYS","VISITOR_KEYS","isCallExpression","isDecorator","isExpressionStatement","isMemberExpression","isNewExpression","isParenthesizedExpression","TokenContext","exports","normal","expressionStatement","arrowBody","exportDefault","arrowFlowReturnType","forInitHead","forInHead","forOfHead","forInOrInitHeadAccumulate","forInOrInitHeadAccumulatePassThroughMask","expandAliases","obj","map","Map","add","type","func","fn","get","set","node","parent","stack","getRawIdentifier","_fn","Object","keys","aliases","alias","expandedParens","expandedWhitespaceNodes","nodes","isOrHasCallExpression","object","needsWhitespace","_expandedWhitespaceNo","expression","flag","needsWhitespaceBefore","needsWhitespaceAfter","needsParens","tokenContext","_expandedParens$get","callee","isDecoratorMemberExpression","computed","property","isLastChild","child","visitorKeys","i","length","val","Array","isArray","j"],"sources":["../../src/node/index.ts"],"sourcesContent":["import * as whitespace from \"./whitespace.ts\";\nimport * as parens from \"./parentheses.ts\";\nimport {\n FLIPPED_ALIAS_KEYS,\n VISITOR_KEYS,\n isCallExpression,\n isDecorator,\n isExpressionStatement,\n isMemberExpression,\n isNewExpression,\n isParenthesizedExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport type { WhitespaceFlag } from \"./whitespace.ts\";\n\nexport const enum TokenContext {\n normal = 0,\n expressionStatement = 1 << 0,\n arrowBody = 1 << 1,\n exportDefault = 1 << 2,\n arrowFlowReturnType = 1 << 3,\n forInitHead = 1 << 4,\n forInHead = 1 << 5,\n forOfHead = 1 << 6,\n // This flag lives across the token boundary, and will\n // be reset after forIn or forInit head is printed\n forInOrInitHeadAccumulate = 1 << 7,\n forInOrInitHeadAccumulatePassThroughMask = 0x80,\n}\n\ntype NodeHandler = (\n node: t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract\n // : t.Node,\n parent: t.Node,\n tokenContext?: number,\n getRawIdentifier?: (node: t.Identifier) => string,\n) => R;\n\nexport type NodeHandlers = {\n [K in string]?: NodeHandler;\n};\n\nfunction expandAliases(obj: NodeHandlers) {\n const map = new Map>();\n\n function add(type: string, func: NodeHandler) {\n const fn = map.get(type);\n map.set(\n type,\n fn\n ? function (node, parent, stack, getRawIdentifier) {\n return (\n fn(node, parent, stack, getRawIdentifier) ??\n func(node, parent, stack, getRawIdentifier)\n );\n }\n : func,\n );\n }\n\n for (const type of Object.keys(obj)) {\n const aliases = FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n for (const alias of aliases) {\n add(alias, obj[type]);\n }\n } else {\n add(type, obj[type]);\n }\n }\n\n return map;\n}\n\n// Rather than using `t.is` on each object property, we pre-expand any type aliases\n// into concrete types so that the 'find' call below can be as fast as possible.\nconst expandedParens = expandAliases(parens);\nconst expandedWhitespaceNodes = expandAliases(whitespace.nodes);\n\nfunction isOrHasCallExpression(node: t.Node): boolean {\n if (isCallExpression(node)) {\n return true;\n }\n\n return isMemberExpression(node) && isOrHasCallExpression(node.object);\n}\n\nexport function needsWhitespace(\n node: t.Node,\n parent: t.Node,\n type: WhitespaceFlag,\n): boolean {\n if (!node) return false;\n\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n const flag = expandedWhitespaceNodes.get(node.type)?.(node, parent);\n\n if (typeof flag === \"number\") {\n return (flag & type) !== 0;\n }\n\n return false;\n}\n\nexport function needsWhitespaceBefore(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 1);\n}\n\nexport function needsWhitespaceAfter(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 2);\n}\n\nexport function needsParens(\n node: t.Node,\n parent: t.Node,\n tokenContext?: number,\n getRawIdentifier?: (node: t.Identifier) => string,\n) {\n if (!parent) return false;\n\n if (isNewExpression(parent) && parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n\n if (isDecorator(parent)) {\n return (\n !isDecoratorMemberExpression(node) &&\n !(isCallExpression(node) && isDecoratorMemberExpression(node.callee)) &&\n !isParenthesizedExpression(node)\n );\n }\n\n return expandedParens.get(node.type)?.(\n node,\n parent,\n tokenContext,\n getRawIdentifier,\n );\n}\n\nfunction isDecoratorMemberExpression(node: t.Node): boolean {\n switch (node.type) {\n case \"Identifier\":\n return true;\n case \"MemberExpression\":\n return (\n !node.computed &&\n node.property.type === \"Identifier\" &&\n isDecoratorMemberExpression(node.object)\n );\n default:\n return false;\n }\n}\n\nexport function isLastChild(parent: t.Node, child: t.Node) {\n const visitorKeys = VISITOR_KEYS[parent.type];\n for (let i = visitorKeys.length - 1; i >= 0; i--) {\n const val = (parent as any)[visitorKeys[i]] as t.Node | t.Node[] | null;\n if (val === child) {\n return true;\n } else if (Array.isArray(val)) {\n let j = val.length - 1;\n while (j >= 0 && val[j] === null) j--;\n return j >= 0 && val[j] === child;\n } else if (val) {\n return false;\n }\n }\n return false;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/node/parentheses.js b/framework-core/node_modules/@babel/generator/lib/node/parentheses.js new file mode 100644 index 0000000..66eb16b --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/node/parentheses.js @@ -0,0 +1,262 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AssignmentExpression = AssignmentExpression; +exports.Binary = Binary; +exports.BinaryExpression = BinaryExpression; +exports.ClassExpression = ClassExpression; +exports.ArrowFunctionExpression = exports.ConditionalExpression = ConditionalExpression; +exports.DoExpression = DoExpression; +exports.FunctionExpression = FunctionExpression; +exports.FunctionTypeAnnotation = FunctionTypeAnnotation; +exports.Identifier = Identifier; +exports.LogicalExpression = LogicalExpression; +exports.NullableTypeAnnotation = NullableTypeAnnotation; +exports.ObjectExpression = ObjectExpression; +exports.OptionalIndexedAccessType = OptionalIndexedAccessType; +exports.OptionalCallExpression = exports.OptionalMemberExpression = OptionalMemberExpression; +exports.SequenceExpression = SequenceExpression; +exports.TSSatisfiesExpression = exports.TSAsExpression = TSAsExpression; +exports.TSConditionalType = TSConditionalType; +exports.TSConstructorType = exports.TSFunctionType = TSFunctionType; +exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; +exports.TSIntersectionType = TSIntersectionType; +exports.UnaryLike = exports.TSTypeAssertion = UnaryLike; +exports.TSTypeOperator = TSTypeOperator; +exports.TSUnionType = TSUnionType; +exports.IntersectionTypeAnnotation = exports.UnionTypeAnnotation = UnionTypeAnnotation; +exports.UpdateExpression = UpdateExpression; +exports.AwaitExpression = exports.YieldExpression = YieldExpression; +var _t = require("@babel/types"); +var _index = require("./index.js"); +const { + isArrayTypeAnnotation, + isBinaryExpression, + isCallExpression, + isForOfStatement, + isIndexedAccessType, + isMemberExpression, + isObjectPattern, + isOptionalMemberExpression, + isYieldExpression, + isStatement +} = _t; +const PRECEDENCE = new Map([["||", 0], ["??", 0], ["|>", 0], ["&&", 1], ["|", 2], ["^", 3], ["&", 4], ["==", 5], ["===", 5], ["!=", 5], ["!==", 5], ["<", 6], [">", 6], ["<=", 6], [">=", 6], ["in", 6], ["instanceof", 6], [">>", 7], ["<<", 7], [">>>", 7], ["+", 8], ["-", 8], ["*", 9], ["/", 9], ["%", 9], ["**", 10]]); +function getBinaryPrecedence(node, nodeType) { + if (nodeType === "BinaryExpression" || nodeType === "LogicalExpression") { + return PRECEDENCE.get(node.operator); + } + if (nodeType === "TSAsExpression" || nodeType === "TSSatisfiesExpression") { + return PRECEDENCE.get("in"); + } +} +function isTSTypeExpression(nodeType) { + return nodeType === "TSAsExpression" || nodeType === "TSSatisfiesExpression" || nodeType === "TSTypeAssertion"; +} +const isClassExtendsClause = (node, parent) => { + const parentType = parent.type; + return (parentType === "ClassDeclaration" || parentType === "ClassExpression") && parent.superClass === node; +}; +const hasPostfixPart = (node, parent) => { + const parentType = parent.type; + return (parentType === "MemberExpression" || parentType === "OptionalMemberExpression") && parent.object === node || (parentType === "CallExpression" || parentType === "OptionalCallExpression" || parentType === "NewExpression") && parent.callee === node || parentType === "TaggedTemplateExpression" && parent.tag === node || parentType === "TSNonNullExpression"; +}; +function NullableTypeAnnotation(node, parent) { + return isArrayTypeAnnotation(parent); +} +function FunctionTypeAnnotation(node, parent, tokenContext) { + const parentType = parent.type; + return (parentType === "UnionTypeAnnotation" || parentType === "IntersectionTypeAnnotation" || parentType === "ArrayTypeAnnotation" || Boolean(tokenContext & _index.TokenContext.arrowFlowReturnType) + ); +} +function UpdateExpression(node, parent) { + return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent); +} +function needsParenBeforeExpressionBrace(tokenContext) { + return Boolean(tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.arrowBody)); +} +function ObjectExpression(node, parent, tokenContext) { + return needsParenBeforeExpressionBrace(tokenContext); +} +function DoExpression(node, parent, tokenContext) { + return !node.async && Boolean(tokenContext & _index.TokenContext.expressionStatement); +} +function Binary(node, parent) { + const parentType = parent.type; + if (node.type === "BinaryExpression" && node.operator === "**" && parentType === "BinaryExpression" && parent.operator === "**") { + return parent.left === node; + } + if (isClassExtendsClause(node, parent)) { + return true; + } + if (hasPostfixPart(node, parent) || parentType === "UnaryExpression" || parentType === "SpreadElement" || parentType === "AwaitExpression") { + return true; + } + const parentPos = getBinaryPrecedence(parent, parentType); + if (parentPos != null) { + const nodePos = getBinaryPrecedence(node, node.type); + if (parentPos === nodePos && parentType === "BinaryExpression" && parent.right === node || parentPos > nodePos) { + return true; + } + } + return undefined; +} +function UnionTypeAnnotation(node, parent) { + const parentType = parent.type; + return parentType === "ArrayTypeAnnotation" || parentType === "NullableTypeAnnotation" || parentType === "IntersectionTypeAnnotation" || parentType === "UnionTypeAnnotation"; +} +function OptionalIndexedAccessType(node, parent) { + return isIndexedAccessType(parent) && parent.objectType === node; +} +function TSAsExpression(node, parent) { + if ((parent.type === "AssignmentExpression" || parent.type === "AssignmentPattern") && parent.left === node) { + return true; + } + if (parent.type === "BinaryExpression" && (parent.operator === "|" || parent.operator === "&") && node === parent.left) { + return true; + } + return Binary(node, parent); +} +function TSConditionalType(node, parent) { + const parentType = parent.type; + if (parentType === "TSArrayType" || parentType === "TSIndexedAccessType" && parent.objectType === node || parentType === "TSOptionalType" || parentType === "TSTypeOperator" || parentType === "TSTypeParameter") { + return true; + } + if ((parentType === "TSIntersectionType" || parentType === "TSUnionType") && parent.types[0] === node) { + return true; + } + if (parentType === "TSConditionalType" && (parent.checkType === node || parent.extendsType === node)) { + return true; + } + return false; +} +function TSUnionType(node, parent) { + const parentType = parent.type; + return parentType === "TSIntersectionType" || parentType === "TSTypeOperator" || parentType === "TSArrayType" || parentType === "TSIndexedAccessType" && parent.objectType === node || parentType === "TSOptionalType"; +} +function TSIntersectionType(node, parent) { + const parentType = parent.type; + return parentType === "TSTypeOperator" || parentType === "TSArrayType" || parentType === "TSIndexedAccessType" && parent.objectType === node || parentType === "TSOptionalType"; +} +function TSInferType(node, parent) { + const parentType = parent.type; + if (parentType === "TSArrayType" || parentType === "TSIndexedAccessType" && parent.objectType === node || parentType === "TSOptionalType") { + return true; + } + if (node.typeParameter.constraint) { + if ((parentType === "TSIntersectionType" || parentType === "TSUnionType") && parent.types[0] === node) { + return true; + } + } + return false; +} +function TSTypeOperator(node, parent) { + const parentType = parent.type; + return parentType === "TSArrayType" || parentType === "TSIndexedAccessType" && parent.objectType === node || parentType === "TSOptionalType"; +} +function TSInstantiationExpression(node, parent) { + const parentType = parent.type; + return (parentType === "CallExpression" || parentType === "OptionalCallExpression" || parentType === "NewExpression" || parentType === "TSInstantiationExpression") && !!parent.typeParameters; +} +function TSFunctionType(node, parent) { + const parentType = parent.type; + return parentType === "TSIntersectionType" || parentType === "TSUnionType" || parentType === "TSTypeOperator" || parentType === "TSOptionalType" || parentType === "TSArrayType" || parentType === "TSIndexedAccessType" && parent.objectType === node || parentType === "TSConditionalType" && (parent.checkType === node || parent.extendsType === node); +} +function BinaryExpression(node, parent, tokenContext) { + return node.operator === "in" && Boolean(tokenContext & _index.TokenContext.forInOrInitHeadAccumulate); +} +function SequenceExpression(node, parent) { + const parentType = parent.type; + if (parentType === "SequenceExpression" || parentType === "ParenthesizedExpression" || parentType === "MemberExpression" && parent.property === node || parentType === "OptionalMemberExpression" && parent.property === node || parentType === "TemplateLiteral") { + return false; + } + if (parentType === "ClassDeclaration") { + return true; + } + if (parentType === "ForOfStatement") { + return parent.right === node; + } + if (parentType === "ExportDefaultDeclaration") { + return true; + } + return !isStatement(parent); +} +function YieldExpression(node, parent) { + const parentType = parent.type; + return parentType === "BinaryExpression" || parentType === "LogicalExpression" || parentType === "UnaryExpression" || parentType === "SpreadElement" || hasPostfixPart(node, parent) || parentType === "AwaitExpression" && isYieldExpression(node) || parentType === "ConditionalExpression" && node === parent.test || isClassExtendsClause(node, parent) || isTSTypeExpression(parentType); +} +function ClassExpression(node, parent, tokenContext) { + return Boolean(tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.exportDefault)); +} +function UnaryLike(node, parent) { + return hasPostfixPart(node, parent) || isBinaryExpression(parent) && parent.operator === "**" && parent.left === node || isClassExtendsClause(node, parent); +} +function FunctionExpression(node, parent, tokenContext) { + return Boolean(tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.exportDefault)); +} +function ConditionalExpression(node, parent) { + const parentType = parent.type; + if (parentType === "UnaryExpression" || parentType === "SpreadElement" || parentType === "BinaryExpression" || parentType === "LogicalExpression" || parentType === "ConditionalExpression" && parent.test === node || parentType === "AwaitExpression" || isTSTypeExpression(parentType)) { + return true; + } + return UnaryLike(node, parent); +} +function OptionalMemberExpression(node, parent) { + return isCallExpression(parent) && parent.callee === node || isMemberExpression(parent) && parent.object === node; +} +function AssignmentExpression(node, parent, tokenContext) { + if (needsParenBeforeExpressionBrace(tokenContext) && isObjectPattern(node.left)) { + return true; + } else { + return ConditionalExpression(node, parent); + } +} +function LogicalExpression(node, parent) { + const parentType = parent.type; + if (isTSTypeExpression(parentType)) return true; + if (parentType !== "LogicalExpression") return false; + switch (node.operator) { + case "||": + return parent.operator === "??" || parent.operator === "&&"; + case "&&": + return parent.operator === "??"; + case "??": + return parent.operator !== "??"; + } +} +function Identifier(node, parent, tokenContext, getRawIdentifier) { + var _node$extra; + const parentType = parent.type; + if ((_node$extra = node.extra) != null && _node$extra.parenthesized && parentType === "AssignmentExpression" && parent.left === node) { + const rightType = parent.right.type; + if ((rightType === "FunctionExpression" || rightType === "ClassExpression") && parent.right.id == null) { + return true; + } + } + if (getRawIdentifier && getRawIdentifier(node) !== node.name) { + return false; + } + if (node.name === "let") { + const isFollowedByBracket = isMemberExpression(parent, { + object: node, + computed: true + }) || isOptionalMemberExpression(parent, { + object: node, + computed: true, + optional: false + }); + if (isFollowedByBracket && tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.forInitHead | _index.TokenContext.forInHead)) { + return true; + } + return Boolean(tokenContext & _index.TokenContext.forOfHead); + } + return node.name === "async" && isForOfStatement(parent, { + left: node, + await: false + }); +} + +//# sourceMappingURL=parentheses.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/node/parentheses.js.map b/framework-core/node_modules/@babel/generator/lib/node/parentheses.js.map new file mode 100644 index 0000000..2f6f18c --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/node/parentheses.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","_index","isArrayTypeAnnotation","isBinaryExpression","isCallExpression","isForOfStatement","isIndexedAccessType","isMemberExpression","isObjectPattern","isOptionalMemberExpression","isYieldExpression","isStatement","PRECEDENCE","Map","getBinaryPrecedence","node","nodeType","get","operator","isTSTypeExpression","isClassExtendsClause","parent","parentType","type","superClass","hasPostfixPart","object","callee","tag","NullableTypeAnnotation","FunctionTypeAnnotation","tokenContext","Boolean","TokenContext","arrowFlowReturnType","UpdateExpression","needsParenBeforeExpressionBrace","expressionStatement","arrowBody","ObjectExpression","DoExpression","async","Binary","left","parentPos","nodePos","right","undefined","UnionTypeAnnotation","OptionalIndexedAccessType","objectType","TSAsExpression","TSConditionalType","types","checkType","extendsType","TSUnionType","TSIntersectionType","TSInferType","typeParameter","constraint","TSTypeOperator","TSInstantiationExpression","typeParameters","TSFunctionType","BinaryExpression","forInOrInitHeadAccumulate","SequenceExpression","property","YieldExpression","test","ClassExpression","exportDefault","UnaryLike","FunctionExpression","ConditionalExpression","OptionalMemberExpression","AssignmentExpression","LogicalExpression","Identifier","getRawIdentifier","_node$extra","extra","parenthesized","rightType","id","name","isFollowedByBracket","computed","optional","forInitHead","forInHead","forOfHead","await"],"sources":["../../src/node/parentheses.ts"],"sourcesContent":["import {\n isArrayTypeAnnotation,\n isBinaryExpression,\n isCallExpression,\n isForOfStatement,\n isIndexedAccessType,\n isMemberExpression,\n isObjectPattern,\n isOptionalMemberExpression,\n isYieldExpression,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport { TokenContext } from \"./index.ts\";\n\nconst PRECEDENCE = new Map([\n [\"||\", 0],\n [\"??\", 0],\n [\"|>\", 0],\n [\"&&\", 1],\n [\"|\", 2],\n [\"^\", 3],\n [\"&\", 4],\n [\"==\", 5],\n [\"===\", 5],\n [\"!=\", 5],\n [\"!==\", 5],\n [\"<\", 6],\n [\">\", 6],\n [\"<=\", 6],\n [\">=\", 6],\n [\"in\", 6],\n [\"instanceof\", 6],\n [\">>\", 7],\n [\"<<\", 7],\n [\">>>\", 7],\n [\"+\", 8],\n [\"-\", 8],\n [\"*\", 9],\n [\"/\", 9],\n [\"%\", 9],\n [\"**\", 10],\n]);\n\nfunction getBinaryPrecedence(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n nodeType: string,\n): number;\nfunction getBinaryPrecedence(\n node: t.Node,\n nodeType: string,\n): number | undefined;\nfunction getBinaryPrecedence(node: t.Node, nodeType: string) {\n if (nodeType === \"BinaryExpression\" || nodeType === \"LogicalExpression\") {\n return PRECEDENCE.get((node as t.Binary).operator);\n }\n if (nodeType === \"TSAsExpression\" || nodeType === \"TSSatisfiesExpression\") {\n return PRECEDENCE.get(\"in\");\n }\n}\n\nfunction isTSTypeExpression(nodeType: string) {\n return (\n nodeType === \"TSAsExpression\" ||\n nodeType === \"TSSatisfiesExpression\" ||\n nodeType === \"TSTypeAssertion\"\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: t.Node,\n): parent is t.Class => {\n const parentType = parent.type;\n return (\n (parentType === \"ClassDeclaration\" || parentType === \"ClassExpression\") &&\n parent.superClass === node\n );\n};\n\nconst hasPostfixPart = (node: t.Node, parent: t.Node) => {\n const parentType = parent.type;\n return (\n ((parentType === \"MemberExpression\" ||\n parentType === \"OptionalMemberExpression\") &&\n parent.object === node) ||\n ((parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\") &&\n parent.callee === node) ||\n (parentType === \"TaggedTemplateExpression\" && parent.tag === node) ||\n parentType === \"TSNonNullExpression\"\n );\n};\n\nexport function NullableTypeAnnotation(\n node: t.NullableTypeAnnotation,\n parent: t.Node,\n): boolean {\n return isArrayTypeAnnotation(parent);\n}\n\nexport function FunctionTypeAnnotation(\n node: t.FunctionTypeAnnotation,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n const parentType = parent.type;\n return (\n // (() => A) | (() => B)\n parentType === \"UnionTypeAnnotation\" ||\n // (() => A) & (() => B)\n parentType === \"IntersectionTypeAnnotation\" ||\n // (() => A)[]\n parentType === \"ArrayTypeAnnotation\" ||\n Boolean(tokenContext & TokenContext.arrowFlowReturnType)\n );\n}\n\nexport function UpdateExpression(\n node: t.UpdateExpression,\n parent: t.Node,\n): boolean {\n return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent);\n}\n\nfunction needsParenBeforeExpressionBrace(tokenContext: number) {\n return Boolean(\n tokenContext & (TokenContext.expressionStatement | TokenContext.arrowBody),\n );\n}\n\nexport function ObjectExpression(\n node: t.ObjectExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return needsParenBeforeExpressionBrace(tokenContext);\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n // `async do` can start an expression statement\n return (\n !node.async && Boolean(tokenContext & TokenContext.expressionStatement)\n );\n}\n\nexport function Binary(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean | undefined {\n const parentType = parent.type;\n if (\n node.type === \"BinaryExpression\" &&\n node.operator === \"**\" &&\n parentType === \"BinaryExpression\" &&\n parent.operator === \"**\"\n ) {\n return parent.left === node;\n }\n\n if (isClassExtendsClause(node, parent)) {\n return true;\n }\n\n if (\n hasPostfixPart(node, parent) ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"AwaitExpression\"\n ) {\n return true;\n }\n\n const parentPos = getBinaryPrecedence(parent, parentType);\n if (parentPos != null) {\n const nodePos = getBinaryPrecedence(node, node.type);\n if (\n // Logical expressions with the same precedence don't need parens.\n (parentPos === nodePos &&\n parentType === \"BinaryExpression\" &&\n parent.right === node) ||\n parentPos > nodePos\n ) {\n return true;\n }\n }\n\n return undefined;\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"ArrayTypeAnnotation\" ||\n parentType === \"NullableTypeAnnotation\" ||\n parentType === \"IntersectionTypeAnnotation\" ||\n parentType === \"UnionTypeAnnotation\"\n );\n}\n\nexport { UnionTypeAnnotation as IntersectionTypeAnnotation };\n\nexport function OptionalIndexedAccessType(\n node: t.OptionalIndexedAccessType,\n parent: t.Node,\n): boolean {\n return isIndexedAccessType(parent) && parent.objectType === node;\n}\n\nexport function TSAsExpression(\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean {\n if (\n (parent.type === \"AssignmentExpression\" ||\n parent.type === \"AssignmentPattern\") &&\n parent.left === node\n ) {\n return true;\n }\n if (\n parent.type === \"BinaryExpression\" &&\n (parent.operator === \"|\" || parent.operator === \"&\") &&\n node === parent.left\n ) {\n return true;\n }\n return Binary(node, parent);\n}\n\nexport { TSAsExpression as TSSatisfiesExpression };\n\nexport { UnaryLike as TSTypeAssertion };\n\nexport function TSConditionalType(\n node: t.TSConditionalType,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\" ||\n parentType === \"TSTypeOperator\" ||\n // for `infer K extends (L extends M ? M : ...)`\n parentType === \"TSTypeParameter\"\n ) {\n return true;\n }\n if (\n (parentType === \"TSIntersectionType\" || parentType === \"TSUnionType\") &&\n parent.types[0] === node\n ) {\n return true;\n }\n if (\n parentType === \"TSConditionalType\" &&\n (parent.checkType === node || parent.extendsType === node)\n ) {\n return true;\n }\n return false;\n}\n\nexport function TSUnionType(node: t.TSUnionType, parent: t.Node): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSIntersectionType\" ||\n parentType === \"TSTypeOperator\" ||\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\"\n );\n}\n\nexport function TSIntersectionType(\n node: t.TSUnionType,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSTypeOperator\" ||\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\"\n );\n}\n\nexport function TSInferType(node: t.TSInferType, parent: t.Node): boolean {\n const parentType = parent.type;\n if (\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\"\n ) {\n return true;\n }\n if (node.typeParameter.constraint) {\n if (\n (parentType === \"TSIntersectionType\" || parentType === \"TSUnionType\") &&\n parent.types[0] === node\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function TSTypeOperator(\n node: t.TSTypeOperator,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\"\n );\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: t.Node,\n) {\n const parentType = parent.type;\n return (\n (parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\" ||\n parentType === \"TSInstantiationExpression\") &&\n !!(process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n parent.typeArguments\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n parent.typeParameters)\n );\n}\n\nexport function TSFunctionType(\n node: t.TSFunctionType,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSIntersectionType\" ||\n parentType === \"TSUnionType\" ||\n parentType === \"TSTypeOperator\" ||\n parentType === \"TSOptionalType\" ||\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n (parentType === \"TSConditionalType\" &&\n (parent.checkType === node || parent.extendsType === node))\n );\n}\n\nexport { TSFunctionType as TSConstructorType };\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n // for ((1 in []);;);\n // for (var x = (1 in []) in 2);\n return (\n node.operator === \"in\" &&\n Boolean(tokenContext & TokenContext.forInOrInitHeadAccumulate)\n );\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"SequenceExpression\" ||\n parentType === \"ParenthesizedExpression\" ||\n (parentType === \"MemberExpression\" && parent.property === node) ||\n (parentType === \"OptionalMemberExpression\" && parent.property === node) ||\n parentType === \"TemplateLiteral\"\n ) {\n return false;\n }\n if (parentType === \"ClassDeclaration\") {\n return true;\n }\n if (parentType === \"ForOfStatement\") {\n return parent.right === node;\n }\n if (parentType === \"ExportDefaultDeclaration\") {\n return true;\n }\n\n return !isStatement(parent);\n}\n\nexport function YieldExpression(\n node: t.YieldExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n hasPostfixPart(node, parent) ||\n (parentType === \"AwaitExpression\" && isYieldExpression(node)) ||\n (parentType === \"ConditionalExpression\" && node === parent.test) ||\n isClassExtendsClause(node, parent) ||\n isTSTypeExpression(parentType)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault),\n );\n}\n\nexport function UnaryLike(\n node:\n | t.UnaryLike\n | t.TSTypeAssertion\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n return (\n hasPostfixPart(node, parent) ||\n (isBinaryExpression(parent) &&\n parent.operator === \"**\" &&\n parent.left === node) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault),\n );\n}\n\nexport function ConditionalExpression(\n node:\n | t.ConditionalExpression\n | t.ArrowFunctionExpression\n | t.AssignmentExpression,\n parent?: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n (parentType === \"ConditionalExpression\" && parent.test === node) ||\n parentType === \"AwaitExpression\" ||\n isTSTypeExpression(parentType)\n ) {\n return true;\n }\n\n return UnaryLike(node, parent);\n}\n\nexport { ConditionalExpression as ArrowFunctionExpression };\n\nexport function OptionalMemberExpression(\n node: t.OptionalMemberExpression,\n parent: t.Node,\n): boolean {\n return (\n (isCallExpression(parent) && parent.callee === node) ||\n (isMemberExpression(parent) && parent.object === node)\n );\n}\n\nexport { OptionalMemberExpression as OptionalCallExpression };\n\nexport function AssignmentExpression(\n node: t.AssignmentExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n if (\n needsParenBeforeExpressionBrace(tokenContext) &&\n isObjectPattern(node.left)\n ) {\n return true;\n } else {\n return ConditionalExpression(node, parent);\n }\n}\n\nexport function LogicalExpression(\n node: t.LogicalExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (isTSTypeExpression(parentType)) return true;\n if (parentType !== \"LogicalExpression\") return false;\n switch (node.operator) {\n case \"||\":\n return parent.operator === \"??\" || parent.operator === \"&&\";\n case \"&&\":\n return parent.operator === \"??\";\n case \"??\":\n return parent.operator !== \"??\";\n }\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: t.Node,\n tokenContext: number,\n getRawIdentifier: (node: t.Identifier) => string,\n): boolean {\n const parentType = parent.type;\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n node.extra?.parenthesized &&\n parentType === \"AssignmentExpression\" &&\n parent.left === node\n ) {\n const rightType = parent.right.type;\n if (\n (rightType === \"FunctionExpression\" || rightType === \"ClassExpression\") &&\n parent.right.id == null\n ) {\n return true;\n }\n }\n\n if (getRawIdentifier && getRawIdentifier(node) !== node.name) {\n return false;\n }\n\n // Non-strict code allows the identifier `let`, but it cannot occur as-is in\n // certain contexts to avoid ambiguity with contextual keyword `let`.\n if (node.name === \"let\") {\n // Some contexts only forbid `let [`, so check if the next token would\n // be the left bracket of a computed member expression.\n const isFollowedByBracket =\n isMemberExpression(parent, {\n object: node,\n computed: true,\n }) ||\n isOptionalMemberExpression(parent, {\n object: node,\n computed: true,\n optional: false,\n });\n if (\n isFollowedByBracket &&\n tokenContext &\n (TokenContext.expressionStatement |\n TokenContext.forInitHead |\n TokenContext.forInHead)\n ) {\n return true;\n }\n return Boolean(tokenContext & TokenContext.forOfHead);\n }\n\n // ECMAScript specifically forbids a for-of loop from starting with the\n // token sequence `for (async of`, because it would be ambiguous with\n // `for (async of => {};;)`, so we need to add extra parentheses.\n return (\n node.name === \"async\" &&\n isForOfStatement(parent, { left: node, await: false })\n );\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/node/whitespace.js b/framework-core/node_modules/@babel/generator/lib/node/whitespace.js new file mode 100644 index 0000000..181b956 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/node/whitespace.js @@ -0,0 +1,145 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.nodes = void 0; +var _t = require("@babel/types"); +const { + FLIPPED_ALIAS_KEYS, + isArrayExpression, + isAssignmentExpression, + isBinary, + isBlockStatement, + isCallExpression, + isFunction, + isIdentifier, + isLiteral, + isMemberExpression, + isObjectExpression, + isOptionalCallExpression, + isOptionalMemberExpression, + isStringLiteral +} = _t; +function crawlInternal(node, state) { + if (!node) return state; + if (isMemberExpression(node) || isOptionalMemberExpression(node)) { + crawlInternal(node.object, state); + if (node.computed) crawlInternal(node.property, state); + } else if (isBinary(node) || isAssignmentExpression(node)) { + crawlInternal(node.left, state); + crawlInternal(node.right, state); + } else if (isCallExpression(node) || isOptionalCallExpression(node)) { + state.hasCall = true; + crawlInternal(node.callee, state); + } else if (isFunction(node)) { + state.hasFunction = true; + } else if (isIdentifier(node)) { + state.hasHelper = state.hasHelper || node.callee && isHelper(node.callee); + } + return state; +} +function crawl(node) { + return crawlInternal(node, { + hasCall: false, + hasFunction: false, + hasHelper: false + }); +} +function isHelper(node) { + if (!node) return false; + if (isMemberExpression(node)) { + return isHelper(node.object) || isHelper(node.property); + } else if (isIdentifier(node)) { + return node.name === "require" || node.name.charCodeAt(0) === 95; + } else if (isCallExpression(node)) { + return isHelper(node.callee); + } else if (isBinary(node) || isAssignmentExpression(node)) { + return isIdentifier(node.left) && isHelper(node.left) || isHelper(node.right); + } else { + return false; + } +} +function isType(node) { + return isLiteral(node) || isObjectExpression(node) || isArrayExpression(node) || isIdentifier(node) || isMemberExpression(node); +} +const nodes = exports.nodes = { + AssignmentExpression(node) { + const state = crawl(node.right); + if (state.hasCall && state.hasHelper || state.hasFunction) { + return state.hasFunction ? 1 | 2 : 2; + } + }, + SwitchCase(node, parent) { + return (!!node.consequent.length || parent.cases[0] === node ? 1 : 0) | (!node.consequent.length && parent.cases[parent.cases.length - 1] === node ? 2 : 0); + }, + LogicalExpression(node) { + if (isFunction(node.left) || isFunction(node.right)) { + return 2; + } + }, + Literal(node) { + if (isStringLiteral(node) && node.value === "use strict") { + return 2; + } + }, + CallExpression(node) { + if (isFunction(node.callee) || isHelper(node)) { + return 1 | 2; + } + }, + OptionalCallExpression(node) { + if (isFunction(node.callee)) { + return 1 | 2; + } + }, + VariableDeclaration(node) { + for (let i = 0; i < node.declarations.length; i++) { + const declar = node.declarations[i]; + let enabled = isHelper(declar.id) && !isType(declar.init); + if (!enabled && declar.init) { + const state = crawl(declar.init); + enabled = isHelper(declar.init) && state.hasCall || state.hasFunction; + } + if (enabled) { + return 1 | 2; + } + } + }, + IfStatement(node) { + if (isBlockStatement(node.consequent)) { + return 1 | 2; + } + } +}; +nodes.ObjectProperty = nodes.ObjectTypeProperty = nodes.ObjectMethod = function (node, parent) { + if (parent.properties[0] === node) { + return 1; + } +}; +nodes.ObjectTypeCallProperty = function (node, parent) { + var _parent$properties; + if (parent.callProperties[0] === node && !((_parent$properties = parent.properties) != null && _parent$properties.length)) { + return 1; + } +}; +nodes.ObjectTypeIndexer = function (node, parent) { + var _parent$properties2, _parent$callPropertie; + if (parent.indexers[0] === node && !((_parent$properties2 = parent.properties) != null && _parent$properties2.length) && !((_parent$callPropertie = parent.callProperties) != null && _parent$callPropertie.length)) { + return 1; + } +}; +nodes.ObjectTypeInternalSlot = function (node, parent) { + var _parent$properties3, _parent$callPropertie2, _parent$indexers; + if (parent.internalSlots[0] === node && !((_parent$properties3 = parent.properties) != null && _parent$properties3.length) && !((_parent$callPropertie2 = parent.callProperties) != null && _parent$callPropertie2.length) && !((_parent$indexers = parent.indexers) != null && _parent$indexers.length)) { + return 1; + } +}; +[["Function", true], ["Class", true], ["Loop", true], ["LabeledStatement", true], ["SwitchStatement", true], ["TryStatement", true]].forEach(function ([type, amounts]) { + [type].concat(FLIPPED_ALIAS_KEYS[type] || []).forEach(function (type) { + const ret = amounts ? 1 | 2 : 0; + nodes[type] = () => ret; + }); +}); + +//# sourceMappingURL=whitespace.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/node/whitespace.js.map b/framework-core/node_modules/@babel/generator/lib/node/whitespace.js.map new file mode 100644 index 0000000..dea7ddc --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/node/whitespace.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_t","require","FLIPPED_ALIAS_KEYS","isArrayExpression","isAssignmentExpression","isBinary","isBlockStatement","isCallExpression","isFunction","isIdentifier","isLiteral","isMemberExpression","isObjectExpression","isOptionalCallExpression","isOptionalMemberExpression","isStringLiteral","crawlInternal","node","state","object","computed","property","left","right","hasCall","callee","hasFunction","hasHelper","isHelper","crawl","name","charCodeAt","isType","nodes","exports","AssignmentExpression","SwitchCase","parent","consequent","length","cases","LogicalExpression","Literal","value","CallExpression","OptionalCallExpression","VariableDeclaration","i","declarations","declar","enabled","id","init","IfStatement","ObjectProperty","ObjectTypeProperty","ObjectMethod","properties","ObjectTypeCallProperty","_parent$properties","callProperties","ObjectTypeIndexer","_parent$properties2","_parent$callPropertie","indexers","ObjectTypeInternalSlot","_parent$properties3","_parent$callPropertie2","_parent$indexers","internalSlots","forEach","type","amounts","concat","ret"],"sources":["../../src/node/whitespace.ts"],"sourcesContent":["import {\n FLIPPED_ALIAS_KEYS,\n isArrayExpression,\n isAssignmentExpression,\n isBinary,\n isBlockStatement,\n isCallExpression,\n isFunction,\n isIdentifier,\n isLiteral,\n isMemberExpression,\n isObjectExpression,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isStringLiteral,\n} from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nimport type { NodeHandlers } from \"./index.ts\";\n\nimport type * as t from \"@babel/types\";\n\nconst enum WhitespaceFlag {\n before = 1 << 0,\n after = 1 << 1,\n}\n\nexport type { WhitespaceFlag };\n\nfunction crawlInternal(\n node: t.Node,\n state: { hasCall: boolean; hasFunction: boolean; hasHelper: boolean },\n) {\n if (!node) return state;\n\n if (isMemberExpression(node) || isOptionalMemberExpression(node)) {\n crawlInternal(node.object, state);\n if (node.computed) crawlInternal(node.property, state);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n crawlInternal(node.left, state);\n crawlInternal(node.right, state);\n } else if (isCallExpression(node) || isOptionalCallExpression(node)) {\n state.hasCall = true;\n crawlInternal(node.callee, state);\n } else if (isFunction(node)) {\n state.hasFunction = true;\n } else if (isIdentifier(node)) {\n state.hasHelper =\n // @ts-expect-error todo(flow->ts): node.callee is not really expected here…\n state.hasHelper || (node.callee && isHelper(node.callee));\n }\n\n return state;\n}\n\n/**\n * Crawl a node to test if it contains a CallExpression, a Function, or a Helper.\n *\n * @example\n * crawl(node)\n * // { hasCall: false, hasFunction: true, hasHelper: false }\n */\n\nfunction crawl(node: t.Node) {\n return crawlInternal(node, {\n hasCall: false,\n hasFunction: false,\n hasHelper: false,\n });\n}\n\n/**\n * Test if a node is or has a helper.\n */\n\nfunction isHelper(node: t.Node): boolean {\n if (!node) return false;\n\n if (isMemberExpression(node)) {\n return isHelper(node.object) || isHelper(node.property);\n } else if (isIdentifier(node)) {\n return (\n node.name === \"require\" ||\n node.name.charCodeAt(0) === charCodes.underscore\n );\n } else if (isCallExpression(node)) {\n return isHelper(node.callee);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n return (\n (isIdentifier(node.left) && isHelper(node.left)) || isHelper(node.right)\n );\n } else {\n return false;\n }\n}\n\nfunction isType(node: t.Node) {\n return (\n isLiteral(node) ||\n isObjectExpression(node) ||\n isArrayExpression(node) ||\n isIdentifier(node) ||\n isMemberExpression(node)\n );\n}\n\n/**\n * Tests for node types that need whitespace.\n */\n\nexport const nodes: NodeHandlers = {\n /**\n * Test if AssignmentExpression needs whitespace.\n */\n\n AssignmentExpression(node: t.AssignmentExpression): WhitespaceFlag {\n const state = crawl(node.right);\n if ((state.hasCall && state.hasHelper) || state.hasFunction) {\n return state.hasFunction\n ? WhitespaceFlag.before | WhitespaceFlag.after\n : WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if SwitchCase needs whitespace.\n */\n\n SwitchCase(node: t.SwitchCase, parent: t.SwitchStatement): WhitespaceFlag {\n return (\n (!!node.consequent.length || parent.cases[0] === node\n ? WhitespaceFlag.before\n : 0) |\n (!node.consequent.length && parent.cases[parent.cases.length - 1] === node\n ? WhitespaceFlag.after\n : 0)\n );\n },\n\n /**\n * Test if LogicalExpression needs whitespace.\n */\n\n LogicalExpression(node: t.LogicalExpression): WhitespaceFlag {\n if (isFunction(node.left) || isFunction(node.right)) {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if Literal needs whitespace.\n */\n\n Literal(node: t.Literal): WhitespaceFlag {\n if (isStringLiteral(node) && node.value === \"use strict\") {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if CallExpressionish needs whitespace.\n */\n\n CallExpression(node: t.CallExpression): WhitespaceFlag {\n if (isFunction(node.callee) || isHelper(node)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n OptionalCallExpression(node: t.OptionalCallExpression): WhitespaceFlag {\n if (isFunction(node.callee)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if VariableDeclaration needs whitespace.\n */\n\n VariableDeclaration(node: t.VariableDeclaration): WhitespaceFlag {\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n let enabled = isHelper(declar.id) && !isType(declar.init);\n if (!enabled && declar.init) {\n const state = crawl(declar.init);\n enabled = (isHelper(declar.init) && state.hasCall) || state.hasFunction;\n }\n\n if (enabled) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n }\n },\n\n /**\n * Test if IfStatement needs whitespace.\n */\n\n IfStatement(node: t.IfStatement): WhitespaceFlag {\n if (isBlockStatement(node.consequent)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n};\n\n/**\n * Test if Property needs whitespace.\n */\n\nnodes.ObjectProperty =\n nodes.ObjectTypeProperty =\n nodes.ObjectMethod =\n function (\n node: t.ObjectProperty | t.ObjectTypeProperty | t.ObjectMethod,\n parent: t.ObjectExpression,\n ): WhitespaceFlag {\n if (parent.properties[0] === node) {\n return WhitespaceFlag.before;\n }\n };\n\nnodes.ObjectTypeCallProperty = function (\n node: t.ObjectTypeCallProperty,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (parent.callProperties[0] === node && !parent.properties?.length) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeIndexer = function (\n node: t.ObjectTypeIndexer,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.indexers[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeInternalSlot = function (\n node: t.ObjectTypeInternalSlot,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.internalSlots[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length &&\n !parent.indexers?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\n/**\n * Add whitespace tests for nodes and their aliases.\n */\n\n(\n [\n [\"Function\", true],\n [\"Class\", true],\n [\"Loop\", true],\n [\"LabeledStatement\", true],\n [\"SwitchStatement\", true],\n [\"TryStatement\", true],\n ] as const\n).forEach(function ([type, amounts]) {\n [type as string]\n .concat(FLIPPED_ALIAS_KEYS[type] || [])\n .forEach(function (type) {\n const ret = amounts ? WhitespaceFlag.before | WhitespaceFlag.after : 0;\n nodes[type] = () => ret;\n });\n});\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/generator/lib/printer.js b/framework-core/node_modules/@babel/generator/lib/printer.js new file mode 100644 index 0000000..2977e63 --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/printer.js @@ -0,0 +1,781 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _buffer = require("./buffer.js"); +var _index = require("./node/index.js"); +var n = _index; +var _t = require("@babel/types"); +var _tokenMap = require("./token-map.js"); +var generatorFunctions = require("./generators/index.js"); +var _deprecated = require("./generators/deprecated.js"); +const { + isExpression, + isFunction, + isStatement, + isClassBody, + isTSInterfaceBody, + isTSEnumMember +} = _t; +const SCIENTIFIC_NOTATION = /e/i; +const ZERO_DECIMAL_INTEGER = /\.0+$/; +const HAS_NEWLINE = /[\n\r\u2028\u2029]/; +const HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\n\r\u2028\u2029]|\*\//; +function commentIsNewline(c) { + return c.type === "CommentLine" || HAS_NEWLINE.test(c.value); +} +const { + needsParens +} = n; +class Printer { + constructor(format, map, tokens, originalCode) { + this.tokenContext = _index.TokenContext.normal; + this._tokens = null; + this._originalCode = null; + this._currentNode = null; + this._indent = 0; + this._indentRepeat = 0; + this._insideAux = false; + this._noLineTerminator = false; + this._noLineTerminatorAfterNode = null; + this._printAuxAfterOnNextUserNode = false; + this._printedComments = new Set(); + this._endsWithInteger = false; + this._endsWithWord = false; + this._endsWithDiv = false; + this._lastCommentLine = 0; + this._endsWithInnerRaw = false; + this._indentInnerComments = true; + this.tokenMap = null; + this._boundGetRawIdentifier = this._getRawIdentifier.bind(this); + this._printSemicolonBeforeNextNode = -1; + this._printSemicolonBeforeNextToken = -1; + this.format = format; + this._tokens = tokens; + this._originalCode = originalCode; + this._indentRepeat = format.indent.style.length; + this._inputMap = map == null ? void 0 : map._inputMap; + this._buf = new _buffer.default(map, format.indent.style[0]); + } + enterForStatementInit() { + this.tokenContext |= _index.TokenContext.forInitHead | _index.TokenContext.forInOrInitHeadAccumulate; + return () => this.tokenContext = _index.TokenContext.normal; + } + enterForXStatementInit(isForOf) { + if (isForOf) { + this.tokenContext |= _index.TokenContext.forOfHead; + return null; + } else { + this.tokenContext |= _index.TokenContext.forInHead | _index.TokenContext.forInOrInitHeadAccumulate; + return () => this.tokenContext = _index.TokenContext.normal; + } + } + enterDelimited() { + const oldTokenContext = this.tokenContext; + const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode; + if (!(oldTokenContext & _index.TokenContext.forInOrInitHeadAccumulate) && oldNoLineTerminatorAfterNode === null) { + return () => {}; + } + this._noLineTerminatorAfterNode = null; + this.tokenContext = _index.TokenContext.normal; + return () => { + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + this.tokenContext = oldTokenContext; + }; + } + generate(ast) { + if (this.format.preserveFormat) { + this.tokenMap = new _tokenMap.TokenMap(ast, this._tokens, this._originalCode); + } + this.print(ast); + this._maybeAddAuxComment(); + return this._buf.get(); + } + indent() { + const { + format + } = this; + if (format.preserveFormat || format.compact || format.concise) { + return; + } + this._indent++; + } + dedent() { + const { + format + } = this; + if (format.preserveFormat || format.compact || format.concise) { + return; + } + this._indent--; + } + semicolon(force = false) { + this._maybeAddAuxComment(); + if (force) { + this._appendChar(59); + this._noLineTerminator = false; + return; + } + if (this.tokenMap) { + const node = this._currentNode; + if (node.start != null && node.end != null) { + if (!this.tokenMap.endMatches(node, ";")) { + this._printSemicolonBeforeNextNode = this._buf.getCurrentLine(); + return; + } + const indexes = this.tokenMap.getIndexes(this._currentNode); + this._catchUpTo(this._tokens[indexes[indexes.length - 1]].loc.start); + } + } + this._queue(59); + this._noLineTerminator = false; + } + rightBrace(node) { + if (this.format.minified) { + this._buf.removeLastSemicolon(); + } + this.sourceWithOffset("end", node.loc, -1); + this.tokenChar(125); + } + rightParens(node) { + this.sourceWithOffset("end", node.loc, -1); + this.tokenChar(41); + } + space(force = false) { + const { + format + } = this; + if (format.compact || format.preserveFormat) return; + if (force) { + this._space(); + } else if (this._buf.hasContent()) { + const lastCp = this.getLastChar(); + if (lastCp !== 32 && lastCp !== 10) { + this._space(); + } + } + } + word(str, noLineTerminatorAfter = false) { + this.tokenContext &= _index.TokenContext.forInOrInitHeadAccumulatePassThroughMask; + this._maybePrintInnerComments(str); + this._maybeAddAuxComment(); + if (this.tokenMap) this._catchUpToCurrentToken(str); + if (this._endsWithWord || this._endsWithDiv && str.charCodeAt(0) === 47) { + this._space(); + } + this._append(str, false); + this._endsWithWord = true; + this._noLineTerminator = noLineTerminatorAfter; + } + number(str, number) { + function isNonDecimalLiteral(str) { + if (str.length > 2 && str.charCodeAt(0) === 48) { + const secondChar = str.charCodeAt(1); + return secondChar === 98 || secondChar === 111 || secondChar === 120; + } + return false; + } + this.word(str); + this._endsWithInteger = Number.isInteger(number) && !isNonDecimalLiteral(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== 46; + } + token(str, maybeNewline = false, occurrenceCount = 0) { + this.tokenContext &= _index.TokenContext.forInOrInitHeadAccumulatePassThroughMask; + this._maybePrintInnerComments(str, occurrenceCount); + this._maybeAddAuxComment(); + if (this.tokenMap) this._catchUpToCurrentToken(str, occurrenceCount); + const lastChar = this.getLastChar(); + const strFirst = str.charCodeAt(0); + if (lastChar === 33 && (str === "--" || strFirst === 61) || strFirst === 43 && lastChar === 43 || strFirst === 45 && lastChar === 45 || strFirst === 46 && this._endsWithInteger) { + this._space(); + } + this._append(str, maybeNewline); + this._noLineTerminator = false; + } + tokenChar(char) { + this.tokenContext &= _index.TokenContext.forInOrInitHeadAccumulatePassThroughMask; + const str = String.fromCharCode(char); + this._maybePrintInnerComments(str); + this._maybeAddAuxComment(); + if (this.tokenMap) this._catchUpToCurrentToken(str); + const lastChar = this.getLastChar(); + if (char === 43 && lastChar === 43 || char === 45 && lastChar === 45 || char === 46 && this._endsWithInteger) { + this._space(); + } + this._appendChar(char); + this._noLineTerminator = false; + } + newline(i = 1, force) { + if (i <= 0) return; + if (!force) { + if (this.format.retainLines || this.format.compact) return; + if (this.format.concise) { + this.space(); + return; + } + } + if (i > 2) i = 2; + i -= this._buf.getNewlineCount(); + for (let j = 0; j < i; j++) { + this._newline(); + } + return; + } + endsWith(char) { + return this.getLastChar() === char; + } + getLastChar() { + return this._buf.getLastChar(); + } + endsWithCharAndNewline() { + return this._buf.endsWithCharAndNewline(); + } + removeTrailingNewline() { + this._buf.removeTrailingNewline(); + } + exactSource(loc, cb) { + if (!loc) { + cb(); + return; + } + this._catchUp("start", loc); + this._buf.exactSource(loc, cb); + } + source(prop, loc) { + if (!loc) return; + this._catchUp(prop, loc); + this._buf.source(prop, loc); + } + sourceWithOffset(prop, loc, columnOffset) { + if (!loc || this.format.preserveFormat) return; + this._catchUp(prop, loc); + this._buf.sourceWithOffset(prop, loc, columnOffset); + } + sourceIdentifierName(identifierName, pos) { + if (!this._buf._canMarkIdName) return; + const sourcePosition = this._buf._sourcePosition; + sourcePosition.identifierNamePos = pos; + sourcePosition.identifierName = identifierName; + } + _space() { + this._queue(32); + } + _newline() { + this._queue(10); + } + _catchUpToCurrentToken(str, occurrenceCount = 0) { + const token = this.tokenMap.findMatching(this._currentNode, str, occurrenceCount); + if (token) this._catchUpTo(token.loc.start); + if (this._printSemicolonBeforeNextToken !== -1 && this._printSemicolonBeforeNextToken === this._buf.getCurrentLine()) { + this._buf.appendChar(59); + this._endsWithWord = false; + this._endsWithInteger = false; + this._endsWithDiv = false; + } + this._printSemicolonBeforeNextToken = -1; + this._printSemicolonBeforeNextNode = -1; + } + _append(str, maybeNewline) { + this._maybeIndent(str.charCodeAt(0)); + this._buf.append(str, maybeNewline); + this._endsWithWord = false; + this._endsWithInteger = false; + this._endsWithDiv = false; + } + _appendChar(char) { + this._maybeIndent(char); + this._buf.appendChar(char); + this._endsWithWord = false; + this._endsWithInteger = false; + this._endsWithDiv = false; + } + _queue(char) { + this._maybeIndent(char); + this._buf.queue(char); + this._endsWithWord = false; + this._endsWithInteger = false; + } + _maybeIndent(firstChar) { + if (this._indent && firstChar !== 10 && this.endsWith(10)) { + this._buf.queueIndentation(this._getIndent()); + } + } + _shouldIndent(firstChar) { + if (this._indent && firstChar !== 10 && this.endsWith(10)) { + return true; + } + } + catchUp(line) { + if (!this.format.retainLines) return; + const count = line - this._buf.getCurrentLine(); + for (let i = 0; i < count; i++) { + this._newline(); + } + } + _catchUp(prop, loc) { + const { + format + } = this; + if (!format.preserveFormat) { + if (format.retainLines && loc != null && loc[prop]) { + this.catchUp(loc[prop].line); + } + return; + } + const pos = loc == null ? void 0 : loc[prop]; + if (pos != null) this._catchUpTo(pos); + } + _catchUpTo({ + line, + column, + index + }) { + const count = line - this._buf.getCurrentLine(); + if (count > 0 && this._noLineTerminator) { + return; + } + for (let i = 0; i < count; i++) { + this._newline(); + } + const spacesCount = count > 0 ? column : column - this._buf.getCurrentColumn(); + if (spacesCount > 0) { + const spaces = this._originalCode ? this._originalCode.slice(index - spacesCount, index).replace(/[^\t\x0B\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/gu, " ") : " ".repeat(spacesCount); + this._append(spaces, false); + } + } + _getIndent() { + return this._indentRepeat * this._indent; + } + printTerminatorless(node) { + this._noLineTerminator = true; + this.print(node); + } + print(node, noLineTerminatorAfter, trailingCommentsLineOffset) { + var _node$extra, _node$leadingComments, _node$leadingComments2; + if (!node) return; + this._endsWithInnerRaw = false; + const nodeType = node.type; + const format = this.format; + const oldConcise = format.concise; + if (node._compact) { + format.concise = true; + } + const printMethod = this[nodeType]; + if (printMethod === undefined) { + throw new ReferenceError(`unknown node of type ${JSON.stringify(nodeType)} with constructor ${JSON.stringify(node.constructor.name)}`); + } + const parent = this._currentNode; + this._currentNode = node; + if (this.tokenMap) { + this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode; + } + const oldInAux = this._insideAux; + this._insideAux = node.loc == null; + this._maybeAddAuxComment(this._insideAux && !oldInAux); + const parenthesized = (_node$extra = node.extra) == null ? void 0 : _node$extra.parenthesized; + let shouldPrintParens = parenthesized && format.preserveFormat || parenthesized && format.retainFunctionParens && nodeType === "FunctionExpression" || needsParens(node, parent, this.tokenContext, format.preserveFormat ? this._boundGetRawIdentifier : undefined); + if (!shouldPrintParens && parenthesized && (_node$leadingComments = node.leadingComments) != null && _node$leadingComments.length && node.leadingComments[0].type === "CommentBlock") { + const parentType = parent == null ? void 0 : parent.type; + switch (parentType) { + case "ExpressionStatement": + case "VariableDeclarator": + case "AssignmentExpression": + case "ReturnStatement": + break; + case "CallExpression": + case "OptionalCallExpression": + case "NewExpression": + if (parent.callee !== node) break; + default: + shouldPrintParens = true; + } + } + let indentParenthesized = false; + if (!shouldPrintParens && this._noLineTerminator && ((_node$leadingComments2 = node.leadingComments) != null && _node$leadingComments2.some(commentIsNewline) || this.format.retainLines && node.loc && node.loc.start.line > this._buf.getCurrentLine())) { + shouldPrintParens = true; + indentParenthesized = true; + } + let oldNoLineTerminatorAfterNode; + let oldTokenContext; + if (!shouldPrintParens) { + noLineTerminatorAfter || (noLineTerminatorAfter = parent && this._noLineTerminatorAfterNode === parent && n.isLastChild(parent, node)); + if (noLineTerminatorAfter) { + var _node$trailingComment; + if ((_node$trailingComment = node.trailingComments) != null && _node$trailingComment.some(commentIsNewline)) { + if (isExpression(node)) shouldPrintParens = true; + } else { + oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode; + this._noLineTerminatorAfterNode = node; + } + } + } + if (shouldPrintParens) { + this.tokenChar(40); + if (indentParenthesized) this.indent(); + this._endsWithInnerRaw = false; + if (this.tokenContext & _index.TokenContext.forInOrInitHeadAccumulate) { + oldTokenContext = this.tokenContext; + this.tokenContext = _index.TokenContext.normal; + } + oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode; + this._noLineTerminatorAfterNode = null; + } + this._lastCommentLine = 0; + this._printLeadingComments(node, parent); + const loc = nodeType === "Program" || nodeType === "File" ? null : node.loc; + this.exactSource(loc, printMethod.bind(this, node, parent)); + if (shouldPrintParens) { + this._printTrailingComments(node, parent); + if (indentParenthesized) { + this.dedent(); + this.newline(); + } + this.tokenChar(41); + this._noLineTerminator = noLineTerminatorAfter; + if (oldTokenContext) this.tokenContext = oldTokenContext; + } else if (noLineTerminatorAfter && !this._noLineTerminator) { + this._noLineTerminator = true; + this._printTrailingComments(node, parent); + } else { + this._printTrailingComments(node, parent, trailingCommentsLineOffset); + } + this._currentNode = parent; + format.concise = oldConcise; + this._insideAux = oldInAux; + if (oldNoLineTerminatorAfterNode !== undefined) { + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + } + this._endsWithInnerRaw = false; + } + _maybeAddAuxComment(enteredPositionlessNode) { + if (enteredPositionlessNode) this._printAuxBeforeComment(); + if (!this._insideAux) this._printAuxAfterComment(); + } + _printAuxBeforeComment() { + if (this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = true; + const comment = this.format.auxiliaryCommentBefore; + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }, 0); + } + } + _printAuxAfterComment() { + if (!this._printAuxAfterOnNextUserNode) return; + this._printAuxAfterOnNextUserNode = false; + const comment = this.format.auxiliaryCommentAfter; + if (comment) { + this._printComment({ + type: "CommentBlock", + value: comment + }, 0); + } + } + getPossibleRaw(node) { + const extra = node.extra; + if ((extra == null ? void 0 : extra.raw) != null && extra.rawValue != null && node.value === extra.rawValue) { + return extra.raw; + } + } + printJoin(nodes, statement, indent, separator, printTrailingSeparator, addNewlines, iterator, trailingCommentsLineOffset) { + if (!(nodes != null && nodes.length)) return; + if (indent == null && this.format.retainLines) { + var _nodes$0$loc; + const startLine = (_nodes$0$loc = nodes[0].loc) == null ? void 0 : _nodes$0$loc.start.line; + if (startLine != null && startLine !== this._buf.getCurrentLine()) { + indent = true; + } + } + if (indent) this.indent(); + const newlineOpts = { + addNewlines: addNewlines, + nextNodeStartLine: 0 + }; + const boundSeparator = separator == null ? void 0 : separator.bind(this); + const len = nodes.length; + for (let i = 0; i < len; i++) { + const node = nodes[i]; + if (!node) continue; + if (statement) this._printNewline(i === 0, newlineOpts); + this.print(node, undefined, trailingCommentsLineOffset || 0); + iterator == null || iterator(node, i); + if (boundSeparator != null) { + if (i < len - 1) boundSeparator(i, false);else if (printTrailingSeparator) boundSeparator(i, true); + } + if (statement) { + var _node$trailingComment2; + if (!((_node$trailingComment2 = node.trailingComments) != null && _node$trailingComment2.length)) { + this._lastCommentLine = 0; + } + if (i + 1 === len) { + this.newline(1); + } else { + var _nextNode$loc; + const nextNode = nodes[i + 1]; + newlineOpts.nextNodeStartLine = ((_nextNode$loc = nextNode.loc) == null ? void 0 : _nextNode$loc.start.line) || 0; + this._printNewline(true, newlineOpts); + } + } + } + if (indent) this.dedent(); + } + printAndIndentOnComments(node) { + const indent = node.leadingComments && node.leadingComments.length > 0; + if (indent) this.indent(); + this.print(node); + if (indent) this.dedent(); + } + printBlock(parent) { + const node = parent.body; + if (node.type !== "EmptyStatement") { + this.space(); + } + this.print(node); + } + _printTrailingComments(node, parent, lineOffset) { + const { + innerComments, + trailingComments + } = node; + if (innerComments != null && innerComments.length) { + this._printComments(2, innerComments, node, parent, lineOffset); + } + if (trailingComments != null && trailingComments.length) { + this._printComments(2, trailingComments, node, parent, lineOffset); + } + } + _printLeadingComments(node, parent) { + const comments = node.leadingComments; + if (!(comments != null && comments.length)) return; + this._printComments(0, comments, node, parent); + } + _maybePrintInnerComments(nextTokenStr, nextTokenOccurrenceCount) { + if (this._endsWithInnerRaw) { + var _this$tokenMap; + this.printInnerComments((_this$tokenMap = this.tokenMap) == null ? void 0 : _this$tokenMap.findMatching(this._currentNode, nextTokenStr, nextTokenOccurrenceCount)); + } + this._endsWithInnerRaw = true; + this._indentInnerComments = true; + } + printInnerComments(nextToken) { + const node = this._currentNode; + const comments = node.innerComments; + if (!(comments != null && comments.length)) return; + const hasSpace = this.endsWith(32); + const indent = this._indentInnerComments; + const printedCommentsCount = this._printedComments.size; + if (indent) this.indent(); + this._printComments(1, comments, node, undefined, undefined, nextToken); + if (hasSpace && printedCommentsCount !== this._printedComments.size) { + this.space(); + } + if (indent) this.dedent(); + } + noIndentInnerCommentsHere() { + this._indentInnerComments = false; + } + printSequence(nodes, indent, trailingCommentsLineOffset, addNewlines) { + this.printJoin(nodes, true, indent != null ? indent : false, undefined, undefined, addNewlines, undefined, trailingCommentsLineOffset); + } + printList(items, printTrailingSeparator, statement, indent, separator, iterator) { + this.printJoin(items, statement, indent, separator != null ? separator : commaSeparator, printTrailingSeparator, undefined, iterator); + } + shouldPrintTrailingComma(listEnd) { + if (!this.tokenMap) return null; + const listEndIndex = this.tokenMap.findLastIndex(this._currentNode, token => this.tokenMap.matchesOriginal(token, listEnd)); + if (listEndIndex <= 0) return null; + return this.tokenMap.matchesOriginal(this._tokens[listEndIndex - 1], ","); + } + _printNewline(newLine, opts) { + const format = this.format; + if (format.retainLines || format.compact) return; + if (format.concise) { + this.space(); + return; + } + if (!newLine) { + return; + } + const startLine = opts.nextNodeStartLine; + const lastCommentLine = this._lastCommentLine; + if (startLine > 0 && lastCommentLine > 0) { + const offset = startLine - lastCommentLine; + if (offset >= 0) { + this.newline(offset || 1); + return; + } + } + if (this._buf.hasContent()) { + this.newline(1); + } + } + _shouldPrintComment(comment, nextToken) { + if (comment.ignore) return 0; + if (this._printedComments.has(comment)) return 0; + if (this._noLineTerminator && HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)) { + return 2; + } + if (nextToken && this.tokenMap) { + const commentTok = this.tokenMap.find(this._currentNode, token => token.value === comment.value); + if (commentTok && commentTok.start > nextToken.start) { + return 2; + } + } + this._printedComments.add(comment); + if (!this.format.shouldPrintComment(comment.value)) { + return 0; + } + return 1; + } + _printComment(comment, skipNewLines) { + const noLineTerminator = this._noLineTerminator; + const isBlockComment = comment.type === "CommentBlock"; + const printNewLines = isBlockComment && skipNewLines !== 1 && !this._noLineTerminator; + if (printNewLines && this._buf.hasContent() && skipNewLines !== 2) { + this.newline(1); + } + const lastCharCode = this.getLastChar(); + if (lastCharCode !== 91 && lastCharCode !== 123 && lastCharCode !== 40) { + this.space(); + } + let val; + if (isBlockComment) { + val = `/*${comment.value}*/`; + if (this.format.indent.adjustMultilineComment) { + var _comment$loc; + const offset = (_comment$loc = comment.loc) == null ? void 0 : _comment$loc.start.column; + if (offset) { + const newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); + val = val.replace(newlineRegex, "\n"); + } + if (this.format.concise) { + val = val.replace(/\n(?!$)/g, `\n`); + } else { + let indentSize = this.format.retainLines ? 0 : this._buf.getCurrentColumn(); + if (this._shouldIndent(47) || this.format.retainLines) { + indentSize += this._getIndent(); + } + val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); + } + } + } else if (!noLineTerminator) { + val = `//${comment.value}`; + } else { + val = `/*${comment.value}*/`; + } + if (this._endsWithDiv) this._space(); + if (this.tokenMap) { + const { + _printSemicolonBeforeNextToken, + _printSemicolonBeforeNextNode + } = this; + this._printSemicolonBeforeNextToken = -1; + this._printSemicolonBeforeNextNode = -1; + this.source("start", comment.loc); + this._append(val, isBlockComment); + this._printSemicolonBeforeNextNode = _printSemicolonBeforeNextNode; + this._printSemicolonBeforeNextToken = _printSemicolonBeforeNextToken; + } else { + this.source("start", comment.loc); + this._append(val, isBlockComment); + } + if (!isBlockComment && !noLineTerminator) { + this.newline(1, true); + } + if (printNewLines && skipNewLines !== 3) { + this.newline(1); + } + } + _printComments(type, comments, node, parent, lineOffset = 0, nextToken) { + const nodeLoc = node.loc; + const len = comments.length; + let hasLoc = !!nodeLoc; + const nodeStartLine = hasLoc ? nodeLoc.start.line : 0; + const nodeEndLine = hasLoc ? nodeLoc.end.line : 0; + let lastLine = 0; + let leadingCommentNewline = 0; + const maybeNewline = this._noLineTerminator ? function () {} : this.newline.bind(this); + for (let i = 0; i < len; i++) { + const comment = comments[i]; + const shouldPrint = this._shouldPrintComment(comment, nextToken); + if (shouldPrint === 2) { + hasLoc = false; + break; + } + if (hasLoc && comment.loc && shouldPrint === 1) { + const commentStartLine = comment.loc.start.line; + const commentEndLine = comment.loc.end.line; + if (type === 0) { + let offset = 0; + if (i === 0) { + if (this._buf.hasContent() && (comment.type === "CommentLine" || commentStartLine !== commentEndLine)) { + offset = leadingCommentNewline = 1; + } + } else { + offset = commentStartLine - lastLine; + } + lastLine = commentEndLine; + maybeNewline(offset); + this._printComment(comment, 1); + if (i + 1 === len) { + maybeNewline(Math.max(nodeStartLine - lastLine, leadingCommentNewline)); + lastLine = nodeStartLine; + } + } else if (type === 1) { + const offset = commentStartLine - (i === 0 ? nodeStartLine : lastLine); + lastLine = commentEndLine; + maybeNewline(offset); + this._printComment(comment, 1); + if (i + 1 === len) { + maybeNewline(Math.min(1, nodeEndLine - lastLine)); + lastLine = nodeEndLine; + } + } else { + const offset = commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine); + lastLine = commentEndLine; + maybeNewline(offset); + this._printComment(comment, 1); + } + } else { + hasLoc = false; + if (shouldPrint !== 1) { + continue; + } + if (len === 1) { + const singleLine = comment.loc ? comment.loc.start.line === comment.loc.end.line : !HAS_NEWLINE.test(comment.value); + const shouldSkipNewline = singleLine && !isStatement(node) && !isClassBody(parent) && !isTSInterfaceBody(parent) && !isTSEnumMember(node); + if (type === 0) { + this._printComment(comment, shouldSkipNewline && node.type !== "ObjectExpression" || singleLine && isFunction(parent, { + body: node + }) ? 1 : 0); + } else if (shouldSkipNewline && type === 2) { + this._printComment(comment, 1); + } else { + this._printComment(comment, 0); + } + } else if (type === 1 && !(node.type === "ObjectExpression" && node.properties.length > 1) && node.type !== "ClassBody" && node.type !== "TSInterfaceBody") { + this._printComment(comment, i === 0 ? 2 : i === len - 1 ? 3 : 0); + } else { + this._printComment(comment, 0); + } + } + } + if (type === 2 && hasLoc && lastLine) { + this._lastCommentLine = lastLine; + } + } +} +Object.assign(Printer.prototype, generatorFunctions); +{ + (0, _deprecated.addDeprecatedGenerators)(Printer); +} +var _default = exports.default = Printer; +function commaSeparator(occurrenceCount, last) { + this.token(",", false, occurrenceCount); + if (!last) this.space(); +} + +//# sourceMappingURL=printer.js.map diff --git a/framework-core/node_modules/@babel/generator/lib/printer.js.map b/framework-core/node_modules/@babel/generator/lib/printer.js.map new file mode 100644 index 0000000..de4027e --- /dev/null +++ b/framework-core/node_modules/@babel/generator/lib/printer.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_buffer","require","_index","n","_t","_tokenMap","generatorFunctions","_deprecated","isExpression","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumMember","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","HAS_NEWLINE","HAS_NEWLINE_OR_BlOCK_COMMENT_END","commentIsNewline","c","type","test","value","needsParens","Printer","constructor","format","map","tokens","originalCode","tokenContext","TokenContext","normal","_tokens","_originalCode","_currentNode","_indent","_indentRepeat","_insideAux","_noLineTerminator","_noLineTerminatorAfterNode","_printAuxAfterOnNextUserNode","_printedComments","Set","_endsWithInteger","_endsWithWord","_endsWithDiv","_lastCommentLine","_endsWithInnerRaw","_indentInnerComments","tokenMap","_boundGetRawIdentifier","_getRawIdentifier","bind","_printSemicolonBeforeNextNode","_printSemicolonBeforeNextToken","indent","style","length","_inputMap","_buf","Buffer","enterForStatementInit","forInitHead","forInOrInitHeadAccumulate","enterForXStatementInit","isForOf","forOfHead","forInHead","enterDelimited","oldTokenContext","oldNoLineTerminatorAfterNode","generate","ast","preserveFormat","TokenMap","print","_maybeAddAuxComment","get","compact","concise","dedent","semicolon","force","_appendChar","node","start","end","endMatches","getCurrentLine","indexes","getIndexes","_catchUpTo","loc","_queue","rightBrace","minified","removeLastSemicolon","sourceWithOffset","token","rightParens","space","_space","hasContent","lastCp","getLastChar","word","str","noLineTerminatorAfter","forInOrInitHeadAccumulatePassThroughMask","_maybePrintInnerComments","_catchUpToCurrentToken","charCodeAt","_append","number","isNonDecimalLiteral","secondChar","Number","isInteger","maybeNewline","occurrenceCount","lastChar","strFirst","tokenChar","char","String","fromCharCode","newline","i","retainLines","getNewlineCount","j","_newline","endsWith","endsWithCharAndNewline","removeTrailingNewline","exactSource","cb","_catchUp","source","prop","columnOffset","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","findMatching","appendChar","_maybeIndent","append","queue","firstChar","queueIndentation","_getIndent","_shouldIndent","catchUp","line","count","column","index","spacesCount","getCurrentColumn","spaces","slice","replace","repeat","printTerminatorless","trailingCommentsLineOffset","_node$extra","_node$leadingComments","_node$leadingComments2","nodeType","oldConcise","_compact","printMethod","undefined","ReferenceError","JSON","stringify","name","parent","oldInAux","parenthesized","extra","shouldPrintParens","retainFunctionParens","leadingComments","parentType","callee","indentParenthesized","some","isLastChild","_node$trailingComment","trailingComments","_printLeadingComments","_printTrailingComments","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","auxiliaryCommentBefore","_printComment","auxiliaryCommentAfter","getPossibleRaw","raw","rawValue","printJoin","nodes","statement","separator","printTrailingSeparator","addNewlines","iterator","_nodes$0$loc","startLine","newlineOpts","nextNodeStartLine","boundSeparator","len","_printNewline","_node$trailingComment2","_nextNode$loc","nextNode","printAndIndentOnComments","printBlock","body","lineOffset","innerComments","_printComments","comments","nextTokenStr","nextTokenOccurrenceCount","_this$tokenMap","printInnerComments","nextToken","hasSpace","printedCommentsCount","size","noIndentInnerCommentsHere","printSequence","printList","items","commaSeparator","shouldPrintTrailingComma","listEnd","listEndIndex","findLastIndex","matchesOriginal","newLine","opts","lastCommentLine","offset","_shouldPrintComment","ignore","has","commentTok","find","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","lastCharCode","val","adjustMultilineComment","_comment$loc","newlineRegex","RegExp","indentSize","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","Object","assign","prototype","addDeprecatedGenerators","_default","exports","default","last"],"sources":["../src/printer.ts"],"sourcesContent":["import Buffer, { type Pos } from \"./buffer.ts\";\nimport type { Loc } from \"./buffer.ts\";\nimport * as n from \"./node/index.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isExpression,\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumMember,\n} from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport { TokenMap } from \"./token-map.ts\";\nimport type { GeneratorOptions } from \"./index.ts\";\nimport * as generatorFunctions from \"./generators/index.ts\";\nimport {\n addDeprecatedGenerators,\n type DeprecatedBabel7ASTTypes,\n} from \"./generators/deprecated.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\nimport type { Token } from \"@babel/parser\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\n\nfunction commentIsNewline(c: t.Comment) {\n return c.type === \"CommentLine\" || HAS_NEWLINE.test(c.value);\n}\n\nconst { needsParens } = n;\n\nimport { TokenContext } from \"./node/index.ts\";\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n preserveFormat: boolean;\n retainLines: boolean;\n retainFunctionParens: boolean;\n comments: boolean;\n auxiliaryCommentBefore: string;\n auxiliaryCommentAfter: string;\n compact: boolean | \"auto\";\n minified: boolean;\n concise: boolean;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n /**\n * @deprecated Removed in Babel 8, syntax type is always 'hash'\n */\n recordAndTupleSyntaxType?: GeneratorOptions[\"recordAndTupleSyntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: GeneratorOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n};\n\ninterface AddNewlinesOptions {\n addNewlines(leading: boolean, node: t.Node): number;\n nextNodeStartLine: number;\n}\n\ninterface PrintSequenceOptions extends Partial {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer, occurrenceCount: number, last: boolean) => void;\n iterator?: (node: t.Node, index: number) => void;\n statement?: boolean;\n indent?: boolean;\n printTrailingSeparator?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(\n format: Format,\n map: SourceMap,\n tokens?: Token[],\n originalCode?: string,\n ) {\n this.format = format;\n\n this._tokens = tokens;\n this._originalCode = originalCode;\n\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap;\n\n this._buf = new Buffer(map, format.indent.style[0]);\n }\n declare _inputMap: TraceMap;\n\n declare format: Format;\n\n enterForStatementInit() {\n this.tokenContext |=\n TokenContext.forInitHead | TokenContext.forInOrInitHeadAccumulate;\n return () => (this.tokenContext = TokenContext.normal);\n }\n\n enterForXStatementInit(isForOf: boolean) {\n if (isForOf) {\n this.tokenContext |= TokenContext.forOfHead;\n return null;\n } else {\n this.tokenContext |=\n TokenContext.forInHead | TokenContext.forInOrInitHeadAccumulate;\n return () => (this.tokenContext = TokenContext.normal);\n }\n }\n\n enterDelimited() {\n const oldTokenContext = this.tokenContext;\n const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n if (\n !(oldTokenContext & TokenContext.forInOrInitHeadAccumulate) &&\n oldNoLineTerminatorAfterNode === null\n ) {\n return () => {};\n }\n this._noLineTerminatorAfterNode = null;\n this.tokenContext = TokenContext.normal;\n return () => {\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n this.tokenContext = oldTokenContext;\n };\n }\n\n tokenContext: number = TokenContext.normal;\n\n _tokens: Token[] = null;\n _originalCode: string | null = null;\n\n declare _buf: Buffer;\n _currentNode: t.Node = null;\n _indent: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _noLineTerminator: boolean = false;\n _noLineTerminatorAfterNode: t.Node | null = null;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set();\n _endsWithInteger = false;\n _endsWithWord = false;\n _endsWithDiv = false;\n _lastCommentLine = 0;\n _endsWithInnerRaw: boolean = false;\n _indentInnerComments: boolean = true;\n tokenMap: TokenMap = null;\n\n _boundGetRawIdentifier = this._getRawIdentifier.bind(this);\n\n generate(ast: t.Node) {\n if (this.format.preserveFormat) {\n this.tokenMap = new TokenMap(ast, this._tokens, this._originalCode);\n }\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(): void {\n const { format } = this;\n if (format.preserveFormat || format.compact || format.concise) {\n return;\n }\n\n this._indent++;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(): void {\n const { format } = this;\n if (format.preserveFormat || format.compact || format.concise) {\n return;\n }\n\n this._indent--;\n }\n\n /**\n * If the next token is on the same line, we must first print a semicolon.\n * This option is only used in `preserveFormat` node, for semicolons that\n * might have omitted due to them being absent in the original code (thanks\n * to ASI).\n *\n * We need both *NextToken and *NextNode because we only want to insert the\n * semicolon when the next token starts a new node, and not in cases like\n * foo} (where } is not starting a new node). So we first set *NextNode, and\n * then the print() method will move it to *NextToken.\n */\n _printSemicolonBeforeNextNode: number = -1;\n _printSemicolonBeforeNextToken: number = -1;\n\n /**\n * Add a semicolon to the buffer.\n */\n semicolon(force: boolean = false): void {\n this._maybeAddAuxComment();\n if (force) {\n this._appendChar(charCodes.semicolon);\n this._noLineTerminator = false;\n return;\n }\n if (this.tokenMap) {\n const node = this._currentNode;\n if (node.start != null && node.end != null) {\n if (!this.tokenMap.endMatches(node, \";\")) {\n // no semicolon\n this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();\n return;\n }\n const indexes = this.tokenMap.getIndexes(this._currentNode);\n this._catchUpTo(this._tokens[indexes[indexes.length - 1]].loc.start);\n }\n }\n this._queue(charCodes.semicolon);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\")\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n const { format } = this;\n if (format.compact || format.preserveFormat) return;\n\n if (force) {\n this._space();\n } else if (this._buf.hasContent()) {\n const lastCp = this.getLastChar();\n if (lastCp !== charCodes.space && lastCp !== charCodes.lineFeed) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str);\n\n this._maybeAddAuxComment();\n\n if (this.tokenMap) this._catchUpToCurrentToken(str);\n\n // prevent concatenating words and creating // comment out of division and regex\n if (\n this._endsWithWord ||\n (this._endsWithDiv && str.charCodeAt(0) === charCodes.slash)\n ) {\n this._space();\n }\n this._append(str, false);\n\n this._endsWithWord = true;\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string, number?: number): void {\n // const NON_DECIMAL_LITERAL = /^0[box]/;\n function isNonDecimalLiteral(str: string) {\n if (str.length > 2 && str.charCodeAt(0) === charCodes.digit0) {\n const secondChar = str.charCodeAt(1);\n return (\n secondChar === charCodes.lowercaseB ||\n secondChar === charCodes.lowercaseO ||\n secondChar === charCodes.lowercaseX\n );\n }\n return false;\n }\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted\n // immediately after them.\n this._endsWithInteger =\n Number.isInteger(number) &&\n !isNonDecimalLiteral(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot;\n }\n\n /**\n * Writes a simple token.\n *\n * @param {string} str The string to append.\n * @param {boolean} [maybeNewline=false] Wether `str` might potentially\n * contain a line terminator or not.\n * @param {number} [occurrenceCount=0] The occurrence count of this token in\n * the current node. This is used when printing in `preserveFormat` mode,\n * to know which token we should map to (for example, to disambiguate the\n * commas in an array literal).\n */\n token(str: string, maybeNewline = false, occurrenceCount = 0): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str, occurrenceCount);\n\n this._maybeAddAuxComment();\n\n if (this.tokenMap) this._catchUpToCurrentToken(str, occurrenceCount);\n\n const lastChar = this.getLastChar();\n const strFirst = str.charCodeAt(0);\n if (\n (lastChar === charCodes.exclamationMark &&\n // space is mandatory to avoid outputting * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceTilde(comp, options) + }).join(' ') +} + +function replaceTilde (comp, options) { + var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE] + return comp.replace(r, function (_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else if (pr) { + debug('replaceTilde pr', pr) + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } else { + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceCaret(comp, options) + }).join(' ') +} + +function replaceCaret (comp, options) { + debug('caret', comp, options) + var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET] + return comp.replace(r, function (_, M, m, p, pr) { + debug('caret', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + if (M === '0') { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else { + ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0' + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + (+M + 1) + '.0.0' + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + (+M + 1) + '.0.0' + } + } + + debug('caret return', ret) + return ret + }) +} + +function replaceXRanges (comp, options) { + debug('replaceXRanges', comp, options) + return comp.split(/\s+/).map(function (comp) { + return replaceXRange(comp, options) + }).join(' ') +} + +function replaceXRange (comp, options) { + comp = comp.trim() + var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE] + return comp.replace(r, function (ret, gtlt, M, m, p, pr) { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + var xM = isX(M) + var xm = xM || isX(m) + var xp = xm || isX(p) + var anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + ret = gtlt + M + '.' + m + '.' + p + pr + } else if (xm) { + ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr + } else if (xp) { + ret = '>=' + M + '.' + m + '.0' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + pr + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars (comp, options) { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(safeRe[t.STAR], '') +} + +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +function hyphenReplace ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = '>=' + fM + '.0.0' + } else if (isX(fp)) { + from = '>=' + fM + '.' + fm + '.0' + } else { + from = '>=' + from + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = '<' + (+tM + 1) + '.0.0' + } else if (isX(tp)) { + to = '<' + tM + '.' + (+tm + 1) + '.0' + } else if (tpr) { + to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr + } else { + to = '<=' + to + } + + return (from + ' ' + to).trim() +} + +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false +} + +function testSet (set, version, options) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} + +exports.satisfies = satisfies +function satisfies (version, range, options) { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} + +exports.maxSatisfying = maxSatisfying +function maxSatisfying (versions, range, options) { + var max = null + var maxSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} + +exports.minSatisfying = minSatisfying +function minSatisfying (versions, range, options) { + var min = null + var minSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} + +exports.minVersion = minVersion +function minVersion (range, loose) { + range = new Range(range, loose) + + var minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + comparators.forEach(function (comparator) { + // Clone to avoid manipulating the comparator's semver object. + var compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!minver || gt(minver, compver)) { + minver = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error('Unexpected operation: ' + comparator.operator) + } + }) + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} + +exports.validRange = validRange +function validRange (range, options) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} + +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr +function ltr (version, range, options) { + return outside(version, range, '<', options) +} + +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr +function gtr (version, range, options) { + return outside(version, range, '>', options) +} + +exports.outside = outside +function outside (version, range, hilo, options) { + version = new SemVer(version, options) + range = new Range(range, options) + + var gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisifes the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + var high = null + var low = null + + comparators.forEach(function (comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +exports.prerelease = prerelease +function prerelease (version, options) { + var parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} + +exports.intersects = intersects +function intersects (r1, r2, options) { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2) +} + +exports.coerce = coerce +function coerce (version, options) { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + var match = null + if (!options.rtl) { + match = version.match(safeRe[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + var next + while ((next = safeRe[t.COERCERTL].exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + safeRe[t.COERCERTL].lastIndex = -1 + } + + if (match === null) { + return null + } + + return parse(match[2] + + '.' + (match[3] || '0') + + '.' + (match[4] || '0'), options) +} diff --git a/framework-core/node_modules/@babel/helper-compilation-targets/package.json b/framework-core/node_modules/@babel/helper-compilation-targets/package.json new file mode 100644 index 0000000..79c1e2b --- /dev/null +++ b/framework-core/node_modules/@babel/helper-compilation-targets/package.json @@ -0,0 +1,43 @@ +{ + "name": "@babel/helper-compilation-targets", + "version": "7.27.2", + "author": "The Babel Team (https://babel.dev/team)", + "license": "MIT", + "description": "Helper functions on Babel compilation targets", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-compilation-targets" + }, + "main": "./lib/index.js", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "./package.json": "./package.json" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [ + "babel", + "babel-plugin" + ], + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "devDependencies": { + "@babel/helper-plugin-test-runner": "^7.27.1", + "@types/lru-cache": "^5.1.1", + "@types/semver": "^5.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-globals/LICENSE b/framework-core/node_modules/@babel/helper-globals/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/framework-core/node_modules/@babel/helper-globals/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/framework-core/node_modules/@babel/helper-globals/README.md b/framework-core/node_modules/@babel/helper-globals/README.md new file mode 100644 index 0000000..3dc9f25 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-globals/README.md @@ -0,0 +1,19 @@ +# @babel/helper-globals + +> A collection of JavaScript globals for Babel internal usage + +See our website [@babel/helper-globals](https://babeljs.io/docs/babel-helper-globals) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-globals +``` + +or using yarn: + +```sh +yarn add @babel/helper-globals +``` diff --git a/framework-core/node_modules/@babel/helper-globals/data/browser-upper.json b/framework-core/node_modules/@babel/helper-globals/data/browser-upper.json new file mode 100644 index 0000000..8a4d6fd --- /dev/null +++ b/framework-core/node_modules/@babel/helper-globals/data/browser-upper.json @@ -0,0 +1,911 @@ +[ + "AbortController", + "AbortSignal", + "AbsoluteOrientationSensor", + "AbstractRange", + "Accelerometer", + "AI", + "AICreateMonitor", + "AITextSession", + "AnalyserNode", + "Animation", + "AnimationEffect", + "AnimationEvent", + "AnimationPlaybackEvent", + "AnimationTimeline", + "AsyncDisposableStack", + "Attr", + "Audio", + "AudioBuffer", + "AudioBufferSourceNode", + "AudioContext", + "AudioData", + "AudioDecoder", + "AudioDestinationNode", + "AudioEncoder", + "AudioListener", + "AudioNode", + "AudioParam", + "AudioParamMap", + "AudioProcessingEvent", + "AudioScheduledSourceNode", + "AudioSinkInfo", + "AudioWorklet", + "AudioWorkletGlobalScope", + "AudioWorkletNode", + "AudioWorkletProcessor", + "AuthenticatorAssertionResponse", + "AuthenticatorAttestationResponse", + "AuthenticatorResponse", + "BackgroundFetchManager", + "BackgroundFetchRecord", + "BackgroundFetchRegistration", + "BarcodeDetector", + "BarProp", + "BaseAudioContext", + "BatteryManager", + "BeforeUnloadEvent", + "BiquadFilterNode", + "Blob", + "BlobEvent", + "Bluetooth", + "BluetoothCharacteristicProperties", + "BluetoothDevice", + "BluetoothRemoteGATTCharacteristic", + "BluetoothRemoteGATTDescriptor", + "BluetoothRemoteGATTServer", + "BluetoothRemoteGATTService", + "BluetoothUUID", + "BroadcastChannel", + "BrowserCaptureMediaStreamTrack", + "ByteLengthQueuingStrategy", + "Cache", + "CacheStorage", + "CanvasCaptureMediaStream", + "CanvasCaptureMediaStreamTrack", + "CanvasGradient", + "CanvasPattern", + "CanvasRenderingContext2D", + "CaptureController", + "CaretPosition", + "CDATASection", + "ChannelMergerNode", + "ChannelSplitterNode", + "ChapterInformation", + "CharacterBoundsUpdateEvent", + "CharacterData", + "Clipboard", + "ClipboardEvent", + "ClipboardItem", + "CloseEvent", + "CloseWatcher", + "CommandEvent", + "Comment", + "CompositionEvent", + "CompressionStream", + "ConstantSourceNode", + "ContentVisibilityAutoStateChangeEvent", + "ConvolverNode", + "CookieChangeEvent", + "CookieDeprecationLabel", + "CookieStore", + "CookieStoreManager", + "CountQueuingStrategy", + "Credential", + "CredentialsContainer", + "CropTarget", + "Crypto", + "CryptoKey", + "CSPViolationReportBody", + "CSS", + "CSSAnimation", + "CSSConditionRule", + "CSSContainerRule", + "CSSCounterStyleRule", + "CSSFontFaceRule", + "CSSFontFeatureValuesRule", + "CSSFontPaletteValuesRule", + "CSSGroupingRule", + "CSSImageValue", + "CSSImportRule", + "CSSKeyframeRule", + "CSSKeyframesRule", + "CSSKeywordValue", + "CSSLayerBlockRule", + "CSSLayerStatementRule", + "CSSMarginRule", + "CSSMathClamp", + "CSSMathInvert", + "CSSMathMax", + "CSSMathMin", + "CSSMathNegate", + "CSSMathProduct", + "CSSMathSum", + "CSSMathValue", + "CSSMatrixComponent", + "CSSMediaRule", + "CSSNamespaceRule", + "CSSNestedDeclarations", + "CSSNumericArray", + "CSSNumericValue", + "CSSPageDescriptors", + "CSSPageRule", + "CSSPerspective", + "CSSPositionTryDescriptors", + "CSSPositionTryRule", + "CSSPositionValue", + "CSSPropertyRule", + "CSSRotate", + "CSSRule", + "CSSRuleList", + "CSSScale", + "CSSScopeRule", + "CSSSkew", + "CSSSkewX", + "CSSSkewY", + "CSSStartingStyleRule", + "CSSStyleDeclaration", + "CSSStyleRule", + "CSSStyleSheet", + "CSSStyleValue", + "CSSSupportsRule", + "CSSTransformComponent", + "CSSTransformValue", + "CSSTransition", + "CSSTranslate", + "CSSUnitValue", + "CSSUnparsedValue", + "CSSVariableReferenceValue", + "CSSViewTransitionRule", + "CustomElementRegistry", + "CustomEvent", + "CustomStateSet", + "DataTransfer", + "DataTransferItem", + "DataTransferItemList", + "DecompressionStream", + "DelayNode", + "DelegatedInkTrailPresenter", + "DeviceMotionEvent", + "DeviceMotionEventAcceleration", + "DeviceMotionEventRotationRate", + "DeviceOrientationEvent", + "DevicePosture", + "DisposableStack", + "Document", + "DocumentFragment", + "DocumentPictureInPicture", + "DocumentPictureInPictureEvent", + "DocumentTimeline", + "DocumentType", + "DOMError", + "DOMException", + "DOMImplementation", + "DOMMatrix", + "DOMMatrixReadOnly", + "DOMParser", + "DOMPoint", + "DOMPointReadOnly", + "DOMQuad", + "DOMRect", + "DOMRectList", + "DOMRectReadOnly", + "DOMStringList", + "DOMStringMap", + "DOMTokenList", + "DragEvent", + "DynamicsCompressorNode", + "EditContext", + "Element", + "ElementInternals", + "EncodedAudioChunk", + "EncodedVideoChunk", + "ErrorEvent", + "Event", + "EventCounts", + "EventSource", + "EventTarget", + "External", + "EyeDropper", + "FeaturePolicy", + "FederatedCredential", + "Fence", + "FencedFrameConfig", + "FetchLaterResult", + "File", + "FileList", + "FileReader", + "FileSystem", + "FileSystemDirectoryEntry", + "FileSystemDirectoryHandle", + "FileSystemDirectoryReader", + "FileSystemEntry", + "FileSystemFileEntry", + "FileSystemFileHandle", + "FileSystemHandle", + "FileSystemObserver", + "FileSystemWritableFileStream", + "FocusEvent", + "FontData", + "FontFace", + "FontFaceSet", + "FontFaceSetLoadEvent", + "FormData", + "FormDataEvent", + "FragmentDirective", + "GainNode", + "Gamepad", + "GamepadAxisMoveEvent", + "GamepadButton", + "GamepadButtonEvent", + "GamepadEvent", + "GamepadHapticActuator", + "GamepadPose", + "Geolocation", + "GeolocationCoordinates", + "GeolocationPosition", + "GeolocationPositionError", + "GPU", + "GPUAdapter", + "GPUAdapterInfo", + "GPUBindGroup", + "GPUBindGroupLayout", + "GPUBuffer", + "GPUBufferUsage", + "GPUCanvasContext", + "GPUColorWrite", + "GPUCommandBuffer", + "GPUCommandEncoder", + "GPUCompilationInfo", + "GPUCompilationMessage", + "GPUComputePassEncoder", + "GPUComputePipeline", + "GPUDevice", + "GPUDeviceLostInfo", + "GPUError", + "GPUExternalTexture", + "GPUInternalError", + "GPUMapMode", + "GPUOutOfMemoryError", + "GPUPipelineError", + "GPUPipelineLayout", + "GPUQuerySet", + "GPUQueue", + "GPURenderBundle", + "GPURenderBundleEncoder", + "GPURenderPassEncoder", + "GPURenderPipeline", + "GPUSampler", + "GPUShaderModule", + "GPUShaderStage", + "GPUSupportedFeatures", + "GPUSupportedLimits", + "GPUTexture", + "GPUTextureUsage", + "GPUTextureView", + "GPUUncapturedErrorEvent", + "GPUValidationError", + "GravitySensor", + "Gyroscope", + "HashChangeEvent", + "Headers", + "HID", + "HIDConnectionEvent", + "HIDDevice", + "HIDInputReportEvent", + "Highlight", + "HighlightRegistry", + "History", + "HTMLAllCollection", + "HTMLAnchorElement", + "HTMLAreaElement", + "HTMLAudioElement", + "HTMLBaseElement", + "HTMLBodyElement", + "HTMLBRElement", + "HTMLButtonElement", + "HTMLCanvasElement", + "HTMLCollection", + "HTMLDataElement", + "HTMLDataListElement", + "HTMLDetailsElement", + "HTMLDialogElement", + "HTMLDirectoryElement", + "HTMLDivElement", + "HTMLDListElement", + "HTMLDocument", + "HTMLElement", + "HTMLEmbedElement", + "HTMLFencedFrameElement", + "HTMLFieldSetElement", + "HTMLFontElement", + "HTMLFormControlsCollection", + "HTMLFormElement", + "HTMLFrameElement", + "HTMLFrameSetElement", + "HTMLHeadElement", + "HTMLHeadingElement", + "HTMLHRElement", + "HTMLHtmlElement", + "HTMLIFrameElement", + "HTMLImageElement", + "HTMLInputElement", + "HTMLLabelElement", + "HTMLLegendElement", + "HTMLLIElement", + "HTMLLinkElement", + "HTMLMapElement", + "HTMLMarqueeElement", + "HTMLMediaElement", + "HTMLMenuElement", + "HTMLMetaElement", + "HTMLMeterElement", + "HTMLModElement", + "HTMLObjectElement", + "HTMLOListElement", + "HTMLOptGroupElement", + "HTMLOptionElement", + "HTMLOptionsCollection", + "HTMLOutputElement", + "HTMLParagraphElement", + "HTMLParamElement", + "HTMLPictureElement", + "HTMLPreElement", + "HTMLProgressElement", + "HTMLQuoteElement", + "HTMLScriptElement", + "HTMLSelectedContentElement", + "HTMLSelectElement", + "HTMLSlotElement", + "HTMLSourceElement", + "HTMLSpanElement", + "HTMLStyleElement", + "HTMLTableCaptionElement", + "HTMLTableCellElement", + "HTMLTableColElement", + "HTMLTableElement", + "HTMLTableRowElement", + "HTMLTableSectionElement", + "HTMLTemplateElement", + "HTMLTextAreaElement", + "HTMLTimeElement", + "HTMLTitleElement", + "HTMLTrackElement", + "HTMLUListElement", + "HTMLUnknownElement", + "HTMLVideoElement", + "IDBCursor", + "IDBCursorWithValue", + "IDBDatabase", + "IDBFactory", + "IDBIndex", + "IDBKeyRange", + "IDBObjectStore", + "IDBOpenDBRequest", + "IDBRequest", + "IDBTransaction", + "IDBVersionChangeEvent", + "IdentityCredential", + "IdentityCredentialError", + "IdentityProvider", + "IdleDeadline", + "IdleDetector", + "IIRFilterNode", + "Image", + "ImageBitmap", + "ImageBitmapRenderingContext", + "ImageCapture", + "ImageData", + "ImageDecoder", + "ImageTrack", + "ImageTrackList", + "Ink", + "InputDeviceCapabilities", + "InputDeviceInfo", + "InputEvent", + "IntersectionObserver", + "IntersectionObserverEntry", + "Keyboard", + "KeyboardEvent", + "KeyboardLayoutMap", + "KeyframeEffect", + "LanguageDetector", + "LargestContentfulPaint", + "LaunchParams", + "LaunchQueue", + "LayoutShift", + "LayoutShiftAttribution", + "LinearAccelerationSensor", + "Location", + "Lock", + "LockManager", + "MathMLElement", + "MediaCapabilities", + "MediaCapabilitiesInfo", + "MediaDeviceInfo", + "MediaDevices", + "MediaElementAudioSourceNode", + "MediaEncryptedEvent", + "MediaError", + "MediaKeyError", + "MediaKeyMessageEvent", + "MediaKeys", + "MediaKeySession", + "MediaKeyStatusMap", + "MediaKeySystemAccess", + "MediaList", + "MediaMetadata", + "MediaQueryList", + "MediaQueryListEvent", + "MediaRecorder", + "MediaRecorderErrorEvent", + "MediaSession", + "MediaSource", + "MediaSourceHandle", + "MediaStream", + "MediaStreamAudioDestinationNode", + "MediaStreamAudioSourceNode", + "MediaStreamEvent", + "MediaStreamTrack", + "MediaStreamTrackAudioSourceNode", + "MediaStreamTrackAudioStats", + "MediaStreamTrackEvent", + "MediaStreamTrackGenerator", + "MediaStreamTrackProcessor", + "MediaStreamTrackVideoStats", + "MessageChannel", + "MessageEvent", + "MessagePort", + "MIDIAccess", + "MIDIConnectionEvent", + "MIDIInput", + "MIDIInputMap", + "MIDIMessageEvent", + "MIDIOutput", + "MIDIOutputMap", + "MIDIPort", + "MimeType", + "MimeTypeArray", + "ModelGenericSession", + "ModelManager", + "MouseEvent", + "MutationEvent", + "MutationObserver", + "MutationRecord", + "NamedNodeMap", + "NavigateEvent", + "Navigation", + "NavigationActivation", + "NavigationCurrentEntryChangeEvent", + "NavigationDestination", + "NavigationHistoryEntry", + "NavigationPreloadManager", + "NavigationTransition", + "Navigator", + "NavigatorLogin", + "NavigatorManagedData", + "NavigatorUAData", + "NetworkInformation", + "Node", + "NodeFilter", + "NodeIterator", + "NodeList", + "Notification", + "NotifyPaintEvent", + "NotRestoredReasonDetails", + "NotRestoredReasons", + "Observable", + "OfflineAudioCompletionEvent", + "OfflineAudioContext", + "OffscreenCanvas", + "OffscreenCanvasRenderingContext2D", + "Option", + "OrientationSensor", + "OscillatorNode", + "OTPCredential", + "OverconstrainedError", + "PageRevealEvent", + "PageSwapEvent", + "PageTransitionEvent", + "PannerNode", + "PasswordCredential", + "Path2D", + "PaymentAddress", + "PaymentManager", + "PaymentMethodChangeEvent", + "PaymentRequest", + "PaymentRequestUpdateEvent", + "PaymentResponse", + "Performance", + "PerformanceElementTiming", + "PerformanceEntry", + "PerformanceEventTiming", + "PerformanceLongAnimationFrameTiming", + "PerformanceLongTaskTiming", + "PerformanceMark", + "PerformanceMeasure", + "PerformanceNavigation", + "PerformanceNavigationTiming", + "PerformanceObserver", + "PerformanceObserverEntryList", + "PerformancePaintTiming", + "PerformanceResourceTiming", + "PerformanceScriptTiming", + "PerformanceServerTiming", + "PerformanceTiming", + "PeriodicSyncManager", + "PeriodicWave", + "Permissions", + "PermissionStatus", + "PERSISTENT", + "PictureInPictureEvent", + "PictureInPictureWindow", + "Plugin", + "PluginArray", + "PointerEvent", + "PopStateEvent", + "Presentation", + "PresentationAvailability", + "PresentationConnection", + "PresentationConnectionAvailableEvent", + "PresentationConnectionCloseEvent", + "PresentationConnectionList", + "PresentationReceiver", + "PresentationRequest", + "PressureObserver", + "PressureRecord", + "ProcessingInstruction", + "Profiler", + "ProgressEvent", + "PromiseRejectionEvent", + "ProtectedAudience", + "PublicKeyCredential", + "PushManager", + "PushSubscription", + "PushSubscriptionOptions", + "RadioNodeList", + "Range", + "ReadableByteStreamController", + "ReadableStream", + "ReadableStreamBYOBReader", + "ReadableStreamBYOBRequest", + "ReadableStreamDefaultController", + "ReadableStreamDefaultReader", + "RelativeOrientationSensor", + "RemotePlayback", + "ReportBody", + "ReportingObserver", + "Request", + "ResizeObserver", + "ResizeObserverEntry", + "ResizeObserverSize", + "Response", + "RestrictionTarget", + "RTCCertificate", + "RTCDataChannel", + "RTCDataChannelEvent", + "RTCDtlsTransport", + "RTCDTMFSender", + "RTCDTMFToneChangeEvent", + "RTCEncodedAudioFrame", + "RTCEncodedVideoFrame", + "RTCError", + "RTCErrorEvent", + "RTCIceCandidate", + "RTCIceTransport", + "RTCPeerConnection", + "RTCPeerConnectionIceErrorEvent", + "RTCPeerConnectionIceEvent", + "RTCRtpReceiver", + "RTCRtpScriptTransform", + "RTCRtpSender", + "RTCRtpTransceiver", + "RTCSctpTransport", + "RTCSessionDescription", + "RTCStatsReport", + "RTCTrackEvent", + "Scheduler", + "Scheduling", + "Screen", + "ScreenDetailed", + "ScreenDetails", + "ScreenOrientation", + "ScriptProcessorNode", + "ScrollTimeline", + "SecurityPolicyViolationEvent", + "Selection", + "Sensor", + "SensorErrorEvent", + "Serial", + "SerialPort", + "ServiceWorker", + "ServiceWorkerContainer", + "ServiceWorkerRegistration", + "ShadowRoot", + "SharedStorage", + "SharedStorageAppendMethod", + "SharedStorageClearMethod", + "SharedStorageDeleteMethod", + "SharedStorageModifierMethod", + "SharedStorageSetMethod", + "SharedStorageWorklet", + "SharedWorker", + "SnapEvent", + "SourceBuffer", + "SourceBufferList", + "SpeechSynthesis", + "SpeechSynthesisErrorEvent", + "SpeechSynthesisEvent", + "SpeechSynthesisUtterance", + "SpeechSynthesisVoice", + "StaticRange", + "StereoPannerNode", + "Storage", + "StorageBucket", + "StorageBucketManager", + "StorageEvent", + "StorageManager", + "StylePropertyMap", + "StylePropertyMapReadOnly", + "StyleSheet", + "StyleSheetList", + "SubmitEvent", + "Subscriber", + "SubtleCrypto", + "SuppressedError", + "SVGAElement", + "SVGAngle", + "SVGAnimatedAngle", + "SVGAnimatedBoolean", + "SVGAnimatedEnumeration", + "SVGAnimatedInteger", + "SVGAnimatedLength", + "SVGAnimatedLengthList", + "SVGAnimatedNumber", + "SVGAnimatedNumberList", + "SVGAnimatedPreserveAspectRatio", + "SVGAnimatedRect", + "SVGAnimatedString", + "SVGAnimatedTransformList", + "SVGAnimateElement", + "SVGAnimateMotionElement", + "SVGAnimateTransformElement", + "SVGAnimationElement", + "SVGCircleElement", + "SVGClipPathElement", + "SVGComponentTransferFunctionElement", + "SVGDefsElement", + "SVGDescElement", + "SVGElement", + "SVGEllipseElement", + "SVGFEBlendElement", + "SVGFEColorMatrixElement", + "SVGFEComponentTransferElement", + "SVGFECompositeElement", + "SVGFEConvolveMatrixElement", + "SVGFEDiffuseLightingElement", + "SVGFEDisplacementMapElement", + "SVGFEDistantLightElement", + "SVGFEDropShadowElement", + "SVGFEFloodElement", + "SVGFEFuncAElement", + "SVGFEFuncBElement", + "SVGFEFuncGElement", + "SVGFEFuncRElement", + "SVGFEGaussianBlurElement", + "SVGFEImageElement", + "SVGFEMergeElement", + "SVGFEMergeNodeElement", + "SVGFEMorphologyElement", + "SVGFEOffsetElement", + "SVGFEPointLightElement", + "SVGFESpecularLightingElement", + "SVGFESpotLightElement", + "SVGFETileElement", + "SVGFETurbulenceElement", + "SVGFilterElement", + "SVGForeignObjectElement", + "SVGGElement", + "SVGGeometryElement", + "SVGGradientElement", + "SVGGraphicsElement", + "SVGImageElement", + "SVGLength", + "SVGLengthList", + "SVGLinearGradientElement", + "SVGLineElement", + "SVGMarkerElement", + "SVGMaskElement", + "SVGMatrix", + "SVGMetadataElement", + "SVGMPathElement", + "SVGNumber", + "SVGNumberList", + "SVGPathElement", + "SVGPatternElement", + "SVGPoint", + "SVGPointList", + "SVGPolygonElement", + "SVGPolylineElement", + "SVGPreserveAspectRatio", + "SVGRadialGradientElement", + "SVGRect", + "SVGRectElement", + "SVGScriptElement", + "SVGSetElement", + "SVGStopElement", + "SVGStringList", + "SVGStyleElement", + "SVGSVGElement", + "SVGSwitchElement", + "SVGSymbolElement", + "SVGTextContentElement", + "SVGTextElement", + "SVGTextPathElement", + "SVGTextPositioningElement", + "SVGTitleElement", + "SVGTransform", + "SVGTransformList", + "SVGTSpanElement", + "SVGUnitTypes", + "SVGUseElement", + "SVGViewElement", + "SyncManager", + "TaskAttributionTiming", + "TaskController", + "TaskPriorityChangeEvent", + "TaskSignal", + "TEMPORARY", + "Text", + "TextDecoder", + "TextDecoderStream", + "TextEncoder", + "TextEncoderStream", + "TextEvent", + "TextFormat", + "TextFormatUpdateEvent", + "TextMetrics", + "TextTrack", + "TextTrackCue", + "TextTrackCueList", + "TextTrackList", + "TextUpdateEvent", + "TimeEvent", + "TimeRanges", + "ToggleEvent", + "Touch", + "TouchEvent", + "TouchList", + "TrackEvent", + "TransformStream", + "TransformStreamDefaultController", + "TransitionEvent", + "TreeWalker", + "TrustedHTML", + "TrustedScript", + "TrustedScriptURL", + "TrustedTypePolicy", + "TrustedTypePolicyFactory", + "UIEvent", + "URL", + "URLPattern", + "URLSearchParams", + "USB", + "USBAlternateInterface", + "USBConfiguration", + "USBConnectionEvent", + "USBDevice", + "USBEndpoint", + "USBInterface", + "USBInTransferResult", + "USBIsochronousInTransferPacket", + "USBIsochronousInTransferResult", + "USBIsochronousOutTransferPacket", + "USBIsochronousOutTransferResult", + "USBOutTransferResult", + "UserActivation", + "ValidityState", + "VideoColorSpace", + "VideoDecoder", + "VideoEncoder", + "VideoFrame", + "VideoPlaybackQuality", + "ViewTimeline", + "ViewTransition", + "ViewTransitionTypeSet", + "VirtualKeyboard", + "VirtualKeyboardGeometryChangeEvent", + "VisibilityStateEntry", + "VisualViewport", + "VTTCue", + "VTTRegion", + "WakeLock", + "WakeLockSentinel", + "WaveShaperNode", + "WebAssembly", + "WebGL2RenderingContext", + "WebGLActiveInfo", + "WebGLBuffer", + "WebGLContextEvent", + "WebGLFramebuffer", + "WebGLObject", + "WebGLProgram", + "WebGLQuery", + "WebGLRenderbuffer", + "WebGLRenderingContext", + "WebGLSampler", + "WebGLShader", + "WebGLShaderPrecisionFormat", + "WebGLSync", + "WebGLTexture", + "WebGLTransformFeedback", + "WebGLUniformLocation", + "WebGLVertexArrayObject", + "WebSocket", + "WebSocketError", + "WebSocketStream", + "WebTransport", + "WebTransportBidirectionalStream", + "WebTransportDatagramDuplexStream", + "WebTransportError", + "WebTransportReceiveStream", + "WebTransportSendStream", + "WGSLLanguageFeatures", + "WheelEvent", + "Window", + "WindowControlsOverlay", + "WindowControlsOverlayGeometryChangeEvent", + "Worker", + "Worklet", + "WorkletGlobalScope", + "WritableStream", + "WritableStreamDefaultController", + "WritableStreamDefaultWriter", + "XMLDocument", + "XMLHttpRequest", + "XMLHttpRequestEventTarget", + "XMLHttpRequestUpload", + "XMLSerializer", + "XPathEvaluator", + "XPathExpression", + "XPathResult", + "XRAnchor", + "XRAnchorSet", + "XRBoundedReferenceSpace", + "XRCamera", + "XRCPUDepthInformation", + "XRDepthInformation", + "XRDOMOverlayState", + "XRFrame", + "XRHand", + "XRHitTestResult", + "XRHitTestSource", + "XRInputSource", + "XRInputSourceArray", + "XRInputSourceEvent", + "XRInputSourcesChangeEvent", + "XRJointPose", + "XRJointSpace", + "XRLayer", + "XRLightEstimate", + "XRLightProbe", + "XRPose", + "XRRay", + "XRReferenceSpace", + "XRReferenceSpaceEvent", + "XRRenderState", + "XRRigidTransform", + "XRSession", + "XRSessionEvent", + "XRSpace", + "XRSystem", + "XRTransientInputHitTestResult", + "XRTransientInputHitTestSource", + "XRView", + "XRViewerPose", + "XRViewport", + "XRWebGLBinding", + "XRWebGLDepthInformation", + "XRWebGLLayer", + "XSLTProcessor" +] diff --git a/framework-core/node_modules/@babel/helper-globals/data/builtin-lower.json b/framework-core/node_modules/@babel/helper-globals/data/builtin-lower.json new file mode 100644 index 0000000..ae57bc7 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-globals/data/builtin-lower.json @@ -0,0 +1,15 @@ +[ + "decodeURI", + "decodeURIComponent", + "encodeURI", + "encodeURIComponent", + "escape", + "eval", + "globalThis", + "isFinite", + "isNaN", + "parseFloat", + "parseInt", + "undefined", + "unescape" +] diff --git a/framework-core/node_modules/@babel/helper-globals/data/builtin-upper.json b/framework-core/node_modules/@babel/helper-globals/data/builtin-upper.json new file mode 100644 index 0000000..4863ce4 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-globals/data/builtin-upper.json @@ -0,0 +1,51 @@ +[ + "AggregateError", + "Array", + "ArrayBuffer", + "Atomics", + "BigInt", + "BigInt64Array", + "BigUint64Array", + "Boolean", + "DataView", + "Date", + "Error", + "EvalError", + "FinalizationRegistry", + "Float16Array", + "Float32Array", + "Float64Array", + "Function", + "Infinity", + "Int16Array", + "Int32Array", + "Int8Array", + "Intl", + "Iterator", + "JSON", + "Map", + "Math", + "NaN", + "Number", + "Object", + "Promise", + "Proxy", + "RangeError", + "ReferenceError", + "Reflect", + "RegExp", + "Set", + "SharedArrayBuffer", + "String", + "Symbol", + "SyntaxError", + "TypeError", + "Uint16Array", + "Uint32Array", + "Uint8Array", + "Uint8ClampedArray", + "URIError", + "WeakMap", + "WeakRef", + "WeakSet" +] diff --git a/framework-core/node_modules/@babel/helper-globals/package.json b/framework-core/node_modules/@babel/helper-globals/package.json new file mode 100644 index 0000000..4d55997 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-globals/package.json @@ -0,0 +1,32 @@ +{ + "name": "@babel/helper-globals", + "version": "7.28.0", + "author": "The Babel Team (https://babel.dev/team)", + "license": "MIT", + "description": "A collection of JavaScript globals for Babel internal usage", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-globals" + }, + "publishConfig": { + "access": "public" + }, + "exports": { + "./data/browser-upper.json": "./data/browser-upper.json", + "./data/builtin-lower.json": "./data/builtin-lower.json", + "./data/builtin-upper.json": "./data/builtin-upper.json", + "./package.json": "./package.json" + }, + "keywords": [ + "babel", + "globals" + ], + "devDependencies": { + "globals": "^16.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-imports/LICENSE b/framework-core/node_modules/@babel/helper-module-imports/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/framework-core/node_modules/@babel/helper-module-imports/README.md b/framework-core/node_modules/@babel/helper-module-imports/README.md new file mode 100644 index 0000000..aa47726 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/README.md @@ -0,0 +1,19 @@ +# @babel/helper-module-imports + +> Babel helper functions for inserting module loads + +See our website [@babel/helper-module-imports](https://babeljs.io/docs/babel-helper-module-imports) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-module-imports +``` + +or using yarn: + +```sh +yarn add @babel/helper-module-imports +``` diff --git a/framework-core/node_modules/@babel/helper-module-imports/lib/import-builder.js b/framework-core/node_modules/@babel/helper-module-imports/lib/import-builder.js new file mode 100644 index 0000000..b01187f --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/lib/import-builder.js @@ -0,0 +1,122 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _assert = require("assert"); +var _t = require("@babel/types"); +const { + callExpression, + cloneNode, + expressionStatement, + identifier, + importDeclaration, + importDefaultSpecifier, + importNamespaceSpecifier, + importSpecifier, + memberExpression, + stringLiteral, + variableDeclaration, + variableDeclarator +} = _t; +class ImportBuilder { + constructor(importedSource, scope, hub) { + this._statements = []; + this._resultName = null; + this._importedSource = void 0; + this._scope = scope; + this._hub = hub; + this._importedSource = importedSource; + } + done() { + return { + statements: this._statements, + resultName: this._resultName + }; + } + import() { + this._statements.push(importDeclaration([], stringLiteral(this._importedSource))); + return this; + } + require() { + this._statements.push(expressionStatement(callExpression(identifier("require"), [stringLiteral(this._importedSource)]))); + return this; + } + namespace(name = "namespace") { + const local = this._scope.generateUidIdentifier(name); + const statement = this._statements[this._statements.length - 1]; + _assert(statement.type === "ImportDeclaration"); + _assert(statement.specifiers.length === 0); + statement.specifiers = [importNamespaceSpecifier(local)]; + this._resultName = cloneNode(local); + return this; + } + default(name) { + const id = this._scope.generateUidIdentifier(name); + const statement = this._statements[this._statements.length - 1]; + _assert(statement.type === "ImportDeclaration"); + _assert(statement.specifiers.length === 0); + statement.specifiers = [importDefaultSpecifier(id)]; + this._resultName = cloneNode(id); + return this; + } + named(name, importName) { + if (importName === "default") return this.default(name); + const id = this._scope.generateUidIdentifier(name); + const statement = this._statements[this._statements.length - 1]; + _assert(statement.type === "ImportDeclaration"); + _assert(statement.specifiers.length === 0); + statement.specifiers = [importSpecifier(id, identifier(importName))]; + this._resultName = cloneNode(id); + return this; + } + var(name) { + const id = this._scope.generateUidIdentifier(name); + let statement = this._statements[this._statements.length - 1]; + if (statement.type !== "ExpressionStatement") { + _assert(this._resultName); + statement = expressionStatement(this._resultName); + this._statements.push(statement); + } + this._statements[this._statements.length - 1] = variableDeclaration("var", [variableDeclarator(id, statement.expression)]); + this._resultName = cloneNode(id); + return this; + } + defaultInterop() { + return this._interop(this._hub.addHelper("interopRequireDefault")); + } + wildcardInterop() { + return this._interop(this._hub.addHelper("interopRequireWildcard")); + } + _interop(callee) { + const statement = this._statements[this._statements.length - 1]; + if (statement.type === "ExpressionStatement") { + statement.expression = callExpression(callee, [statement.expression]); + } else if (statement.type === "VariableDeclaration") { + _assert(statement.declarations.length === 1); + statement.declarations[0].init = callExpression(callee, [statement.declarations[0].init]); + } else { + _assert.fail("Unexpected type."); + } + return this; + } + prop(name) { + const statement = this._statements[this._statements.length - 1]; + if (statement.type === "ExpressionStatement") { + statement.expression = memberExpression(statement.expression, identifier(name)); + } else if (statement.type === "VariableDeclaration") { + _assert(statement.declarations.length === 1); + statement.declarations[0].init = memberExpression(statement.declarations[0].init, identifier(name)); + } else { + _assert.fail("Unexpected type:" + statement.type); + } + return this; + } + read(name) { + this._resultName = memberExpression(this._resultName, identifier(name)); + } +} +exports.default = ImportBuilder; + +//# sourceMappingURL=import-builder.js.map diff --git a/framework-core/node_modules/@babel/helper-module-imports/lib/import-builder.js.map b/framework-core/node_modules/@babel/helper-module-imports/lib/import-builder.js.map new file mode 100644 index 0000000..920accc --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/lib/import-builder.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_assert","require","_t","callExpression","cloneNode","expressionStatement","identifier","importDeclaration","importDefaultSpecifier","importNamespaceSpecifier","importSpecifier","memberExpression","stringLiteral","variableDeclaration","variableDeclarator","ImportBuilder","constructor","importedSource","scope","hub","_statements","_resultName","_importedSource","_scope","_hub","done","statements","resultName","import","push","namespace","name","local","generateUidIdentifier","statement","length","assert","type","specifiers","default","id","named","importName","var","expression","defaultInterop","_interop","addHelper","wildcardInterop","callee","declarations","init","fail","prop","read","exports"],"sources":["../src/import-builder.ts"],"sourcesContent":["import assert from \"node:assert\";\nimport {\n callExpression,\n cloneNode,\n expressionStatement,\n identifier,\n importDeclaration,\n importDefaultSpecifier,\n importNamespaceSpecifier,\n importSpecifier,\n memberExpression,\n stringLiteral,\n variableDeclaration,\n variableDeclarator,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { Scope, HubInterface } from \"@babel/traverse\";\n\n/**\n * A class to track and accumulate mutations to the AST that will eventually\n * output a new require/import statement list.\n */\nexport default class ImportBuilder {\n private _statements: t.Statement[] = [];\n private _resultName: t.Identifier | t.MemberExpression = null;\n\n declare _scope: Scope;\n declare _hub: HubInterface;\n private _importedSource: string;\n\n constructor(importedSource: string, scope: Scope, hub: HubInterface) {\n this._scope = scope;\n this._hub = hub;\n this._importedSource = importedSource;\n }\n\n done() {\n return {\n statements: this._statements,\n resultName: this._resultName,\n };\n }\n\n import() {\n this._statements.push(\n importDeclaration([], stringLiteral(this._importedSource)),\n );\n return this;\n }\n\n require() {\n this._statements.push(\n expressionStatement(\n callExpression(identifier(\"require\"), [\n stringLiteral(this._importedSource),\n ]),\n ),\n );\n return this;\n }\n\n namespace(name = \"namespace\") {\n const local = this._scope.generateUidIdentifier(name);\n\n const statement = this._statements[this._statements.length - 1];\n assert(statement.type === \"ImportDeclaration\");\n assert(statement.specifiers.length === 0);\n statement.specifiers = [importNamespaceSpecifier(local)];\n this._resultName = cloneNode(local);\n return this;\n }\n default(name: string) {\n const id = this._scope.generateUidIdentifier(name);\n const statement = this._statements[this._statements.length - 1];\n assert(statement.type === \"ImportDeclaration\");\n assert(statement.specifiers.length === 0);\n statement.specifiers = [importDefaultSpecifier(id)];\n this._resultName = cloneNode(id);\n return this;\n }\n named(name: string, importName: string) {\n if (importName === \"default\") return this.default(name);\n\n const id = this._scope.generateUidIdentifier(name);\n const statement = this._statements[this._statements.length - 1];\n assert(statement.type === \"ImportDeclaration\");\n assert(statement.specifiers.length === 0);\n statement.specifiers = [importSpecifier(id, identifier(importName))];\n this._resultName = cloneNode(id);\n return this;\n }\n\n var(name: string) {\n const id = this._scope.generateUidIdentifier(name);\n let statement = this._statements[this._statements.length - 1];\n if (statement.type !== \"ExpressionStatement\") {\n assert(this._resultName);\n statement = expressionStatement(this._resultName);\n this._statements.push(statement);\n }\n this._statements[this._statements.length - 1] = variableDeclaration(\"var\", [\n variableDeclarator(id, statement.expression),\n ]);\n this._resultName = cloneNode(id);\n return this;\n }\n\n defaultInterop() {\n return this._interop(this._hub.addHelper(\"interopRequireDefault\"));\n }\n wildcardInterop() {\n return this._interop(this._hub.addHelper(\"interopRequireWildcard\"));\n }\n\n _interop(callee: t.Expression) {\n const statement = this._statements[this._statements.length - 1];\n if (statement.type === \"ExpressionStatement\") {\n statement.expression = callExpression(callee, [statement.expression]);\n } else if (statement.type === \"VariableDeclaration\") {\n assert(statement.declarations.length === 1);\n statement.declarations[0].init = callExpression(callee, [\n statement.declarations[0].init,\n ]);\n } else {\n assert.fail(\"Unexpected type.\");\n }\n return this;\n }\n\n prop(name: string) {\n const statement = this._statements[this._statements.length - 1];\n if (statement.type === \"ExpressionStatement\") {\n statement.expression = memberExpression(\n statement.expression,\n identifier(name),\n );\n } else if (statement.type === \"VariableDeclaration\") {\n assert(statement.declarations.length === 1);\n statement.declarations[0].init = memberExpression(\n statement.declarations[0].init,\n identifier(name),\n );\n } else {\n assert.fail(\"Unexpected type:\" + statement.type);\n }\n return this;\n }\n\n read(name: string) {\n this._resultName = memberExpression(this._resultName, identifier(name));\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-imports/lib/import-injector.js b/framework-core/node_modules/@babel/helper-module-imports/lib/import-injector.js new file mode 100644 index 0000000..0c61c56 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/lib/import-injector.js @@ -0,0 +1,304 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _assert = require("assert"); +var _t = require("@babel/types"); +var _importBuilder = require("./import-builder.js"); +var _isModule = require("./is-module.js"); +const { + identifier, + importSpecifier, + numericLiteral, + sequenceExpression, + isImportDeclaration +} = _t; +class ImportInjector { + constructor(path, importedSource, opts) { + this._defaultOpts = { + importedSource: null, + importedType: "commonjs", + importedInterop: "babel", + importingInterop: "babel", + ensureLiveReference: false, + ensureNoContext: false, + importPosition: "before" + }; + const programPath = path.find(p => p.isProgram()); + this._programPath = programPath; + this._programScope = programPath.scope; + this._hub = programPath.hub; + this._defaultOpts = this._applyDefaults(importedSource, opts, true); + } + addDefault(importedSourceIn, opts) { + return this.addNamed("default", importedSourceIn, opts); + } + addNamed(importName, importedSourceIn, opts) { + _assert(typeof importName === "string"); + return this._generateImport(this._applyDefaults(importedSourceIn, opts), importName); + } + addNamespace(importedSourceIn, opts) { + return this._generateImport(this._applyDefaults(importedSourceIn, opts), null); + } + addSideEffect(importedSourceIn, opts) { + return this._generateImport(this._applyDefaults(importedSourceIn, opts), void 0); + } + _applyDefaults(importedSource, opts, isInit = false) { + let newOpts; + if (typeof importedSource === "string") { + newOpts = Object.assign({}, this._defaultOpts, { + importedSource + }, opts); + } else { + _assert(!opts, "Unexpected secondary arguments."); + newOpts = Object.assign({}, this._defaultOpts, importedSource); + } + if (!isInit && opts) { + if (opts.nameHint !== undefined) newOpts.nameHint = opts.nameHint; + if (opts.blockHoist !== undefined) newOpts.blockHoist = opts.blockHoist; + } + return newOpts; + } + _generateImport(opts, importName) { + const isDefault = importName === "default"; + const isNamed = !!importName && !isDefault; + const isNamespace = importName === null; + const { + importedSource, + importedType, + importedInterop, + importingInterop, + ensureLiveReference, + ensureNoContext, + nameHint, + importPosition, + blockHoist + } = opts; + let name = nameHint || importName; + const isMod = (0, _isModule.default)(this._programPath); + const isModuleForNode = isMod && importingInterop === "node"; + const isModuleForBabel = isMod && importingInterop === "babel"; + if (importPosition === "after" && !isMod) { + throw new Error(`"importPosition": "after" is only supported in modules`); + } + const builder = new _importBuilder.default(importedSource, this._programScope, this._hub); + if (importedType === "es6") { + if (!isModuleForNode && !isModuleForBabel) { + throw new Error("Cannot import an ES6 module from CommonJS"); + } + builder.import(); + if (isNamespace) { + builder.namespace(nameHint || importedSource); + } else if (isDefault || isNamed) { + builder.named(name, importName); + } + } else if (importedType !== "commonjs") { + throw new Error(`Unexpected interopType "${importedType}"`); + } else if (importedInterop === "babel") { + if (isModuleForNode) { + name = name !== "default" ? name : importedSource; + const es6Default = `${importedSource}$es6Default`; + builder.import(); + if (isNamespace) { + builder.default(es6Default).var(name || importedSource).wildcardInterop(); + } else if (isDefault) { + if (ensureLiveReference) { + builder.default(es6Default).var(name || importedSource).defaultInterop().read("default"); + } else { + builder.default(es6Default).var(name).defaultInterop().prop(importName); + } + } else if (isNamed) { + builder.default(es6Default).read(importName); + } + } else if (isModuleForBabel) { + builder.import(); + if (isNamespace) { + builder.namespace(name || importedSource); + } else if (isDefault || isNamed) { + builder.named(name, importName); + } + } else { + builder.require(); + if (isNamespace) { + builder.var(name || importedSource).wildcardInterop(); + } else if ((isDefault || isNamed) && ensureLiveReference) { + if (isDefault) { + name = name !== "default" ? name : importedSource; + builder.var(name).read(importName); + builder.defaultInterop(); + } else { + builder.var(importedSource).read(importName); + } + } else if (isDefault) { + builder.var(name).defaultInterop().prop(importName); + } else if (isNamed) { + builder.var(name).prop(importName); + } + } + } else if (importedInterop === "compiled") { + if (isModuleForNode) { + builder.import(); + if (isNamespace) { + builder.default(name || importedSource); + } else if (isDefault || isNamed) { + builder.default(importedSource).read(name); + } + } else if (isModuleForBabel) { + builder.import(); + if (isNamespace) { + builder.namespace(name || importedSource); + } else if (isDefault || isNamed) { + builder.named(name, importName); + } + } else { + builder.require(); + if (isNamespace) { + builder.var(name || importedSource); + } else if (isDefault || isNamed) { + if (ensureLiveReference) { + builder.var(importedSource).read(name); + } else { + builder.prop(importName).var(name); + } + } + } + } else if (importedInterop === "uncompiled") { + if (isDefault && ensureLiveReference) { + throw new Error("No live reference for commonjs default"); + } + if (isModuleForNode) { + builder.import(); + if (isNamespace) { + builder.default(name || importedSource); + } else if (isDefault) { + builder.default(name); + } else if (isNamed) { + builder.default(importedSource).read(name); + } + } else if (isModuleForBabel) { + builder.import(); + if (isNamespace) { + builder.default(name || importedSource); + } else if (isDefault) { + builder.default(name); + } else if (isNamed) { + builder.named(name, importName); + } + } else { + builder.require(); + if (isNamespace) { + builder.var(name || importedSource); + } else if (isDefault) { + builder.var(name); + } else if (isNamed) { + if (ensureLiveReference) { + builder.var(importedSource).read(name); + } else { + builder.var(name).prop(importName); + } + } + } + } else { + throw new Error(`Unknown importedInterop "${importedInterop}".`); + } + const { + statements, + resultName + } = builder.done(); + this._insertStatements(statements, importPosition, blockHoist); + if ((isDefault || isNamed) && ensureNoContext && resultName.type !== "Identifier") { + return sequenceExpression([numericLiteral(0), resultName]); + } + return resultName; + } + _insertStatements(statements, importPosition = "before", blockHoist = 3) { + if (importPosition === "after") { + if (this._insertStatementsAfter(statements)) return; + } else { + if (this._insertStatementsBefore(statements, blockHoist)) return; + } + this._programPath.unshiftContainer("body", statements); + } + _insertStatementsBefore(statements, blockHoist) { + if (statements.length === 1 && isImportDeclaration(statements[0]) && isValueImport(statements[0])) { + const firstImportDecl = this._programPath.get("body").find(p => { + return p.isImportDeclaration() && isValueImport(p.node); + }); + if ((firstImportDecl == null ? void 0 : firstImportDecl.node.source.value) === statements[0].source.value && maybeAppendImportSpecifiers(firstImportDecl.node, statements[0])) { + return true; + } + } + statements.forEach(node => { + node._blockHoist = blockHoist; + }); + const targetPath = this._programPath.get("body").find(p => { + const val = p.node._blockHoist; + return Number.isFinite(val) && val < 4; + }); + if (targetPath) { + targetPath.insertBefore(statements); + return true; + } + return false; + } + _insertStatementsAfter(statements) { + const statementsSet = new Set(statements); + const importDeclarations = new Map(); + for (const statement of statements) { + if (isImportDeclaration(statement) && isValueImport(statement)) { + const source = statement.source.value; + if (!importDeclarations.has(source)) importDeclarations.set(source, []); + importDeclarations.get(source).push(statement); + } + } + let lastImportPath = null; + for (const bodyStmt of this._programPath.get("body")) { + if (bodyStmt.isImportDeclaration() && isValueImport(bodyStmt.node)) { + lastImportPath = bodyStmt; + const source = bodyStmt.node.source.value; + const newImports = importDeclarations.get(source); + if (!newImports) continue; + for (const decl of newImports) { + if (!statementsSet.has(decl)) continue; + if (maybeAppendImportSpecifiers(bodyStmt.node, decl)) { + statementsSet.delete(decl); + } + } + } + } + if (statementsSet.size === 0) return true; + if (lastImportPath) lastImportPath.insertAfter(Array.from(statementsSet)); + return !!lastImportPath; + } +} +exports.default = ImportInjector; +function isValueImport(node) { + return node.importKind !== "type" && node.importKind !== "typeof"; +} +function hasNamespaceImport(node) { + return node.specifiers.length === 1 && node.specifiers[0].type === "ImportNamespaceSpecifier" || node.specifiers.length === 2 && node.specifiers[1].type === "ImportNamespaceSpecifier"; +} +function hasDefaultImport(node) { + return node.specifiers.length > 0 && node.specifiers[0].type === "ImportDefaultSpecifier"; +} +function maybeAppendImportSpecifiers(target, source) { + if (!target.specifiers.length) { + target.specifiers = source.specifiers; + return true; + } + if (!source.specifiers.length) return true; + if (hasNamespaceImport(target) || hasNamespaceImport(source)) return false; + if (hasDefaultImport(source)) { + if (hasDefaultImport(target)) { + source.specifiers[0] = importSpecifier(source.specifiers[0].local, identifier("default")); + } else { + target.specifiers.unshift(source.specifiers.shift()); + } + } + target.specifiers.push(...source.specifiers); + return true; +} + +//# sourceMappingURL=import-injector.js.map diff --git a/framework-core/node_modules/@babel/helper-module-imports/lib/import-injector.js.map b/framework-core/node_modules/@babel/helper-module-imports/lib/import-injector.js.map new file mode 100644 index 0000000..8fe3a98 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/lib/import-injector.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_assert","require","_t","_importBuilder","_isModule","identifier","importSpecifier","numericLiteral","sequenceExpression","isImportDeclaration","ImportInjector","constructor","path","importedSource","opts","_defaultOpts","importedType","importedInterop","importingInterop","ensureLiveReference","ensureNoContext","importPosition","programPath","find","p","isProgram","_programPath","_programScope","scope","_hub","hub","_applyDefaults","addDefault","importedSourceIn","addNamed","importName","assert","_generateImport","addNamespace","addSideEffect","isInit","newOpts","Object","assign","nameHint","undefined","blockHoist","isDefault","isNamed","isNamespace","name","isMod","isModule","isModuleForNode","isModuleForBabel","Error","builder","ImportBuilder","import","namespace","named","es6Default","default","var","wildcardInterop","defaultInterop","read","prop","statements","resultName","done","_insertStatements","type","_insertStatementsAfter","_insertStatementsBefore","unshiftContainer","length","isValueImport","firstImportDecl","get","node","source","value","maybeAppendImportSpecifiers","forEach","_blockHoist","targetPath","val","Number","isFinite","insertBefore","statementsSet","Set","importDeclarations","Map","statement","has","set","push","lastImportPath","bodyStmt","newImports","decl","delete","size","insertAfter","Array","from","exports","importKind","hasNamespaceImport","specifiers","hasDefaultImport","target","local","unshift","shift"],"sources":["../src/import-injector.ts"],"sourcesContent":["import assert from \"node:assert\";\nimport {\n identifier,\n importSpecifier,\n numericLiteral,\n sequenceExpression,\n isImportDeclaration,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath, Scope, HubInterface } from \"@babel/traverse\";\n\nimport ImportBuilder from \"./import-builder.ts\";\nimport isModule from \"./is-module.ts\";\n\nexport type ImportOptions = {\n /**\n * The module being referenced.\n */\n importedSource: string | null;\n /**\n * The type of module being imported:\n *\n * * 'es6' - An ES6 module.\n * * 'commonjs' - A CommonJS module. (Default)\n */\n importedType: \"es6\" | \"commonjs\";\n /**\n * The type of interop behavior for namespace/default/named when loading\n * CommonJS modules.\n *\n * ## 'babel' (Default)\n *\n * Load using Babel's interop.\n *\n * If '.__esModule' is true, treat as 'compiled', else:\n *\n * * Namespace: A copy of the module.exports with .default\n * populated by the module.exports object.\n * * Default: The module.exports value.\n * * Named: The .named property of module.exports.\n *\n * The 'ensureLiveReference' has no effect on the liveness of these.\n *\n * ## 'compiled'\n *\n * Assume the module is ES6 compiled to CommonJS. Useful to avoid injecting\n * interop logic if you are confident that the module is a certain format.\n *\n * * Namespace: The root module.exports object.\n * * Default: The .default property of the namespace.\n * * Named: The .named property of the namespace.\n *\n * Will return erroneous results if the imported module is _not_ compiled\n * from ES6 with Babel.\n *\n * ## 'uncompiled'\n *\n * Assume the module is _not_ ES6 compiled to CommonJS. Used a simplified\n * access pattern that doesn't require additional function calls.\n *\n * Will return erroneous results if the imported module _is_ compiled\n * from ES6 with Babel.\n *\n * * Namespace: The module.exports object.\n * * Default: The module.exports object.\n * * Named: The .named property of module.exports.\n */\n importedInterop: \"babel\" | \"node\" | \"compiled\" | \"uncompiled\";\n /**\n * The type of CommonJS interop included in the environment that will be\n * loading the output code.\n *\n * * 'babel' - CommonJS modules load with Babel's interop. (Default)\n * * 'node' - CommonJS modules load with Node's interop.\n *\n * See descriptions in 'importedInterop' for more details.\n */\n importingInterop: \"babel\" | \"node\";\n /**\n * Define whether we explicitly care that the import be a live reference.\n * Only applies when importing default and named imports, not the namespace.\n *\n * * true - Force imported values to be live references.\n * * false - No particular requirements. Keeps the code simplest. (Default)\n */\n ensureLiveReference: boolean;\n /**\n * Define if we explicitly care that the result not be a property reference.\n *\n * * true - Force calls to exclude context. Useful if the value is going to\n * be used as function callee.\n * * false - No particular requirements for context of the access. (Default)\n */\n ensureNoContext: boolean;\n /**\n * Define whether the import should be loaded before or after the existing imports.\n * \"after\" is only allowed inside ECMAScript modules, since it's not possible to\n * reliably pick the location _after_ require() calls but _before_ other code in CJS.\n */\n importPosition: \"before\" | \"after\";\n\n nameHint?: string;\n blockHoist?: number;\n};\n\n/**\n * A general helper classes add imports via transforms. See README for usage.\n */\nexport default class ImportInjector {\n /**\n * The path used for manipulation.\n */\n declare _programPath: NodePath;\n\n /**\n * The scope used to generate unique variable names.\n */\n declare _programScope: Scope;\n\n /**\n * The file used to inject helpers and resolve paths.\n */\n declare _hub: HubInterface;\n\n /**\n * The default options to use with this instance when imports are added.\n */\n _defaultOpts: ImportOptions = {\n importedSource: null,\n importedType: \"commonjs\",\n importedInterop: \"babel\",\n importingInterop: \"babel\",\n ensureLiveReference: false,\n ensureNoContext: false,\n importPosition: \"before\",\n };\n\n constructor(\n path: NodePath,\n importedSource?: string,\n opts?: Partial,\n ) {\n const programPath = path.find(p => p.isProgram()) as NodePath;\n\n this._programPath = programPath;\n this._programScope = programPath.scope;\n this._hub = programPath.hub;\n\n this._defaultOpts = this._applyDefaults(importedSource, opts, true);\n }\n\n addDefault(importedSourceIn: string, opts: Partial) {\n return this.addNamed(\"default\", importedSourceIn, opts);\n }\n\n addNamed(\n importName: string,\n importedSourceIn: string,\n opts: Partial,\n ) {\n assert(typeof importName === \"string\");\n\n return this._generateImport(\n this._applyDefaults(importedSourceIn, opts),\n importName,\n );\n }\n\n addNamespace(importedSourceIn: string, opts: Partial) {\n return this._generateImport(\n this._applyDefaults(importedSourceIn, opts),\n null,\n );\n }\n\n addSideEffect(importedSourceIn: string, opts: Partial) {\n return this._generateImport(\n this._applyDefaults(importedSourceIn, opts),\n void 0,\n );\n }\n\n _applyDefaults(\n importedSource: string | Partial,\n opts: Partial | undefined,\n isInit = false,\n ) {\n let newOpts: ImportOptions;\n if (typeof importedSource === \"string\") {\n newOpts = { ...this._defaultOpts, importedSource, ...opts };\n } else {\n assert(!opts, \"Unexpected secondary arguments.\");\n newOpts = { ...this._defaultOpts, ...importedSource };\n }\n\n if (!isInit && opts) {\n if (opts.nameHint !== undefined) newOpts.nameHint = opts.nameHint;\n if (opts.blockHoist !== undefined) newOpts.blockHoist = opts.blockHoist;\n }\n return newOpts;\n }\n\n _generateImport(\n opts: Partial,\n importName: string | null | undefined,\n ) {\n const isDefault = importName === \"default\";\n const isNamed = !!importName && !isDefault;\n const isNamespace = importName === null;\n\n const {\n importedSource,\n importedType,\n importedInterop,\n importingInterop,\n ensureLiveReference,\n ensureNoContext,\n nameHint,\n importPosition,\n\n // Not meant for public usage. Allows code that absolutely must control\n // ordering to set a specific hoist value on the import nodes.\n // This is ignored when \"importPosition\" is \"after\".\n blockHoist,\n } = opts;\n\n // Provide a hint for generateUidIdentifier for the local variable name\n // to use for the import, if the code will generate a simple assignment\n // to a variable.\n let name = nameHint || importName;\n\n const isMod = isModule(this._programPath);\n const isModuleForNode = isMod && importingInterop === \"node\";\n const isModuleForBabel = isMod && importingInterop === \"babel\";\n\n if (importPosition === \"after\" && !isMod) {\n throw new Error(`\"importPosition\": \"after\" is only supported in modules`);\n }\n\n const builder = new ImportBuilder(\n importedSource,\n this._programScope,\n this._hub,\n );\n\n if (importedType === \"es6\") {\n if (!isModuleForNode && !isModuleForBabel) {\n throw new Error(\"Cannot import an ES6 module from CommonJS\");\n }\n\n // import * as namespace from ''; namespace\n // import def from ''; def\n // import { named } from ''; named\n builder.import();\n if (isNamespace) {\n builder.namespace(nameHint || importedSource);\n } else if (isDefault || isNamed) {\n builder.named(name, importName);\n }\n } else if (importedType !== \"commonjs\") {\n throw new Error(`Unexpected interopType \"${importedType}\"`);\n } else if (importedInterop === \"babel\") {\n if (isModuleForNode) {\n // import _tmp from ''; var namespace = interopRequireWildcard(_tmp); namespace\n // import _tmp from ''; var def = interopRequireDefault(_tmp).default; def\n // import _tmp from ''; _tmp.named\n name = name !== \"default\" ? name : importedSource;\n const es6Default = `${importedSource}$es6Default`;\n\n builder.import();\n if (isNamespace) {\n builder\n .default(es6Default)\n .var(name || importedSource)\n .wildcardInterop();\n } else if (isDefault) {\n if (ensureLiveReference) {\n builder\n .default(es6Default)\n .var(name || importedSource)\n .defaultInterop()\n .read(\"default\");\n } else {\n builder\n .default(es6Default)\n .var(name)\n .defaultInterop()\n .prop(importName);\n }\n } else if (isNamed) {\n builder.default(es6Default).read(importName);\n }\n } else if (isModuleForBabel) {\n // import * as namespace from ''; namespace\n // import def from ''; def\n // import { named } from ''; named\n builder.import();\n if (isNamespace) {\n builder.namespace(name || importedSource);\n } else if (isDefault || isNamed) {\n builder.named(name, importName);\n }\n } else {\n // var namespace = interopRequireWildcard(require(''));\n // var def = interopRequireDefault(require('')).default; def\n // var named = require('').named; named\n builder.require();\n if (isNamespace) {\n builder.var(name || importedSource).wildcardInterop();\n } else if ((isDefault || isNamed) && ensureLiveReference) {\n if (isDefault) {\n name = name !== \"default\" ? name : importedSource;\n builder.var(name).read(importName);\n builder.defaultInterop();\n } else {\n builder.var(importedSource).read(importName);\n }\n } else if (isDefault) {\n builder.var(name).defaultInterop().prop(importName);\n } else if (isNamed) {\n builder.var(name).prop(importName);\n }\n }\n } else if (importedInterop === \"compiled\") {\n if (isModuleForNode) {\n // import namespace from ''; namespace\n // import namespace from ''; namespace.default\n // import namespace from ''; namespace.named\n\n builder.import();\n if (isNamespace) {\n builder.default(name || importedSource);\n } else if (isDefault || isNamed) {\n builder.default(importedSource).read(name);\n }\n } else if (isModuleForBabel) {\n // import * as namespace from ''; namespace\n // import def from ''; def\n // import { named } from ''; named\n // Note: These lookups will break if the module has no __esModule set,\n // hence the warning that 'compiled' will not work on standard CommonJS.\n\n builder.import();\n if (isNamespace) {\n builder.namespace(name || importedSource);\n } else if (isDefault || isNamed) {\n builder.named(name, importName);\n }\n } else {\n // var namespace = require(''); namespace\n // var namespace = require(''); namespace.default\n // var namespace = require(''); namespace.named\n // var named = require('').named;\n builder.require();\n if (isNamespace) {\n builder.var(name || importedSource);\n } else if (isDefault || isNamed) {\n if (ensureLiveReference) {\n builder.var(importedSource).read(name);\n } else {\n builder.prop(importName).var(name);\n }\n }\n }\n } else if (importedInterop === \"uncompiled\") {\n if (isDefault && ensureLiveReference) {\n throw new Error(\"No live reference for commonjs default\");\n }\n\n if (isModuleForNode) {\n // import namespace from ''; namespace\n // import def from ''; def;\n // import namespace from ''; namespace.named\n builder.import();\n if (isNamespace) {\n builder.default(name || importedSource);\n } else if (isDefault) {\n builder.default(name);\n } else if (isNamed) {\n builder.default(importedSource).read(name);\n }\n } else if (isModuleForBabel) {\n // import namespace from '';\n // import def from '';\n // import { named } from ''; named;\n // Note: These lookups will break if the module has __esModule set,\n // hence the warning that 'uncompiled' will not work on ES6 transpiled\n // to CommonJS.\n\n builder.import();\n if (isNamespace) {\n builder.default(name || importedSource);\n } else if (isDefault) {\n builder.default(name);\n } else if (isNamed) {\n builder.named(name, importName);\n }\n } else {\n // var namespace = require(''); namespace\n // var def = require(''); def\n // var namespace = require(''); namespace.named\n // var named = require('').named;\n builder.require();\n if (isNamespace) {\n builder.var(name || importedSource);\n } else if (isDefault) {\n builder.var(name);\n } else if (isNamed) {\n if (ensureLiveReference) {\n builder.var(importedSource).read(name);\n } else {\n builder.var(name).prop(importName);\n }\n }\n }\n } else {\n throw new Error(`Unknown importedInterop \"${importedInterop}\".`);\n }\n\n const { statements, resultName } = builder.done();\n\n this._insertStatements(statements, importPosition, blockHoist);\n\n if (\n (isDefault || isNamed) &&\n ensureNoContext &&\n resultName.type !== \"Identifier\"\n ) {\n return sequenceExpression([numericLiteral(0), resultName]);\n }\n return resultName;\n }\n\n _insertStatements(\n statements: t.Statement[],\n importPosition = \"before\",\n blockHoist = 3,\n ) {\n if (importPosition === \"after\") {\n if (this._insertStatementsAfter(statements)) return;\n } else {\n if (this._insertStatementsBefore(statements, blockHoist)) return;\n }\n\n this._programPath.unshiftContainer(\"body\", statements);\n }\n\n _insertStatementsBefore(statements: t.Statement[], blockHoist: number) {\n if (\n statements.length === 1 &&\n isImportDeclaration(statements[0]) &&\n isValueImport(statements[0])\n ) {\n const firstImportDecl = this._programPath\n .get(\"body\")\n .find((p): p is NodePath => {\n return p.isImportDeclaration() && isValueImport(p.node);\n });\n\n if (\n firstImportDecl?.node.source.value === statements[0].source.value &&\n maybeAppendImportSpecifiers(firstImportDecl.node, statements[0])\n ) {\n return true;\n }\n }\n\n statements.forEach(node => {\n // @ts-expect-error handle _blockHoist\n node._blockHoist = blockHoist;\n });\n\n const targetPath = this._programPath.get(\"body\").find(p => {\n // @ts-expect-error todo(flow->ts): avoid mutations\n const val = p.node._blockHoist;\n return Number.isFinite(val) && val < 4;\n });\n\n if (targetPath) {\n targetPath.insertBefore(statements);\n return true;\n }\n\n return false;\n }\n\n _insertStatementsAfter(statements: t.Statement[]): boolean {\n const statementsSet = new Set(statements);\n const importDeclarations: Map = new Map();\n\n for (const statement of statements) {\n if (isImportDeclaration(statement) && isValueImport(statement)) {\n const source = statement.source.value;\n if (!importDeclarations.has(source)) importDeclarations.set(source, []);\n importDeclarations.get(source).push(statement);\n }\n }\n\n let lastImportPath = null;\n for (const bodyStmt of this._programPath.get(\"body\")) {\n if (bodyStmt.isImportDeclaration() && isValueImport(bodyStmt.node)) {\n lastImportPath = bodyStmt;\n\n const source = bodyStmt.node.source.value;\n const newImports = importDeclarations.get(source);\n if (!newImports) continue;\n\n for (const decl of newImports) {\n if (!statementsSet.has(decl)) continue;\n if (maybeAppendImportSpecifiers(bodyStmt.node, decl)) {\n statementsSet.delete(decl);\n }\n }\n }\n }\n\n if (statementsSet.size === 0) return true;\n\n if (lastImportPath) lastImportPath.insertAfter(Array.from(statementsSet));\n\n return !!lastImportPath;\n }\n}\n\nfunction isValueImport(node: t.ImportDeclaration) {\n return node.importKind !== \"type\" && node.importKind !== \"typeof\";\n}\n\nfunction hasNamespaceImport(node: t.ImportDeclaration) {\n return (\n (node.specifiers.length === 1 &&\n node.specifiers[0].type === \"ImportNamespaceSpecifier\") ||\n (node.specifiers.length === 2 &&\n node.specifiers[1].type === \"ImportNamespaceSpecifier\")\n );\n}\n\nfunction hasDefaultImport(node: t.ImportDeclaration) {\n return (\n node.specifiers.length > 0 &&\n node.specifiers[0].type === \"ImportDefaultSpecifier\"\n );\n}\n\nfunction maybeAppendImportSpecifiers(\n target: t.ImportDeclaration,\n source: t.ImportDeclaration,\n): boolean {\n if (!target.specifiers.length) {\n target.specifiers = source.specifiers;\n return true;\n }\n if (!source.specifiers.length) return true;\n\n if (hasNamespaceImport(target) || hasNamespaceImport(source)) return false;\n\n if (hasDefaultImport(source)) {\n if (hasDefaultImport(target)) {\n source.specifiers[0] = importSpecifier(\n source.specifiers[0].local,\n identifier(\"default\"),\n );\n } else {\n target.specifiers.unshift(source.specifiers.shift());\n }\n }\n\n target.specifiers.push(...source.specifiers);\n\n return true;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-imports/lib/index.js b/framework-core/node_modules/@babel/helper-module-imports/lib/index.js new file mode 100644 index 0000000..84f97fc --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/lib/index.js @@ -0,0 +1,37 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ImportInjector", { + enumerable: true, + get: function () { + return _importInjector.default; + } +}); +exports.addDefault = addDefault; +exports.addNamed = addNamed; +exports.addNamespace = addNamespace; +exports.addSideEffect = addSideEffect; +Object.defineProperty(exports, "isModule", { + enumerable: true, + get: function () { + return _isModule.default; + } +}); +var _importInjector = require("./import-injector.js"); +var _isModule = require("./is-module.js"); +function addDefault(path, importedSource, opts) { + return new _importInjector.default(path).addDefault(importedSource, opts); +} +function addNamed(path, name, importedSource, opts) { + return new _importInjector.default(path).addNamed(name, importedSource, opts); +} +function addNamespace(path, importedSource, opts) { + return new _importInjector.default(path).addNamespace(importedSource, opts); +} +function addSideEffect(path, importedSource, opts) { + return new _importInjector.default(path).addSideEffect(importedSource, opts); +} + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/helper-module-imports/lib/index.js.map b/framework-core/node_modules/@babel/helper-module-imports/lib/index.js.map new file mode 100644 index 0000000..787cfd3 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_importInjector","require","_isModule","addDefault","path","importedSource","opts","ImportInjector","addNamed","name","addNamespace","addSideEffect"],"sources":["../src/index.ts"],"sourcesContent":["import ImportInjector, { type ImportOptions } from \"./import-injector.ts\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nexport { ImportInjector };\n\nexport { default as isModule } from \"./is-module.ts\";\n\nexport function addDefault(\n path: NodePath,\n importedSource: string,\n opts?: Partial,\n) {\n return new ImportInjector(path).addDefault(importedSource, opts);\n}\n\nfunction addNamed(\n path: NodePath,\n name: string,\n importedSource: string,\n opts?: Omit<\n Partial,\n \"ensureLiveReference\" | \"ensureNoContext\"\n >,\n): t.Identifier;\nfunction addNamed(\n path: NodePath,\n name: string,\n importedSource: string,\n opts?: Omit, \"ensureLiveReference\"> & {\n ensureLiveReference: true;\n },\n): t.MemberExpression;\nfunction addNamed(\n path: NodePath,\n name: string,\n importedSource: string,\n opts?: Omit, \"ensureNoContext\"> & {\n ensureNoContext: true;\n },\n): t.SequenceExpression;\n/**\n * add a named import to the program path of given path\n *\n * @export\n * @param {NodePath} path The starting path to find a program path\n * @param {string} name The name of the generated binding. Babel will prefix it with `_`\n * @param {string} importedSource The source of the import\n * @param {Partial} [opts]\n * @returns {t.Identifier | t.MemberExpression | t.SequenceExpression} If opts.ensureNoContext is true, returns a SequenceExpression,\n * else if opts.ensureLiveReference is true, returns a MemberExpression, else returns an Identifier\n */\nfunction addNamed(\n path: NodePath,\n name: string,\n importedSource: string,\n opts?: Partial,\n) {\n return new ImportInjector(path).addNamed(name, importedSource, opts);\n}\nexport { addNamed };\n\nexport function addNamespace(\n path: NodePath,\n importedSource: string,\n opts?: Partial,\n) {\n return new ImportInjector(path).addNamespace(importedSource, opts);\n}\n\nexport function addSideEffect(\n path: NodePath,\n importedSource: string,\n opts?: Partial,\n) {\n return new ImportInjector(path).addSideEffect(importedSource, opts);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAMA,IAAAC,SAAA,GAAAD,OAAA;AAEO,SAASE,UAAUA,CACxBC,IAAc,EACdC,cAAsB,EACtBC,IAA6B,EAC7B;EACA,OAAO,IAAIC,uBAAc,CAACH,IAAI,CAAC,CAACD,UAAU,CAACE,cAAc,EAAEC,IAAI,CAAC;AAClE;AAsCA,SAASE,QAAQA,CACfJ,IAAc,EACdK,IAAY,EACZJ,cAAsB,EACtBC,IAA6B,EAC7B;EACA,OAAO,IAAIC,uBAAc,CAACH,IAAI,CAAC,CAACI,QAAQ,CAACC,IAAI,EAAEJ,cAAc,EAAEC,IAAI,CAAC;AACtE;AAGO,SAASI,YAAYA,CAC1BN,IAAc,EACdC,cAAsB,EACtBC,IAA6B,EAC7B;EACA,OAAO,IAAIC,uBAAc,CAACH,IAAI,CAAC,CAACM,YAAY,CAACL,cAAc,EAAEC,IAAI,CAAC;AACpE;AAEO,SAASK,aAAaA,CAC3BP,IAAc,EACdC,cAAsB,EACtBC,IAA6B,EAC7B;EACA,OAAO,IAAIC,uBAAc,CAACH,IAAI,CAAC,CAACO,aAAa,CAACN,cAAc,EAAEC,IAAI,CAAC;AACrE","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-imports/lib/is-module.js b/framework-core/node_modules/@babel/helper-module-imports/lib/is-module.js new file mode 100644 index 0000000..0bbda01 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/lib/is-module.js @@ -0,0 +1,11 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = isModule; +function isModule(path) { + return path.node.sourceType === "module"; +} + +//# sourceMappingURL=is-module.js.map diff --git a/framework-core/node_modules/@babel/helper-module-imports/lib/is-module.js.map b/framework-core/node_modules/@babel/helper-module-imports/lib/is-module.js.map new file mode 100644 index 0000000..c460806 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/lib/is-module.js.map @@ -0,0 +1 @@ +{"version":3,"names":["isModule","path","node","sourceType"],"sources":["../src/is-module.ts"],"sourcesContent":["import type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\n/**\n * A small utility to check if a file qualifies as a module.\n */\nexport default function isModule(path: NodePath) {\n return path.node.sourceType === \"module\";\n}\n"],"mappings":";;;;;;AAMe,SAASA,QAAQA,CAACC,IAAyB,EAAE;EAC1D,OAAOA,IAAI,CAACC,IAAI,CAACC,UAAU,KAAK,QAAQ;AAC1C","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-imports/package.json b/framework-core/node_modules/@babel/helper-module-imports/package.json new file mode 100644 index 0000000..f9dee72 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-imports/package.json @@ -0,0 +1,28 @@ +{ + "name": "@babel/helper-module-imports", + "version": "7.27.1", + "description": "Babel helper functions for inserting module loads", + "author": "The Babel Team (https://babel.dev/team)", + "homepage": "https://babel.dev/docs/en/next/babel-helper-module-imports", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-module-imports" + }, + "main": "./lib/index.js", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "devDependencies": { + "@babel/core": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-transforms/LICENSE b/framework-core/node_modules/@babel/helper-module-transforms/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/framework-core/node_modules/@babel/helper-module-transforms/README.md b/framework-core/node_modules/@babel/helper-module-transforms/README.md new file mode 100644 index 0000000..d0f82fe --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/README.md @@ -0,0 +1,19 @@ +# @babel/helper-module-transforms + +> Babel helper functions for implementing ES6 module transformations + +See our website [@babel/helper-module-transforms](https://babeljs.io/docs/babel-helper-module-transforms) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-module-transforms +``` + +or using yarn: + +```sh +yarn add @babel/helper-module-transforms +``` diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js b/framework-core/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js new file mode 100644 index 0000000..90fcea6 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js @@ -0,0 +1,48 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.buildDynamicImport = buildDynamicImport; +var _core = require("@babel/core"); +{ + exports.getDynamicImportSource = function getDynamicImportSource(node) { + const [source] = node.arguments; + return _core.types.isStringLiteral(source) || _core.types.isTemplateLiteral(source) ? source : _core.template.expression.ast`\`\${${source}}\``; + }; +} +function buildDynamicImport(node, deferToThen, wrapWithPromise, builder) { + const specifier = _core.types.isCallExpression(node) ? node.arguments[0] : node.source; + if (_core.types.isStringLiteral(specifier) || _core.types.isTemplateLiteral(specifier) && specifier.quasis.length === 0) { + if (deferToThen) { + return _core.template.expression.ast` + Promise.resolve().then(() => ${builder(specifier)}) + `; + } else return builder(specifier); + } + const specifierToString = _core.types.isTemplateLiteral(specifier) ? _core.types.identifier("specifier") : _core.types.templateLiteral([_core.types.templateElement({ + raw: "" + }), _core.types.templateElement({ + raw: "" + })], [_core.types.identifier("specifier")]); + if (deferToThen) { + return _core.template.expression.ast` + (specifier => + new Promise(r => r(${specifierToString})) + .then(s => ${builder(_core.types.identifier("s"))}) + )(${specifier}) + `; + } else if (wrapWithPromise) { + return _core.template.expression.ast` + (specifier => + new Promise(r => r(${builder(specifierToString)})) + )(${specifier}) + `; + } else { + return _core.template.expression.ast` + (specifier => ${builder(specifierToString)})(${specifier}) + `; + } +} + +//# sourceMappingURL=dynamic-import.js.map diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map b/framework-core/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map new file mode 100644 index 0000000..1ae8dc3 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_core","require","exports","getDynamicImportSource","node","source","arguments","t","isStringLiteral","isTemplateLiteral","template","expression","ast","buildDynamicImport","deferToThen","wrapWithPromise","builder","specifier","isCallExpression","quasis","length","specifierToString","identifier","templateLiteral","templateElement","raw"],"sources":["../src/dynamic-import.ts"],"sourcesContent":["// Heavily inspired by\n// https://github.com/airbnb/babel-plugin-dynamic-import-node/blob/master/src/utils.js\n\nimport { types as t, template } from \"@babel/core\";\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.getDynamicImportSource = function getDynamicImportSource(\n node: t.CallExpression,\n ): t.StringLiteral | t.TemplateLiteral {\n const [source] = node.arguments;\n\n return t.isStringLiteral(source) || t.isTemplateLiteral(source)\n ? source\n : (template.expression.ast`\\`\\${${source}}\\`` as t.TemplateLiteral);\n };\n}\n\nexport function buildDynamicImport(\n node: t.CallExpression | t.ImportExpression,\n deferToThen: boolean,\n wrapWithPromise: boolean,\n builder: (specifier: t.Expression) => t.Expression,\n): t.Expression {\n const specifier = t.isCallExpression(node) ? node.arguments[0] : node.source;\n\n if (\n t.isStringLiteral(specifier) ||\n (t.isTemplateLiteral(specifier) && specifier.quasis.length === 0)\n ) {\n if (deferToThen) {\n return template.expression.ast`\n Promise.resolve().then(() => ${builder(specifier)})\n `;\n } else return builder(specifier);\n }\n\n const specifierToString = t.isTemplateLiteral(specifier)\n ? t.identifier(\"specifier\")\n : t.templateLiteral(\n [t.templateElement({ raw: \"\" }), t.templateElement({ raw: \"\" })],\n [t.identifier(\"specifier\")],\n );\n\n if (deferToThen) {\n return template.expression.ast`\n (specifier =>\n new Promise(r => r(${specifierToString}))\n .then(s => ${builder(t.identifier(\"s\"))})\n )(${specifier})\n `;\n } else if (wrapWithPromise) {\n return template.expression.ast`\n (specifier =>\n new Promise(r => r(${builder(specifierToString)}))\n )(${specifier})\n `;\n } else {\n return template.expression.ast`\n (specifier => ${builder(specifierToString)})(${specifier})\n `;\n }\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAEiE;EAE/DC,OAAO,CAACC,sBAAsB,GAAG,SAASA,sBAAsBA,CAC9DC,IAAsB,EACe;IACrC,MAAM,CAACC,MAAM,CAAC,GAAGD,IAAI,CAACE,SAAS;IAE/B,OAAOC,WAAC,CAACC,eAAe,CAACH,MAAM,CAAC,IAAIE,WAAC,CAACE,iBAAiB,CAACJ,MAAM,CAAC,GAC3DA,MAAM,GACLK,cAAQ,CAACC,UAAU,CAACC,GAAG,QAAQP,MAAM,KAA2B;EACvE,CAAC;AACH;AAEO,SAASQ,kBAAkBA,CAChCT,IAA2C,EAC3CU,WAAoB,EACpBC,eAAwB,EACxBC,OAAkD,EACpC;EACd,MAAMC,SAAS,GAAGV,WAAC,CAACW,gBAAgB,CAACd,IAAI,CAAC,GAAGA,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC,GAAGF,IAAI,CAACC,MAAM;EAE5E,IACEE,WAAC,CAACC,eAAe,CAACS,SAAS,CAAC,IAC3BV,WAAC,CAACE,iBAAiB,CAACQ,SAAS,CAAC,IAAIA,SAAS,CAACE,MAAM,CAACC,MAAM,KAAK,CAAE,EACjE;IACA,IAAIN,WAAW,EAAE;MACf,OAAOJ,cAAQ,CAACC,UAAU,CAACC,GAAG;AACpC,uCAAuCI,OAAO,CAACC,SAAS,CAAC;AACzD,OAAO;IACH,CAAC,MAAM,OAAOD,OAAO,CAACC,SAAS,CAAC;EAClC;EAEA,MAAMI,iBAAiB,GAAGd,WAAC,CAACE,iBAAiB,CAACQ,SAAS,CAAC,GACpDV,WAAC,CAACe,UAAU,CAAC,WAAW,CAAC,GACzBf,WAAC,CAACgB,eAAe,CACf,CAAChB,WAAC,CAACiB,eAAe,CAAC;IAAEC,GAAG,EAAE;EAAG,CAAC,CAAC,EAAElB,WAAC,CAACiB,eAAe,CAAC;IAAEC,GAAG,EAAE;EAAG,CAAC,CAAC,CAAC,EAChE,CAAClB,WAAC,CAACe,UAAU,CAAC,WAAW,CAAC,CAC5B,CAAC;EAEL,IAAIR,WAAW,EAAE;IACf,OAAOJ,cAAQ,CAACC,UAAU,CAACC,GAAG;AAClC;AACA,6BAA6BS,iBAAiB;AAC9C,uBAAuBL,OAAO,CAACT,WAAC,CAACe,UAAU,CAAC,GAAG,CAAC,CAAC;AACjD,UAAUL,SAAS;AACnB,KAAK;EACH,CAAC,MAAM,IAAIF,eAAe,EAAE;IAC1B,OAAOL,cAAQ,CAACC,UAAU,CAACC,GAAG;AAClC;AACA,6BAA6BI,OAAO,CAACK,iBAAiB,CAAC;AACvD,UAAUJ,SAAS;AACnB,KAAK;EACH,CAAC,MAAM;IACL,OAAOP,cAAQ,CAACC,UAAU,CAACC,GAAG;AAClC,sBAAsBI,OAAO,CAACK,iBAAiB,CAAC,KAAKJ,SAAS;AAC9D,KAAK;EACH;AACF","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/get-module-name.js b/framework-core/node_modules/@babel/helper-module-transforms/lib/get-module-name.js new file mode 100644 index 0000000..b1a6ed7 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/get-module-name.js @@ -0,0 +1,48 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = getModuleName; +{ + const originalGetModuleName = getModuleName; + exports.default = getModuleName = function getModuleName(rootOpts, pluginOpts) { + var _pluginOpts$moduleId, _pluginOpts$moduleIds, _pluginOpts$getModule, _pluginOpts$moduleRoo; + return originalGetModuleName(rootOpts, { + moduleId: (_pluginOpts$moduleId = pluginOpts.moduleId) != null ? _pluginOpts$moduleId : rootOpts.moduleId, + moduleIds: (_pluginOpts$moduleIds = pluginOpts.moduleIds) != null ? _pluginOpts$moduleIds : rootOpts.moduleIds, + getModuleId: (_pluginOpts$getModule = pluginOpts.getModuleId) != null ? _pluginOpts$getModule : rootOpts.getModuleId, + moduleRoot: (_pluginOpts$moduleRoo = pluginOpts.moduleRoot) != null ? _pluginOpts$moduleRoo : rootOpts.moduleRoot + }); + }; +} +function getModuleName(rootOpts, pluginOpts) { + const { + filename, + filenameRelative = filename, + sourceRoot = pluginOpts.moduleRoot + } = rootOpts; + const { + moduleId, + moduleIds = !!moduleId, + getModuleId, + moduleRoot = sourceRoot + } = pluginOpts; + if (!moduleIds) return null; + if (moduleId != null && !getModuleId) { + return moduleId; + } + let moduleName = moduleRoot != null ? moduleRoot + "/" : ""; + if (filenameRelative) { + const sourceRootReplacer = sourceRoot != null ? new RegExp("^" + sourceRoot + "/?") : ""; + moduleName += filenameRelative.replace(sourceRootReplacer, "").replace(/\.\w*$/, ""); + } + moduleName = moduleName.replace(/\\/g, "/"); + if (getModuleId) { + return getModuleId(moduleName) || moduleName; + } else { + return moduleName; + } +} + +//# sourceMappingURL=get-module-name.js.map diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/get-module-name.js.map b/framework-core/node_modules/@babel/helper-module-transforms/lib/get-module-name.js.map new file mode 100644 index 0000000..fd69f3b --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/get-module-name.js.map @@ -0,0 +1 @@ +{"version":3,"names":["originalGetModuleName","getModuleName","exports","default","rootOpts","pluginOpts","_pluginOpts$moduleId","_pluginOpts$moduleIds","_pluginOpts$getModule","_pluginOpts$moduleRoo","moduleId","moduleIds","getModuleId","moduleRoot","filename","filenameRelative","sourceRoot","moduleName","sourceRootReplacer","RegExp","replace"],"sources":["../src/get-module-name.ts"],"sourcesContent":["type RootOptions = {\n filename?: string;\n filenameRelative?: string;\n sourceRoot?: string;\n};\n\nexport type PluginOptions = {\n moduleId?: string;\n moduleIds?: boolean;\n getModuleId?: (moduleName: string) => string | null | undefined;\n moduleRoot?: string;\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n const originalGetModuleName = getModuleName;\n\n // @ts-expect-error TS doesn't like reassigning a function.\n getModuleName = function getModuleName(\n rootOpts: RootOptions & PluginOptions,\n pluginOpts: PluginOptions,\n ): string | null {\n return originalGetModuleName(rootOpts, {\n moduleId: pluginOpts.moduleId ?? rootOpts.moduleId,\n moduleIds: pluginOpts.moduleIds ?? rootOpts.moduleIds,\n getModuleId: pluginOpts.getModuleId ?? rootOpts.getModuleId,\n moduleRoot: pluginOpts.moduleRoot ?? rootOpts.moduleRoot,\n });\n };\n}\n\nexport default function getModuleName(\n rootOpts: RootOptions,\n pluginOpts: PluginOptions,\n): string | null {\n const {\n filename,\n filenameRelative = filename,\n sourceRoot = pluginOpts.moduleRoot,\n } = rootOpts;\n\n const {\n moduleId,\n moduleIds = !!moduleId,\n\n getModuleId,\n\n moduleRoot = sourceRoot,\n } = pluginOpts;\n\n if (!moduleIds) return null;\n\n // moduleId is n/a if a `getModuleId()` is provided\n if (moduleId != null && !getModuleId) {\n return moduleId;\n }\n\n let moduleName = moduleRoot != null ? moduleRoot + \"/\" : \"\";\n\n if (filenameRelative) {\n const sourceRootReplacer =\n sourceRoot != null ? new RegExp(\"^\" + sourceRoot + \"/?\") : \"\";\n\n moduleName += filenameRelative\n // remove sourceRoot from filename\n .replace(sourceRootReplacer, \"\")\n // remove extension\n .replace(/\\.\\w*$/, \"\");\n }\n\n // normalize path separators\n moduleName = moduleName.replace(/\\\\/g, \"/\");\n\n if (getModuleId) {\n // If return is falsy, assume they want us to use our generated default name\n return getModuleId(moduleName) || moduleName;\n } else {\n return moduleName;\n }\n}\n"],"mappings":";;;;;;AAamC;EACjC,MAAMA,qBAAqB,GAAGC,aAAa;EAG3CC,OAAA,CAAAC,OAAA,GAAAF,aAAa,GAAG,SAASA,aAAaA,CACpCG,QAAqC,EACrCC,UAAyB,EACV;IAAA,IAAAC,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA;IACf,OAAOT,qBAAqB,CAACI,QAAQ,EAAE;MACrCM,QAAQ,GAAAJ,oBAAA,GAAED,UAAU,CAACK,QAAQ,YAAAJ,oBAAA,GAAIF,QAAQ,CAACM,QAAQ;MAClDC,SAAS,GAAAJ,qBAAA,GAAEF,UAAU,CAACM,SAAS,YAAAJ,qBAAA,GAAIH,QAAQ,CAACO,SAAS;MACrDC,WAAW,GAAAJ,qBAAA,GAAEH,UAAU,CAACO,WAAW,YAAAJ,qBAAA,GAAIJ,QAAQ,CAACQ,WAAW;MAC3DC,UAAU,GAAAJ,qBAAA,GAAEJ,UAAU,CAACQ,UAAU,YAAAJ,qBAAA,GAAIL,QAAQ,CAACS;IAChD,CAAC,CAAC;EACJ,CAAC;AACH;AAEe,SAASZ,aAAaA,CACnCG,QAAqB,EACrBC,UAAyB,EACV;EACf,MAAM;IACJS,QAAQ;IACRC,gBAAgB,GAAGD,QAAQ;IAC3BE,UAAU,GAAGX,UAAU,CAACQ;EAC1B,CAAC,GAAGT,QAAQ;EAEZ,MAAM;IACJM,QAAQ;IACRC,SAAS,GAAG,CAAC,CAACD,QAAQ;IAEtBE,WAAW;IAEXC,UAAU,GAAGG;EACf,CAAC,GAAGX,UAAU;EAEd,IAAI,CAACM,SAAS,EAAE,OAAO,IAAI;EAG3B,IAAID,QAAQ,IAAI,IAAI,IAAI,CAACE,WAAW,EAAE;IACpC,OAAOF,QAAQ;EACjB;EAEA,IAAIO,UAAU,GAAGJ,UAAU,IAAI,IAAI,GAAGA,UAAU,GAAG,GAAG,GAAG,EAAE;EAE3D,IAAIE,gBAAgB,EAAE;IACpB,MAAMG,kBAAkB,GACtBF,UAAU,IAAI,IAAI,GAAG,IAAIG,MAAM,CAAC,GAAG,GAAGH,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE;IAE/DC,UAAU,IAAIF,gBAAgB,CAE3BK,OAAO,CAACF,kBAAkB,EAAE,EAAE,CAAC,CAE/BE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;EAC1B;EAGAH,UAAU,GAAGA,UAAU,CAACG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;EAE3C,IAAIR,WAAW,EAAE;IAEf,OAAOA,WAAW,CAACK,UAAU,CAAC,IAAIA,UAAU;EAC9C,CAAC,MAAM;IACL,OAAOA,UAAU;EACnB;AACF","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/index.js b/framework-core/node_modules/@babel/helper-module-transforms/lib/index.js new file mode 100644 index 0000000..ac884d2 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/index.js @@ -0,0 +1,398 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "buildDynamicImport", { + enumerable: true, + get: function () { + return _dynamicImport.buildDynamicImport; + } +}); +exports.buildNamespaceInitStatements = buildNamespaceInitStatements; +exports.ensureStatementsHoisted = ensureStatementsHoisted; +Object.defineProperty(exports, "getModuleName", { + enumerable: true, + get: function () { + return _getModuleName.default; + } +}); +Object.defineProperty(exports, "hasExports", { + enumerable: true, + get: function () { + return _normalizeAndLoadMetadata.hasExports; + } +}); +Object.defineProperty(exports, "isModule", { + enumerable: true, + get: function () { + return _helperModuleImports.isModule; + } +}); +Object.defineProperty(exports, "isSideEffectImport", { + enumerable: true, + get: function () { + return _normalizeAndLoadMetadata.isSideEffectImport; + } +}); +exports.rewriteModuleStatementsAndPrepareHeader = rewriteModuleStatementsAndPrepareHeader; +Object.defineProperty(exports, "rewriteThis", { + enumerable: true, + get: function () { + return _rewriteThis.default; + } +}); +exports.wrapInterop = wrapInterop; +var _assert = require("assert"); +var _core = require("@babel/core"); +var _helperModuleImports = require("@babel/helper-module-imports"); +var _rewriteThis = require("./rewrite-this.js"); +var _rewriteLiveReferences = require("./rewrite-live-references.js"); +var _normalizeAndLoadMetadata = require("./normalize-and-load-metadata.js"); +var Lazy = require("./lazy-modules.js"); +var _dynamicImport = require("./dynamic-import.js"); +var _getModuleName = require("./get-module-name.js"); +{ + exports.getDynamicImportSource = require("./dynamic-import").getDynamicImportSource; +} +function rewriteModuleStatementsAndPrepareHeader(path, { + exportName, + strict, + allowTopLevelThis, + strictMode, + noInterop, + importInterop = noInterop ? "none" : "babel", + lazy, + getWrapperPayload = Lazy.toGetWrapperPayload(lazy != null ? lazy : false), + wrapReference = Lazy.wrapReference, + esNamespaceOnly, + filename, + constantReexports = arguments[1].loose, + enumerableModuleMeta = arguments[1].loose, + noIncompleteNsImportDetection +}) { + (0, _normalizeAndLoadMetadata.validateImportInteropOption)(importInterop); + _assert((0, _helperModuleImports.isModule)(path), "Cannot process module statements in a script"); + path.node.sourceType = "script"; + const meta = (0, _normalizeAndLoadMetadata.default)(path, exportName, { + importInterop, + initializeReexports: constantReexports, + getWrapperPayload, + esNamespaceOnly, + filename + }); + if (!allowTopLevelThis) { + (0, _rewriteThis.default)(path); + } + (0, _rewriteLiveReferences.default)(path, meta, wrapReference); + if (strictMode !== false) { + const hasStrict = path.node.directives.some(directive => { + return directive.value.value === "use strict"; + }); + if (!hasStrict) { + path.unshiftContainer("directives", _core.types.directive(_core.types.directiveLiteral("use strict"))); + } + } + const headers = []; + if ((0, _normalizeAndLoadMetadata.hasExports)(meta) && !strict) { + headers.push(buildESModuleHeader(meta, enumerableModuleMeta)); + } + const nameList = buildExportNameListDeclaration(path, meta); + if (nameList) { + meta.exportNameListName = nameList.name; + headers.push(nameList.statement); + } + headers.push(...buildExportInitializationStatements(path, meta, wrapReference, constantReexports, noIncompleteNsImportDetection)); + return { + meta, + headers + }; +} +function ensureStatementsHoisted(statements) { + statements.forEach(header => { + header._blockHoist = 3; + }); +} +function wrapInterop(programPath, expr, type) { + if (type === "none") { + return null; + } + if (type === "node-namespace") { + return _core.types.callExpression(programPath.hub.addHelper("interopRequireWildcard"), [expr, _core.types.booleanLiteral(true)]); + } else if (type === "node-default") { + return null; + } + let helper; + if (type === "default") { + helper = "interopRequireDefault"; + } else if (type === "namespace") { + helper = "interopRequireWildcard"; + } else { + throw new Error(`Unknown interop: ${type}`); + } + return _core.types.callExpression(programPath.hub.addHelper(helper), [expr]); +} +function buildNamespaceInitStatements(metadata, sourceMetadata, constantReexports = false, wrapReference = Lazy.wrapReference) { + var _wrapReference; + const statements = []; + const srcNamespaceId = _core.types.identifier(sourceMetadata.name); + for (const localName of sourceMetadata.importsNamespace) { + if (localName === sourceMetadata.name) continue; + statements.push(_core.template.statement`var NAME = SOURCE;`({ + NAME: localName, + SOURCE: _core.types.cloneNode(srcNamespaceId) + })); + } + const srcNamespace = (_wrapReference = wrapReference(srcNamespaceId, sourceMetadata.wrap)) != null ? _wrapReference : srcNamespaceId; + if (constantReexports) { + statements.push(...buildReexportsFromMeta(metadata, sourceMetadata, true, wrapReference)); + } + for (const exportName of sourceMetadata.reexportNamespace) { + statements.push((!_core.types.isIdentifier(srcNamespace) ? _core.template.statement` + Object.defineProperty(EXPORTS, "NAME", { + enumerable: true, + get: function() { + return NAMESPACE; + } + }); + ` : _core.template.statement`EXPORTS.NAME = NAMESPACE;`)({ + EXPORTS: metadata.exportName, + NAME: exportName, + NAMESPACE: _core.types.cloneNode(srcNamespace) + })); + } + if (sourceMetadata.reexportAll) { + const statement = buildNamespaceReexport(metadata, _core.types.cloneNode(srcNamespace), constantReexports); + statement.loc = sourceMetadata.reexportAll.loc; + statements.push(statement); + } + return statements; +} +const ReexportTemplate = { + constant: ({ + exports, + exportName, + namespaceImport + }) => _core.template.statement.ast` + ${exports}.${exportName} = ${namespaceImport}; + `, + constantComputed: ({ + exports, + exportName, + namespaceImport + }) => _core.template.statement.ast` + ${exports}["${exportName}"] = ${namespaceImport}; + `, + spec: ({ + exports, + exportName, + namespaceImport + }) => _core.template.statement.ast` + Object.defineProperty(${exports}, "${exportName}", { + enumerable: true, + get: function() { + return ${namespaceImport}; + }, + }); + ` +}; +function buildReexportsFromMeta(meta, metadata, constantReexports, wrapReference) { + var _wrapReference2; + let namespace = _core.types.identifier(metadata.name); + namespace = (_wrapReference2 = wrapReference(namespace, metadata.wrap)) != null ? _wrapReference2 : namespace; + const { + stringSpecifiers + } = meta; + return Array.from(metadata.reexports, ([exportName, importName]) => { + let namespaceImport = _core.types.cloneNode(namespace); + if (importName === "default" && metadata.interop === "node-default") {} else if (stringSpecifiers.has(importName)) { + namespaceImport = _core.types.memberExpression(namespaceImport, _core.types.stringLiteral(importName), true); + } else { + namespaceImport = _core.types.memberExpression(namespaceImport, _core.types.identifier(importName)); + } + const astNodes = { + exports: meta.exportName, + exportName, + namespaceImport + }; + if (constantReexports || _core.types.isIdentifier(namespaceImport)) { + if (stringSpecifiers.has(exportName)) { + return ReexportTemplate.constantComputed(astNodes); + } else { + return ReexportTemplate.constant(astNodes); + } + } else { + return ReexportTemplate.spec(astNodes); + } + }); +} +function buildESModuleHeader(metadata, enumerableModuleMeta = false) { + return (enumerableModuleMeta ? _core.template.statement` + EXPORTS.__esModule = true; + ` : _core.template.statement` + Object.defineProperty(EXPORTS, "__esModule", { + value: true, + }); + `)({ + EXPORTS: metadata.exportName + }); +} +function buildNamespaceReexport(metadata, namespace, constantReexports) { + return (constantReexports ? _core.template.statement` + Object.keys(NAMESPACE).forEach(function(key) { + if (key === "default" || key === "__esModule") return; + VERIFY_NAME_LIST; + if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; + + EXPORTS[key] = NAMESPACE[key]; + }); + ` : _core.template.statement` + Object.keys(NAMESPACE).forEach(function(key) { + if (key === "default" || key === "__esModule") return; + VERIFY_NAME_LIST; + if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; + + Object.defineProperty(EXPORTS, key, { + enumerable: true, + get: function() { + return NAMESPACE[key]; + }, + }); + }); + `)({ + NAMESPACE: namespace, + EXPORTS: metadata.exportName, + VERIFY_NAME_LIST: metadata.exportNameListName ? (0, _core.template)` + if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return; + `({ + EXPORTS_LIST: metadata.exportNameListName + }) : null + }); +} +function buildExportNameListDeclaration(programPath, metadata) { + const exportedVars = Object.create(null); + for (const data of metadata.local.values()) { + for (const name of data.names) { + exportedVars[name] = true; + } + } + let hasReexport = false; + for (const data of metadata.source.values()) { + for (const exportName of data.reexports.keys()) { + exportedVars[exportName] = true; + } + for (const exportName of data.reexportNamespace) { + exportedVars[exportName] = true; + } + hasReexport = hasReexport || !!data.reexportAll; + } + if (!hasReexport || Object.keys(exportedVars).length === 0) return null; + const name = programPath.scope.generateUidIdentifier("exportNames"); + delete exportedVars.default; + return { + name: name.name, + statement: _core.types.variableDeclaration("var", [_core.types.variableDeclarator(name, _core.types.valueToNode(exportedVars))]) + }; +} +function buildExportInitializationStatements(programPath, metadata, wrapReference, constantReexports = false, noIncompleteNsImportDetection = false) { + const initStatements = []; + for (const [localName, data] of metadata.local) { + if (data.kind === "import") {} else if (data.kind === "hoisted") { + initStatements.push([data.names[0], buildInitStatement(metadata, data.names, _core.types.identifier(localName))]); + } else if (!noIncompleteNsImportDetection) { + for (const exportName of data.names) { + initStatements.push([exportName, null]); + } + } + } + for (const data of metadata.source.values()) { + if (!constantReexports) { + const reexportsStatements = buildReexportsFromMeta(metadata, data, false, wrapReference); + const reexports = [...data.reexports.keys()]; + for (let i = 0; i < reexportsStatements.length; i++) { + initStatements.push([reexports[i], reexportsStatements[i]]); + } + } + if (!noIncompleteNsImportDetection) { + for (const exportName of data.reexportNamespace) { + initStatements.push([exportName, null]); + } + } + } + initStatements.sort(([a], [b]) => { + if (a < b) return -1; + if (b < a) return 1; + return 0; + }); + const results = []; + if (noIncompleteNsImportDetection) { + for (const [, initStatement] of initStatements) { + results.push(initStatement); + } + } else { + const chunkSize = 100; + for (let i = 0; i < initStatements.length; i += chunkSize) { + let uninitializedExportNames = []; + for (let j = 0; j < chunkSize && i + j < initStatements.length; j++) { + const [exportName, initStatement] = initStatements[i + j]; + if (initStatement !== null) { + if (uninitializedExportNames.length > 0) { + results.push(buildInitStatement(metadata, uninitializedExportNames, programPath.scope.buildUndefinedNode())); + uninitializedExportNames = []; + } + results.push(initStatement); + } else { + uninitializedExportNames.push(exportName); + } + } + if (uninitializedExportNames.length > 0) { + results.push(buildInitStatement(metadata, uninitializedExportNames, programPath.scope.buildUndefinedNode())); + } + } + } + return results; +} +const InitTemplate = { + computed: ({ + exports, + name, + value + }) => _core.template.expression.ast`${exports}["${name}"] = ${value}`, + default: ({ + exports, + name, + value + }) => _core.template.expression.ast`${exports}.${name} = ${value}`, + define: ({ + exports, + name, + value + }) => _core.template.expression.ast` + Object.defineProperty(${exports}, "${name}", { + enumerable: true, + value: void 0, + writable: true + })["${name}"] = ${value}` +}; +function buildInitStatement(metadata, exportNames, initExpr) { + const { + stringSpecifiers, + exportName: exports + } = metadata; + return _core.types.expressionStatement(exportNames.reduce((value, name) => { + const params = { + exports, + name, + value + }; + if (name === "__proto__") { + return InitTemplate.define(params); + } + if (stringSpecifiers.has(name)) { + return InitTemplate.computed(params); + } + return InitTemplate.default(params); + }, initExpr)); +} + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/index.js.map b/framework-core/node_modules/@babel/helper-module-transforms/lib/index.js.map new file mode 100644 index 0000000..2797847 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_assert","require","_core","_helperModuleImports","_rewriteThis","_rewriteLiveReferences","_normalizeAndLoadMetadata","Lazy","_dynamicImport","_getModuleName","exports","getDynamicImportSource","rewriteModuleStatementsAndPrepareHeader","path","exportName","strict","allowTopLevelThis","strictMode","noInterop","importInterop","lazy","getWrapperPayload","toGetWrapperPayload","wrapReference","esNamespaceOnly","filename","constantReexports","arguments","loose","enumerableModuleMeta","noIncompleteNsImportDetection","validateImportInteropOption","assert","isModule","node","sourceType","meta","normalizeModuleAndLoadMetadata","initializeReexports","rewriteThis","rewriteLiveReferences","hasStrict","directives","some","directive","value","unshiftContainer","t","directiveLiteral","headers","hasExports","push","buildESModuleHeader","nameList","buildExportNameListDeclaration","exportNameListName","name","statement","buildExportInitializationStatements","ensureStatementsHoisted","statements","forEach","header","_blockHoist","wrapInterop","programPath","expr","type","callExpression","hub","addHelper","booleanLiteral","helper","Error","buildNamespaceInitStatements","metadata","sourceMetadata","_wrapReference","srcNamespaceId","identifier","localName","importsNamespace","template","NAME","SOURCE","cloneNode","srcNamespace","wrap","buildReexportsFromMeta","reexportNamespace","isIdentifier","EXPORTS","NAMESPACE","reexportAll","buildNamespaceReexport","loc","ReexportTemplate","constant","namespaceImport","ast","constantComputed","spec","_wrapReference2","namespace","stringSpecifiers","Array","from","reexports","importName","interop","has","memberExpression","stringLiteral","astNodes","VERIFY_NAME_LIST","EXPORTS_LIST","exportedVars","Object","create","data","local","values","names","hasReexport","source","keys","length","scope","generateUidIdentifier","default","variableDeclaration","variableDeclarator","valueToNode","initStatements","kind","buildInitStatement","reexportsStatements","i","sort","a","b","results","initStatement","chunkSize","uninitializedExportNames","j","buildUndefinedNode","InitTemplate","computed","expression","define","exportNames","initExpr","expressionStatement","reduce","params"],"sources":["../src/index.ts"],"sourcesContent":["import assert from \"node:assert\";\nimport { template, types as t } from \"@babel/core\";\n\nimport { isModule } from \"@babel/helper-module-imports\";\n\nimport rewriteThis from \"./rewrite-this.ts\";\nimport rewriteLiveReferences from \"./rewrite-live-references.ts\";\nimport normalizeModuleAndLoadMetadata, {\n hasExports,\n isSideEffectImport,\n validateImportInteropOption,\n} from \"./normalize-and-load-metadata.ts\";\nimport type {\n ImportInterop,\n InteropType,\n ModuleMetadata,\n SourceModuleMetadata,\n} from \"./normalize-and-load-metadata.ts\";\nimport * as Lazy from \"./lazy-modules.ts\";\nimport type { NodePath } from \"@babel/core\";\n\nexport { buildDynamicImport } from \"./dynamic-import.ts\";\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.getDynamicImportSource =\n // eslint-disable-next-line no-restricted-globals, import/extensions\n require(\"./dynamic-import\").getDynamicImportSource;\n}\n\nexport { default as getModuleName } from \"./get-module-name.ts\";\nexport type { PluginOptions } from \"./get-module-name.ts\";\n\nexport { hasExports, isSideEffectImport, isModule, rewriteThis };\n\nexport interface RewriteModuleStatementsAndPrepareHeaderOptions {\n exportName?: string;\n strict: boolean;\n allowTopLevelThis?: boolean;\n strictMode: boolean;\n loose?: boolean;\n importInterop?: ImportInterop;\n noInterop?: boolean;\n lazy?: Lazy.Lazy;\n getWrapperPayload?: (\n source: string,\n metadata: SourceModuleMetadata,\n importNodes: t.Node[],\n ) => unknown;\n wrapReference?: (ref: t.Expression, payload: unknown) => t.Expression | null;\n esNamespaceOnly?: boolean;\n filename: string | undefined;\n constantReexports?: boolean | void;\n enumerableModuleMeta?: boolean | void;\n noIncompleteNsImportDetection?: boolean | void;\n}\n\n/**\n * Perform all of the generic ES6 module rewriting needed to handle initial\n * module processing. This function will rewrite the majority of the given\n * program to reference the modules described by the returned metadata,\n * and returns a list of statements for use when initializing the module.\n */\nexport function rewriteModuleStatementsAndPrepareHeader(\n path: NodePath,\n {\n exportName,\n strict,\n allowTopLevelThis,\n strictMode,\n noInterop,\n importInterop = noInterop ? \"none\" : \"babel\",\n // TODO(Babel 8): After that `lazy` implementation is moved to the CJS\n // transform, remove this parameter.\n lazy,\n getWrapperPayload = Lazy.toGetWrapperPayload(lazy ?? false),\n wrapReference = Lazy.wrapReference,\n esNamespaceOnly,\n filename,\n\n constantReexports = process.env.BABEL_8_BREAKING\n ? undefined\n : arguments[1].loose,\n enumerableModuleMeta = process.env.BABEL_8_BREAKING\n ? undefined\n : arguments[1].loose,\n noIncompleteNsImportDetection,\n }: RewriteModuleStatementsAndPrepareHeaderOptions,\n) {\n validateImportInteropOption(importInterop);\n assert(isModule(path), \"Cannot process module statements in a script\");\n path.node.sourceType = \"script\";\n\n const meta = normalizeModuleAndLoadMetadata(path, exportName, {\n importInterop,\n initializeReexports: constantReexports,\n getWrapperPayload,\n esNamespaceOnly,\n filename,\n });\n\n if (!allowTopLevelThis) {\n rewriteThis(path);\n }\n\n rewriteLiveReferences(path, meta, wrapReference);\n\n if (strictMode !== false) {\n const hasStrict = path.node.directives.some(directive => {\n return directive.value.value === \"use strict\";\n });\n if (!hasStrict) {\n path.unshiftContainer(\n \"directives\",\n t.directive(t.directiveLiteral(\"use strict\")),\n );\n }\n }\n\n const headers = [];\n if (hasExports(meta) && !strict) {\n headers.push(buildESModuleHeader(meta, enumerableModuleMeta));\n }\n\n const nameList = buildExportNameListDeclaration(path, meta);\n\n if (nameList) {\n meta.exportNameListName = nameList.name;\n headers.push(nameList.statement);\n }\n\n // Create all of the statically known named exports.\n headers.push(\n ...buildExportInitializationStatements(\n path,\n meta,\n wrapReference,\n constantReexports,\n noIncompleteNsImportDetection,\n ),\n );\n\n return { meta, headers };\n}\n\n/**\n * Flag a set of statements as hoisted above all else so that module init\n * statements all run before user code.\n */\nexport function ensureStatementsHoisted(statements: t.Statement[]) {\n // Force all of the header fields to be at the top of the file.\n statements.forEach(header => {\n // @ts-expect-error Fixme: handle _blockHoist property\n header._blockHoist = 3;\n });\n}\n\n/**\n * Given an expression for a standard import object, like \"require('foo')\",\n * wrap it in a call to the interop helpers based on the type.\n */\nexport function wrapInterop(\n programPath: NodePath,\n expr: t.Expression,\n type: InteropType,\n): t.CallExpression {\n if (type === \"none\") {\n return null;\n }\n\n if (type === \"node-namespace\") {\n return t.callExpression(\n programPath.hub.addHelper(\"interopRequireWildcard\"),\n [expr, t.booleanLiteral(true)],\n );\n } else if (type === \"node-default\") {\n return null;\n }\n\n let helper;\n if (type === \"default\") {\n helper = \"interopRequireDefault\";\n } else if (type === \"namespace\") {\n helper = \"interopRequireWildcard\";\n } else {\n throw new Error(`Unknown interop: ${type}`);\n }\n\n return t.callExpression(programPath.hub.addHelper(helper), [expr]);\n}\n\n/**\n * Create the runtime initialization statements for a given requested source.\n * These will initialize all of the runtime import/export logic that\n * can't be handled statically by the statements created by\n * buildExportInitializationStatements().\n */\nexport function buildNamespaceInitStatements(\n metadata: ModuleMetadata,\n sourceMetadata: SourceModuleMetadata,\n constantReexports: boolean | void = false,\n wrapReference: (\n ref: t.Identifier,\n payload: unknown,\n ) => t.Expression | null = Lazy.wrapReference,\n) {\n const statements = [];\n\n const srcNamespaceId = t.identifier(sourceMetadata.name);\n\n for (const localName of sourceMetadata.importsNamespace) {\n if (localName === sourceMetadata.name) continue;\n\n // Create and assign binding to namespace object\n statements.push(\n template.statement`var NAME = SOURCE;`({\n NAME: localName,\n SOURCE: t.cloneNode(srcNamespaceId),\n }),\n );\n }\n\n const srcNamespace =\n wrapReference(srcNamespaceId, sourceMetadata.wrap) ?? srcNamespaceId;\n\n if (constantReexports) {\n statements.push(\n ...buildReexportsFromMeta(metadata, sourceMetadata, true, wrapReference),\n );\n }\n for (const exportName of sourceMetadata.reexportNamespace) {\n // Assign export to namespace object.\n statements.push(\n (!t.isIdentifier(srcNamespace)\n ? template.statement`\n Object.defineProperty(EXPORTS, \"NAME\", {\n enumerable: true,\n get: function() {\n return NAMESPACE;\n }\n });\n `\n : template.statement`EXPORTS.NAME = NAMESPACE;`)({\n EXPORTS: metadata.exportName,\n NAME: exportName,\n NAMESPACE: t.cloneNode(srcNamespace),\n }),\n );\n }\n if (sourceMetadata.reexportAll) {\n const statement = buildNamespaceReexport(\n metadata,\n t.cloneNode(srcNamespace),\n constantReexports,\n );\n statement.loc = sourceMetadata.reexportAll.loc;\n\n // Iterate props creating getter for each prop.\n statements.push(statement);\n }\n return statements;\n}\n\ninterface ReexportParts {\n exports: string;\n exportName: string;\n namespaceImport: t.Expression;\n}\n\nconst ReexportTemplate = {\n constant: ({ exports, exportName, namespaceImport }: ReexportParts) =>\n template.statement.ast`\n ${exports}.${exportName} = ${namespaceImport};\n `,\n constantComputed: ({ exports, exportName, namespaceImport }: ReexportParts) =>\n template.statement.ast`\n ${exports}[\"${exportName}\"] = ${namespaceImport};\n `,\n spec: ({ exports, exportName, namespaceImport }: ReexportParts) =>\n template.statement.ast`\n Object.defineProperty(${exports}, \"${exportName}\", {\n enumerable: true,\n get: function() {\n return ${namespaceImport};\n },\n });\n `,\n};\n\nfunction buildReexportsFromMeta(\n meta: ModuleMetadata,\n metadata: SourceModuleMetadata,\n constantReexports: boolean,\n wrapReference: (ref: t.Expression, payload: unknown) => t.Expression | null,\n): t.Statement[] {\n let namespace: t.Expression = t.identifier(metadata.name);\n namespace = wrapReference(namespace, metadata.wrap) ?? namespace;\n\n const { stringSpecifiers } = meta;\n return Array.from(metadata.reexports, ([exportName, importName]) => {\n let namespaceImport: t.Expression = t.cloneNode(namespace);\n if (importName === \"default\" && metadata.interop === \"node-default\") {\n // Nothing, it's ok as-is\n } else if (stringSpecifiers.has(importName)) {\n namespaceImport = t.memberExpression(\n namespaceImport,\n t.stringLiteral(importName),\n true,\n );\n } else {\n namespaceImport = t.memberExpression(\n namespaceImport,\n t.identifier(importName),\n );\n }\n const astNodes: ReexportParts = {\n exports: meta.exportName,\n exportName,\n namespaceImport,\n };\n if (constantReexports || t.isIdentifier(namespaceImport)) {\n if (stringSpecifiers.has(exportName)) {\n return ReexportTemplate.constantComputed(astNodes);\n } else {\n return ReexportTemplate.constant(astNodes);\n }\n } else {\n return ReexportTemplate.spec(astNodes);\n }\n });\n}\n\n/**\n * Build an \"__esModule\" header statement setting the property on a given object.\n */\nfunction buildESModuleHeader(\n metadata: ModuleMetadata,\n enumerableModuleMeta: boolean | void = false,\n) {\n return (\n enumerableModuleMeta\n ? template.statement`\n EXPORTS.__esModule = true;\n `\n : template.statement`\n Object.defineProperty(EXPORTS, \"__esModule\", {\n value: true,\n });\n `\n )({ EXPORTS: metadata.exportName });\n}\n\n/**\n * Create a re-export initialization loop for a specific imported namespace.\n */\nfunction buildNamespaceReexport(\n metadata: ModuleMetadata,\n namespace: t.Expression,\n constantReexports: boolean | void,\n) {\n return (\n constantReexports\n ? template.statement`\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n EXPORTS[key] = NAMESPACE[key];\n });\n `\n : // Also skip already assigned bindings if they are strictly equal\n // to be somewhat more spec-compliant when a file has multiple\n // namespace re-exports that would cause a binding to be exported\n // multiple times. However, multiple bindings of the same name that\n // export the same primitive value are silently skipped\n // (the spec requires an \"ambiguous bindings\" early error here).\n template.statement`\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n Object.defineProperty(EXPORTS, key, {\n enumerable: true,\n get: function() {\n return NAMESPACE[key];\n },\n });\n });\n `\n )({\n NAMESPACE: namespace,\n EXPORTS: metadata.exportName,\n VERIFY_NAME_LIST: metadata.exportNameListName\n ? template`\n if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return;\n `({ EXPORTS_LIST: metadata.exportNameListName })\n : null,\n });\n}\n\n/**\n * Build a statement declaring a variable that contains all of the exported\n * variable names in an object so they can easily be referenced from an\n * export * from statement to check for conflicts.\n */\nfunction buildExportNameListDeclaration(\n programPath: NodePath,\n metadata: ModuleMetadata,\n) {\n const exportedVars = Object.create(null);\n for (const data of metadata.local.values()) {\n for (const name of data.names) {\n exportedVars[name] = true;\n }\n }\n\n let hasReexport = false;\n for (const data of metadata.source.values()) {\n for (const exportName of data.reexports.keys()) {\n exportedVars[exportName] = true;\n }\n for (const exportName of data.reexportNamespace) {\n exportedVars[exportName] = true;\n }\n\n hasReexport = hasReexport || !!data.reexportAll;\n }\n\n if (!hasReexport || Object.keys(exportedVars).length === 0) return null;\n\n const name = programPath.scope.generateUidIdentifier(\"exportNames\");\n\n delete exportedVars.default;\n\n return {\n name: name.name,\n statement: t.variableDeclaration(\"var\", [\n t.variableDeclarator(name, t.valueToNode(exportedVars)),\n ]),\n };\n}\n\n/**\n * Create a set of statements that will initialize all of the statically-known\n * export names with their expected values.\n */\nfunction buildExportInitializationStatements(\n programPath: NodePath,\n metadata: ModuleMetadata,\n wrapReference: (ref: t.Expression, payload: unknown) => t.Expression | null,\n constantReexports: boolean | void = false,\n noIncompleteNsImportDetection: boolean | void = false,\n) {\n const initStatements: Array<[string, t.Statement | null]> = [];\n\n for (const [localName, data] of metadata.local) {\n if (data.kind === \"import\") {\n // No-open since these are explicitly set with the \"reexports\" block.\n } else if (data.kind === \"hoisted\") {\n initStatements.push([\n // data.names is always of length 1 because a hoisted export\n // name must be id of a function declaration\n data.names[0],\n buildInitStatement(metadata, data.names, t.identifier(localName)),\n ]);\n } else if (!noIncompleteNsImportDetection) {\n for (const exportName of data.names) {\n initStatements.push([exportName, null]);\n }\n }\n }\n\n for (const data of metadata.source.values()) {\n if (!constantReexports) {\n const reexportsStatements = buildReexportsFromMeta(\n metadata,\n data,\n false,\n wrapReference,\n );\n const reexports = [...data.reexports.keys()];\n for (let i = 0; i < reexportsStatements.length; i++) {\n initStatements.push([reexports[i], reexportsStatements[i]]);\n }\n }\n if (!noIncompleteNsImportDetection) {\n for (const exportName of data.reexportNamespace) {\n initStatements.push([exportName, null]);\n }\n }\n }\n\n // https://tc39.es/ecma262/#sec-module-namespace-exotic-objects\n // The [Exports] list is ordered as if an Array of those String values\n // had been sorted using %Array.prototype.sort% using undefined as comparefn\n initStatements.sort(([a], [b]) => {\n if (a < b) return -1;\n if (b < a) return 1;\n return 0;\n });\n\n const results = [];\n if (noIncompleteNsImportDetection) {\n for (const [, initStatement] of initStatements) {\n results.push(initStatement);\n }\n } else {\n // We generate init statements (`exports.a = exports.b = ... = void 0`)\n // for every 100 exported names to avoid deeply-nested AST structures.\n const chunkSize = 100;\n for (let i = 0; i < initStatements.length; i += chunkSize) {\n let uninitializedExportNames = [];\n for (let j = 0; j < chunkSize && i + j < initStatements.length; j++) {\n const [exportName, initStatement] = initStatements[i + j];\n if (initStatement !== null) {\n if (uninitializedExportNames.length > 0) {\n results.push(\n buildInitStatement(\n metadata,\n uninitializedExportNames,\n programPath.scope.buildUndefinedNode(),\n ),\n );\n // reset after uninitializedExportNames has been transformed\n // to init statements\n uninitializedExportNames = [];\n }\n results.push(initStatement);\n } else {\n uninitializedExportNames.push(exportName);\n }\n }\n if (uninitializedExportNames.length > 0) {\n results.push(\n buildInitStatement(\n metadata,\n uninitializedExportNames,\n programPath.scope.buildUndefinedNode(),\n ),\n );\n }\n }\n }\n\n return results;\n}\n\ninterface InitParts {\n exports: string;\n name: string;\n value: t.Expression;\n}\n\n/**\n * Given a set of export names, create a set of nested assignments to\n * initialize them all to a given expression.\n */\nconst InitTemplate = {\n computed: ({ exports, name, value }: InitParts) =>\n template.expression.ast`${exports}[\"${name}\"] = ${value}`,\n default: ({ exports, name, value }: InitParts) =>\n template.expression.ast`${exports}.${name} = ${value}`,\n define: ({ exports, name, value }: InitParts) =>\n template.expression.ast`\n Object.defineProperty(${exports}, \"${name}\", {\n enumerable: true,\n value: void 0,\n writable: true\n })[\"${name}\"] = ${value}`,\n};\n\nfunction buildInitStatement(\n metadata: ModuleMetadata,\n exportNames: string[],\n initExpr: t.Expression,\n) {\n const { stringSpecifiers, exportName: exports } = metadata;\n return t.expressionStatement(\n exportNames.reduce((value, name) => {\n const params = {\n exports,\n name,\n value,\n };\n\n if (name === \"__proto__\") {\n return InitTemplate.define(params);\n }\n\n if (stringSpecifiers.has(name)) {\n return InitTemplate.computed(params);\n }\n\n return InitTemplate.default(params);\n }, initExpr),\n );\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js b/framework-core/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js new file mode 100644 index 0000000..acc89ff --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toGetWrapperPayload = toGetWrapperPayload; +exports.wrapReference = wrapReference; +var _core = require("@babel/core"); +var _normalizeAndLoadMetadata = require("./normalize-and-load-metadata.js"); +function toGetWrapperPayload(lazy) { + return (source, metadata) => { + if (lazy === false) return null; + if ((0, _normalizeAndLoadMetadata.isSideEffectImport)(metadata) || metadata.reexportAll) return null; + if (lazy === true) { + return source.includes(".") ? null : "lazy"; + } + if (Array.isArray(lazy)) { + return !lazy.includes(source) ? null : "lazy"; + } + if (typeof lazy === "function") { + return lazy(source) ? "lazy" : null; + } + throw new Error(`.lazy must be a boolean, string array, or function`); + }; +} +function wrapReference(ref, payload) { + if (payload === "lazy") return _core.types.callExpression(ref, []); + return null; +} + +//# sourceMappingURL=lazy-modules.js.map diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js.map b/framework-core/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js.map new file mode 100644 index 0000000..890839b --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_core","require","_normalizeAndLoadMetadata","toGetWrapperPayload","lazy","source","metadata","isSideEffectImport","reexportAll","includes","Array","isArray","Error","wrapReference","ref","payload","t","callExpression"],"sources":["../src/lazy-modules.ts"],"sourcesContent":["// TODO: Move `lazy` implementation logic into the CommonJS plugin, since other\n// modules systems do not support `lazy`.\n\nimport { types as t } from \"@babel/core\";\nimport {\n type SourceModuleMetadata,\n isSideEffectImport,\n} from \"./normalize-and-load-metadata.ts\";\n\nexport type Lazy = boolean | string[] | ((source: string) => boolean);\n\nexport function toGetWrapperPayload(lazy: Lazy) {\n return (source: string, metadata: SourceModuleMetadata): null | \"lazy\" => {\n if (lazy === false) return null;\n if (isSideEffectImport(metadata) || metadata.reexportAll) return null;\n if (lazy === true) {\n // 'true' means that local relative files are eagerly loaded and\n // dependency modules are loaded lazily.\n return source.includes(\".\") ? null : \"lazy\";\n }\n if (Array.isArray(lazy)) {\n return !lazy.includes(source) ? null : \"lazy\";\n }\n if (typeof lazy === \"function\") {\n return lazy(source) ? \"lazy\" : null;\n }\n throw new Error(`.lazy must be a boolean, string array, or function`);\n };\n}\n\nexport function wrapReference(\n ref: t.Identifier,\n payload: unknown,\n): t.Expression | null {\n if (payload === \"lazy\") return t.callExpression(ref, []);\n return null;\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AAOO,SAASE,mBAAmBA,CAACC,IAAU,EAAE;EAC9C,OAAO,CAACC,MAAc,EAAEC,QAA8B,KAAoB;IACxE,IAAIF,IAAI,KAAK,KAAK,EAAE,OAAO,IAAI;IAC/B,IAAI,IAAAG,4CAAkB,EAACD,QAAQ,CAAC,IAAIA,QAAQ,CAACE,WAAW,EAAE,OAAO,IAAI;IACrE,IAAIJ,IAAI,KAAK,IAAI,EAAE;MAGjB,OAAOC,MAAM,CAACI,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM;IAC7C;IACA,IAAIC,KAAK,CAACC,OAAO,CAACP,IAAI,CAAC,EAAE;MACvB,OAAO,CAACA,IAAI,CAACK,QAAQ,CAACJ,MAAM,CAAC,GAAG,IAAI,GAAG,MAAM;IAC/C;IACA,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;MAC9B,OAAOA,IAAI,CAACC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI;IACrC;IACA,MAAM,IAAIO,KAAK,CAAC,oDAAoD,CAAC;EACvE,CAAC;AACH;AAEO,SAASC,aAAaA,CAC3BC,GAAiB,EACjBC,OAAgB,EACK;EACrB,IAAIA,OAAO,KAAK,MAAM,EAAE,OAAOC,WAAC,CAACC,cAAc,CAACH,GAAG,EAAE,EAAE,CAAC;EACxD,OAAO,IAAI;AACb","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js b/framework-core/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js new file mode 100644 index 0000000..5cf361f --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js @@ -0,0 +1,364 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = normalizeModuleAndLoadMetadata; +exports.hasExports = hasExports; +exports.isSideEffectImport = isSideEffectImport; +exports.validateImportInteropOption = validateImportInteropOption; +var _path = require("path"); +var _helperValidatorIdentifier = require("@babel/helper-validator-identifier"); +function hasExports(metadata) { + return metadata.hasExports; +} +function isSideEffectImport(source) { + return source.imports.size === 0 && source.importsNamespace.size === 0 && source.reexports.size === 0 && source.reexportNamespace.size === 0 && !source.reexportAll; +} +function validateImportInteropOption(importInterop) { + if (typeof importInterop !== "function" && importInterop !== "none" && importInterop !== "babel" && importInterop !== "node") { + throw new Error(`.importInterop must be one of "none", "babel", "node", or a function returning one of those values (received ${importInterop}).`); + } + return importInterop; +} +function resolveImportInterop(importInterop, source, filename) { + if (typeof importInterop === "function") { + return validateImportInteropOption(importInterop(source, filename)); + } + return importInterop; +} +function normalizeModuleAndLoadMetadata(programPath, exportName, { + importInterop, + initializeReexports = false, + getWrapperPayload, + esNamespaceOnly = false, + filename +}) { + if (!exportName) { + exportName = programPath.scope.generateUidIdentifier("exports").name; + } + const stringSpecifiers = new Set(); + nameAnonymousExports(programPath); + const { + local, + sources, + hasExports + } = getModuleMetadata(programPath, { + initializeReexports, + getWrapperPayload + }, stringSpecifiers); + removeImportExportDeclarations(programPath); + for (const [source, metadata] of sources) { + const { + importsNamespace, + imports + } = metadata; + if (importsNamespace.size > 0 && imports.size === 0) { + const [nameOfnamespace] = importsNamespace; + metadata.name = nameOfnamespace; + } + const resolvedInterop = resolveImportInterop(importInterop, source, filename); + if (resolvedInterop === "none") { + metadata.interop = "none"; + } else if (resolvedInterop === "node" && metadata.interop === "namespace") { + metadata.interop = "node-namespace"; + } else if (resolvedInterop === "node" && metadata.interop === "default") { + metadata.interop = "node-default"; + } else if (esNamespaceOnly && metadata.interop === "namespace") { + metadata.interop = "default"; + } + } + return { + exportName, + exportNameListName: null, + hasExports, + local, + source: sources, + stringSpecifiers + }; +} +function getExportSpecifierName(path, stringSpecifiers) { + if (path.isIdentifier()) { + return path.node.name; + } else if (path.isStringLiteral()) { + const stringValue = path.node.value; + if (!(0, _helperValidatorIdentifier.isIdentifierName)(stringValue)) { + stringSpecifiers.add(stringValue); + } + return stringValue; + } else { + throw new Error(`Expected export specifier to be either Identifier or StringLiteral, got ${path.node.type}`); + } +} +function assertExportSpecifier(path) { + if (path.isExportSpecifier()) { + return; + } else if (path.isExportNamespaceSpecifier()) { + throw path.buildCodeFrameError("Export namespace should be first transformed by `@babel/plugin-transform-export-namespace-from`."); + } else { + throw path.buildCodeFrameError("Unexpected export specifier type"); + } +} +function getModuleMetadata(programPath, { + getWrapperPayload, + initializeReexports +}, stringSpecifiers) { + const localData = getLocalExportMetadata(programPath, initializeReexports, stringSpecifiers); + const importNodes = new Map(); + const sourceData = new Map(); + const getData = (sourceNode, node) => { + const source = sourceNode.value; + let data = sourceData.get(source); + if (!data) { + data = { + name: programPath.scope.generateUidIdentifier((0, _path.basename)(source, (0, _path.extname)(source))).name, + interop: "none", + loc: null, + imports: new Map(), + importsNamespace: new Set(), + reexports: new Map(), + reexportNamespace: new Set(), + reexportAll: null, + wrap: null, + get lazy() { + return this.wrap === "lazy"; + }, + referenced: false + }; + sourceData.set(source, data); + importNodes.set(source, [node]); + } else { + importNodes.get(source).push(node); + } + return data; + }; + let hasExports = false; + programPath.get("body").forEach(child => { + if (child.isImportDeclaration()) { + const data = getData(child.node.source, child.node); + if (!data.loc) data.loc = child.node.loc; + child.get("specifiers").forEach(spec => { + if (spec.isImportDefaultSpecifier()) { + const localName = spec.get("local").node.name; + data.imports.set(localName, "default"); + const reexport = localData.get(localName); + if (reexport) { + localData.delete(localName); + reexport.names.forEach(name => { + data.reexports.set(name, "default"); + }); + data.referenced = true; + } + } else if (spec.isImportNamespaceSpecifier()) { + const localName = spec.get("local").node.name; + data.importsNamespace.add(localName); + const reexport = localData.get(localName); + if (reexport) { + localData.delete(localName); + reexport.names.forEach(name => { + data.reexportNamespace.add(name); + }); + data.referenced = true; + } + } else if (spec.isImportSpecifier()) { + const importName = getExportSpecifierName(spec.get("imported"), stringSpecifiers); + const localName = spec.get("local").node.name; + data.imports.set(localName, importName); + const reexport = localData.get(localName); + if (reexport) { + localData.delete(localName); + reexport.names.forEach(name => { + data.reexports.set(name, importName); + }); + data.referenced = true; + } + } + }); + } else if (child.isExportAllDeclaration()) { + hasExports = true; + const data = getData(child.node.source, child.node); + if (!data.loc) data.loc = child.node.loc; + data.reexportAll = { + loc: child.node.loc + }; + data.referenced = true; + } else if (child.isExportNamedDeclaration() && child.node.source) { + hasExports = true; + const data = getData(child.node.source, child.node); + if (!data.loc) data.loc = child.node.loc; + child.get("specifiers").forEach(spec => { + assertExportSpecifier(spec); + const importName = getExportSpecifierName(spec.get("local"), stringSpecifiers); + const exportName = getExportSpecifierName(spec.get("exported"), stringSpecifiers); + data.reexports.set(exportName, importName); + data.referenced = true; + if (exportName === "__esModule") { + throw spec.get("exported").buildCodeFrameError('Illegal export "__esModule".'); + } + }); + } else if (child.isExportNamedDeclaration() || child.isExportDefaultDeclaration()) { + hasExports = true; + } + }); + for (const metadata of sourceData.values()) { + let needsDefault = false; + let needsNamed = false; + if (metadata.importsNamespace.size > 0) { + needsDefault = true; + needsNamed = true; + } + if (metadata.reexportAll) { + needsNamed = true; + } + for (const importName of metadata.imports.values()) { + if (importName === "default") needsDefault = true;else needsNamed = true; + } + for (const importName of metadata.reexports.values()) { + if (importName === "default") needsDefault = true;else needsNamed = true; + } + if (needsDefault && needsNamed) { + metadata.interop = "namespace"; + } else if (needsDefault) { + metadata.interop = "default"; + } + } + if (getWrapperPayload) { + for (const [source, metadata] of sourceData) { + metadata.wrap = getWrapperPayload(source, metadata, importNodes.get(source)); + } + } + return { + hasExports, + local: localData, + sources: sourceData + }; +} +function getLocalExportMetadata(programPath, initializeReexports, stringSpecifiers) { + const bindingKindLookup = new Map(); + const programScope = programPath.scope; + const programChildren = programPath.get("body"); + programChildren.forEach(child => { + let kind; + if (child.isImportDeclaration()) { + kind = "import"; + } else { + if (child.isExportDefaultDeclaration()) { + child = child.get("declaration"); + } + if (child.isExportNamedDeclaration()) { + if (child.node.declaration) { + child = child.get("declaration"); + } else if (initializeReexports && child.node.source && child.get("source").isStringLiteral()) { + child.get("specifiers").forEach(spec => { + assertExportSpecifier(spec); + bindingKindLookup.set(spec.get("local").node.name, "block"); + }); + return; + } + } + if (child.isFunctionDeclaration()) { + kind = "hoisted"; + } else if (child.isClassDeclaration()) { + kind = "block"; + } else if (child.isVariableDeclaration({ + kind: "var" + })) { + kind = "var"; + } else if (child.isVariableDeclaration()) { + kind = "block"; + } else { + return; + } + } + Object.keys(child.getOuterBindingIdentifiers()).forEach(name => { + bindingKindLookup.set(name, kind); + }); + }); + const localMetadata = new Map(); + const getLocalMetadata = idPath => { + const localName = idPath.node.name; + let metadata = localMetadata.get(localName); + if (!metadata) { + var _bindingKindLookup$ge, _programScope$getBind; + const kind = (_bindingKindLookup$ge = bindingKindLookup.get(localName)) != null ? _bindingKindLookup$ge : (_programScope$getBind = programScope.getBinding(localName)) == null ? void 0 : _programScope$getBind.kind; + if (kind === undefined) { + throw idPath.buildCodeFrameError(`Exporting local "${localName}", which is not declared.`); + } + metadata = { + names: [], + kind + }; + localMetadata.set(localName, metadata); + } + return metadata; + }; + programChildren.forEach(child => { + if (child.isExportNamedDeclaration() && (initializeReexports || !child.node.source)) { + if (child.node.declaration) { + const declaration = child.get("declaration"); + const ids = declaration.getOuterBindingIdentifierPaths(); + Object.keys(ids).forEach(name => { + if (name === "__esModule") { + throw declaration.buildCodeFrameError('Illegal export "__esModule".'); + } + getLocalMetadata(ids[name]).names.push(name); + }); + } else { + child.get("specifiers").forEach(spec => { + const local = spec.get("local"); + const exported = spec.get("exported"); + const localMetadata = getLocalMetadata(local); + const exportName = getExportSpecifierName(exported, stringSpecifiers); + if (exportName === "__esModule") { + throw exported.buildCodeFrameError('Illegal export "__esModule".'); + } + localMetadata.names.push(exportName); + }); + } + } else if (child.isExportDefaultDeclaration()) { + const declaration = child.get("declaration"); + if (declaration.isFunctionDeclaration() || declaration.isClassDeclaration()) { + getLocalMetadata(declaration.get("id")).names.push("default"); + } else { + throw declaration.buildCodeFrameError("Unexpected default expression export."); + } + } + }); + return localMetadata; +} +function nameAnonymousExports(programPath) { + programPath.get("body").forEach(child => { + if (!child.isExportDefaultDeclaration()) return; + { + var _child$splitExportDec; + (_child$splitExportDec = child.splitExportDeclaration) != null ? _child$splitExportDec : child.splitExportDeclaration = require("@babel/traverse").NodePath.prototype.splitExportDeclaration; + } + child.splitExportDeclaration(); + }); +} +function removeImportExportDeclarations(programPath) { + programPath.get("body").forEach(child => { + if (child.isImportDeclaration()) { + child.remove(); + } else if (child.isExportNamedDeclaration()) { + if (child.node.declaration) { + child.node.declaration._blockHoist = child.node._blockHoist; + child.replaceWith(child.node.declaration); + } else { + child.remove(); + } + } else if (child.isExportDefaultDeclaration()) { + const declaration = child.get("declaration"); + if (declaration.isFunctionDeclaration() || declaration.isClassDeclaration()) { + declaration._blockHoist = child.node._blockHoist; + child.replaceWith(declaration); + } else { + throw declaration.buildCodeFrameError("Unexpected default expression export."); + } + } else if (child.isExportAllDeclaration()) { + child.remove(); + } + }); +} + +//# sourceMappingURL=normalize-and-load-metadata.js.map diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js.map b/framework-core/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js.map new file mode 100644 index 0000000..46fb2fd --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_path","require","_helperValidatorIdentifier","hasExports","metadata","isSideEffectImport","source","imports","size","importsNamespace","reexports","reexportNamespace","reexportAll","validateImportInteropOption","importInterop","Error","resolveImportInterop","filename","normalizeModuleAndLoadMetadata","programPath","exportName","initializeReexports","getWrapperPayload","esNamespaceOnly","scope","generateUidIdentifier","name","stringSpecifiers","Set","nameAnonymousExports","local","sources","getModuleMetadata","removeImportExportDeclarations","nameOfnamespace","resolvedInterop","interop","exportNameListName","getExportSpecifierName","path","isIdentifier","node","isStringLiteral","stringValue","value","isIdentifierName","add","type","assertExportSpecifier","isExportSpecifier","isExportNamespaceSpecifier","buildCodeFrameError","localData","getLocalExportMetadata","importNodes","Map","sourceData","getData","sourceNode","data","get","basename","extname","loc","wrap","lazy","referenced","set","push","forEach","child","isImportDeclaration","spec","isImportDefaultSpecifier","localName","reexport","delete","names","isImportNamespaceSpecifier","isImportSpecifier","importName","isExportAllDeclaration","isExportNamedDeclaration","isExportDefaultDeclaration","values","needsDefault","needsNamed","bindingKindLookup","programScope","programChildren","kind","declaration","isFunctionDeclaration","isClassDeclaration","isVariableDeclaration","Object","keys","getOuterBindingIdentifiers","localMetadata","getLocalMetadata","idPath","_bindingKindLookup$ge","_programScope$getBind","getBinding","undefined","ids","getOuterBindingIdentifierPaths","exported","_child$splitExportDec","splitExportDeclaration","NodePath","prototype","remove","_blockHoist","replaceWith"],"sources":["../src/normalize-and-load-metadata.ts"],"sourcesContent":["import { basename, extname } from \"node:path\";\nimport type { types as t, NodePath } from \"@babel/core\";\n\nimport { isIdentifierName } from \"@babel/helper-validator-identifier\";\n\nexport interface ModuleMetadata {\n exportName: string;\n // The name of the variable that will reference an object containing export names.\n exportNameListName: null | string;\n hasExports: boolean;\n // Lookup from local binding to export information.\n local: Map;\n // Lookup of source file to source file metadata.\n source: Map;\n // List of names that should only be printed as string literals.\n // i.e. `import { \"any unicode\" as foo } from \"some-module\"`\n // `stringSpecifiers` is Set(1) [\"any unicode\"]\n // In most cases `stringSpecifiers` is an empty Set\n stringSpecifiers: Set;\n}\n\nexport type InteropType =\n | \"default\" // Babel interop for default-only imports\n | \"namespace\" // Babel interop for namespace or default+named imports\n | \"node-default\" // Node.js interop for default-only imports\n | \"node-namespace\" // Node.js interop for namespace or default+named imports\n | \"none\"; // No interop, or named-only imports\n\nexport type ImportInterop =\n | \"none\"\n | \"babel\"\n | \"node\"\n | ((source: string, filename?: string) => \"none\" | \"babel\" | \"node\");\n\nexport interface SourceModuleMetadata {\n // A unique variable name to use for this namespace object. Centralized for simplicity.\n name: string;\n loc: t.SourceLocation | undefined | null;\n interop: InteropType;\n // Local binding to reference from this source namespace. Key: Local name, value: Import name\n imports: Map;\n // Local names that reference namespace object.\n importsNamespace: Set;\n // Reexports to create for namespace. Key: Export name, value: Import name\n reexports: Map;\n // List of names to re-export namespace as.\n reexportNamespace: Set;\n // Tracks if the source should be re-exported.\n reexportAll: null | {\n loc: t.SourceLocation | undefined | null;\n };\n wrap?: unknown;\n referenced: boolean;\n}\n\nexport interface LocalExportMetadata {\n names: Array; // names of exports,\n kind: \"import\" | \"hoisted\" | \"block\" | \"var\";\n}\n\n/**\n * Check if the module has any exports that need handling.\n */\nexport function hasExports(metadata: ModuleMetadata) {\n return metadata.hasExports;\n}\n\n/**\n * Check if a given source is an anonymous import, e.g. \"import 'foo';\"\n */\nexport function isSideEffectImport(source: SourceModuleMetadata) {\n return (\n source.imports.size === 0 &&\n source.importsNamespace.size === 0 &&\n source.reexports.size === 0 &&\n source.reexportNamespace.size === 0 &&\n !source.reexportAll\n );\n}\n\nexport function validateImportInteropOption(\n importInterop: any,\n): importInterop is ImportInterop {\n if (\n typeof importInterop !== \"function\" &&\n importInterop !== \"none\" &&\n importInterop !== \"babel\" &&\n importInterop !== \"node\"\n ) {\n throw new Error(\n `.importInterop must be one of \"none\", \"babel\", \"node\", or a function returning one of those values (received ${importInterop}).`,\n );\n }\n return importInterop;\n}\n\nfunction resolveImportInterop(\n importInterop: ImportInterop,\n source: string,\n filename: string | undefined,\n) {\n if (typeof importInterop === \"function\") {\n return validateImportInteropOption(importInterop(source, filename));\n }\n return importInterop;\n}\n\n/**\n * Remove all imports and exports from the file, and return all metadata\n * needed to reconstruct the module's behavior.\n */\nexport default function normalizeModuleAndLoadMetadata(\n programPath: NodePath,\n exportName: string,\n {\n importInterop,\n initializeReexports = false,\n getWrapperPayload,\n esNamespaceOnly = false,\n filename,\n }: {\n importInterop: ImportInterop;\n initializeReexports: boolean | void;\n getWrapperPayload?: (\n source: string,\n metadata: SourceModuleMetadata,\n importNodes: t.Node[],\n ) => unknown;\n esNamespaceOnly: boolean;\n filename: string;\n },\n): ModuleMetadata {\n if (!exportName) {\n exportName = programPath.scope.generateUidIdentifier(\"exports\").name;\n }\n const stringSpecifiers = new Set();\n\n nameAnonymousExports(programPath);\n\n const { local, sources, hasExports } = getModuleMetadata(\n programPath,\n { initializeReexports, getWrapperPayload },\n stringSpecifiers,\n );\n\n removeImportExportDeclarations(programPath);\n\n // Reuse the imported namespace name if there is one.\n for (const [source, metadata] of sources) {\n const { importsNamespace, imports } = metadata;\n // If there is at least one namespace import and other imports, it may collipse with local ident, can be seen in issue 15879.\n if (importsNamespace.size > 0 && imports.size === 0) {\n const [nameOfnamespace] = importsNamespace;\n metadata.name = nameOfnamespace;\n }\n\n const resolvedInterop = resolveImportInterop(\n importInterop,\n source,\n filename,\n );\n\n if (resolvedInterop === \"none\") {\n metadata.interop = \"none\";\n } else if (resolvedInterop === \"node\" && metadata.interop === \"namespace\") {\n metadata.interop = \"node-namespace\";\n } else if (resolvedInterop === \"node\" && metadata.interop === \"default\") {\n metadata.interop = \"node-default\";\n } else if (esNamespaceOnly && metadata.interop === \"namespace\") {\n // Both the default and namespace interops pass through __esModule\n // objects, but the namespace interop is used to enable Babel's\n // destructuring-like interop behavior for normal CommonJS.\n // Since some tooling has started to remove that behavior, we expose\n // it as the `esNamespace` option.\n metadata.interop = \"default\";\n }\n }\n\n return {\n exportName,\n exportNameListName: null,\n hasExports,\n local,\n source: sources,\n stringSpecifiers,\n };\n}\n\nfunction getExportSpecifierName(\n path: NodePath,\n stringSpecifiers: Set,\n): string {\n if (path.isIdentifier()) {\n return path.node.name;\n } else if (path.isStringLiteral()) {\n const stringValue = path.node.value;\n // add specifier value to `stringSpecifiers` only when it can not be converted to an identifier name\n // i.e In `import { \"foo\" as bar }`\n // we do not consider `\"foo\"` to be a `stringSpecifier` because we can treat it as\n // `import { foo as bar }`\n // This helps minimize the size of `stringSpecifiers` and reduce overhead of checking valid identifier names\n // when building transpiled code from metadata\n if (!isIdentifierName(stringValue)) {\n stringSpecifiers.add(stringValue);\n }\n return stringValue;\n } else {\n throw new Error(\n `Expected export specifier to be either Identifier or StringLiteral, got ${path.node.type}`,\n );\n }\n}\n\nfunction assertExportSpecifier(\n path: NodePath,\n): asserts path is NodePath {\n if (path.isExportSpecifier()) {\n return;\n } else if (path.isExportNamespaceSpecifier()) {\n throw path.buildCodeFrameError(\n \"Export namespace should be first transformed by `@babel/plugin-transform-export-namespace-from`.\",\n );\n } else {\n throw path.buildCodeFrameError(\"Unexpected export specifier type\");\n }\n}\n\n/**\n * Get metadata about the imports and exports present in this module.\n */\nfunction getModuleMetadata(\n programPath: NodePath,\n {\n getWrapperPayload,\n initializeReexports,\n }: {\n getWrapperPayload?: (\n source: string,\n metadata: SourceModuleMetadata,\n importNodes: t.Node[],\n ) => unknown;\n initializeReexports: boolean | void;\n },\n stringSpecifiers: Set,\n) {\n const localData = getLocalExportMetadata(\n programPath,\n initializeReexports,\n stringSpecifiers,\n );\n\n const importNodes = new Map();\n const sourceData = new Map();\n const getData = (sourceNode: t.StringLiteral, node: t.Node) => {\n const source = sourceNode.value;\n\n let data = sourceData.get(source);\n if (!data) {\n data = {\n name: programPath.scope.generateUidIdentifier(\n basename(source, extname(source)),\n ).name,\n\n interop: \"none\",\n\n loc: null,\n\n // Data about the requested sources and names.\n imports: new Map(),\n importsNamespace: new Set(),\n\n // Metadata about data that is passed directly from source to export.\n reexports: new Map(),\n reexportNamespace: new Set(),\n reexportAll: null,\n\n wrap: null,\n\n // @ts-expect-error lazy is not listed in the type.\n // This is needed for compatibility with older version of the commonjs\n // plugins.\n // TODO(Babel 8): Remove this\n get lazy() {\n return this.wrap === \"lazy\";\n },\n\n referenced: false,\n };\n sourceData.set(source, data);\n importNodes.set(source, [node]);\n } else {\n importNodes.get(source).push(node);\n }\n return data;\n };\n let hasExports = false;\n programPath.get(\"body\").forEach(child => {\n if (child.isImportDeclaration()) {\n const data = getData(child.node.source, child.node);\n if (!data.loc) data.loc = child.node.loc;\n\n child.get(\"specifiers\").forEach(spec => {\n if (spec.isImportDefaultSpecifier()) {\n const localName = spec.get(\"local\").node.name;\n\n data.imports.set(localName, \"default\");\n\n const reexport = localData.get(localName);\n if (reexport) {\n localData.delete(localName);\n\n reexport.names.forEach(name => {\n data.reexports.set(name, \"default\");\n });\n data.referenced = true;\n }\n } else if (spec.isImportNamespaceSpecifier()) {\n const localName = spec.get(\"local\").node.name;\n\n data.importsNamespace.add(localName);\n const reexport = localData.get(localName);\n if (reexport) {\n localData.delete(localName);\n\n reexport.names.forEach(name => {\n data.reexportNamespace.add(name);\n });\n data.referenced = true;\n }\n } else if (spec.isImportSpecifier()) {\n const importName = getExportSpecifierName(\n spec.get(\"imported\"),\n stringSpecifiers,\n );\n const localName = spec.get(\"local\").node.name;\n\n data.imports.set(localName, importName);\n\n const reexport = localData.get(localName);\n if (reexport) {\n localData.delete(localName);\n\n reexport.names.forEach(name => {\n data.reexports.set(name, importName);\n });\n data.referenced = true;\n }\n }\n });\n } else if (child.isExportAllDeclaration()) {\n hasExports = true;\n const data = getData(child.node.source, child.node);\n if (!data.loc) data.loc = child.node.loc;\n\n data.reexportAll = {\n loc: child.node.loc,\n };\n data.referenced = true;\n } else if (child.isExportNamedDeclaration() && child.node.source) {\n hasExports = true;\n const data = getData(child.node.source, child.node);\n if (!data.loc) data.loc = child.node.loc;\n\n child.get(\"specifiers\").forEach(spec => {\n assertExportSpecifier(spec);\n const importName = getExportSpecifierName(\n spec.get(\"local\"),\n stringSpecifiers,\n );\n const exportName = getExportSpecifierName(\n spec.get(\"exported\"),\n stringSpecifiers,\n );\n\n data.reexports.set(exportName, importName);\n data.referenced = true;\n\n if (exportName === \"__esModule\") {\n throw spec\n .get(\"exported\")\n .buildCodeFrameError('Illegal export \"__esModule\".');\n }\n });\n } else if (\n child.isExportNamedDeclaration() ||\n child.isExportDefaultDeclaration()\n ) {\n hasExports = true;\n }\n });\n\n for (const metadata of sourceData.values()) {\n let needsDefault = false;\n let needsNamed = false;\n\n if (metadata.importsNamespace.size > 0) {\n needsDefault = true;\n needsNamed = true;\n }\n\n if (metadata.reexportAll) {\n needsNamed = true;\n }\n\n for (const importName of metadata.imports.values()) {\n if (importName === \"default\") needsDefault = true;\n else needsNamed = true;\n }\n for (const importName of metadata.reexports.values()) {\n if (importName === \"default\") needsDefault = true;\n else needsNamed = true;\n }\n\n if (needsDefault && needsNamed) {\n // TODO(logan): Using the namespace interop here is unfortunate. Revisit.\n metadata.interop = \"namespace\";\n } else if (needsDefault) {\n metadata.interop = \"default\";\n }\n }\n\n if (getWrapperPayload) {\n for (const [source, metadata] of sourceData) {\n metadata.wrap = getWrapperPayload(\n source,\n metadata,\n importNodes.get(source),\n );\n }\n }\n\n return {\n hasExports,\n local: localData,\n sources: sourceData,\n };\n}\n\ntype ModuleBindingKind = \"import\" | \"hoisted\" | \"block\" | \"var\";\n/**\n * Get metadata about local variables that are exported.\n */\nfunction getLocalExportMetadata(\n programPath: NodePath,\n initializeReexports: boolean | void,\n stringSpecifiers: Set,\n): Map {\n const bindingKindLookup = new Map();\n\n const programScope = programPath.scope;\n const programChildren = programPath.get(\"body\");\n\n programChildren.forEach((child: NodePath) => {\n let kind: ModuleBindingKind;\n if (child.isImportDeclaration()) {\n kind = \"import\";\n } else {\n if (child.isExportDefaultDeclaration()) {\n child = child.get(\"declaration\");\n }\n if (child.isExportNamedDeclaration()) {\n if (child.node.declaration) {\n child = child.get(\"declaration\");\n } else if (\n initializeReexports &&\n child.node.source &&\n child.get(\"source\").isStringLiteral()\n ) {\n child.get(\"specifiers\").forEach(spec => {\n assertExportSpecifier(spec);\n bindingKindLookup.set(spec.get(\"local\").node.name, \"block\");\n });\n return;\n }\n }\n\n if (child.isFunctionDeclaration()) {\n kind = \"hoisted\";\n } else if (child.isClassDeclaration()) {\n kind = \"block\";\n } else if (child.isVariableDeclaration({ kind: \"var\" })) {\n kind = \"var\";\n } else if (child.isVariableDeclaration()) {\n kind = \"block\";\n } else {\n return;\n }\n }\n\n Object.keys(child.getOuterBindingIdentifiers()).forEach(name => {\n bindingKindLookup.set(name, kind);\n });\n });\n\n const localMetadata = new Map();\n const getLocalMetadata = (idPath: NodePath) => {\n const localName = idPath.node.name;\n let metadata = localMetadata.get(localName);\n\n if (!metadata) {\n // If localName is not found in the bindingKindLookup generated\n // from top level declarations, it could be a reference to a var\n // declaration defined within block statement or switch case\n const kind: ModuleBindingKind =\n bindingKindLookup.get(localName) ??\n (programScope.getBinding(localName)?.kind as \"var\" | undefined);\n\n if (kind === undefined) {\n throw idPath.buildCodeFrameError(\n `Exporting local \"${localName}\", which is not declared.`,\n );\n }\n\n metadata = {\n names: [],\n kind,\n };\n localMetadata.set(localName, metadata);\n }\n return metadata;\n };\n\n programChildren.forEach(child => {\n if (\n child.isExportNamedDeclaration() &&\n (initializeReexports || !child.node.source)\n ) {\n if (child.node.declaration) {\n const declaration = child.get(\"declaration\");\n const ids = declaration.getOuterBindingIdentifierPaths();\n Object.keys(ids).forEach(name => {\n if (name === \"__esModule\") {\n throw declaration.buildCodeFrameError(\n 'Illegal export \"__esModule\".',\n );\n }\n getLocalMetadata(ids[name]).names.push(name);\n });\n } else {\n child.get(\"specifiers\").forEach(spec => {\n const local = spec.get(\"local\");\n const exported = spec.get(\"exported\");\n const localMetadata = getLocalMetadata(local);\n const exportName = getExportSpecifierName(exported, stringSpecifiers);\n\n if (exportName === \"__esModule\") {\n throw exported.buildCodeFrameError('Illegal export \"__esModule\".');\n }\n localMetadata.names.push(exportName);\n });\n }\n } else if (child.isExportDefaultDeclaration()) {\n const declaration = child.get(\"declaration\");\n if (\n declaration.isFunctionDeclaration() ||\n declaration.isClassDeclaration()\n ) {\n getLocalMetadata(declaration.get(\"id\")).names.push(\"default\");\n } else {\n // These should have been removed by the nameAnonymousExports() call.\n throw declaration.buildCodeFrameError(\n \"Unexpected default expression export.\",\n );\n }\n }\n });\n return localMetadata;\n}\n\n/**\n * Ensure that all exported values have local binding names.\n */\nfunction nameAnonymousExports(programPath: NodePath) {\n // Name anonymous exported locals.\n programPath.get(\"body\").forEach(child => {\n if (!child.isExportDefaultDeclaration()) return;\n if (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // polyfill when being run by an older Babel version\n child.splitExportDeclaration ??=\n // eslint-disable-next-line no-restricted-globals\n require(\"@babel/traverse\").NodePath.prototype.splitExportDeclaration;\n }\n child.splitExportDeclaration();\n });\n}\n\nfunction removeImportExportDeclarations(programPath: NodePath) {\n programPath.get(\"body\").forEach(child => {\n if (child.isImportDeclaration()) {\n child.remove();\n } else if (child.isExportNamedDeclaration()) {\n if (child.node.declaration) {\n // @ts-expect-error todo(flow->ts): avoid mutations\n child.node.declaration._blockHoist = child.node._blockHoist;\n child.replaceWith(child.node.declaration);\n } else {\n child.remove();\n }\n } else if (child.isExportDefaultDeclaration()) {\n // export default foo;\n const declaration = child.get(\"declaration\");\n if (\n declaration.isFunctionDeclaration() ||\n declaration.isClassDeclaration()\n ) {\n // @ts-expect-error todo(flow->ts): avoid mutations\n declaration._blockHoist = child.node._blockHoist;\n child.replaceWith(declaration);\n } else {\n // These should have been removed by the nameAnonymousExports() call.\n throw declaration.buildCodeFrameError(\n \"Unexpected default expression export.\",\n );\n }\n } else if (child.isExportAllDeclaration()) {\n child.remove();\n }\n });\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js b/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js new file mode 100644 index 0000000..f19f0f0 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js @@ -0,0 +1,360 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = rewriteLiveReferences; +var _core = require("@babel/core"); +function isInType(path) { + do { + switch (path.parent.type) { + case "TSTypeAnnotation": + case "TSTypeAliasDeclaration": + case "TSTypeReference": + case "TypeAnnotation": + case "TypeAlias": + return true; + case "ExportSpecifier": + return path.parentPath.parent.exportKind === "type"; + default: + if (path.parentPath.isStatement() || path.parentPath.isExpression()) { + return false; + } + } + } while (path = path.parentPath); +} +function rewriteLiveReferences(programPath, metadata, wrapReference) { + const imported = new Map(); + const exported = new Map(); + const requeueInParent = path => { + programPath.requeue(path); + }; + for (const [source, data] of metadata.source) { + for (const [localName, importName] of data.imports) { + imported.set(localName, [source, importName, null]); + } + for (const localName of data.importsNamespace) { + imported.set(localName, [source, null, localName]); + } + } + for (const [local, data] of metadata.local) { + let exportMeta = exported.get(local); + if (!exportMeta) { + exportMeta = []; + exported.set(local, exportMeta); + } + exportMeta.push(...data.names); + } + const rewriteBindingInitVisitorState = { + metadata, + requeueInParent, + scope: programPath.scope, + exported + }; + programPath.traverse(rewriteBindingInitVisitor, rewriteBindingInitVisitorState); + const rewriteReferencesVisitorState = { + seen: new WeakSet(), + metadata, + requeueInParent, + scope: programPath.scope, + imported, + exported, + buildImportReference([source, importName, localName], identNode) { + const meta = metadata.source.get(source); + meta.referenced = true; + if (localName) { + if (meta.wrap) { + var _wrapReference; + identNode = (_wrapReference = wrapReference(identNode, meta.wrap)) != null ? _wrapReference : identNode; + } + return identNode; + } + let namespace = _core.types.identifier(meta.name); + if (meta.wrap) { + var _wrapReference2; + namespace = (_wrapReference2 = wrapReference(namespace, meta.wrap)) != null ? _wrapReference2 : namespace; + } + if (importName === "default" && meta.interop === "node-default") { + return namespace; + } + const computed = metadata.stringSpecifiers.has(importName); + return _core.types.memberExpression(namespace, computed ? _core.types.stringLiteral(importName) : _core.types.identifier(importName), computed); + } + }; + programPath.traverse(rewriteReferencesVisitor, rewriteReferencesVisitorState); +} +const rewriteBindingInitVisitor = { + Scope(path) { + path.skip(); + }, + ClassDeclaration(path) { + const { + requeueInParent, + exported, + metadata + } = this; + const { + id + } = path.node; + if (!id) throw new Error("Expected class to have a name"); + const localName = id.name; + const exportNames = exported.get(localName) || []; + if (exportNames.length > 0) { + const statement = _core.types.expressionStatement(buildBindingExportAssignmentExpression(metadata, exportNames, _core.types.identifier(localName), path.scope)); + statement._blockHoist = path.node._blockHoist; + requeueInParent(path.insertAfter(statement)[0]); + } + }, + VariableDeclaration(path) { + const { + requeueInParent, + exported, + metadata + } = this; + const isVar = path.node.kind === "var"; + for (const decl of path.get("declarations")) { + const { + id + } = decl.node; + let { + init + } = decl.node; + if (_core.types.isIdentifier(id) && exported.has(id.name) && !_core.types.isArrowFunctionExpression(init) && (!_core.types.isFunctionExpression(init) || init.id) && (!_core.types.isClassExpression(init) || init.id)) { + if (!init) { + if (isVar) { + continue; + } else { + init = path.scope.buildUndefinedNode(); + } + } + decl.node.init = buildBindingExportAssignmentExpression(metadata, exported.get(id.name), init, path.scope); + requeueInParent(decl.get("init")); + } else { + for (const localName of Object.keys(decl.getOuterBindingIdentifiers())) { + if (exported.has(localName)) { + const statement = _core.types.expressionStatement(buildBindingExportAssignmentExpression(metadata, exported.get(localName), _core.types.identifier(localName), path.scope)); + statement._blockHoist = path.node._blockHoist; + requeueInParent(path.insertAfter(statement)[0]); + } + } + } + } + } +}; +const buildBindingExportAssignmentExpression = (metadata, exportNames, localExpr, scope) => { + const exportsObjectName = metadata.exportName; + for (let currentScope = scope; currentScope != null; currentScope = currentScope.parent) { + if (currentScope.hasOwnBinding(exportsObjectName)) { + currentScope.rename(exportsObjectName); + } + } + return (exportNames || []).reduce((expr, exportName) => { + const { + stringSpecifiers + } = metadata; + const computed = stringSpecifiers.has(exportName); + return _core.types.assignmentExpression("=", _core.types.memberExpression(_core.types.identifier(exportsObjectName), computed ? _core.types.stringLiteral(exportName) : _core.types.identifier(exportName), computed), expr); + }, localExpr); +}; +const buildImportThrow = localName => { + return _core.template.expression.ast` + (function() { + throw new Error('"' + '${localName}' + '" is read-only.'); + })() + `; +}; +const rewriteReferencesVisitor = { + ReferencedIdentifier(path) { + const { + seen, + buildImportReference, + scope, + imported, + requeueInParent + } = this; + if (seen.has(path.node)) return; + seen.add(path.node); + const localName = path.node.name; + const importData = imported.get(localName); + if (importData) { + if (isInType(path)) { + throw path.buildCodeFrameError(`Cannot transform the imported binding "${localName}" since it's also used in a type annotation. ` + `Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.`); + } + const localBinding = path.scope.getBinding(localName); + const rootBinding = scope.getBinding(localName); + if (rootBinding !== localBinding) return; + const ref = buildImportReference(importData, path.node); + ref.loc = path.node.loc; + if ((path.parentPath.isCallExpression({ + callee: path.node + }) || path.parentPath.isOptionalCallExpression({ + callee: path.node + }) || path.parentPath.isTaggedTemplateExpression({ + tag: path.node + })) && _core.types.isMemberExpression(ref)) { + path.replaceWith(_core.types.sequenceExpression([_core.types.numericLiteral(0), ref])); + } else if (path.isJSXIdentifier() && _core.types.isMemberExpression(ref)) { + const { + object, + property + } = ref; + path.replaceWith(_core.types.jsxMemberExpression(_core.types.jsxIdentifier(object.name), _core.types.jsxIdentifier(property.name))); + } else { + path.replaceWith(ref); + } + requeueInParent(path); + path.skip(); + } + }, + UpdateExpression(path) { + const { + scope, + seen, + imported, + exported, + requeueInParent, + buildImportReference + } = this; + if (seen.has(path.node)) return; + seen.add(path.node); + const arg = path.get("argument"); + if (arg.isMemberExpression()) return; + const update = path.node; + if (arg.isIdentifier()) { + const localName = arg.node.name; + if (scope.getBinding(localName) !== path.scope.getBinding(localName)) { + return; + } + const exportedNames = exported.get(localName); + const importData = imported.get(localName); + if ((exportedNames == null ? void 0 : exportedNames.length) > 0 || importData) { + if (importData) { + path.replaceWith(_core.types.assignmentExpression(update.operator[0] + "=", buildImportReference(importData, arg.node), buildImportThrow(localName))); + } else if (update.prefix) { + path.replaceWith(buildBindingExportAssignmentExpression(this.metadata, exportedNames, _core.types.cloneNode(update), path.scope)); + } else { + const ref = scope.generateDeclaredUidIdentifier(localName); + path.replaceWith(_core.types.sequenceExpression([_core.types.assignmentExpression("=", _core.types.cloneNode(ref), _core.types.cloneNode(update)), buildBindingExportAssignmentExpression(this.metadata, exportedNames, _core.types.identifier(localName), path.scope), _core.types.cloneNode(ref)])); + } + } + } + requeueInParent(path); + path.skip(); + }, + AssignmentExpression: { + exit(path) { + const { + scope, + seen, + imported, + exported, + requeueInParent, + buildImportReference + } = this; + if (seen.has(path.node)) return; + seen.add(path.node); + const left = path.get("left"); + if (left.isMemberExpression()) return; + if (left.isIdentifier()) { + const localName = left.node.name; + if (scope.getBinding(localName) !== path.scope.getBinding(localName)) { + return; + } + const exportedNames = exported.get(localName); + const importData = imported.get(localName); + if ((exportedNames == null ? void 0 : exportedNames.length) > 0 || importData) { + const assignment = path.node; + if (importData) { + assignment.left = buildImportReference(importData, left.node); + assignment.right = _core.types.sequenceExpression([assignment.right, buildImportThrow(localName)]); + } + const { + operator + } = assignment; + let newExpr; + if (operator === "=") { + newExpr = assignment; + } else if (operator === "&&=" || operator === "||=" || operator === "??=") { + newExpr = _core.types.assignmentExpression("=", assignment.left, _core.types.logicalExpression(operator.slice(0, -1), _core.types.cloneNode(assignment.left), assignment.right)); + } else { + newExpr = _core.types.assignmentExpression("=", assignment.left, _core.types.binaryExpression(operator.slice(0, -1), _core.types.cloneNode(assignment.left), assignment.right)); + } + path.replaceWith(buildBindingExportAssignmentExpression(this.metadata, exportedNames, newExpr, path.scope)); + requeueInParent(path); + path.skip(); + } + } else { + const ids = left.getOuterBindingIdentifiers(); + const programScopeIds = Object.keys(ids).filter(localName => scope.getBinding(localName) === path.scope.getBinding(localName)); + const id = programScopeIds.find(localName => imported.has(localName)); + if (id) { + path.node.right = _core.types.sequenceExpression([path.node.right, buildImportThrow(id)]); + } + const items = []; + programScopeIds.forEach(localName => { + const exportedNames = exported.get(localName) || []; + if (exportedNames.length > 0) { + items.push(buildBindingExportAssignmentExpression(this.metadata, exportedNames, _core.types.identifier(localName), path.scope)); + } + }); + if (items.length > 0) { + let node = _core.types.sequenceExpression(items); + if (path.parentPath.isExpressionStatement()) { + node = _core.types.expressionStatement(node); + node._blockHoist = path.parentPath.node._blockHoist; + } + const statement = path.insertAfter(node)[0]; + requeueInParent(statement); + } + } + } + }, + ForXStatement(path) { + const { + scope, + node + } = path; + const { + left + } = node; + const { + exported, + imported, + scope: programScope + } = this; + if (!_core.types.isVariableDeclaration(left)) { + let didTransformExport = false, + importConstViolationName; + const loopBodyScope = path.get("body").scope; + for (const name of Object.keys(_core.types.getOuterBindingIdentifiers(left))) { + if (programScope.getBinding(name) === scope.getBinding(name)) { + if (exported.has(name)) { + didTransformExport = true; + if (loopBodyScope.hasOwnBinding(name)) { + loopBodyScope.rename(name); + } + } + if (imported.has(name) && !importConstViolationName) { + importConstViolationName = name; + } + } + } + if (!didTransformExport && !importConstViolationName) { + return; + } + path.ensureBlock(); + const bodyPath = path.get("body"); + const newLoopId = scope.generateUidIdentifierBasedOnNode(left); + path.get("left").replaceWith(_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(newLoopId))])); + scope.registerDeclaration(path.get("left")); + if (didTransformExport) { + bodyPath.unshiftContainer("body", _core.types.expressionStatement(_core.types.assignmentExpression("=", left, newLoopId))); + } + if (importConstViolationName) { + bodyPath.unshiftContainer("body", _core.types.expressionStatement(buildImportThrow(importConstViolationName))); + } + } + } +}; + +//# sourceMappingURL=rewrite-live-references.js.map diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map b/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map new file mode 100644 index 0000000..f24c2cd --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_core","require","isInType","path","parent","type","parentPath","exportKind","isStatement","isExpression","rewriteLiveReferences","programPath","metadata","wrapReference","imported","Map","exported","requeueInParent","requeue","source","data","localName","importName","imports","set","importsNamespace","local","exportMeta","get","push","names","rewriteBindingInitVisitorState","scope","traverse","rewriteBindingInitVisitor","rewriteReferencesVisitorState","seen","WeakSet","buildImportReference","identNode","meta","referenced","wrap","_wrapReference","namespace","t","identifier","name","_wrapReference2","interop","computed","stringSpecifiers","has","memberExpression","stringLiteral","rewriteReferencesVisitor","Scope","skip","ClassDeclaration","id","node","Error","exportNames","length","statement","expressionStatement","buildBindingExportAssignmentExpression","_blockHoist","insertAfter","VariableDeclaration","isVar","kind","decl","init","isIdentifier","isArrowFunctionExpression","isFunctionExpression","isClassExpression","buildUndefinedNode","Object","keys","getOuterBindingIdentifiers","localExpr","exportsObjectName","exportName","currentScope","hasOwnBinding","rename","reduce","expr","assignmentExpression","buildImportThrow","template","expression","ast","ReferencedIdentifier","add","importData","buildCodeFrameError","localBinding","getBinding","rootBinding","ref","loc","isCallExpression","callee","isOptionalCallExpression","isTaggedTemplateExpression","tag","isMemberExpression","replaceWith","sequenceExpression","numericLiteral","isJSXIdentifier","object","property","jsxMemberExpression","jsxIdentifier","UpdateExpression","arg","update","exportedNames","operator","prefix","cloneNode","generateDeclaredUidIdentifier","AssignmentExpression","exit","left","assignment","right","newExpr","logicalExpression","slice","binaryExpression","ids","programScopeIds","filter","find","items","forEach","isExpressionStatement","ForXStatement","programScope","isVariableDeclaration","didTransformExport","importConstViolationName","loopBodyScope","ensureBlock","bodyPath","newLoopId","generateUidIdentifierBasedOnNode","variableDeclaration","variableDeclarator","registerDeclaration","unshiftContainer"],"sources":["../src/rewrite-live-references.ts"],"sourcesContent":["import { template, types as t } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/core\";\n\nimport type { ModuleMetadata } from \"./normalize-and-load-metadata.ts\";\n\ninterface RewriteReferencesVisitorState {\n exported: Map;\n metadata: ModuleMetadata;\n requeueInParent: (path: NodePath) => void;\n scope: Scope;\n imported: Map;\n buildImportReference: (\n [source, importName, localName]: readonly [string, string, string],\n identNode: t.Identifier | t.CallExpression | t.JSXIdentifier,\n ) => any;\n seen: WeakSet;\n}\n\ninterface RewriteBindingInitVisitorState {\n exported: Map;\n metadata: ModuleMetadata;\n requeueInParent: (path: NodePath) => void;\n scope: Scope;\n}\n\nfunction isInType(path: NodePath) {\n do {\n switch (path.parent.type) {\n case \"TSTypeAnnotation\":\n case \"TSTypeAliasDeclaration\":\n case \"TSTypeReference\":\n case \"TypeAnnotation\":\n case \"TypeAlias\":\n return true;\n case \"ExportSpecifier\":\n return (\n (\n path.parentPath.parent as\n | t.ExportDefaultDeclaration\n | t.ExportNamedDeclaration\n ).exportKind === \"type\"\n );\n default:\n if (path.parentPath.isStatement() || path.parentPath.isExpression()) {\n return false;\n }\n }\n } while ((path = path.parentPath));\n}\n\nexport default function rewriteLiveReferences(\n programPath: NodePath,\n metadata: ModuleMetadata,\n wrapReference: (ref: t.Expression, payload: unknown) => null | t.Expression,\n) {\n const imported = new Map();\n const exported = new Map();\n const requeueInParent = (path: NodePath) => {\n // Manually re-queue `exports.default =` expressions so that the ES3\n // transform has an opportunity to convert them. Ideally this would\n // happen automatically from the replaceWith above. See #4140 for\n // more info.\n programPath.requeue(path);\n };\n\n for (const [source, data] of metadata.source) {\n for (const [localName, importName] of data.imports) {\n imported.set(localName, [source, importName, null]);\n }\n for (const localName of data.importsNamespace) {\n imported.set(localName, [source, null, localName]);\n }\n }\n\n for (const [local, data] of metadata.local) {\n let exportMeta = exported.get(local);\n if (!exportMeta) {\n exportMeta = [];\n exported.set(local, exportMeta);\n }\n\n exportMeta.push(...data.names);\n }\n\n // Rewrite initialization of bindings to update exports.\n const rewriteBindingInitVisitorState: RewriteBindingInitVisitorState = {\n metadata,\n requeueInParent,\n scope: programPath.scope,\n exported, // local name => exported name list\n };\n programPath.traverse(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n rewriteBindingInitVisitor,\n rewriteBindingInitVisitorState,\n );\n\n // Rewrite reads/writes from imports and exports to have the correct behavior.\n const rewriteReferencesVisitorState: RewriteReferencesVisitorState = {\n seen: new WeakSet(),\n metadata,\n requeueInParent,\n scope: programPath.scope,\n imported, // local / import\n exported, // local name => exported name list\n buildImportReference([source, importName, localName], identNode) {\n const meta = metadata.source.get(source);\n meta.referenced = true;\n\n if (localName) {\n if (meta.wrap) {\n // @ts-expect-error Fixme: we should handle the case when identNode is a JSXIdentifier\n identNode = wrapReference(identNode, meta.wrap) ?? identNode;\n }\n return identNode;\n }\n\n let namespace: t.Expression = t.identifier(meta.name);\n if (meta.wrap) {\n namespace = wrapReference(namespace, meta.wrap) ?? namespace;\n }\n\n if (importName === \"default\" && meta.interop === \"node-default\") {\n return namespace;\n }\n\n const computed = metadata.stringSpecifiers.has(importName);\n\n return t.memberExpression(\n namespace,\n computed ? t.stringLiteral(importName) : t.identifier(importName),\n computed,\n );\n },\n };\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n programPath.traverse(rewriteReferencesVisitor, rewriteReferencesVisitorState);\n}\n\n/**\n * A visitor to inject export update statements during binding initialization.\n */\nconst rewriteBindingInitVisitor: Visitor = {\n Scope(path) {\n path.skip();\n },\n ClassDeclaration(path) {\n const { requeueInParent, exported, metadata } = this;\n\n const { id } = path.node;\n if (!id) throw new Error(\"Expected class to have a name\");\n const localName = id.name;\n\n const exportNames = exported.get(localName) || [];\n if (exportNames.length > 0) {\n const statement = t.expressionStatement(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildBindingExportAssignmentExpression(\n metadata,\n exportNames,\n t.identifier(localName),\n path.scope,\n ),\n );\n // @ts-expect-error todo(flow->ts): avoid mutations\n statement._blockHoist = path.node._blockHoist;\n\n requeueInParent(path.insertAfter(statement)[0]);\n }\n },\n VariableDeclaration(path) {\n const { requeueInParent, exported, metadata } = this;\n\n const isVar = path.node.kind === \"var\";\n\n for (const decl of path.get(\"declarations\")) {\n const { id } = decl.node;\n let { init } = decl.node;\n if (\n t.isIdentifier(id) &&\n exported.has(id.name) &&\n !t.isArrowFunctionExpression(init) &&\n (!t.isFunctionExpression(init) || init.id) &&\n (!t.isClassExpression(init) || init.id)\n ) {\n if (!init) {\n if (isVar) {\n // This variable might have already been assigned to, and the\n // uninitalized declaration doesn't set it to `undefined` and does\n // not updated the exported value.\n continue;\n } else {\n init = path.scope.buildUndefinedNode();\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n decl.node.init = buildBindingExportAssignmentExpression(\n metadata,\n exported.get(id.name),\n init,\n path.scope,\n );\n requeueInParent(decl.get(\"init\"));\n } else {\n for (const localName of Object.keys(\n decl.getOuterBindingIdentifiers(),\n )) {\n if (exported.has(localName)) {\n const statement = t.expressionStatement(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n buildBindingExportAssignmentExpression(\n metadata,\n exported.get(localName),\n t.identifier(localName),\n path.scope,\n ),\n );\n // @ts-expect-error todo(flow->ts): avoid mutations\n statement._blockHoist = path.node._blockHoist;\n\n requeueInParent(path.insertAfter(statement)[0]);\n }\n }\n }\n }\n },\n};\n\nconst buildBindingExportAssignmentExpression = (\n metadata: ModuleMetadata,\n exportNames: string[],\n localExpr: t.Expression,\n scope: Scope,\n) => {\n const exportsObjectName = metadata.exportName;\n for (\n let currentScope = scope;\n currentScope != null;\n currentScope = currentScope.parent\n ) {\n if (currentScope.hasOwnBinding(exportsObjectName)) {\n currentScope.rename(exportsObjectName);\n }\n }\n return (exportNames || []).reduce((expr, exportName) => {\n // class Foo {} export { Foo, Foo as Bar };\n // as\n // class Foo {} exports.Foo = exports.Bar = Foo;\n const { stringSpecifiers } = metadata;\n const computed = stringSpecifiers.has(exportName);\n return t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.identifier(exportsObjectName),\n computed ? t.stringLiteral(exportName) : t.identifier(exportName),\n /* computed */ computed,\n ),\n expr,\n );\n }, localExpr);\n};\n\nconst buildImportThrow = (localName: string) => {\n return template.expression.ast`\n (function() {\n throw new Error('\"' + '${localName}' + '\" is read-only.');\n })()\n `;\n};\n\nconst rewriteReferencesVisitor: Visitor = {\n ReferencedIdentifier(path) {\n const { seen, buildImportReference, scope, imported, requeueInParent } =\n this;\n if (seen.has(path.node)) return;\n seen.add(path.node);\n\n const localName = path.node.name;\n\n const importData = imported.get(localName);\n if (importData) {\n if (isInType(path)) {\n throw path.buildCodeFrameError(\n `Cannot transform the imported binding \"${localName}\" since it's also used in a type annotation. ` +\n `Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.`,\n );\n }\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = scope.getBinding(localName);\n\n // redeclared in this scope\n if (rootBinding !== localBinding) return;\n\n const ref = buildImportReference(importData, path.node);\n\n // Preserve the binding location so that sourcemaps are nicer.\n ref.loc = path.node.loc;\n\n if (\n (path.parentPath.isCallExpression({ callee: path.node }) ||\n path.parentPath.isOptionalCallExpression({ callee: path.node }) ||\n path.parentPath.isTaggedTemplateExpression({ tag: path.node })) &&\n t.isMemberExpression(ref)\n ) {\n path.replaceWith(t.sequenceExpression([t.numericLiteral(0), ref]));\n } else if (path.isJSXIdentifier() && t.isMemberExpression(ref)) {\n const { object, property } = ref;\n path.replaceWith(\n t.jsxMemberExpression(\n // @ts-expect-error todo(flow->ts): possible bug `object` might not have a name\n t.jsxIdentifier(object.name),\n // @ts-expect-error todo(flow->ts): possible bug `property` might not have a name\n t.jsxIdentifier(property.name),\n ),\n );\n } else {\n path.replaceWith(ref);\n }\n\n requeueInParent(path);\n\n // The path could have been replaced with an identifier that would\n // otherwise be re-visited, so we skip processing its children.\n path.skip();\n }\n },\n\n UpdateExpression(path) {\n const {\n scope,\n seen,\n imported,\n exported,\n requeueInParent,\n buildImportReference,\n } = this;\n\n if (seen.has(path.node)) return;\n\n seen.add(path.node);\n\n const arg = path.get(\"argument\");\n\n // No change needed\n if (arg.isMemberExpression()) return;\n\n const update = path.node;\n\n if (arg.isIdentifier()) {\n const localName = arg.node.name;\n\n // redeclared in this scope\n if (scope.getBinding(localName) !== path.scope.getBinding(localName)) {\n return;\n }\n\n const exportedNames = exported.get(localName);\n const importData = imported.get(localName);\n\n if (exportedNames?.length > 0 || importData) {\n if (importData) {\n path.replaceWith(\n t.assignmentExpression(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n (update.operator[0] + \"=\") as t.AssignmentExpression[\"operator\"],\n buildImportReference(importData, arg.node),\n buildImportThrow(localName),\n ),\n );\n } else if (update.prefix) {\n // ++foo\n // => exports.foo = ++foo\n path.replaceWith(\n buildBindingExportAssignmentExpression(\n this.metadata,\n exportedNames,\n t.cloneNode(update),\n path.scope,\n ),\n );\n } else {\n // foo++\n // => (ref = i++, exports.i = i, ref)\n const ref = scope.generateDeclaredUidIdentifier(localName);\n\n path.replaceWith(\n t.sequenceExpression([\n t.assignmentExpression(\n \"=\",\n t.cloneNode(ref),\n t.cloneNode(update),\n ),\n buildBindingExportAssignmentExpression(\n this.metadata,\n exportedNames,\n t.identifier(localName),\n path.scope,\n ),\n t.cloneNode(ref),\n ]),\n );\n }\n }\n }\n\n requeueInParent(path);\n path.skip();\n },\n\n AssignmentExpression: {\n exit(path) {\n const {\n scope,\n seen,\n imported,\n exported,\n requeueInParent,\n buildImportReference,\n } = this;\n\n if (seen.has(path.node)) return;\n seen.add(path.node);\n\n const left = path.get(\"left\");\n\n // No change needed\n if (left.isMemberExpression()) return;\n\n if (left.isIdentifier()) {\n // Simple update-assign foo += 1; export { foo };\n // => exports.foo = (foo += 1);\n const localName = left.node.name;\n\n // redeclared in this scope\n if (scope.getBinding(localName) !== path.scope.getBinding(localName)) {\n return;\n }\n\n const exportedNames = exported.get(localName);\n const importData = imported.get(localName);\n if (exportedNames?.length > 0 || importData) {\n const assignment = path.node;\n\n if (importData) {\n assignment.left = buildImportReference(importData, left.node);\n\n assignment.right = t.sequenceExpression([\n assignment.right,\n buildImportThrow(localName),\n ]);\n }\n\n const { operator } = assignment;\n let newExpr;\n if (operator === \"=\") {\n newExpr = assignment;\n } else if (\n operator === \"&&=\" ||\n operator === \"||=\" ||\n operator === \"??=\"\n ) {\n newExpr = t.assignmentExpression(\n \"=\",\n assignment.left,\n t.logicalExpression(\n operator.slice(0, -1) as t.LogicalExpression[\"operator\"],\n t.cloneNode(assignment.left) as t.Expression,\n assignment.right,\n ),\n );\n } else {\n newExpr = t.assignmentExpression(\n \"=\",\n assignment.left,\n t.binaryExpression(\n operator.slice(0, -1) as t.BinaryExpression[\"operator\"],\n t.cloneNode(assignment.left) as t.Expression,\n assignment.right,\n ),\n );\n }\n\n path.replaceWith(\n buildBindingExportAssignmentExpression(\n this.metadata,\n exportedNames,\n newExpr,\n path.scope,\n ),\n );\n\n requeueInParent(path);\n\n path.skip();\n }\n } else {\n const ids = left.getOuterBindingIdentifiers();\n const programScopeIds = Object.keys(ids).filter(\n localName =>\n scope.getBinding(localName) === path.scope.getBinding(localName),\n );\n const id = programScopeIds.find(localName => imported.has(localName));\n\n if (id) {\n path.node.right = t.sequenceExpression([\n path.node.right,\n buildImportThrow(id),\n ]);\n }\n\n // Complex ({a, b, c} = {}); export { a, c };\n // => ({a, b, c} = {}), (exports.a = a, exports.c = c);\n const items: t.Expression[] = [];\n programScopeIds.forEach(localName => {\n const exportedNames = exported.get(localName) || [];\n if (exportedNames.length > 0) {\n items.push(\n buildBindingExportAssignmentExpression(\n this.metadata,\n exportedNames,\n t.identifier(localName),\n path.scope,\n ),\n );\n }\n });\n\n if (items.length > 0) {\n let node: t.Node = t.sequenceExpression(items);\n if (path.parentPath.isExpressionStatement()) {\n node = t.expressionStatement(node);\n // @ts-expect-error todo(flow->ts): avoid mutations\n node._blockHoist = path.parentPath.node._blockHoist;\n }\n\n const statement = path.insertAfter(node)[0];\n requeueInParent(statement);\n }\n }\n },\n },\n ForXStatement(path) {\n const { scope, node } = path;\n const { left } = node;\n const { exported, imported, scope: programScope } = this;\n\n if (!t.isVariableDeclaration(left)) {\n let didTransformExport = false,\n importConstViolationName;\n const loopBodyScope = path.get(\"body\").scope;\n for (const name of Object.keys(t.getOuterBindingIdentifiers(left))) {\n if (programScope.getBinding(name) === scope.getBinding(name)) {\n if (exported.has(name)) {\n didTransformExport = true;\n if (loopBodyScope.hasOwnBinding(name)) {\n loopBodyScope.rename(name);\n }\n }\n if (imported.has(name) && !importConstViolationName) {\n importConstViolationName = name;\n }\n }\n }\n if (!didTransformExport && !importConstViolationName) {\n return;\n }\n\n path.ensureBlock();\n const bodyPath = path.get(\"body\") as NodePath;\n\n const newLoopId = scope.generateUidIdentifierBasedOnNode(left);\n path\n .get(\"left\")\n .replaceWith(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(t.cloneNode(newLoopId)),\n ]),\n );\n scope.registerDeclaration(path.get(\"left\"));\n\n if (didTransformExport) {\n bodyPath.unshiftContainer(\n \"body\",\n t.expressionStatement(t.assignmentExpression(\"=\", left, newLoopId)),\n );\n }\n if (importConstViolationName) {\n bodyPath.unshiftContainer(\n \"body\",\n t.expressionStatement(buildImportThrow(importConstViolationName)),\n );\n }\n }\n },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAyBA,SAASC,QAAQA,CAACC,IAAc,EAAE;EAChC,GAAG;IACD,QAAQA,IAAI,CAACC,MAAM,CAACC,IAAI;MACtB,KAAK,kBAAkB;MACvB,KAAK,wBAAwB;MAC7B,KAAK,iBAAiB;MACtB,KAAK,gBAAgB;MACrB,KAAK,WAAW;QACd,OAAO,IAAI;MACb,KAAK,iBAAiB;QACpB,OAEIF,IAAI,CAACG,UAAU,CAACF,MAAM,CAGtBG,UAAU,KAAK,MAAM;MAE3B;QACE,IAAIJ,IAAI,CAACG,UAAU,CAACE,WAAW,CAAC,CAAC,IAAIL,IAAI,CAACG,UAAU,CAACG,YAAY,CAAC,CAAC,EAAE;UACnE,OAAO,KAAK;QACd;IACJ;EACF,CAAC,QAASN,IAAI,GAAGA,IAAI,CAACG,UAAU;AAClC;AAEe,SAASI,qBAAqBA,CAC3CC,WAAgC,EAChCC,QAAwB,EACxBC,aAA2E,EAC3E;EACA,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAAC,CAAC;EAC1B,MAAMC,QAAQ,GAAG,IAAID,GAAG,CAAC,CAAC;EAC1B,MAAME,eAAe,GAAId,IAAc,IAAK;IAK1CQ,WAAW,CAACO,OAAO,CAACf,IAAI,CAAC;EAC3B,CAAC;EAED,KAAK,MAAM,CAACgB,MAAM,EAAEC,IAAI,CAAC,IAAIR,QAAQ,CAACO,MAAM,EAAE;IAC5C,KAAK,MAAM,CAACE,SAAS,EAAEC,UAAU,CAAC,IAAIF,IAAI,CAACG,OAAO,EAAE;MAClDT,QAAQ,CAACU,GAAG,CAACH,SAAS,EAAE,CAACF,MAAM,EAAEG,UAAU,EAAE,IAAI,CAAC,CAAC;IACrD;IACA,KAAK,MAAMD,SAAS,IAAID,IAAI,CAACK,gBAAgB,EAAE;MAC7CX,QAAQ,CAACU,GAAG,CAACH,SAAS,EAAE,CAACF,MAAM,EAAE,IAAI,EAAEE,SAAS,CAAC,CAAC;IACpD;EACF;EAEA,KAAK,MAAM,CAACK,KAAK,EAAEN,IAAI,CAAC,IAAIR,QAAQ,CAACc,KAAK,EAAE;IAC1C,IAAIC,UAAU,GAAGX,QAAQ,CAACY,GAAG,CAACF,KAAK,CAAC;IACpC,IAAI,CAACC,UAAU,EAAE;MACfA,UAAU,GAAG,EAAE;MACfX,QAAQ,CAACQ,GAAG,CAACE,KAAK,EAAEC,UAAU,CAAC;IACjC;IAEAA,UAAU,CAACE,IAAI,CAAC,GAAGT,IAAI,CAACU,KAAK,CAAC;EAChC;EAGA,MAAMC,8BAA8D,GAAG;IACrEnB,QAAQ;IACRK,eAAe;IACfe,KAAK,EAAErB,WAAW,CAACqB,KAAK;IACxBhB;EACF,CAAC;EACDL,WAAW,CAACsB,QAAQ,CAElBC,yBAAyB,EACzBH,8BACF,CAAC;EAGD,MAAMI,6BAA4D,GAAG;IACnEC,IAAI,EAAE,IAAIC,OAAO,CAAC,CAAC;IACnBzB,QAAQ;IACRK,eAAe;IACfe,KAAK,EAAErB,WAAW,CAACqB,KAAK;IACxBlB,QAAQ;IACRE,QAAQ;IACRsB,oBAAoBA,CAAC,CAACnB,MAAM,EAAEG,UAAU,EAAED,SAAS,CAAC,EAAEkB,SAAS,EAAE;MAC/D,MAAMC,IAAI,GAAG5B,QAAQ,CAACO,MAAM,CAACS,GAAG,CAACT,MAAM,CAAC;MACxCqB,IAAI,CAACC,UAAU,GAAG,IAAI;MAEtB,IAAIpB,SAAS,EAAE;QACb,IAAImB,IAAI,CAACE,IAAI,EAAE;UAAA,IAAAC,cAAA;UAEbJ,SAAS,IAAAI,cAAA,GAAG9B,aAAa,CAAC0B,SAAS,EAAEC,IAAI,CAACE,IAAI,CAAC,YAAAC,cAAA,GAAIJ,SAAS;QAC9D;QACA,OAAOA,SAAS;MAClB;MAEA,IAAIK,SAAuB,GAAGC,WAAC,CAACC,UAAU,CAACN,IAAI,CAACO,IAAI,CAAC;MACrD,IAAIP,IAAI,CAACE,IAAI,EAAE;QAAA,IAAAM,eAAA;QACbJ,SAAS,IAAAI,eAAA,GAAGnC,aAAa,CAAC+B,SAAS,EAAEJ,IAAI,CAACE,IAAI,CAAC,YAAAM,eAAA,GAAIJ,SAAS;MAC9D;MAEA,IAAItB,UAAU,KAAK,SAAS,IAAIkB,IAAI,CAACS,OAAO,KAAK,cAAc,EAAE;QAC/D,OAAOL,SAAS;MAClB;MAEA,MAAMM,QAAQ,GAAGtC,QAAQ,CAACuC,gBAAgB,CAACC,GAAG,CAAC9B,UAAU,CAAC;MAE1D,OAAOuB,WAAC,CAACQ,gBAAgB,CACvBT,SAAS,EACTM,QAAQ,GAAGL,WAAC,CAACS,aAAa,CAAChC,UAAU,CAAC,GAAGuB,WAAC,CAACC,UAAU,CAACxB,UAAU,CAAC,EACjE4B,QACF,CAAC;IACH;EACF,CAAC;EAEDvC,WAAW,CAACsB,QAAQ,CAACsB,wBAAwB,EAAEpB,6BAA6B,CAAC;AAC/E;AAKA,MAAMD,yBAAkE,GAAG;EACzEsB,KAAKA,CAACrD,IAAI,EAAE;IACVA,IAAI,CAACsD,IAAI,CAAC,CAAC;EACb,CAAC;EACDC,gBAAgBA,CAACvD,IAAI,EAAE;IACrB,MAAM;MAAEc,eAAe;MAAED,QAAQ;MAAEJ;IAAS,CAAC,GAAG,IAAI;IAEpD,MAAM;MAAE+C;IAAG,CAAC,GAAGxD,IAAI,CAACyD,IAAI;IACxB,IAAI,CAACD,EAAE,EAAE,MAAM,IAAIE,KAAK,CAAC,+BAA+B,CAAC;IACzD,MAAMxC,SAAS,GAAGsC,EAAE,CAACZ,IAAI;IAEzB,MAAMe,WAAW,GAAG9C,QAAQ,CAACY,GAAG,CAACP,SAAS,CAAC,IAAI,EAAE;IACjD,IAAIyC,WAAW,CAACC,MAAM,GAAG,CAAC,EAAE;MAC1B,MAAMC,SAAS,GAAGnB,WAAC,CAACoB,mBAAmB,CAErCC,sCAAsC,CACpCtD,QAAQ,EACRkD,WAAW,EACXjB,WAAC,CAACC,UAAU,CAACzB,SAAS,CAAC,EACvBlB,IAAI,CAAC6B,KACP,CACF,CAAC;MAEDgC,SAAS,CAACG,WAAW,GAAGhE,IAAI,CAACyD,IAAI,CAACO,WAAW;MAE7ClD,eAAe,CAACd,IAAI,CAACiE,WAAW,CAACJ,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD;EACF,CAAC;EACDK,mBAAmBA,CAAClE,IAAI,EAAE;IACxB,MAAM;MAAEc,eAAe;MAAED,QAAQ;MAAEJ;IAAS,CAAC,GAAG,IAAI;IAEpD,MAAM0D,KAAK,GAAGnE,IAAI,CAACyD,IAAI,CAACW,IAAI,KAAK,KAAK;IAEtC,KAAK,MAAMC,IAAI,IAAIrE,IAAI,CAACyB,GAAG,CAAC,cAAc,CAAC,EAAE;MAC3C,MAAM;QAAE+B;MAAG,CAAC,GAAGa,IAAI,CAACZ,IAAI;MACxB,IAAI;QAAEa;MAAK,CAAC,GAAGD,IAAI,CAACZ,IAAI;MACxB,IACEf,WAAC,CAAC6B,YAAY,CAACf,EAAE,CAAC,IAClB3C,QAAQ,CAACoC,GAAG,CAACO,EAAE,CAACZ,IAAI,CAAC,IACrB,CAACF,WAAC,CAAC8B,yBAAyB,CAACF,IAAI,CAAC,KACjC,CAAC5B,WAAC,CAAC+B,oBAAoB,CAACH,IAAI,CAAC,IAAIA,IAAI,CAACd,EAAE,CAAC,KACzC,CAACd,WAAC,CAACgC,iBAAiB,CAACJ,IAAI,CAAC,IAAIA,IAAI,CAACd,EAAE,CAAC,EACvC;QACA,IAAI,CAACc,IAAI,EAAE;UACT,IAAIH,KAAK,EAAE;YAIT;UACF,CAAC,MAAM;YACLG,IAAI,GAAGtE,IAAI,CAAC6B,KAAK,CAAC8C,kBAAkB,CAAC,CAAC;UACxC;QACF;QAEAN,IAAI,CAACZ,IAAI,CAACa,IAAI,GAAGP,sCAAsC,CACrDtD,QAAQ,EACRI,QAAQ,CAACY,GAAG,CAAC+B,EAAE,CAACZ,IAAI,CAAC,EACrB0B,IAAI,EACJtE,IAAI,CAAC6B,KACP,CAAC;QACDf,eAAe,CAACuD,IAAI,CAAC5C,GAAG,CAAC,MAAM,CAAC,CAAC;MACnC,CAAC,MAAM;QACL,KAAK,MAAMP,SAAS,IAAI0D,MAAM,CAACC,IAAI,CACjCR,IAAI,CAACS,0BAA0B,CAAC,CAClC,CAAC,EAAE;UACD,IAAIjE,QAAQ,CAACoC,GAAG,CAAC/B,SAAS,CAAC,EAAE;YAC3B,MAAM2C,SAAS,GAAGnB,WAAC,CAACoB,mBAAmB,CAErCC,sCAAsC,CACpCtD,QAAQ,EACRI,QAAQ,CAACY,GAAG,CAACP,SAAS,CAAC,EACvBwB,WAAC,CAACC,UAAU,CAACzB,SAAS,CAAC,EACvBlB,IAAI,CAAC6B,KACP,CACF,CAAC;YAEDgC,SAAS,CAACG,WAAW,GAAGhE,IAAI,CAACyD,IAAI,CAACO,WAAW;YAE7ClD,eAAe,CAACd,IAAI,CAACiE,WAAW,CAACJ,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;UACjD;QACF;MACF;IACF;EACF;AACF,CAAC;AAED,MAAME,sCAAsC,GAAGA,CAC7CtD,QAAwB,EACxBkD,WAAqB,EACrBoB,SAAuB,EACvBlD,KAAY,KACT;EACH,MAAMmD,iBAAiB,GAAGvE,QAAQ,CAACwE,UAAU;EAC7C,KACE,IAAIC,YAAY,GAAGrD,KAAK,EACxBqD,YAAY,IAAI,IAAI,EACpBA,YAAY,GAAGA,YAAY,CAACjF,MAAM,EAClC;IACA,IAAIiF,YAAY,CAACC,aAAa,CAACH,iBAAiB,CAAC,EAAE;MACjDE,YAAY,CAACE,MAAM,CAACJ,iBAAiB,CAAC;IACxC;EACF;EACA,OAAO,CAACrB,WAAW,IAAI,EAAE,EAAE0B,MAAM,CAAC,CAACC,IAAI,EAAEL,UAAU,KAAK;IAItD,MAAM;MAAEjC;IAAiB,CAAC,GAAGvC,QAAQ;IACrC,MAAMsC,QAAQ,GAAGC,gBAAgB,CAACC,GAAG,CAACgC,UAAU,CAAC;IACjD,OAAOvC,WAAC,CAAC6C,oBAAoB,CAC3B,GAAG,EACH7C,WAAC,CAACQ,gBAAgB,CAChBR,WAAC,CAACC,UAAU,CAACqC,iBAAiB,CAAC,EAC/BjC,QAAQ,GAAGL,WAAC,CAACS,aAAa,CAAC8B,UAAU,CAAC,GAAGvC,WAAC,CAACC,UAAU,CAACsC,UAAU,CAAC,EAClDlC,QACjB,CAAC,EACDuC,IACF,CAAC;EACH,CAAC,EAAEP,SAAS,CAAC;AACf,CAAC;AAED,MAAMS,gBAAgB,GAAItE,SAAiB,IAAK;EAC9C,OAAOuE,cAAQ,CAACC,UAAU,CAACC,GAAG;AAChC;AACA,+BAA+BzE,SAAS;AACxC;AACA,GAAG;AACH,CAAC;AAED,MAAMkC,wBAAgE,GAAG;EACvEwC,oBAAoBA,CAAC5F,IAAI,EAAE;IACzB,MAAM;MAAEiC,IAAI;MAAEE,oBAAoB;MAAEN,KAAK;MAAElB,QAAQ;MAAEG;IAAgB,CAAC,GACpE,IAAI;IACN,IAAImB,IAAI,CAACgB,GAAG,CAACjD,IAAI,CAACyD,IAAI,CAAC,EAAE;IACzBxB,IAAI,CAAC4D,GAAG,CAAC7F,IAAI,CAACyD,IAAI,CAAC;IAEnB,MAAMvC,SAAS,GAAGlB,IAAI,CAACyD,IAAI,CAACb,IAAI;IAEhC,MAAMkD,UAAU,GAAGnF,QAAQ,CAACc,GAAG,CAACP,SAAS,CAAC;IAC1C,IAAI4E,UAAU,EAAE;MACd,IAAI/F,QAAQ,CAACC,IAAI,CAAC,EAAE;QAClB,MAAMA,IAAI,CAAC+F,mBAAmB,CAC5B,0CAA0C7E,SAAS,+CAA+C,GAChG,qFACJ,CAAC;MACH;MAEA,MAAM8E,YAAY,GAAGhG,IAAI,CAAC6B,KAAK,CAACoE,UAAU,CAAC/E,SAAS,CAAC;MACrD,MAAMgF,WAAW,GAAGrE,KAAK,CAACoE,UAAU,CAAC/E,SAAS,CAAC;MAG/C,IAAIgF,WAAW,KAAKF,YAAY,EAAE;MAElC,MAAMG,GAAG,GAAGhE,oBAAoB,CAAC2D,UAAU,EAAE9F,IAAI,CAACyD,IAAI,CAAC;MAGvD0C,GAAG,CAACC,GAAG,GAAGpG,IAAI,CAACyD,IAAI,CAAC2C,GAAG;MAEvB,IACE,CAACpG,IAAI,CAACG,UAAU,CAACkG,gBAAgB,CAAC;QAAEC,MAAM,EAAEtG,IAAI,CAACyD;MAAK,CAAC,CAAC,IACtDzD,IAAI,CAACG,UAAU,CAACoG,wBAAwB,CAAC;QAAED,MAAM,EAAEtG,IAAI,CAACyD;MAAK,CAAC,CAAC,IAC/DzD,IAAI,CAACG,UAAU,CAACqG,0BAA0B,CAAC;QAAEC,GAAG,EAAEzG,IAAI,CAACyD;MAAK,CAAC,CAAC,KAChEf,WAAC,CAACgE,kBAAkB,CAACP,GAAG,CAAC,EACzB;QACAnG,IAAI,CAAC2G,WAAW,CAACjE,WAAC,CAACkE,kBAAkB,CAAC,CAAClE,WAAC,CAACmE,cAAc,CAAC,CAAC,CAAC,EAAEV,GAAG,CAAC,CAAC,CAAC;MACpE,CAAC,MAAM,IAAInG,IAAI,CAAC8G,eAAe,CAAC,CAAC,IAAIpE,WAAC,CAACgE,kBAAkB,CAACP,GAAG,CAAC,EAAE;QAC9D,MAAM;UAAEY,MAAM;UAAEC;QAAS,CAAC,GAAGb,GAAG;QAChCnG,IAAI,CAAC2G,WAAW,CACdjE,WAAC,CAACuE,mBAAmB,CAEnBvE,WAAC,CAACwE,aAAa,CAACH,MAAM,CAACnE,IAAI,CAAC,EAE5BF,WAAC,CAACwE,aAAa,CAACF,QAAQ,CAACpE,IAAI,CAC/B,CACF,CAAC;MACH,CAAC,MAAM;QACL5C,IAAI,CAAC2G,WAAW,CAACR,GAAG,CAAC;MACvB;MAEArF,eAAe,CAACd,IAAI,CAAC;MAIrBA,IAAI,CAACsD,IAAI,CAAC,CAAC;IACb;EACF,CAAC;EAED6D,gBAAgBA,CAACnH,IAAI,EAAE;IACrB,MAAM;MACJ6B,KAAK;MACLI,IAAI;MACJtB,QAAQ;MACRE,QAAQ;MACRC,eAAe;MACfqB;IACF,CAAC,GAAG,IAAI;IAER,IAAIF,IAAI,CAACgB,GAAG,CAACjD,IAAI,CAACyD,IAAI,CAAC,EAAE;IAEzBxB,IAAI,CAAC4D,GAAG,CAAC7F,IAAI,CAACyD,IAAI,CAAC;IAEnB,MAAM2D,GAAG,GAAGpH,IAAI,CAACyB,GAAG,CAAC,UAAU,CAAC;IAGhC,IAAI2F,GAAG,CAACV,kBAAkB,CAAC,CAAC,EAAE;IAE9B,MAAMW,MAAM,GAAGrH,IAAI,CAACyD,IAAI;IAExB,IAAI2D,GAAG,CAAC7C,YAAY,CAAC,CAAC,EAAE;MACtB,MAAMrD,SAAS,GAAGkG,GAAG,CAAC3D,IAAI,CAACb,IAAI;MAG/B,IAAIf,KAAK,CAACoE,UAAU,CAAC/E,SAAS,CAAC,KAAKlB,IAAI,CAAC6B,KAAK,CAACoE,UAAU,CAAC/E,SAAS,CAAC,EAAE;QACpE;MACF;MAEA,MAAMoG,aAAa,GAAGzG,QAAQ,CAACY,GAAG,CAACP,SAAS,CAAC;MAC7C,MAAM4E,UAAU,GAAGnF,QAAQ,CAACc,GAAG,CAACP,SAAS,CAAC;MAE1C,IAAI,CAAAoG,aAAa,oBAAbA,aAAa,CAAE1D,MAAM,IAAG,CAAC,IAAIkC,UAAU,EAAE;QAC3C,IAAIA,UAAU,EAAE;UACd9F,IAAI,CAAC2G,WAAW,CACdjE,WAAC,CAAC6C,oBAAoB,CAEnB8B,MAAM,CAACE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,EACzBpF,oBAAoB,CAAC2D,UAAU,EAAEsB,GAAG,CAAC3D,IAAI,CAAC,EAC1C+B,gBAAgB,CAACtE,SAAS,CAC5B,CACF,CAAC;QACH,CAAC,MAAM,IAAImG,MAAM,CAACG,MAAM,EAAE;UAGxBxH,IAAI,CAAC2G,WAAW,CACd5C,sCAAsC,CACpC,IAAI,CAACtD,QAAQ,EACb6G,aAAa,EACb5E,WAAC,CAAC+E,SAAS,CAACJ,MAAM,CAAC,EACnBrH,IAAI,CAAC6B,KACP,CACF,CAAC;QACH,CAAC,MAAM;UAGL,MAAMsE,GAAG,GAAGtE,KAAK,CAAC6F,6BAA6B,CAACxG,SAAS,CAAC;UAE1DlB,IAAI,CAAC2G,WAAW,CACdjE,WAAC,CAACkE,kBAAkB,CAAC,CACnBlE,WAAC,CAAC6C,oBAAoB,CACpB,GAAG,EACH7C,WAAC,CAAC+E,SAAS,CAACtB,GAAG,CAAC,EAChBzD,WAAC,CAAC+E,SAAS,CAACJ,MAAM,CACpB,CAAC,EACDtD,sCAAsC,CACpC,IAAI,CAACtD,QAAQ,EACb6G,aAAa,EACb5E,WAAC,CAACC,UAAU,CAACzB,SAAS,CAAC,EACvBlB,IAAI,CAAC6B,KACP,CAAC,EACDa,WAAC,CAAC+E,SAAS,CAACtB,GAAG,CAAC,CACjB,CACH,CAAC;QACH;MACF;IACF;IAEArF,eAAe,CAACd,IAAI,CAAC;IACrBA,IAAI,CAACsD,IAAI,CAAC,CAAC;EACb,CAAC;EAEDqE,oBAAoB,EAAE;IACpBC,IAAIA,CAAC5H,IAAI,EAAE;MACT,MAAM;QACJ6B,KAAK;QACLI,IAAI;QACJtB,QAAQ;QACRE,QAAQ;QACRC,eAAe;QACfqB;MACF,CAAC,GAAG,IAAI;MAER,IAAIF,IAAI,CAACgB,GAAG,CAACjD,IAAI,CAACyD,IAAI,CAAC,EAAE;MACzBxB,IAAI,CAAC4D,GAAG,CAAC7F,IAAI,CAACyD,IAAI,CAAC;MAEnB,MAAMoE,IAAI,GAAG7H,IAAI,CAACyB,GAAG,CAAC,MAAM,CAAC;MAG7B,IAAIoG,IAAI,CAACnB,kBAAkB,CAAC,CAAC,EAAE;MAE/B,IAAImB,IAAI,CAACtD,YAAY,CAAC,CAAC,EAAE;QAGvB,MAAMrD,SAAS,GAAG2G,IAAI,CAACpE,IAAI,CAACb,IAAI;QAGhC,IAAIf,KAAK,CAACoE,UAAU,CAAC/E,SAAS,CAAC,KAAKlB,IAAI,CAAC6B,KAAK,CAACoE,UAAU,CAAC/E,SAAS,CAAC,EAAE;UACpE;QACF;QAEA,MAAMoG,aAAa,GAAGzG,QAAQ,CAACY,GAAG,CAACP,SAAS,CAAC;QAC7C,MAAM4E,UAAU,GAAGnF,QAAQ,CAACc,GAAG,CAACP,SAAS,CAAC;QAC1C,IAAI,CAAAoG,aAAa,oBAAbA,aAAa,CAAE1D,MAAM,IAAG,CAAC,IAAIkC,UAAU,EAAE;UAC3C,MAAMgC,UAAU,GAAG9H,IAAI,CAACyD,IAAI;UAE5B,IAAIqC,UAAU,EAAE;YACdgC,UAAU,CAACD,IAAI,GAAG1F,oBAAoB,CAAC2D,UAAU,EAAE+B,IAAI,CAACpE,IAAI,CAAC;YAE7DqE,UAAU,CAACC,KAAK,GAAGrF,WAAC,CAACkE,kBAAkB,CAAC,CACtCkB,UAAU,CAACC,KAAK,EAChBvC,gBAAgB,CAACtE,SAAS,CAAC,CAC5B,CAAC;UACJ;UAEA,MAAM;YAAEqG;UAAS,CAAC,GAAGO,UAAU;UAC/B,IAAIE,OAAO;UACX,IAAIT,QAAQ,KAAK,GAAG,EAAE;YACpBS,OAAO,GAAGF,UAAU;UACtB,CAAC,MAAM,IACLP,QAAQ,KAAK,KAAK,IAClBA,QAAQ,KAAK,KAAK,IAClBA,QAAQ,KAAK,KAAK,EAClB;YACAS,OAAO,GAAGtF,WAAC,CAAC6C,oBAAoB,CAC9B,GAAG,EACHuC,UAAU,CAACD,IAAI,EACfnF,WAAC,CAACuF,iBAAiB,CACjBV,QAAQ,CAACW,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACrBxF,WAAC,CAAC+E,SAAS,CAACK,UAAU,CAACD,IAAI,CAAC,EAC5BC,UAAU,CAACC,KACb,CACF,CAAC;UACH,CAAC,MAAM;YACLC,OAAO,GAAGtF,WAAC,CAAC6C,oBAAoB,CAC9B,GAAG,EACHuC,UAAU,CAACD,IAAI,EACfnF,WAAC,CAACyF,gBAAgB,CAChBZ,QAAQ,CAACW,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACrBxF,WAAC,CAAC+E,SAAS,CAACK,UAAU,CAACD,IAAI,CAAC,EAC5BC,UAAU,CAACC,KACb,CACF,CAAC;UACH;UAEA/H,IAAI,CAAC2G,WAAW,CACd5C,sCAAsC,CACpC,IAAI,CAACtD,QAAQ,EACb6G,aAAa,EACbU,OAAO,EACPhI,IAAI,CAAC6B,KACP,CACF,CAAC;UAEDf,eAAe,CAACd,IAAI,CAAC;UAErBA,IAAI,CAACsD,IAAI,CAAC,CAAC;QACb;MACF,CAAC,MAAM;QACL,MAAM8E,GAAG,GAAGP,IAAI,CAAC/C,0BAA0B,CAAC,CAAC;QAC7C,MAAMuD,eAAe,GAAGzD,MAAM,CAACC,IAAI,CAACuD,GAAG,CAAC,CAACE,MAAM,CAC7CpH,SAAS,IACPW,KAAK,CAACoE,UAAU,CAAC/E,SAAS,CAAC,KAAKlB,IAAI,CAAC6B,KAAK,CAACoE,UAAU,CAAC/E,SAAS,CACnE,CAAC;QACD,MAAMsC,EAAE,GAAG6E,eAAe,CAACE,IAAI,CAACrH,SAAS,IAAIP,QAAQ,CAACsC,GAAG,CAAC/B,SAAS,CAAC,CAAC;QAErE,IAAIsC,EAAE,EAAE;UACNxD,IAAI,CAACyD,IAAI,CAACsE,KAAK,GAAGrF,WAAC,CAACkE,kBAAkB,CAAC,CACrC5G,IAAI,CAACyD,IAAI,CAACsE,KAAK,EACfvC,gBAAgB,CAAChC,EAAE,CAAC,CACrB,CAAC;QACJ;QAIA,MAAMgF,KAAqB,GAAG,EAAE;QAChCH,eAAe,CAACI,OAAO,CAACvH,SAAS,IAAI;UACnC,MAAMoG,aAAa,GAAGzG,QAAQ,CAACY,GAAG,CAACP,SAAS,CAAC,IAAI,EAAE;UACnD,IAAIoG,aAAa,CAAC1D,MAAM,GAAG,CAAC,EAAE;YAC5B4E,KAAK,CAAC9G,IAAI,CACRqC,sCAAsC,CACpC,IAAI,CAACtD,QAAQ,EACb6G,aAAa,EACb5E,WAAC,CAACC,UAAU,CAACzB,SAAS,CAAC,EACvBlB,IAAI,CAAC6B,KACP,CACF,CAAC;UACH;QACF,CAAC,CAAC;QAEF,IAAI2G,KAAK,CAAC5E,MAAM,GAAG,CAAC,EAAE;UACpB,IAAIH,IAAY,GAAGf,WAAC,CAACkE,kBAAkB,CAAC4B,KAAK,CAAC;UAC9C,IAAIxI,IAAI,CAACG,UAAU,CAACuI,qBAAqB,CAAC,CAAC,EAAE;YAC3CjF,IAAI,GAAGf,WAAC,CAACoB,mBAAmB,CAACL,IAAI,CAAC;YAElCA,IAAI,CAACO,WAAW,GAAGhE,IAAI,CAACG,UAAU,CAACsD,IAAI,CAACO,WAAW;UACrD;UAEA,MAAMH,SAAS,GAAG7D,IAAI,CAACiE,WAAW,CAACR,IAAI,CAAC,CAAC,CAAC,CAAC;UAC3C3C,eAAe,CAAC+C,SAAS,CAAC;QAC5B;MACF;IACF;EACF,CAAC;EACD8E,aAAaA,CAAC3I,IAAI,EAAE;IAClB,MAAM;MAAE6B,KAAK;MAAE4B;IAAK,CAAC,GAAGzD,IAAI;IAC5B,MAAM;MAAE6H;IAAK,CAAC,GAAGpE,IAAI;IACrB,MAAM;MAAE5C,QAAQ;MAAEF,QAAQ;MAAEkB,KAAK,EAAE+G;IAAa,CAAC,GAAG,IAAI;IAExD,IAAI,CAAClG,WAAC,CAACmG,qBAAqB,CAAChB,IAAI,CAAC,EAAE;MAClC,IAAIiB,kBAAkB,GAAG,KAAK;QAC5BC,wBAAwB;MAC1B,MAAMC,aAAa,GAAGhJ,IAAI,CAACyB,GAAG,CAAC,MAAM,CAAC,CAACI,KAAK;MAC5C,KAAK,MAAMe,IAAI,IAAIgC,MAAM,CAACC,IAAI,CAACnC,WAAC,CAACoC,0BAA0B,CAAC+C,IAAI,CAAC,CAAC,EAAE;QAClE,IAAIe,YAAY,CAAC3C,UAAU,CAACrD,IAAI,CAAC,KAAKf,KAAK,CAACoE,UAAU,CAACrD,IAAI,CAAC,EAAE;UAC5D,IAAI/B,QAAQ,CAACoC,GAAG,CAACL,IAAI,CAAC,EAAE;YACtBkG,kBAAkB,GAAG,IAAI;YACzB,IAAIE,aAAa,CAAC7D,aAAa,CAACvC,IAAI,CAAC,EAAE;cACrCoG,aAAa,CAAC5D,MAAM,CAACxC,IAAI,CAAC;YAC5B;UACF;UACA,IAAIjC,QAAQ,CAACsC,GAAG,CAACL,IAAI,CAAC,IAAI,CAACmG,wBAAwB,EAAE;YACnDA,wBAAwB,GAAGnG,IAAI;UACjC;QACF;MACF;MACA,IAAI,CAACkG,kBAAkB,IAAI,CAACC,wBAAwB,EAAE;QACpD;MACF;MAEA/I,IAAI,CAACiJ,WAAW,CAAC,CAAC;MAClB,MAAMC,QAAQ,GAAGlJ,IAAI,CAACyB,GAAG,CAAC,MAAM,CAA+B;MAE/D,MAAM0H,SAAS,GAAGtH,KAAK,CAACuH,gCAAgC,CAACvB,IAAI,CAAC;MAC9D7H,IAAI,CACDyB,GAAG,CAAC,MAAM,CAAC,CACXkF,WAAW,CACVjE,WAAC,CAAC2G,mBAAmB,CAAC,KAAK,EAAE,CAC3B3G,WAAC,CAAC4G,kBAAkB,CAAC5G,WAAC,CAAC+E,SAAS,CAAC0B,SAAS,CAAC,CAAC,CAC7C,CACH,CAAC;MACHtH,KAAK,CAAC0H,mBAAmB,CAACvJ,IAAI,CAACyB,GAAG,CAAC,MAAM,CAAC,CAAC;MAE3C,IAAIqH,kBAAkB,EAAE;QACtBI,QAAQ,CAACM,gBAAgB,CACvB,MAAM,EACN9G,WAAC,CAACoB,mBAAmB,CAACpB,WAAC,CAAC6C,oBAAoB,CAAC,GAAG,EAAEsC,IAAI,EAAEsB,SAAS,CAAC,CACpE,CAAC;MACH;MACA,IAAIJ,wBAAwB,EAAE;QAC5BG,QAAQ,CAACM,gBAAgB,CACvB,MAAM,EACN9G,WAAC,CAACoB,mBAAmB,CAAC0B,gBAAgB,CAACuD,wBAAwB,CAAC,CAClE,CAAC;MACH;IACF;EACF;AACF,CAAC","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js b/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js new file mode 100644 index 0000000..b537652 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js @@ -0,0 +1,22 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = rewriteThis; +var _core = require("@babel/core"); +var _traverse = require("@babel/traverse"); +let rewriteThisVisitor; +function rewriteThis(programPath) { + if (!rewriteThisVisitor) { + rewriteThisVisitor = _traverse.visitors.environmentVisitor({ + ThisExpression(path) { + path.replaceWith(_core.types.unaryExpression("void", _core.types.numericLiteral(0), true)); + } + }); + rewriteThisVisitor.noScope = true; + } + (0, _traverse.default)(programPath.node, rewriteThisVisitor); +} + +//# sourceMappingURL=rewrite-this.js.map diff --git a/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map b/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map new file mode 100644 index 0000000..3cdfc3f --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/lib/rewrite-this.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_core","require","_traverse","rewriteThisVisitor","rewriteThis","programPath","visitors","environmentVisitor","ThisExpression","path","replaceWith","t","unaryExpression","numericLiteral","noScope","traverse","node"],"sources":["../src/rewrite-this.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport traverse, { visitors, type NodePath } from \"@babel/traverse\";\n\n/**\n * A lazily constructed visitor to walk the tree, rewriting all `this` references in the\n * top-level scope to be `void 0` (undefined).\n *\n */\nlet rewriteThisVisitor: Parameters[1];\n\nexport default function rewriteThis(programPath: NodePath) {\n if (!rewriteThisVisitor) {\n rewriteThisVisitor = visitors.environmentVisitor({\n ThisExpression(path) {\n path.replaceWith(t.unaryExpression(\"void\", t.numericLiteral(0), true));\n },\n });\n rewriteThisVisitor.noScope = true;\n }\n // Rewrite \"this\" to be \"undefined\".\n traverse(programPath.node, rewriteThisVisitor);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAOA,IAAIE,kBAAkD;AAEvC,SAASC,WAAWA,CAACC,WAAqB,EAAE;EACzD,IAAI,CAACF,kBAAkB,EAAE;IACvBA,kBAAkB,GAAGG,kBAAQ,CAACC,kBAAkB,CAAC;MAC/CC,cAAcA,CAACC,IAAI,EAAE;QACnBA,IAAI,CAACC,WAAW,CAACC,WAAC,CAACC,eAAe,CAAC,MAAM,EAAED,WAAC,CAACE,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;MACxE;IACF,CAAC,CAAC;IACFV,kBAAkB,CAACW,OAAO,GAAG,IAAI;EACnC;EAEA,IAAAC,iBAAQ,EAACV,WAAW,CAACW,IAAI,EAAEb,kBAAkB,CAAC;AAChD","ignoreList":[]} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-module-transforms/package.json b/framework-core/node_modules/@babel/helper-module-transforms/package.json new file mode 100644 index 0000000..5c7241e --- /dev/null +++ b/framework-core/node_modules/@babel/helper-module-transforms/package.json @@ -0,0 +1,32 @@ +{ + "name": "@babel/helper-module-transforms", + "version": "7.28.3", + "description": "Babel helper functions for implementing ES6 module transformations", + "author": "The Babel Team (https://babel.dev/team)", + "homepage": "https://babel.dev/docs/en/next/babel-helper-module-transforms", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-module-transforms" + }, + "main": "./lib/index.js", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "devDependencies": { + "@babel/core": "^7.28.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/framework-core/node_modules/@babel/helper-plugin-utils/LICENSE b/framework-core/node_modules/@babel/helper-plugin-utils/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/framework-core/node_modules/@babel/helper-plugin-utils/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/framework-core/node_modules/@babel/helper-plugin-utils/README.md b/framework-core/node_modules/@babel/helper-plugin-utils/README.md new file mode 100644 index 0000000..a99070f --- /dev/null +++ b/framework-core/node_modules/@babel/helper-plugin-utils/README.md @@ -0,0 +1,19 @@ +# @babel/helper-plugin-utils + +> General utilities for plugins to use + +See our website [@babel/helper-plugin-utils](https://babeljs.io/docs/babel-helper-plugin-utils) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-plugin-utils +``` + +or using yarn: + +```sh +yarn add @babel/helper-plugin-utils +``` diff --git a/framework-core/node_modules/@babel/helper-plugin-utils/lib/index.js b/framework-core/node_modules/@babel/helper-plugin-utils/lib/index.js new file mode 100644 index 0000000..ae00562 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-plugin-utils/lib/index.js @@ -0,0 +1,76 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.declare = declare; +exports.declarePreset = void 0; +const apiPolyfills = { + assertVersion: api => range => { + throwVersionError(range, api.version); + } +}; +{ + Object.assign(apiPolyfills, { + targets: () => () => { + return {}; + }, + assumption: () => () => { + return undefined; + }, + addExternalDependency: () => () => {} + }); +} +function declare(builder) { + return (api, options, dirname) => { + let clonedApi; + for (const name of Object.keys(apiPolyfills)) { + if (api[name]) continue; + clonedApi != null ? clonedApi : clonedApi = copyApiObject(api); + clonedApi[name] = apiPolyfills[name](clonedApi); + } + return builder(clonedApi != null ? clonedApi : api, options || {}, dirname); + }; +} +const declarePreset = exports.declarePreset = declare; +function copyApiObject(api) { + let proto = null; + if (typeof api.version === "string" && /^7\./.test(api.version)) { + proto = Object.getPrototypeOf(api); + if (proto && (!hasOwnProperty.call(proto, "version") || !hasOwnProperty.call(proto, "transform") || !hasOwnProperty.call(proto, "template") || !hasOwnProperty.call(proto, "types"))) { + proto = null; + } + } + return Object.assign({}, proto, api); +} +function throwVersionError(range, version) { + if (typeof range === "number") { + if (!Number.isInteger(range)) { + throw new Error("Expected string or integer value."); + } + range = `^${range}.0.0-0`; + } + if (typeof range !== "string") { + throw new Error("Expected string or integer value."); + } + const limit = Error.stackTraceLimit; + if (typeof limit === "number" && limit < 25) { + Error.stackTraceLimit = 25; + } + let err; + if (version.slice(0, 2) === "7.") { + err = new Error(`Requires Babel "^7.0.0-beta.41", but was loaded with "${version}". ` + `You'll need to update your @babel/core version.`); + } else { + err = new Error(`Requires Babel "${range}", but was loaded with "${version}". ` + `If you are sure you have a compatible version of @babel/core, ` + `it is likely that something in your build process is loading the ` + `wrong version. Inspect the stack trace of this error to look for ` + `the first entry that doesn't mention "@babel/core" or "babel-core" ` + `to see what is calling Babel.`); + } + if (typeof limit === "number") { + Error.stackTraceLimit = limit; + } + throw Object.assign(err, { + code: "BABEL_VERSION_UNSUPPORTED", + version, + range + }); +} + +//# sourceMappingURL=index.js.map diff --git a/framework-core/node_modules/@babel/helper-plugin-utils/lib/index.js.map b/framework-core/node_modules/@babel/helper-plugin-utils/lib/index.js.map new file mode 100644 index 0000000..ab21b76 --- /dev/null +++ b/framework-core/node_modules/@babel/helper-plugin-utils/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["apiPolyfills","assertVersion","api","range","throwVersionError","version","Object","assign","targets","assumption","undefined","addExternalDependency","declare","builder","options","dirname","clonedApi","name","keys","copyApiObject","declarePreset","exports","proto","test","getPrototypeOf","hasOwnProperty","call","Number","isInteger","Error","limit","stackTraceLimit","err","slice","code"],"sources":["../src/index.ts"],"sourcesContent":["import type {\n PluginAPI,\n PluginObject,\n PluginPass,\n PresetAPI,\n PresetObject,\n} from \"@babel/core\";\n\ntype APIPolyfillFactory = (\n api: PluginAPI,\n) => PluginAPI[T];\n\ntype APIPolyfills = {\n assertVersion: APIPolyfillFactory<\"assertVersion\">;\n};\n\nconst apiPolyfills: APIPolyfills = {\n // Not supported by Babel 7 and early versions of Babel 7 beta.\n // It's important that this is polyfilled for older Babel versions\n // since it's needed to report the version mismatch.\n assertVersion: (api: PluginAPI) => (range: number | string) => {\n throwVersionError(range, api.version);\n },\n};\nif (!process.env.BABEL_8_BREAKING) {\n Object.assign(apiPolyfills, {\n // This is supported starting from Babel 7.13\n targets: () => (): any => {\n return {};\n },\n // This is supported starting from Babel 7.13\n assumption: () => (): any => {\n return undefined;\n },\n // This is supported starting from Babel 7.17\n addExternalDependency: () => () => {},\n });\n}\n\nexport function declare(\n builder: (\n api: PluginAPI,\n options: Option,\n dirname: string,\n ) => PluginObject,\n): (\n api: PluginAPI,\n options: Option,\n dirname: string,\n) => PluginObject {\n return (api, options: Option, dirname: string) => {\n let clonedApi: PluginAPI;\n\n for (const name of Object.keys(\n apiPolyfills,\n ) as (keyof typeof apiPolyfills)[]) {\n if (api[name]) continue;\n\n clonedApi ??= copyApiObject(api);\n clonedApi[name] = apiPolyfills[name](clonedApi);\n }\n\n // @ts-expect-error options || {} may not be assigned to Options\n return builder(clonedApi ?? api, options || {}, dirname);\n };\n}\n\nexport const declarePreset = declare as