From 0cfce0760ce6819505956dfb8b1964c1d414af93 Mon Sep 17 00:00:00 2001 From: "oleg.pronchenko" Date: Wed, 11 Feb 2026 00:44:18 +0200 Subject: [PATCH 1/7] feat: add implementation plan for lazy loading functionality --- plan-lazy.md | 214 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 plan-lazy.md diff --git a/plan-lazy.md b/plan-lazy.md new file mode 100644 index 0000000..af5487e --- /dev/null +++ b/plan-lazy.md @@ -0,0 +1,214 @@ +# Lazy Loading Implementation Plan for @devisfuture/electron-modular + +## Overview + +This document describes the implementation plan for adding lazy loading functionality to the `@devisfuture/electron-modular` package. The implementation must strictly follow the **Open/Closed Principle** from SOLID - adding new functionality without modifying existing working code. + +## Goals + +1. Add lazy loading support for modules +2. Enable automatic module initialization on IPC trigger +3. Maintain 100% backward compatibility +4. No breaking changes to existing API +5. Follow Open/Closed Principle strictly + +## User-Facing API + +### Without Lazy (Existing Behavior - No Changes) + +```typescript +@RgModule({ + providers: [UserService], + ipc: [UserIpc], + windows: [UserWindow], +}) +export class UserModule {} +``` + +**Result**: Module loads immediately during `bootstrapModules()` call. + +### With Lazy (New Functionality) + +```typescript +@RgModule({ + providers: [AnalyticsService], + ipc: [AnalyticsIpc], + windows: [AnalyticsWindow], + lazy: { + enabled: true, + trigger: "analytics", + }, +}) +export class AnalyticsModule {} +``` + +**Result**: + +- Module does NOT load during `bootstrapModules()` call +- Module loads automatically when `ipcRenderer.invoke('analytics')` is called from renderer process +- After first load, module behaves exactly like eager-loaded module + +## Expected Behavior + +### Scenario 1: Module with exact trigger + +Main process: + +```typescript +// Module definition +@RgModule({ + imports: [RestApiModule], + providers: [AnalyticsService], + ipc: [AnalyticsIpc], + windows: [AnalyticsWindows], + lazy: { + enabled: true, + trigger: "analytics", + }, +}) +export class AnalyticsModule {} + +// main.ts +app.on("ready", async () => { + await bootstrapModules([ + UserModule, // ✅ Fully initialized NOW + AnalyticsModule, // ❌ NOT initialized + ]); + + console.log("App ready!"); +}); +``` + +Renderer process: + +```typescript +type TInitAnalyticsModule = { + initialized: boolean; // true/false + name: string; // name of module 'analytics' + error?: { + // when something wrong + message: string; + }; +}; +const initAnalyticsModule: TInitAnalyticsModule = + await ipcRenderer.invoke("analytics"); +console.log(initAnalyticsModule); // module is initialized or not! +``` + +### Scenario 2: Complex module with all features + +```typescript +@RgModule({ + imports: [RestApiModule, DatabaseModule], + providers: [ + AnalyticsService, + { + provide: ANALYTICS_CONFIG, + useFactory: (dbService: DatabaseService) => ({ + connection: dbService.getConnection(), + }), + inject: [DatabaseService], + }, + ], + ipc: [AnalyticsIpc], + windows: [AnalyticsWindow], + exports: [AnalyticsService], + lazy: { + enabled: true, + trigger: "analytics", + }, +}) +export class AnalyticsModule {} +``` + +## Implementation Requirements + +### 1. Type Definitions + +Add new type definitions **without modifying existing types**: + +```typescript +type TLazyConfig = { + enabled: true; + trigger: string; +}; + +type TModuleMetadata = { + // ... existing fields ... + lazy?: TLazyConfig; +}; +``` + +### 2. Bootstrap Function Enhancement + +Modify `bootstrapModules()` to handle lazy modules **without breaking eager loading**: + +**Current behavior (must remain unchanged):** + +```typescript +await bootstrapModules([UserModule]); +// UserModule is fully initialized +``` + +**New behavior (only when lazy is specified):** + +```typescript +await bootstrapModules([ + UserModule, // Eager: fully initialized + AnalyticsModule, // Lazy: NOT initialized +]); +``` + +**Required changes:** + +- Detect if module has `lazy.enabled === true` +- If yes: register only one `ipcMain.handle` // for example "analytics". This name of channel take from `lazy.trigger` +- If no: use existing initialization logic (no changes) + +## Implementation Checklist + +- [ ] Add `TLazyConfig` type definition +- [ ] Add `lazy?: TLazyConfig` to module metadata type +- [ ] Extend module registry to track loading state +- [ ] Modify `bootstrapModules()` to detect lazy modules +- [ ] Create lazy module registration logic (separate from initialization) +- [ ] Create trigger matching logic +- [ ] Implement module loading function (reusing existing init logic) +- [ ] Write tests for backward compatibility +- [ ] Write tests for lazy loading scenarios +- [ ] Write tests for edge cases (concurrent loading, errors, etc.) +- [ ] Update documentation +- [ ] Update examples + +## Key Principles + +1. **Open/Closed Principle**: Add new code, do NOT modify existing working code +2. **Backward Compatibility**: Modules without `lazy` field must work exactly as before +3. **Code Reuse**: Use existing initialization functions, do NOT duplicate logic +4. **Consistency**: Lazy-loaded modules must behave identically to eager-loaded modules after initialization +5. **Type Safety**: All new code must be fully typed with TypeScript +6. **Error Handling**: Handle edge cases (module not found, loading errors, concurrent loads) + +## Success Criteria + +1. All existing tests pass without modifications +2. Modules without `lazy` field work exactly as before +3. Lazy modules do NOT initialize during `bootstrapModules()` +4. After initialization, lazy modules behave identically to eager modules +5. No code duplication between eager and lazy initialization +6. Full TypeScript type safety +7. Clear error messages for misconfigurations + +## Final Notes + +This implementation plan ensures: + +- ✅ Zero breaking changes +- ✅ Full backward compatibility +- ✅ Clean architecture following SOLID principles +- ✅ Minimal code duplication +- ✅ Type-safe implementation +- ✅ Clear error messages +- ✅ Good developer experience + +The AI agent should analyze the existing codebase structure and implement lazy loading by **adding new code** rather than **modifying existing working code**. From 5e59a21d615fb26eb51f939b0643bf863fa81cdd Mon Sep 17 00:00:00 2001 From: "oleg.pronchenko" Date: Wed, 11 Feb 2026 12:22:10 +0200 Subject: [PATCH 2/7] feat: expand lazy loading implementation plan with detailed examples for main and renderer processes --- plan-lazy.md | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/plan-lazy.md b/plan-lazy.md index af5487e..7497de8 100644 --- a/plan-lazy.md +++ b/plan-lazy.md @@ -212,3 +212,106 @@ This implementation plan ensures: - ✅ Good developer experience The AI agent should analyze the existing codebase structure and implement lazy loading by **adding new code** rather than **modifying existing working code**. + +## The result when used should be approximately as follows + +**The main process.** +The file `main.ts`: + +```typescript +import { app } from "electron"; +import { bootstrapModules, ... } from "@devisfuture/electron-modular"; + +...... + +app.on("ready", async () => { + await bootstrapModules([ + UserModule, + AnalyticsModule, // lazy module + ]); +}); +``` + +The file `module.ts`: + +```typescript +import { RgModule } from "@devisfuture/electron-modular"; +import { AnalyticsService } from "./service.js"; +import { RestApiService } from "../rest-api/service.js"; +import { REST_API_PROVIDER } from "./tokens.js"; +import { AnalyticsIpc } from "./ipc.js"; +import { AnalyticsWindow } from "./windows.js"; +import type { TAuthProvider, TWordsRestApiProvider } from "./types.js"; + +...... + +@RgModule({ + imports: [RestApiModule], + providers: [ + AnalyticsService, + { + provide: REST_API_PROVIDER, + useFactory: (restApiService: RestApiService): TWordsRestApiProvider => ({ + get: () => restApiService.get('https://example.com/api/user/1'), + }), + inject: [RestApiService], + }, + ], + ipc: [AnalyticsIpc], + windows: [AnalyticsWindow], + lazy: { + enabled: true, + trigger: "analytics", + }, +}) +export class AnalyticsModule {} +``` + +The file `preload.cts`: + +```typescript +const electron = require("electron"); + +type TInitAnalyticsModule = { + initialized: boolean; // true/false + name: string; // name of module 'analytics' + error?: { + // when something wrong + message: string; + }; +}; + +electron.contextBridge.exposeInMainWorld("electron", { + invoke: (key: string, payload: any): TInitAnalyticsModule => { + return electron.ipcRenderer.invoke(key, payload); + }, +}); +``` + +**The renderer process.** +The file `App.tsx` + +```typescript +import { useEffect, useCallback } from "react"; + +.... + +export const App = () => { + + const initAnalyticsModule = useCallback(async () => { + const { initialized, name, error } = await window.electron.invoke("analytics"); + + if (initialized && error === undefined) { + console.log('Success!', 'Module:', name); + } else { + console.log('Error!', 'Module:', name, error.message); + } + }, []); + + useEffect(() => { + initAnalyticsModule(); + }, [initAnalyticsModule]); + + return <>Home; +}; +``` From a8e8e2bf482bf5d8f79d6fb06cfec100dcdf3ef0 Mon Sep 17 00:00:00 2001 From: "oleg.pronchenko" Date: Wed, 11 Feb 2026 12:22:58 +0200 Subject: [PATCH 3/7] docs: clarify reference to App.tsx in lazy loading implementation plan --- plan-lazy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plan-lazy.md b/plan-lazy.md index 7497de8..3565dae 100644 --- a/plan-lazy.md +++ b/plan-lazy.md @@ -289,7 +289,7 @@ electron.contextBridge.exposeInMainWorld("electron", { ``` **The renderer process.** -The file `App.tsx` +The file `App.tsx`: ```typescript import { useEffect, useCallback } from "react"; From c5e27a355a43504c819f53dda55339c5eaf98686 Mon Sep 17 00:00:00 2001 From: "oleg.pronchenko" Date: Wed, 11 Feb 2026 12:47:37 +0200 Subject: [PATCH 4/7] feat: implement lazy module registration and initialization via IPC --- .../__tests__/register-lazy-module.test.ts | 262 ++++++++++++++++++ src/@core/bootstrap/bootstrap.ts | 6 + src/@core/bootstrap/register-lazy-module.ts | 79 ++++++ src/@core/types/index.ts | 1 + src/@core/types/lazy.ts | 52 ++++ src/@core/types/module-metadata.ts | 2 + src/index.ts | 1 + 7 files changed, 403 insertions(+) create mode 100644 src/@core/bootstrap/__tests__/register-lazy-module.test.ts create mode 100644 src/@core/bootstrap/register-lazy-module.ts create mode 100644 src/@core/types/lazy.ts diff --git a/src/@core/bootstrap/__tests__/register-lazy-module.test.ts b/src/@core/bootstrap/__tests__/register-lazy-module.test.ts new file mode 100644 index 0000000..107fe39 --- /dev/null +++ b/src/@core/bootstrap/__tests__/register-lazy-module.test.ts @@ -0,0 +1,262 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; +import { registerLazyModule } from "../register-lazy-module.js"; +import { bootstrapModules } from "../bootstrap.js"; +import { RgModule } from "../../decorators/rg-module.js"; +import { container } from "../../container.js"; +import { ipcMain } from "electron"; +import "reflect-metadata/lite"; + +describe("registerLazyModule", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it("should register an ipcMain.handle listener with the trigger name", () => { + @RgModule({ + providers: [], + lazy: { enabled: true, trigger: "analytics" }, + }) + class LazyModule {} + + const metadata = Reflect.getMetadata("RgModule", LazyModule); + registerLazyModule(LazyModule, metadata); + + expect(ipcMain.handle).toHaveBeenCalledWith( + "analytics", + expect.any(Function), + ); + }); + + it("should not initialize module during registration", () => { + @RgModule({ + providers: [], + lazy: { enabled: true, trigger: "deferred" }, + }) + class DeferredModule {} + + const metadata = Reflect.getMetadata("RgModule", DeferredModule); + registerLazyModule(DeferredModule, metadata); + + expect(container.hasModule(DeferredModule)).toBe(false); + }); + + it("should initialize module when IPC trigger is invoked", async () => { + class TestService { + value = "lazy-test"; + } + + @RgModule({ + providers: [TestService], + lazy: { enabled: true, trigger: "test-lazy" }, + }) + class LazyTestModule {} + + const metadata = Reflect.getMetadata("RgModule", LazyTestModule); + registerLazyModule(LazyTestModule, metadata); + + const handleCall = vi.mocked(ipcMain.handle).mock.calls[0]; + const handler = handleCall[1] as () => Promise; + + const result = await handler(); + + expect(result).toEqual({ + initialized: true, + name: "test-lazy", + }); + expect(container.hasModule(LazyTestModule)).toBe(true); + }); + + it("should return error response when initialization fails", async () => { + class FailingModule { + constructor() { + throw new Error("Initialization failed"); + } + } + + RgModule({ + providers: [], + lazy: { enabled: true, trigger: "fail-module" }, + })(FailingModule); + + const metadata = Reflect.getMetadata("RgModule", FailingModule); + registerLazyModule(FailingModule, metadata); + + const handleCall = vi.mocked(ipcMain.handle).mock.calls[0]; + const handler = handleCall[1] as () => Promise; + + const result = await handler(); + + expect(result).toEqual({ + initialized: false, + name: "fail-module", + error: { + message: expect.any(String), + }, + }); + }); + + it("should return same result for concurrent invocations", async () => { + @RgModule({ + providers: [], + lazy: { enabled: true, trigger: "concurrent" }, + }) + class ConcurrentModule {} + + const metadata = Reflect.getMetadata("RgModule", ConcurrentModule); + registerLazyModule(ConcurrentModule, metadata); + + const handleCall = vi.mocked(ipcMain.handle).mock.calls[0]; + const handler = handleCall[1] as () => Promise; + + const [result1, result2] = await Promise.all([handler(), handler()]); + + expect(result1).toEqual({ + initialized: true, + name: "concurrent", + }); + expect(result2).toEqual(result1); + }); + + it("should allow retry after failure", async () => { + let callCount = 0; + + class RetryModuleClass { + constructor() { + callCount++; + if (callCount === 1) { + throw new Error("First call fails"); + } + } + } + + RgModule({ + providers: [], + lazy: { enabled: true, trigger: "retry-module" }, + })(RetryModuleClass); + + const metadata = Reflect.getMetadata("RgModule", RetryModuleClass); + registerLazyModule(RetryModuleClass, metadata); + + const handleCall = vi.mocked(ipcMain.handle).mock.calls[0]; + const handler = handleCall[1] as () => Promise; + + const firstResult = (await handler()) as { initialized: boolean }; + expect(firstResult.initialized).toBe(false); + + const secondResult = (await handler()) as { initialized: boolean }; + expect(secondResult.initialized).toBe(true); + }); +}); + +describe("bootstrapModules with lazy modules", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it("should not initialize lazy modules during bootstrap", async () => { + @RgModule({ + providers: [], + }) + class EagerModule {} + + @RgModule({ + providers: [], + lazy: { enabled: true, trigger: "lazy-test" }, + }) + class LazyModule {} + + await bootstrapModules([EagerModule, LazyModule]); + + expect(container.hasModule(EagerModule)).toBe(true); + expect(container.hasModule(LazyModule)).toBe(false); + expect(ipcMain.handle).toHaveBeenCalledWith( + "lazy-test", + expect.any(Function), + ); + }); + + it("should initialize eager modules normally alongside lazy modules", async () => { + class EagerService { + value = "eager"; + } + + @RgModule({ + providers: [EagerService], + }) + class EagerModule {} + + @RgModule({ + providers: [], + lazy: { enabled: true, trigger: "lazy-side" }, + }) + class LazyModule {} + + await bootstrapModules([EagerModule, LazyModule]); + + const service = await container.resolve(EagerModule, EagerService); + expect(service).toBeInstanceOf(EagerService); + }); + + it("should process multiple lazy modules independently", async () => { + @RgModule({ + providers: [], + lazy: { enabled: true, trigger: "lazy-a" }, + }) + class LazyModuleA {} + + @RgModule({ + providers: [], + lazy: { enabled: true, trigger: "lazy-b" }, + }) + class LazyModuleB {} + + await bootstrapModules([LazyModuleA, LazyModuleB]); + + expect(ipcMain.handle).toHaveBeenCalledTimes(2); + expect(ipcMain.handle).toHaveBeenCalledWith("lazy-a", expect.any(Function)); + expect(ipcMain.handle).toHaveBeenCalledWith("lazy-b", expect.any(Function)); + }); + + it("should still throw for modules without @RgModule decorator even with lazy modules", async () => { + class UndecoratedModule {} + + @RgModule({ + providers: [], + lazy: { enabled: true, trigger: "after-error" }, + }) + class LazyModule {} + + await expect( + bootstrapModules([UndecoratedModule, LazyModule]), + ).rejects.toThrow(); + }); + + it("should handle mixed eager and lazy modules in order", async () => { + const initOrder: string[] = []; + + @RgModule({ providers: [] }) + class Eager1 { + constructor() { + initOrder.push("Eager1"); + } + } + + @RgModule({ + providers: [], + lazy: { enabled: true, trigger: "lazy-mid" }, + }) + class LazyMid {} + + @RgModule({ providers: [] }) + class Eager2 { + constructor() { + initOrder.push("Eager2"); + } + } + + await bootstrapModules([Eager1, LazyMid, Eager2]); + + expect(initOrder).toEqual(["Eager1", "Eager2"]); + expect(container.hasModule(LazyMid)).toBe(false); + }); +}); diff --git a/src/@core/bootstrap/bootstrap.ts b/src/@core/bootstrap/bootstrap.ts index 2d76ec1..64bba0b 100644 --- a/src/@core/bootstrap/bootstrap.ts +++ b/src/@core/bootstrap/bootstrap.ts @@ -18,6 +18,7 @@ import { instantiateModule } from "./instantiate-module.js"; import { initializeModule } from "./initialize-module.js"; import { container } from "../container.js"; import { initializeIpcHandlers } from "./initialize-ipc/handlers.js"; +import { registerLazyModule } from "./register-lazy-module.js"; /** * Bootstraps an array of modules in the application. @@ -50,6 +51,11 @@ export const bootstrapModules = async ( throw new ModuleDecoratorMissingError(moduleClass.name); } + if (metadata.lazy?.enabled) { + registerLazyModule(moduleClass, metadata); + continue; + } + await initializeModule(moduleClass, metadata); await instantiateModule(moduleClass); await container.resolve(moduleClass, moduleClass); diff --git a/src/@core/bootstrap/register-lazy-module.ts b/src/@core/bootstrap/register-lazy-module.ts new file mode 100644 index 0000000..85dca2e --- /dev/null +++ b/src/@core/bootstrap/register-lazy-module.ts @@ -0,0 +1,79 @@ +/** + * @fileoverview Lazy module registration for deferred initialization. + * + * Registers an ipcMain.handle() listener for lazy modules that triggers + * full module initialization on first IPC invocation. After initialization, + * the module behaves identically to an eager-loaded module. + * + * @module @core/bootstrap/register-lazy-module + */ + +import { ipcMain } from "electron"; +import type { RgModuleMetadata } from "../types/module-metadata.js"; +import type { Constructor } from "../types/constructor.js"; +import type { TLazyModuleResponse } from "../types/lazy.js"; +import { initializeModule } from "./initialize-module.js"; +import { instantiateModule } from "./instantiate-module.js"; +import { container } from "../container.js"; +import { initializeIpcHandlers } from "./initialize-ipc/handlers.js"; + +/** + * Registers a lazy module by setting up an IPC handler for deferred initialization. + * + * Instead of initializing the module immediately, this function registers + * an ipcMain.handle() listener using the trigger from lazy config. + * When the IPC channel is invoked from a renderer process, the module + * is fully initialized using the same logic as eager-loaded modules. + * + * Handles concurrent invocations by reusing the same initialization promise, + * ensuring the module is only initialized once. + * + * @param moduleClass - The module class constructor + * @param metadata - Module metadata from @RgModule decorator + */ +export const registerLazyModule = ( + moduleClass: Constructor, + metadata: RgModuleMetadata, +): void => { + const trigger = metadata.lazy!.trigger; + let initPromise: Promise | null = null; + + ipcMain.handle(trigger, async (): Promise => { + if (initPromise) { + return initPromise; + } + + initPromise = (async (): Promise => { + try { + await initializeModule(moduleClass, metadata); + await instantiateModule(moduleClass); + await container.resolve(moduleClass, moduleClass); + + if (metadata.windows?.length && !metadata.ipc?.length) { + console.warn( + `Warning: Window(s) declared in module "${moduleClass.name}" but no IPC handlers found to manage them.`, + ); + } + + await initializeIpcHandlers(moduleClass, metadata); + + return { + initialized: true, + name: trigger, + }; + } catch (error) { + initPromise = null; + + return { + initialized: false, + name: trigger, + error: { + message: error instanceof Error ? error.message : String(error), + }, + }; + } + })(); + + return initPromise; + }); +}; diff --git a/src/@core/types/index.ts b/src/@core/types/index.ts index cfca497..b34c50b 100644 --- a/src/@core/types/index.ts +++ b/src/@core/types/index.ts @@ -23,3 +23,4 @@ export type { TWindowManagerWithHandlers, } from "./window-manager.js"; export type { TMetadataWindow } from "./window-metadata.js"; +export type { TLazyConfig, TLazyModuleResponse } from "./lazy.js"; diff --git a/src/@core/types/lazy.ts b/src/@core/types/lazy.ts new file mode 100644 index 0000000..8721e48 --- /dev/null +++ b/src/@core/types/lazy.ts @@ -0,0 +1,52 @@ +/** + * @fileoverview Lazy loading type definitions for modules. + * + * Defines configuration and response types for lazy-loaded modules. + * Lazy modules are not initialized during bootstrapModules() but instead + * register an IPC handler that triggers initialization on first invocation. + * + * @module @core/types/lazy + */ + +/** + * Configuration for lazy loading a module. + * + * When specified in @RgModule metadata, the module will not be initialized + * during bootstrapModules(). Instead, an ipcMain.handle() listener is + * registered using the trigger string as the channel name. + * + * @property enabled - Must be true to enable lazy loading + * @property trigger - IPC channel name that triggers module initialization + * + * @example + * ```typescript + * @RgModule({ + * providers: [AnalyticsService], + * ipc: [AnalyticsIpc], + * lazy: { + * enabled: true, + * trigger: "analytics", + * }, + * }) + * export class AnalyticsModule {} + * ``` + */ +export type TLazyConfig = { + enabled: true; + trigger: string; +}; + +/** + * Response returned when a lazy module's IPC trigger is invoked. + * + * @property initialized - Whether the module was successfully initialized + * @property name - The trigger name of the lazy module + * @property error - Error details if initialization failed + */ +export type TLazyModuleResponse = { + initialized: boolean; + name: string; + error?: { + message: string; + }; +}; diff --git a/src/@core/types/module-metadata.ts b/src/@core/types/module-metadata.ts index 6f5f4e9..57d705b 100644 --- a/src/@core/types/module-metadata.ts +++ b/src/@core/types/module-metadata.ts @@ -9,6 +9,7 @@ import type { TIpcHandlerInterface } from "./ipc-handler.js"; import type { Constructor } from "./constructor.js"; import type { TProvider, TProviderToken } from "./provider.js"; +import type { TLazyConfig } from "./lazy.js"; /** * Metadata for a module decorated with @RgModule. @@ -25,4 +26,5 @@ export type RgModuleMetadata = { windows?: Constructor[]; providers?: TProvider[]; exports?: TProviderToken[]; + lazy?: TLazyConfig; }; diff --git a/src/index.ts b/src/index.ts index c0bb10c..1e397d4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,6 +9,7 @@ export * from "./@core/bootstrap/register-imports.js"; export * from "./@core/bootstrap/register-ipc-handlers.js"; export * from "./@core/bootstrap/register-providers.js"; export * from "./@core/bootstrap/register-windows.js"; +export * from "./@core/bootstrap/register-lazy-module.js"; export * from "./@core/bootstrap/settings.js"; // Initialize IPC From eed7fe2a0351dc9579a1af52dd4a18037cae00f0 Mon Sep 17 00:00:00 2001 From: "oleg.pronchenko" Date: Sat, 14 Feb 2026 22:57:16 +0200 Subject: [PATCH 5/7] test: add unit test for initializeIpcHandlers to verify async onInit execution --- README.md | 26 + coverage/coverage-final.json | 39 +- coverage/index.html | 40 +- coverage/lcov-report/index.html | 40 +- .../src/@core/bootstrap/bootstrap.ts.html | 248 +- .../src/@core/bootstrap/index.html | 49 +- .../@core/bootstrap/initialize-module.ts.html | 117 +- .../bootstrap/instantiate-module.ts.html | 106 +- .../@core/bootstrap/register-imports.ts.html | 70 +- .../bootstrap/register-ipc-handlers.ts.html | 75 +- .../bootstrap/register-lazy-module.ts.html | 364 ++ .../bootstrap/register-providers.ts.html | 116 +- .../@core/bootstrap/register-windows.ts.html | 72 +- .../src/@core/bootstrap/settings.ts.html | 150 +- .../lcov-report/src/@core/container.ts.html | 820 ++++- .../src/@core/control-window/cache.ts.html | 51 +- .../src/@core/control-window/destroy.ts.html | 72 +- .../src/@core/control-window/index.html | 2 +- .../src/@core/control-window/receive.ts.html | 87 +- .../src/@core/decorators/index.html | 2 +- .../src/@core/decorators/inject.ts.html | 130 +- .../src/@core/decorators/injectable.ts.html | 87 +- .../src/@core/decorators/ipc-handler.ts.html | 105 +- .../src/@core/decorators/rg-module.ts.html | 107 +- .../@core/decorators/window-manager.ts.html | 129 +- coverage/lcov-report/src/@core/index.html | 10 +- .../src/@core/utils/dependency-tokens.ts.html | 136 +- .../lcov-report/src/@core/utils/index.html | 6 +- coverage/lcov-report/src/config.ts.html | 51 +- coverage/lcov-report/src/index.html | 2 +- coverage/lcov.info | 1405 ++++---- .../src/@core/bootstrap/bootstrap.ts.html | 248 +- coverage/src/@core/bootstrap/index.html | 49 +- .../@core/bootstrap/initialize-module.ts.html | 117 +- .../bootstrap/instantiate-module.ts.html | 106 +- .../@core/bootstrap/register-imports.ts.html | 70 +- .../bootstrap/register-ipc-handlers.ts.html | 75 +- .../bootstrap/register-lazy-module.ts.html | 364 ++ .../bootstrap/register-providers.ts.html | 116 +- .../@core/bootstrap/register-windows.ts.html | 72 +- coverage/src/@core/bootstrap/settings.ts.html | 150 +- coverage/src/@core/container.ts.html | 820 ++++- .../src/@core/control-window/cache.ts.html | 51 +- .../src/@core/control-window/destroy.ts.html | 72 +- coverage/src/@core/control-window/index.html | 2 +- .../src/@core/control-window/receive.ts.html | 87 +- coverage/src/@core/decorators/index.html | 2 +- coverage/src/@core/decorators/inject.ts.html | 130 +- .../src/@core/decorators/injectable.ts.html | 87 +- .../src/@core/decorators/ipc-handler.ts.html | 105 +- .../src/@core/decorators/rg-module.ts.html | 107 +- .../@core/decorators/window-manager.ts.html | 129 +- coverage/src/@core/index.html | 10 +- .../src/@core/utils/dependency-tokens.ts.html | 136 +- coverage/src/@core/utils/index.html | 6 +- coverage/src/config.ts.html | 51 +- coverage/src/index.html | 2 +- package-lock.json | 2990 +++++++++++++++++ package.json | 1 + .../bootstrap/__tests__/bootstrap.test.ts | 36 +- .../__tests__/register-lazy-module.test.ts | 15 + src/@core/bootstrap/bootstrap.ts | 34 +- .../initialize-ipc/__tests__/handlers.test.ts | 30 + .../bootstrap/initialize-ipc/handlers.ts | 2 +- src/@core/bootstrap/register-lazy-module.ts | 16 +- src/@core/errors/__tests__/index.test.ts | 40 + src/@core/errors/index.ts | 30 + src/@core/types/ipc-handler.ts | 2 +- 68 files changed, 9755 insertions(+), 1319 deletions(-) create mode 100644 coverage/lcov-report/src/@core/bootstrap/register-lazy-module.ts.html create mode 100644 coverage/src/@core/bootstrap/register-lazy-module.ts.html create mode 100644 package-lock.json create mode 100644 src/@core/bootstrap/initialize-ipc/__tests__/handlers.test.ts diff --git a/README.md b/README.md index eee5302..dbcb6a0 100644 --- a/README.md +++ b/README.md @@ -544,6 +544,7 @@ Defines a module with its dependencies and providers. - `ipc?: Class[]` - IPC handler classes - `windows?: Class[]` - Window manager classes - `exports?: Class[]` - Providers to export +- `lazy?: { enabled: true; trigger: string }` - Defers module initialization until renderer invokes the trigger channel #### `@Injectable()` @@ -643,6 +644,30 @@ Bootstraps all modules and initializes the DI container. await bootstrapModules([AppModule, AuthModule, ResourcesModule]); ``` +Lazy modules are registered but not initialized during bootstrap. Initialization happens on first `ipcRenderer.invoke(trigger)` from renderer process. + +```typescript +@RgModule({ + providers: [AnalyticsService], + ipc: [AnalyticsIpc], + lazy: { + enabled: true, + trigger: "analytics", + }, +}) +export class AnalyticsModule {} + +await bootstrapModules([UserModule, AnalyticsModule]); +// UserModule: initialized immediately +// AnalyticsModule: initialized on first ipcRenderer.invoke("analytics") +``` + +Notes: + +- Lazy loading defers runtime initialization work (provider resolution, module instantiation, IPC `onInit`). +- It does not perform JavaScript code-splitting by itself; module code is still loaded by your app bundle strategy. +- Each lazy trigger must be unique across modules in the same bootstrap call. + #### `getWindow(hash)` Retrieves a window instance by its hash identifier. @@ -784,6 +809,7 @@ Defines a module. - `ipc?: Class[]` - IPC handler classes - `windows?: Class[]` - Window manager classes - `exports?: Class[]` - Providers to export +- `lazy?: { enabled: true; trigger: string }` - Defers module initialization until renderer invokes the trigger channel ### `@Injectable()` diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json index da80c37..20bdfd6 100644 --- a/coverage/coverage-final.json +++ b/coverage/coverage-final.json @@ -1,20 +1,21 @@ -{"/Users/traeop/Documents/projects/npm/electron-modular/src/config.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/config.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":24}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":32}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":2}}},"s":{"0":1,"1":1,"2":1,"3":1},"branchMap":{},"b":{},"fnMap":{},"f":{}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/container.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/container.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":58}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":24}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":65}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":77}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":66}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":64}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":12}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":29}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":62}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":14}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":40}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":19}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":5}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":35}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":27}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":47}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":7}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":16}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":3}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":20}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":29}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":31}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":11}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":51}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":3}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":48}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":41}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":3}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":80}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":20}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":60}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":23}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":21}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":45}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":3}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":14}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":29}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":29}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":23}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":11}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":53}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":22}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":59}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":5}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":61}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":3}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":27}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":29}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":26}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":20}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":53}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":22}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":23}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":5}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":60}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":3}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":67}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":53}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":44}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":3}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":77}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":48}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":3}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":68}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":40}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":3}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":19}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":29}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":26}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":29}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":58}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":45}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":53}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":5}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":36}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":54}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":51}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":22}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":5}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":58}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":20}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":67}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":20}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":14}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":8}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":46}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":64}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":35}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":7}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":34}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":73}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":7}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":23}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":5}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":55}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":18}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":12}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":15}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":6}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":33}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":51}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":5}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":20}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":3}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":38}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":29}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":26}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":29}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":63}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":35}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":23}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":5}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":63}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":75}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":41}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":78}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":45}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":61}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":9}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":7}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":5}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":21}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":3}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":39}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":29}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":26}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":22}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":29}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":17}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":37}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":26}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":28}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":8}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":14}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":33}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":56}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":7}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":48}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":20}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":14}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":37}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":8}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":5}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":8}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":14}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":31}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":54}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":7}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":46}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":20}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":14}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":35}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":8}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":5}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":42}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":56}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":37}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":22}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":5}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":45}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":45}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":20}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":52}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":8}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":35}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":44}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":7}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":22}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":5}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":41}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":49}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":20}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":14}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":32}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":8}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":5}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":25}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":3}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":46}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":29}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":26}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":31}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":17}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":47}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":64}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":18}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":19}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":6}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":66}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":40}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":25}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":3}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":44}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":29}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":26}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":29}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":17}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":24}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":64}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":64}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":18}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":19}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":6}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":68}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":40}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":25}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":3}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":47}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":29}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":26}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":31}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":17}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":60}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":64}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":18}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":19}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":6}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":64}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":40}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":25}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":3}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":36}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":29}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":35}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":25}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":23}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":64}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":6}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":3}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":1}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":41}}},"s":{"0":1,"20":1,"21":38,"22":38,"23":38,"24":38,"26":38,"27":82,"28":82,"29":82,"30":82,"31":2,"32":2,"34":80,"35":80,"36":82,"37":82,"38":82,"39":82,"41":38,"42":27,"43":27,"44":27,"45":27,"46":27,"48":38,"49":21,"50":21,"52":38,"53":35,"54":35,"55":8,"56":27,"57":35,"58":35,"60":38,"61":47,"62":47,"63":47,"64":47,"65":47,"66":47,"67":1,"68":1,"70":47,"71":47,"73":38,"74":52,"75":52,"76":52,"77":52,"78":52,"79":1,"80":1,"82":51,"83":52,"85":38,"86":4,"87":4,"88":4,"90":38,"91":5,"92":5,"94":38,"95":18,"96":18,"98":38,"99":35,"100":35,"101":35,"102":35,"104":35,"105":4,"106":4,"108":35,"109":7,"110":7,"111":7,"112":7,"114":24,"116":35,"117":3,"118":3,"119":3,"120":3,"122":3,"123":1,"124":1,"125":1,"127":3,"128":1,"129":1,"131":1,"132":1,"134":21,"135":21,"136":21,"137":21,"138":21,"140":21,"141":21,"142":21,"144":21,"145":35,"147":38,"148":3,"149":3,"150":3,"151":3,"153":3,"154":2,"155":2,"157":1,"158":1,"160":1,"161":1,"163":1,"164":1,"165":1,"166":1,"167":1,"169":0,"170":3,"172":38,"173":21,"174":21,"175":21,"176":21,"177":21,"178":21,"179":6,"180":6,"182":21,"183":21,"184":5,"185":2,"186":21,"187":2,"188":2,"189":2,"190":2,"191":2,"192":2,"194":19,"195":19,"196":3,"197":1,"198":21,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"206":21,"207":1,"208":1,"209":1,"210":1,"212":21,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"223":21,"224":15,"225":15,"226":15,"227":15,"228":15,"229":15,"231":1,"232":21,"234":38,"235":2,"236":2,"237":2,"238":2,"239":2,"240":2,"241":2,"242":2,"243":2,"244":2,"245":2,"246":2,"247":2,"249":38,"250":1,"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"260":1,"261":1,"262":1,"263":1,"265":38,"266":15,"267":15,"268":15,"269":15,"270":15,"271":15,"272":15,"273":15,"274":15,"275":15,"276":15,"277":15,"278":15,"280":38,"281":18,"282":18,"283":18,"284":18,"285":18,"286":18,"287":18,"288":38,"290":1},"branchMap":{"0":{"type":"branch","line":21,"loc":{"start":{"line":21,"column":23},"end":{"line":289,"column":1}},"locations":[{"start":{"line":21,"column":23},"end":{"line":289,"column":1}}]},"1":{"type":"branch","line":27,"loc":{"start":{"line":27,"column":2},"end":{"line":40,"column":3}},"locations":[{"start":{"line":27,"column":2},"end":{"line":40,"column":3}}]},"2":{"type":"branch","line":31,"loc":{"start":{"line":31,"column":39},"end":{"line":33,"column":5}},"locations":[{"start":{"line":31,"column":39},"end":{"line":33,"column":5}}]},"3":{"type":"branch","line":33,"loc":{"start":{"line":33,"column":4},"end":{"line":37,"column":43}},"locations":[{"start":{"line":33,"column":4},"end":{"line":37,"column":43}}]},"4":{"type":"branch","line":37,"loc":{"start":{"line":37,"column":32},"end":{"line":37,"column":45}},"locations":[{"start":{"line":37,"column":32},"end":{"line":37,"column":45}}]},"5":{"type":"branch","line":42,"loc":{"start":{"line":42,"column":2},"end":{"line":47,"column":3}},"locations":[{"start":{"line":42,"column":2},"end":{"line":47,"column":3}}]},"6":{"type":"branch","line":49,"loc":{"start":{"line":49,"column":2},"end":{"line":51,"column":3}},"locations":[{"start":{"line":49,"column":2},"end":{"line":51,"column":3}}]},"7":{"type":"branch","line":53,"loc":{"start":{"line":53,"column":10},"end":{"line":59,"column":3}},"locations":[{"start":{"line":53,"column":10},"end":{"line":59,"column":3}}]},"8":{"type":"branch","line":55,"loc":{"start":{"line":55,"column":23},"end":{"line":55,"column":60}},"locations":[{"start":{"line":55,"column":23},"end":{"line":55,"column":60}}]},"9":{"type":"branch","line":55,"loc":{"start":{"line":55,"column":52},"end":{"line":56,"column":23}},"locations":[{"start":{"line":55,"column":52},"end":{"line":56,"column":23}}]},"10":{"type":"branch","line":56,"loc":{"start":{"line":56,"column":22},"end":{"line":57,"column":21}},"locations":[{"start":{"line":56,"column":22},"end":{"line":57,"column":21}}]},"11":{"type":"branch","line":61,"loc":{"start":{"line":61,"column":2},"end":{"line":72,"column":3}},"locations":[{"start":{"line":61,"column":2},"end":{"line":72,"column":3}}]},"12":{"type":"branch","line":67,"loc":{"start":{"line":67,"column":21},"end":{"line":69,"column":5}},"locations":[{"start":{"line":67,"column":21},"end":{"line":69,"column":5}}]},"13":{"type":"branch","line":69,"loc":{"start":{"line":69,"column":4},"end":{"line":71,"column":51}},"locations":[{"start":{"line":69,"column":4},"end":{"line":71,"column":51}}]},"14":{"type":"branch","line":71,"loc":{"start":{"line":71,"column":39},"end":{"line":71,"column":59}},"locations":[{"start":{"line":71,"column":39},"end":{"line":71,"column":59}}]},"15":{"type":"branch","line":74,"loc":{"start":{"line":74,"column":2},"end":{"line":84,"column":3}},"locations":[{"start":{"line":74,"column":2},"end":{"line":84,"column":3}}]},"16":{"type":"branch","line":79,"loc":{"start":{"line":79,"column":21},"end":{"line":81,"column":5}},"locations":[{"start":{"line":79,"column":21},"end":{"line":81,"column":5}}]},"17":{"type":"branch","line":81,"loc":{"start":{"line":81,"column":4},"end":{"line":83,"column":60}},"locations":[{"start":{"line":81,"column":4},"end":{"line":83,"column":60}}]},"18":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":2},"end":{"line":89,"column":3}},"locations":[{"start":{"line":86,"column":2},"end":{"line":89,"column":3}}]},"19":{"type":"branch","line":88,"loc":{"start":{"line":88,"column":11},"end":{"line":88,"column":34}},"locations":[{"start":{"line":88,"column":11},"end":{"line":88,"column":34}}]},"20":{"type":"branch","line":88,"loc":{"start":{"line":88,"column":23},"end":{"line":88,"column":44}},"locations":[{"start":{"line":88,"column":23},"end":{"line":88,"column":44}}]},"21":{"type":"branch","line":91,"loc":{"start":{"line":91,"column":2},"end":{"line":93,"column":3}},"locations":[{"start":{"line":91,"column":2},"end":{"line":93,"column":3}}]},"22":{"type":"branch","line":95,"loc":{"start":{"line":95,"column":2},"end":{"line":97,"column":3}},"locations":[{"start":{"line":95,"column":2},"end":{"line":97,"column":3}}]},"23":{"type":"branch","line":99,"loc":{"start":{"line":99,"column":2},"end":{"line":146,"column":3}},"locations":[{"start":{"line":99,"column":2},"end":{"line":146,"column":3}}]},"24":{"type":"branch","line":105,"loc":{"start":{"line":105,"column":44},"end":{"line":107,"column":5}},"locations":[{"start":{"line":105,"column":44},"end":{"line":107,"column":5}}]},"25":{"type":"branch","line":107,"loc":{"start":{"line":107,"column":4},"end":{"line":109,"column":35}},"locations":[{"start":{"line":107,"column":4},"end":{"line":109,"column":35}}]},"26":{"type":"branch","line":109,"loc":{"start":{"line":109,"column":35},"end":{"line":113,"column":5}},"locations":[{"start":{"line":109,"column":35},"end":{"line":113,"column":5}}]},"27":{"type":"branch","line":113,"loc":{"start":{"line":113,"column":4},"end":{"line":117,"column":19}},"locations":[{"start":{"line":113,"column":4},"end":{"line":117,"column":19}}]},"28":{"type":"branch","line":117,"loc":{"start":{"line":117,"column":19},"end":{"line":133,"column":5}},"locations":[{"start":{"line":117,"column":19},"end":{"line":133,"column":5}}]},"29":{"type":"branch","line":123,"loc":{"start":{"line":123,"column":45},"end":{"line":126,"column":7}},"locations":[{"start":{"line":123,"column":45},"end":{"line":126,"column":7}}]},"30":{"type":"branch","line":126,"loc":{"start":{"line":126,"column":6},"end":{"line":128,"column":33}},"locations":[{"start":{"line":126,"column":6},"end":{"line":128,"column":33}}]},"31":{"type":"branch","line":128,"loc":{"start":{"line":128,"column":33},"end":{"line":133,"column":5}},"locations":[{"start":{"line":128,"column":33},"end":{"line":133,"column":5}}]},"32":{"type":"branch","line":133,"loc":{"start":{"line":133,"column":4},"end":{"line":145,"column":20}},"locations":[{"start":{"line":133,"column":4},"end":{"line":145,"column":20}}]},"33":{"type":"branch","line":148,"loc":{"start":{"line":148,"column":2},"end":{"line":171,"column":3}},"locations":[{"start":{"line":148,"column":2},"end":{"line":171,"column":3}}]},"34":{"type":"branch","line":154,"loc":{"start":{"line":154,"column":9},"end":{"line":154,"column":34}},"locations":[{"start":{"line":154,"column":9},"end":{"line":154,"column":34}}]},"35":{"type":"branch","line":154,"loc":{"start":{"line":154,"column":34},"end":{"line":156,"column":5}},"locations":[{"start":{"line":154,"column":34},"end":{"line":156,"column":5}}]},"36":{"type":"branch","line":156,"loc":{"start":{"line":156,"column":4},"end":{"line":168,"column":5}},"locations":[{"start":{"line":156,"column":4},"end":{"line":168,"column":5}}]},"37":{"type":"branch","line":168,"loc":{"start":{"line":168,"column":4},"end":{"line":170,"column":21}},"locations":[{"start":{"line":168,"column":4},"end":{"line":170,"column":21}}]},"38":{"type":"branch","line":173,"loc":{"start":{"line":173,"column":2},"end":{"line":233,"column":3}},"locations":[{"start":{"line":173,"column":2},"end":{"line":233,"column":3}}]},"39":{"type":"branch","line":179,"loc":{"start":{"line":179,"column":26},"end":{"line":180,"column":26}},"locations":[{"start":{"line":179,"column":26},"end":{"line":180,"column":26}}]},"40":{"type":"branch","line":180,"loc":{"start":{"line":180,"column":19},"end":{"line":181,"column":28}},"locations":[{"start":{"line":180,"column":19},"end":{"line":181,"column":28}}]},"41":{"type":"branch","line":184,"loc":{"start":{"line":184,"column":6},"end":{"line":185,"column":33}},"locations":[{"start":{"line":184,"column":6},"end":{"line":185,"column":33}}]},"42":{"type":"branch","line":185,"loc":{"start":{"line":185,"column":22},"end":{"line":186,"column":56}},"locations":[{"start":{"line":185,"column":22},"end":{"line":186,"column":56}}]},"43":{"type":"branch","line":187,"loc":{"start":{"line":187,"column":6},"end":{"line":193,"column":5}},"locations":[{"start":{"line":187,"column":6},"end":{"line":193,"column":5}}]},"44":{"type":"branch","line":193,"loc":{"start":{"line":193,"column":4},"end":{"line":196,"column":14}},"locations":[{"start":{"line":193,"column":4},"end":{"line":196,"column":14}}]},"45":{"type":"branch","line":196,"loc":{"start":{"line":196,"column":6},"end":{"line":197,"column":31}},"locations":[{"start":{"line":196,"column":6},"end":{"line":197,"column":31}}]},"46":{"type":"branch","line":197,"loc":{"start":{"line":197,"column":20},"end":{"line":198,"column":54}},"locations":[{"start":{"line":197,"column":20},"end":{"line":198,"column":54}}]},"47":{"type":"branch","line":199,"loc":{"start":{"line":199,"column":6},"end":{"line":205,"column":5}},"locations":[{"start":{"line":199,"column":6},"end":{"line":205,"column":5}}]},"48":{"type":"branch","line":205,"loc":{"start":{"line":205,"column":4},"end":{"line":207,"column":17}},"locations":[{"start":{"line":205,"column":4},"end":{"line":207,"column":17}}]},"49":{"type":"branch","line":207,"loc":{"start":{"line":207,"column":8},"end":{"line":207,"column":41}},"locations":[{"start":{"line":207,"column":8},"end":{"line":207,"column":41}}]},"50":{"type":"branch","line":207,"loc":{"start":{"line":207,"column":41},"end":{"line":211,"column":5}},"locations":[{"start":{"line":207,"column":41},"end":{"line":211,"column":5}}]},"51":{"type":"branch","line":211,"loc":{"start":{"line":211,"column":4},"end":{"line":213,"column":17}},"locations":[{"start":{"line":211,"column":4},"end":{"line":213,"column":17}}]},"52":{"type":"branch","line":213,"loc":{"start":{"line":213,"column":8},"end":{"line":213,"column":44}},"locations":[{"start":{"line":213,"column":8},"end":{"line":213,"column":44}}]},"53":{"type":"branch","line":213,"loc":{"start":{"line":213,"column":44},"end":{"line":222,"column":5}},"locations":[{"start":{"line":213,"column":44},"end":{"line":222,"column":5}}]},"54":{"type":"branch","line":222,"loc":{"start":{"line":222,"column":4},"end":{"line":224,"column":40}},"locations":[{"start":{"line":222,"column":4},"end":{"line":224,"column":40}}]},"55":{"type":"branch","line":224,"loc":{"start":{"line":224,"column":40},"end":{"line":230,"column":5}},"locations":[{"start":{"line":224,"column":40},"end":{"line":230,"column":5}}]},"56":{"type":"branch","line":230,"loc":{"start":{"line":230,"column":4},"end":{"line":232,"column":25}},"locations":[{"start":{"line":230,"column":4},"end":{"line":232,"column":25}}]},"57":{"type":"branch","line":235,"loc":{"start":{"line":235,"column":2},"end":{"line":248,"column":3}},"locations":[{"start":{"line":235,"column":2},"end":{"line":248,"column":3}}]},"58":{"type":"branch","line":240,"loc":{"start":{"line":240,"column":34},"end":{"line":240,"column":47}},"locations":[{"start":{"line":240,"column":34},"end":{"line":240,"column":47}}]},"59":{"type":"branch","line":250,"loc":{"start":{"line":250,"column":2},"end":{"line":264,"column":3}},"locations":[{"start":{"line":250,"column":2},"end":{"line":264,"column":3}}]},"60":{"type":"branch","line":266,"loc":{"start":{"line":266,"column":2},"end":{"line":279,"column":3}},"locations":[{"start":{"line":266,"column":2},"end":{"line":279,"column":3}}]},"61":{"type":"branch","line":281,"loc":{"start":{"line":281,"column":2},"end":{"line":288,"column":3}},"locations":[{"start":{"line":281,"column":2},"end":{"line":288,"column":3}}]},"62":{"type":"branch","line":286,"loc":{"start":{"line":286,"column":23},"end":{"line":286,"column":62}},"locations":[{"start":{"line":286,"column":23},"end":{"line":286,"column":62}}]}},"b":{"0":[38],"1":[82],"2":[2],"3":[80],"4":[73],"5":[27],"6":[21],"7":[35],"8":[30],"9":[8],"10":[27],"11":[47],"12":[1],"13":[46],"14":[29],"15":[52],"16":[1],"17":[51],"18":[4],"19":[3],"20":[1],"21":[5],"22":[18],"23":[35],"24":[4],"25":[31],"26":[7],"27":[24],"28":[3],"29":[1],"30":[2],"31":[1],"32":[21],"33":[3],"34":[1],"35":[2],"36":[1],"37":[0],"38":[21],"39":[6],"40":[6],"41":[5],"42":[2],"43":[2],"44":[19],"45":[3],"46":[1],"47":[1],"48":[18],"49":[2],"50":[1],"51":[17],"52":[1],"53":[1],"54":[16],"55":[15],"56":[1],"57":[2],"58":[1],"59":[1],"60":[15],"61":[18],"62":[3]},"fnMap":{"0":{"name":"","decl":{"start":{"line":21,"column":23},"end":{"line":289,"column":1}},"loc":{"start":{"line":21,"column":23},"end":{"line":289,"column":1}},"line":21},"1":{"name":"addModule","decl":{"start":{"line":27,"column":2},"end":{"line":40,"column":3}},"loc":{"start":{"line":27,"column":2},"end":{"line":40,"column":3}},"line":27},"2":{"name":"setModuleMetadata","decl":{"start":{"line":42,"column":2},"end":{"line":47,"column":3}},"loc":{"start":{"line":42,"column":2},"end":{"line":47,"column":3}},"line":42},"3":{"name":"hasModule","decl":{"start":{"line":49,"column":2},"end":{"line":51,"column":3}},"loc":{"start":{"line":49,"column":2},"end":{"line":51,"column":3}},"line":49},"4":{"name":"getCacheKey","decl":{"start":{"line":53,"column":10},"end":{"line":59,"column":3}},"loc":{"start":{"line":53,"column":10},"end":{"line":59,"column":3}},"line":53},"5":{"name":"addProvider","decl":{"start":{"line":61,"column":2},"end":{"line":72,"column":3}},"loc":{"start":{"line":61,"column":2},"end":{"line":72,"column":3}},"line":61},"6":{"name":"getProvider","decl":{"start":{"line":74,"column":2},"end":{"line":84,"column":3}},"loc":{"start":{"line":74,"column":2},"end":{"line":84,"column":3}},"line":74},"7":{"name":"getModuleExports","decl":{"start":{"line":86,"column":2},"end":{"line":89,"column":3}},"loc":{"start":{"line":86,"column":2},"end":{"line":89,"column":3}},"line":86},"8":{"name":"getModuleMetadata","decl":{"start":{"line":91,"column":2},"end":{"line":93,"column":3}},"loc":{"start":{"line":91,"column":2},"end":{"line":93,"column":3}},"line":91},"9":{"name":"registerInstance","decl":{"start":{"line":95,"column":2},"end":{"line":97,"column":3}},"loc":{"start":{"line":95,"column":2},"end":{"line":97,"column":3}},"line":95},"10":{"name":"resolve","decl":{"start":{"line":99,"column":2},"end":{"line":146,"column":3}},"loc":{"start":{"line":99,"column":2},"end":{"line":146,"column":3}},"line":99},"11":{"name":"resolveFromImports","decl":{"start":{"line":148,"column":2},"end":{"line":171,"column":3}},"loc":{"start":{"line":148,"column":2},"end":{"line":171,"column":3}},"line":148},"12":{"name":"instantiateProvider","decl":{"start":{"line":173,"column":2},"end":{"line":233,"column":3}},"loc":{"start":{"line":173,"column":2},"end":{"line":233,"column":3}},"line":173},"13":{"name":"instantiateFactoryProvider","decl":{"start":{"line":235,"column":2},"end":{"line":248,"column":3}},"loc":{"start":{"line":235,"column":2},"end":{"line":248,"column":3}},"line":235},"14":{"name":"instantiateClassProvider","decl":{"start":{"line":250,"column":2},"end":{"line":264,"column":3}},"loc":{"start":{"line":250,"column":2},"end":{"line":264,"column":3}},"line":250},"15":{"name":"instantiateClassConstructor","decl":{"start":{"line":266,"column":2},"end":{"line":279,"column":3}},"loc":{"start":{"line":266,"column":2},"end":{"line":279,"column":3}},"line":266},"16":{"name":"resolveDependencies","decl":{"start":{"line":281,"column":2},"end":{"line":288,"column":3}},"loc":{"start":{"line":281,"column":2},"end":{"line":288,"column":3}},"line":281}},"f":{"0":38,"1":82,"2":27,"3":21,"4":35,"5":47,"6":52,"7":4,"8":5,"9":18,"10":35,"11":3,"12":21,"13":2,"14":1,"15":15,"16":18}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/bootstrap.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/bootstrap.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":68}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":39}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":30}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":21}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":43}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":68}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":20}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":62}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":5}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":50}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":41}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":54}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":60}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":19}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":112}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":8}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":5}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":55}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":3}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":2}}},"s":{"0":1,"8":1,"9":7,"10":7,"11":7,"12":9,"16":9,"17":1,"18":1,"20":8,"21":8,"22":8,"24":9,"25":0,"26":0,"27":0,"28":0,"30":8,"31":8,"32":6},"branchMap":{"0":{"type":"branch","line":9,"loc":{"start":{"line":9,"column":32},"end":{"line":33,"column":2}},"locations":[{"start":{"line":9,"column":32},"end":{"line":33,"column":2}}]},"1":{"type":"branch","line":12,"loc":{"start":{"line":12,"column":42},"end":{"line":32,"column":3}},"locations":[{"start":{"line":12,"column":42},"end":{"line":32,"column":3}}]},"2":{"type":"branch","line":17,"loc":{"start":{"line":17,"column":19},"end":{"line":19,"column":5}},"locations":[{"start":{"line":17,"column":19},"end":{"line":19,"column":5}}]},"3":{"type":"branch","line":19,"loc":{"start":{"line":19,"column":4},"end":{"line":25,"column":26}},"locations":[{"start":{"line":19,"column":4},"end":{"line":25,"column":26}}]},"4":{"type":"branch","line":25,"loc":{"start":{"line":25,"column":17},"end":{"line":25,"column":36}},"locations":[{"start":{"line":25,"column":17},"end":{"line":25,"column":36}}]},"5":{"type":"branch","line":25,"loc":{"start":{"line":25,"column":26},"end":{"line":25,"column":59}},"locations":[{"start":{"line":25,"column":26},"end":{"line":25,"column":59}}]},"6":{"type":"branch","line":25,"loc":{"start":{"line":25,"column":59},"end":{"line":29,"column":5}},"locations":[{"start":{"line":25,"column":59},"end":{"line":29,"column":5}}]},"7":{"type":"branch","line":29,"loc":{"start":{"line":29,"column":4},"end":{"line":32,"column":3}},"locations":[{"start":{"line":29,"column":4},"end":{"line":32,"column":3}}]},"8":{"type":"branch","line":32,"loc":{"start":{"line":32,"column":2},"end":{"line":33,"column":2}},"locations":[{"start":{"line":32,"column":2},"end":{"line":33,"column":2}}]}},"b":{"0":[7],"1":[9],"2":[1],"3":[8],"4":[0],"5":[0],"6":[0],"7":[8],"8":[6]},"fnMap":{"0":{"name":"bootstrapModules","decl":{"start":{"line":9,"column":32},"end":{"line":33,"column":2}},"loc":{"start":{"line":9,"column":32},"end":{"line":33,"column":2}},"line":9}},"f":{"0":7}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/initialize-module.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/initialize-module.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":68}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":39}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":27}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":29}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":21}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":65}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":53}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":21}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":11}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":3}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":21}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":45}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":30}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":43}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":47}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":5}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":2}}},"s":{"0":1,"8":1,"9":25,"10":25,"11":25,"12":25,"13":25,"15":25,"16":1,"17":1,"19":24,"20":24,"21":24,"22":24,"23":24,"24":24,"25":24},"branchMap":{"0":{"type":"branch","line":9,"loc":{"start":{"line":9,"column":32},"end":{"line":26,"column":2}},"locations":[{"start":{"line":9,"column":32},"end":{"line":26,"column":2}}]},"1":{"type":"branch","line":16,"loc":{"start":{"line":16,"column":20},"end":{"line":18,"column":3}},"locations":[{"start":{"line":16,"column":20},"end":{"line":18,"column":3}}]},"2":{"type":"branch","line":18,"loc":{"start":{"line":18,"column":2},"end":{"line":26,"column":2}},"locations":[{"start":{"line":18,"column":2},"end":{"line":26,"column":2}}]}},"b":{"0":[25],"1":[1],"2":[24]},"fnMap":{"0":{"name":"initializeModule","decl":{"start":{"line":9,"column":32},"end":{"line":26,"column":2}},"loc":{"start":{"line":9,"column":32},"end":{"line":26,"column":2}},"line":9}},"f":{"0":25}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/instantiate-module.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/instantiate-module.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":59}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":27}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":24}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":56}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":49}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":36}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":49}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":6}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":4}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":60}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":52}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":18}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":2}}},"s":{"0":1,"4":1,"5":16,"6":16,"7":16,"8":16,"9":16,"10":5,"11":16,"12":16,"14":16,"15":16,"17":16,"18":16},"branchMap":{"0":{"type":"branch","line":5,"loc":{"start":{"line":5,"column":33},"end":{"line":19,"column":2}},"locations":[{"start":{"line":5,"column":33},"end":{"line":19,"column":2}}]},"1":{"type":"branch","line":10,"loc":{"start":{"line":10,"column":21},"end":{"line":11,"column":49}},"locations":[{"start":{"line":10,"column":21},"end":{"line":11,"column":49}}]}},"b":{"0":[16],"1":[5]},"fnMap":{"0":{"name":"instantiateModule","decl":{"start":{"line":5,"column":33},"end":{"line":19,"column":2}},"loc":{"start":{"line":5,"column":33},"end":{"line":19,"column":2}},"line":5}},"f":{"0":16}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-imports.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-imports.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":68}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":38}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":29}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":21}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":26}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":11}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":3}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":55}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":55}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":17}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":26}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":38}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":33}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":74}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":5}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":3}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":2}}},"s":{"0":1,"3":1,"4":31,"5":31,"6":31,"7":21,"8":21,"10":10,"11":10,"12":10,"13":10,"14":10,"16":10,"17":9,"18":9,"19":10,"20":10},"branchMap":{"0":{"type":"branch","line":4,"loc":{"start":{"line":4,"column":31},"end":{"line":21,"column":2}},"locations":[{"start":{"line":4,"column":31},"end":{"line":21,"column":2}}]},"1":{"type":"branch","line":7,"loc":{"start":{"line":7,"column":25},"end":{"line":9,"column":3}},"locations":[{"start":{"line":7,"column":25},"end":{"line":9,"column":3}}]},"2":{"type":"branch","line":9,"loc":{"start":{"line":9,"column":2},"end":{"line":21,"column":2}},"locations":[{"start":{"line":9,"column":2},"end":{"line":21,"column":2}}]},"3":{"type":"branch","line":17,"loc":{"start":{"line":17,"column":32},"end":{"line":19,"column":5}},"locations":[{"start":{"line":17,"column":32},"end":{"line":19,"column":5}}]}},"b":{"0":[31],"1":[21],"2":[10],"3":[9]},"fnMap":{"0":{"name":"registerImports","decl":{"start":{"line":4,"column":31},"end":{"line":21,"column":2}},"loc":{"start":{"line":4,"column":31},"end":{"line":21,"column":2}},"line":4}},"f":{"0":31}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-ipc-handlers.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-ipc-handlers.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":59}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":42}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":27}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":29}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":21}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":22}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":11}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":3}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":40}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":49}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":3}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":2}}},"s":{"0":1,"4":1,"5":29,"6":29,"7":29,"8":29,"9":24,"10":24,"12":6,"13":6,"14":6,"15":5},"branchMap":{"0":{"type":"branch","line":5,"loc":{"start":{"line":5,"column":35},"end":{"line":16,"column":2}},"locations":[{"start":{"line":5,"column":35},"end":{"line":16,"column":2}}]},"1":{"type":"branch","line":9,"loc":{"start":{"line":9,"column":21},"end":{"line":11,"column":3}},"locations":[{"start":{"line":9,"column":21},"end":{"line":11,"column":3}}]},"2":{"type":"branch","line":11,"loc":{"start":{"line":11,"column":2},"end":{"line":16,"column":2}},"locations":[{"start":{"line":11,"column":2},"end":{"line":16,"column":2}}]},"3":{"type":"branch","line":11,"loc":{"start":{"line":11,"column":2},"end":{"line":13,"column":39}},"locations":[{"start":{"line":11,"column":2},"end":{"line":13,"column":39}}]},"4":{"type":"branch","line":15,"loc":{"start":{"line":15,"column":2},"end":{"line":16,"column":2}},"locations":[{"start":{"line":15,"column":2},"end":{"line":16,"column":2}}]}},"b":{"0":[29],"1":[24],"2":[6],"3":[5],"4":[5]},"fnMap":{"0":{"name":"registerIpcHandlers","decl":{"start":{"line":5,"column":35},"end":{"line":16,"column":2}},"loc":{"start":{"line":5,"column":35},"end":{"line":16,"column":2}},"line":5}},"f":{"0":29}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-providers.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-providers.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":59}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":26}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":20}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":40}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":10}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":78}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":2}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":40}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":27}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":29}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":21}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":28}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":11}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":3}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":46}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":41}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":51}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":15}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":5}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":37}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":69}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":15}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":5}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":53}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":3}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":2}}},"s":{"0":1,"5":1,"6":9,"7":9,"8":9,"9":9,"11":9,"13":1,"14":36,"15":36,"16":36,"17":36,"18":2,"19":2,"21":36,"22":16,"23":7,"24":7,"25":7,"27":12,"28":6,"29":6,"30":6,"32":3,"33":3,"34":31},"branchMap":{"0":{"type":"branch","line":6,"loc":{"start":{"line":6,"column":25},"end":{"line":12,"column":2}},"locations":[{"start":{"line":6,"column":25},"end":{"line":12,"column":2}}]},"1":{"type":"branch","line":10,"loc":{"start":{"line":10,"column":24},"end":{"line":10,"column":57}},"locations":[{"start":{"line":10,"column":24},"end":{"line":10,"column":57}}]},"2":{"type":"branch","line":10,"loc":{"start":{"line":10,"column":49},"end":{"line":10,"column":78}},"locations":[{"start":{"line":10,"column":49},"end":{"line":10,"column":78}}]},"3":{"type":"branch","line":14,"loc":{"start":{"line":14,"column":33},"end":{"line":35,"column":2}},"locations":[{"start":{"line":14,"column":33},"end":{"line":35,"column":2}}]},"4":{"type":"branch","line":18,"loc":{"start":{"line":18,"column":27},"end":{"line":20,"column":3}},"locations":[{"start":{"line":18,"column":27},"end":{"line":20,"column":3}}]},"5":{"type":"branch","line":20,"loc":{"start":{"line":20,"column":2},"end":{"line":22,"column":45}},"locations":[{"start":{"line":20,"column":2},"end":{"line":22,"column":45}}]},"6":{"type":"branch","line":22,"loc":{"start":{"line":22,"column":45},"end":{"line":34,"column":3}},"locations":[{"start":{"line":22,"column":45},"end":{"line":34,"column":3}}]},"7":{"type":"branch","line":23,"loc":{"start":{"line":23,"column":40},"end":{"line":26,"column":5}},"locations":[{"start":{"line":23,"column":40},"end":{"line":26,"column":5}}]},"8":{"type":"branch","line":26,"loc":{"start":{"line":26,"column":4},"end":{"line":34,"column":3}},"locations":[{"start":{"line":26,"column":4},"end":{"line":34,"column":3}}]},"9":{"type":"branch","line":26,"loc":{"start":{"line":26,"column":4},"end":{"line":28,"column":36}},"locations":[{"start":{"line":26,"column":4},"end":{"line":28,"column":36}}]},"10":{"type":"branch","line":28,"loc":{"start":{"line":28,"column":36},"end":{"line":31,"column":5}},"locations":[{"start":{"line":28,"column":36},"end":{"line":31,"column":5}}]},"11":{"type":"branch","line":31,"loc":{"start":{"line":31,"column":4},"end":{"line":34,"column":3}},"locations":[{"start":{"line":31,"column":4},"end":{"line":34,"column":3}}]},"12":{"type":"branch","line":34,"loc":{"start":{"line":34,"column":2},"end":{"line":35,"column":2}},"locations":[{"start":{"line":34,"column":2},"end":{"line":35,"column":2}}]}},"b":{"0":[9],"1":[8],"2":[7],"3":[36],"4":[2],"5":[34],"6":[16],"7":[7],"8":[12],"9":[9],"10":[6],"11":[3],"12":[31]},"fnMap":{"0":{"name":"isProviderObject","decl":{"start":{"line":6,"column":25},"end":{"line":12,"column":2}},"loc":{"start":{"line":6,"column":25},"end":{"line":12,"column":2}},"line":6},"1":{"name":"registerProviders","decl":{"start":{"line":14,"column":33},"end":{"line":35,"column":2}},"loc":{"start":{"line":14,"column":33},"end":{"line":35,"column":2}},"line":14}},"f":{"0":9,"1":36}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-windows.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-windows.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":59}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":38}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":27}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":29}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":21}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":26}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":11}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":3}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":47}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":52}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":22}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":18}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":42}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":36}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":68}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":38}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":20}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":9}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":5}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":3}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":2}}},"s":{"0":1,"5":1,"6":30,"7":30,"8":30,"9":30,"10":24,"11":24,"13":6,"14":6,"15":6,"16":6,"17":6,"19":6,"20":4,"21":4,"22":4,"23":4,"24":4,"25":6,"26":6},"branchMap":{"0":{"type":"branch","line":6,"loc":{"start":{"line":6,"column":31},"end":{"line":27,"column":2}},"locations":[{"start":{"line":6,"column":31},"end":{"line":27,"column":2}}]},"1":{"type":"branch","line":10,"loc":{"start":{"line":10,"column":25},"end":{"line":12,"column":3}},"locations":[{"start":{"line":10,"column":25},"end":{"line":12,"column":3}}]},"2":{"type":"branch","line":12,"loc":{"start":{"line":12,"column":2},"end":{"line":27,"column":2}},"locations":[{"start":{"line":12,"column":2},"end":{"line":27,"column":2}}]},"3":{"type":"branch","line":20,"loc":{"start":{"line":20,"column":8},"end":{"line":20,"column":35}},"locations":[{"start":{"line":20,"column":8},"end":{"line":20,"column":35}}]},"4":{"type":"branch","line":20,"loc":{"start":{"line":20,"column":35},"end":{"line":25,"column":5}},"locations":[{"start":{"line":20,"column":35},"end":{"line":25,"column":5}}]}},"b":{"0":[30],"1":[24],"2":[6],"3":[5],"4":[4]},"fnMap":{"0":{"name":"registerWindows","decl":{"start":{"line":6,"column":31},"end":{"line":27,"column":2}},"loc":{"start":{"line":6,"column":31},"end":{"line":27,"column":2}},"line":6}},"f":{"0":30}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/settings.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/settings.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":65}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":32}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":50}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":59}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":29}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":2}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":45}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":43}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":24}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":44}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":3}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":24}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":2}}},"s":{"0":1,"13":1,"14":1,"16":1,"17":9,"18":9,"20":1,"21":9,"23":9,"24":0,"25":0,"27":9,"28":9},"branchMap":{"0":{"type":"branch","line":17,"loc":{"start":{"line":17,"column":28},"end":{"line":19,"column":2}},"locations":[{"start":{"line":17,"column":28},"end":{"line":19,"column":2}}]},"1":{"type":"branch","line":21,"loc":{"start":{"line":21,"column":27},"end":{"line":29,"column":2}},"locations":[{"start":{"line":21,"column":27},"end":{"line":29,"column":2}}]},"2":{"type":"branch","line":24,"loc":{"start":{"line":24,"column":23},"end":{"line":26,"column":3}},"locations":[{"start":{"line":24,"column":23},"end":{"line":26,"column":3}}]}},"b":{"0":[9],"1":[9],"2":[0]},"fnMap":{"0":{"name":"initSettings","decl":{"start":{"line":17,"column":28},"end":{"line":19,"column":2}},"loc":{"start":{"line":17,"column":28},"end":{"line":19,"column":2}},"line":17},"1":{"name":"getSettings","decl":{"start":{"line":21,"column":27},"end":{"line":29,"column":2}},"loc":{"start":{"line":21,"column":27},"end":{"line":29,"column":2}},"line":21}},"f":{"0":9,"1":9}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/cache.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/cache.ts","all":false,"statementMap":{"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":74}}},"s":{"2":1},"branchMap":{},"b":{},"fnMap":{},"f":{}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/destroy.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/destroy.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":41}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":43}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":48}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":33}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":32}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":23}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":5}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":3}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":2}}},"s":{"0":1,"2":1,"3":5,"5":5,"6":6,"7":5,"8":5,"9":6,"10":5},"branchMap":{"0":{"type":"branch","line":3,"loc":{"start":{"line":3,"column":30},"end":{"line":11,"column":2}},"locations":[{"start":{"line":3,"column":30},"end":{"line":11,"column":2}}]},"1":{"type":"branch","line":6,"loc":{"start":{"line":6,"column":32},"end":{"line":10,"column":3}},"locations":[{"start":{"line":6,"column":32},"end":{"line":10,"column":3}}]},"2":{"type":"branch","line":7,"loc":{"start":{"line":7,"column":31},"end":{"line":9,"column":5}},"locations":[{"start":{"line":7,"column":31},"end":{"line":9,"column":5}}]}},"b":{"0":[5],"1":[6],"2":[5]},"fnMap":{"0":{"name":"destroyWindows","decl":{"start":{"line":3,"column":30},"end":{"line":11,"column":2}},"loc":{"start":{"line":3,"column":30},"end":{"line":11,"column":2}},"line":3}},"f":{"0":5}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/receive.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/receive.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":46}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":44}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":10}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":33}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":37}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":62}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":21}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":3}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":13}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":2}}},"s":{"0":1,"3":1,"4":8,"5":8,"6":8,"8":8,"9":4,"10":4,"12":4,"13":4},"branchMap":{"0":{"type":"branch","line":4,"loc":{"start":{"line":4,"column":25},"end":{"line":14,"column":2}},"locations":[{"start":{"line":4,"column":25},"end":{"line":14,"column":2}}]},"1":{"type":"branch","line":9,"loc":{"start":{"line":9,"column":7},"end":{"line":9,"column":42}},"locations":[{"start":{"line":9,"column":7},"end":{"line":9,"column":42}}]},"2":{"type":"branch","line":9,"loc":{"start":{"line":9,"column":29},"end":{"line":9,"column":61}},"locations":[{"start":{"line":9,"column":29},"end":{"line":9,"column":61}}]},"3":{"type":"branch","line":9,"loc":{"start":{"line":9,"column":61},"end":{"line":14,"column":2}},"locations":[{"start":{"line":9,"column":61},"end":{"line":14,"column":2}}]}},"b":{"0":[8],"1":[6],"2":[5],"3":[4]},"fnMap":{"0":{"name":"getWindow","decl":{"start":{"line":4,"column":25},"end":{"line":14,"column":2}},"loc":{"start":{"line":4,"column":25},"end":{"line":14,"column":2}},"line":4}},"f":{"0":8}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/inject.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/inject.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":52}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":70}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":51}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":36}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":13}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":5}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":49}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":68}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":43}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":79}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":4}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":2}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":79}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":71}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":2}}},"s":{"0":1,"5":1,"7":1,"8":17,"9":17,"10":1,"11":1,"13":16,"14":17,"16":17,"18":17,"19":17,"20":17,"22":1,"23":53,"24":53},"branchMap":{"0":{"type":"branch","line":8,"loc":{"start":{"line":8,"column":22},"end":{"line":21,"column":2}},"locations":[{"start":{"line":8,"column":22},"end":{"line":21,"column":2}}]},"1":{"type":"branch","line":9,"loc":{"start":{"line":9,"column":9},"end":{"line":20,"column":4}},"locations":[{"start":{"line":9,"column":9},"end":{"line":20,"column":4}}]},"2":{"type":"branch","line":10,"loc":{"start":{"line":10,"column":35},"end":{"line":12,"column":5}},"locations":[{"start":{"line":10,"column":35},"end":{"line":12,"column":5}}]},"3":{"type":"branch","line":12,"loc":{"start":{"line":12,"column":4},"end":{"line":15,"column":65}},"locations":[{"start":{"line":12,"column":4},"end":{"line":15,"column":65}}]},"4":{"type":"branch","line":15,"loc":{"start":{"line":15,"column":60},"end":{"line":15,"column":68}},"locations":[{"start":{"line":15,"column":60},"end":{"line":15,"column":68}}]},"5":{"type":"branch","line":23,"loc":{"start":{"line":23,"column":33},"end":{"line":25,"column":2}},"locations":[{"start":{"line":23,"column":33},"end":{"line":25,"column":2}}]},"6":{"type":"branch","line":24,"loc":{"start":{"line":24,"column":63},"end":{"line":24,"column":71}},"locations":[{"start":{"line":24,"column":63},"end":{"line":24,"column":71}}]}},"b":{"0":[17],"1":[17],"2":[1],"3":[16],"4":[12],"5":[53],"6":[41]},"fnMap":{"0":{"name":"Inject","decl":{"start":{"line":8,"column":22},"end":{"line":21,"column":2}},"loc":{"start":{"line":8,"column":22},"end":{"line":21,"column":2}},"line":8},"1":{"name":"getInjectedTokens","decl":{"start":{"line":23,"column":33},"end":{"line":25,"column":2}},"loc":{"start":{"line":23,"column":33},"end":{"line":25,"column":2}},"line":23}},"f":{"0":17,"1":53}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/injectable.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/injectable.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":49}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":32}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":55}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":4}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":2}}},"s":{"0":1,"2":1,"3":31,"4":31,"5":31,"6":31},"branchMap":{"0":{"type":"branch","line":3,"loc":{"start":{"line":3,"column":26},"end":{"line":7,"column":2}},"locations":[{"start":{"line":3,"column":26},"end":{"line":7,"column":2}}]},"1":{"type":"branch","line":4,"loc":{"start":{"line":4,"column":9},"end":{"line":6,"column":4}},"locations":[{"start":{"line":4,"column":9},"end":{"line":6,"column":4}}]}},"b":{"0":[31],"1":[31]},"fnMap":{"0":{"name":"Injectable","decl":{"start":{"line":3,"column":26},"end":{"line":7,"column":2}},"loc":{"start":{"line":3,"column":26},"end":{"line":7,"column":2}},"line":3}},"f":{"0":31}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/ipc-handler.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/ipc-handler.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":49}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":32}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":55}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":4}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":2}}},"s":{"0":1,"2":1,"3":5,"4":5,"5":5,"6":5},"branchMap":{"0":{"type":"branch","line":3,"loc":{"start":{"line":3,"column":26},"end":{"line":7,"column":2}},"locations":[{"start":{"line":3,"column":26},"end":{"line":7,"column":2}}]},"1":{"type":"branch","line":4,"loc":{"start":{"line":4,"column":9},"end":{"line":6,"column":4}},"locations":[{"start":{"line":4,"column":9},"end":{"line":6,"column":4}}]}},"b":{"0":[5],"1":[5]},"fnMap":{"0":{"name":"IpcHandler","decl":{"start":{"line":3,"column":26},"end":{"line":7,"column":2}},"loc":{"start":{"line":3,"column":26},"end":{"line":7,"column":2}},"line":3}},"f":{"0":5}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/rg-module.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/rg-module.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":72}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":32}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":56}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":4}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":2}}},"s":{"0":1,"3":1,"4":32,"5":32,"6":32,"7":32},"branchMap":{"0":{"type":"branch","line":4,"loc":{"start":{"line":4,"column":24},"end":{"line":8,"column":2}},"locations":[{"start":{"line":4,"column":24},"end":{"line":8,"column":2}}]},"1":{"type":"branch","line":5,"loc":{"start":{"line":5,"column":9},"end":{"line":7,"column":4}},"locations":[{"start":{"line":5,"column":9},"end":{"line":7,"column":4}}]}},"b":{"0":[32],"1":[32]},"fnMap":{"0":{"name":"RgModule","decl":{"start":{"line":4,"column":24},"end":{"line":8,"column":2}},"loc":{"start":{"line":4,"column":24},"end":{"line":8,"column":2}},"line":4}},"f":{"0":32}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/window-manager.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/window-manager.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":48}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":34}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":22}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":32}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":61}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":4}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":2}}},"s":{"0":1,"3":1,"4":11,"5":11,"6":11,"7":11,"8":11,"9":11},"branchMap":{"0":{"type":"branch","line":4,"loc":{"start":{"line":4,"column":29},"end":{"line":10,"column":2}},"locations":[{"start":{"line":4,"column":29},"end":{"line":10,"column":2}}]},"1":{"type":"branch","line":7,"loc":{"start":{"line":7,"column":9},"end":{"line":9,"column":4}},"locations":[{"start":{"line":7,"column":9},"end":{"line":9,"column":4}}]}},"b":{"0":[11],"1":[11]},"fnMap":{"0":{"name":"WindowManager","decl":{"start":{"line":4,"column":29},"end":{"line":10,"column":2}},"loc":{"start":{"line":4,"column":29},"end":{"line":10,"column":2}},"line":4}},"f":{"0":11}} -,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/utils/dependency-tokens.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/utils/dependency-tokens.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":75}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":79}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":51}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":29}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":18}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":3}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":73}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":28}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":51}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":66}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":75}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":21}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":50}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":22}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":3}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":69}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":54}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":5}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":44}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":16}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":2}}},"s":{"0":1,"5":1,"7":1,"8":44,"9":44,"10":1,"11":1,"13":43,"14":31,"15":44,"16":44,"17":44,"19":44,"20":28,"21":28,"22":28,"24":15,"25":20,"26":15,"28":15,"29":15,"30":15},"branchMap":{"0":{"type":"branch","line":8,"loc":{"start":{"line":8,"column":35},"end":{"line":31,"column":2}},"locations":[{"start":{"line":8,"column":35},"end":{"line":31,"column":2}}]},"1":{"type":"branch","line":10,"loc":{"start":{"line":10,"column":28},"end":{"line":12,"column":3}},"locations":[{"start":{"line":10,"column":28},"end":{"line":12,"column":3}}]},"2":{"type":"branch","line":12,"loc":{"start":{"line":12,"column":2},"end":{"line":14,"column":73}},"locations":[{"start":{"line":12,"column":2},"end":{"line":14,"column":73}}]},"3":{"type":"branch","line":14,"loc":{"start":{"line":14,"column":69},"end":{"line":15,"column":28}},"locations":[{"start":{"line":14,"column":69},"end":{"line":15,"column":28}}]},"4":{"type":"branch","line":20,"loc":{"start":{"line":20,"column":20},"end":{"line":23,"column":3}},"locations":[{"start":{"line":20,"column":20},"end":{"line":23,"column":3}}]},"5":{"type":"branch","line":23,"loc":{"start":{"line":23,"column":2},"end":{"line":31,"column":2}},"locations":[{"start":{"line":23,"column":2},"end":{"line":31,"column":2}}]},"6":{"type":"branch","line":25,"loc":{"start":{"line":25,"column":54},"end":{"line":27,"column":3}},"locations":[{"start":{"line":25,"column":54},"end":{"line":27,"column":3}}]},"7":{"type":"branch","line":26,"loc":{"start":{"line":26,"column":31},"end":{"line":26,"column":54}},"locations":[{"start":{"line":26,"column":31},"end":{"line":26,"column":54}}]}},"b":{"0":[44],"1":[1],"2":[43],"3":[31],"4":[28],"5":[15],"6":[20],"7":[14]},"fnMap":{"0":{"name":"getDependencyTokens","decl":{"start":{"line":8,"column":35},"end":{"line":31,"column":2}},"loc":{"start":{"line":8,"column":35},"end":{"line":31,"column":2}},"line":8}},"f":{"0":44}} +{"/Users/traeop/Documents/projects/npm/electron-modular/src/config.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/config.ts","all":false,"statementMap":{"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":24}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":32}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":24}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":2}}},"s":{"15":1,"16":1,"17":1,"18":1},"branchMap":{},"b":{},"fnMap":{},"f":{}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/container.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/container.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":24}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":65}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":77}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":66}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":64}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":12}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":29}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":62}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":14}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":40}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":19}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":5}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":35}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":27}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":47}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":7}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":16}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":3}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":20}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":29}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":31}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":11}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":51}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":3}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":48}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":41}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":3}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":80}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":20}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":60}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":23}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":21}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":45}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":3}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":14}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":29}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":29}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":23}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":11}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":53}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":22}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":59}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":5}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":61}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":3}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":27}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":29}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":26}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":20}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":53}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":22}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":23}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":5}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":60}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":3}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":67}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":53}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":44}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":3}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":77}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":48}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":3}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":68}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":40}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":3}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":19}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":29}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":26}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":29}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":58}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":45}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":53}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":5}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":36}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":54}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":51}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":22}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":5}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":58}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":20}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":67}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":20}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":14}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":8}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":46}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":64}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":35}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":7}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":34}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":73}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":7}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":23}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":5}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":55}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":18}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":12}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":15}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":6}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":33}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":51}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":5}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":20}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":3}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":38}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":29}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":26}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":29}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":63}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":35}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":23}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":5}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":63}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":75}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":41}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":78}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":45}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":61}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":9}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":7}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":5}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":21}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":3}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":39}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":29}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":26}},"317":{"start":{"line":318,"column":0},"end":{"line":318,"column":22}},"318":{"start":{"line":319,"column":0},"end":{"line":319,"column":29}},"319":{"start":{"line":320,"column":0},"end":{"line":320,"column":17}},"320":{"start":{"line":321,"column":0},"end":{"line":321,"column":37}},"321":{"start":{"line":322,"column":0},"end":{"line":322,"column":26}},"322":{"start":{"line":323,"column":0},"end":{"line":323,"column":28}},"325":{"start":{"line":326,"column":0},"end":{"line":326,"column":8}},"326":{"start":{"line":327,"column":0},"end":{"line":327,"column":14}},"327":{"start":{"line":328,"column":0},"end":{"line":328,"column":33}},"328":{"start":{"line":329,"column":0},"end":{"line":329,"column":56}},"329":{"start":{"line":330,"column":0},"end":{"line":330,"column":7}},"330":{"start":{"line":331,"column":0},"end":{"line":331,"column":48}},"331":{"start":{"line":332,"column":0},"end":{"line":332,"column":20}},"332":{"start":{"line":333,"column":0},"end":{"line":333,"column":14}},"333":{"start":{"line":334,"column":0},"end":{"line":334,"column":37}},"334":{"start":{"line":335,"column":0},"end":{"line":335,"column":8}},"335":{"start":{"line":336,"column":0},"end":{"line":336,"column":5}},"338":{"start":{"line":339,"column":0},"end":{"line":339,"column":8}},"339":{"start":{"line":340,"column":0},"end":{"line":340,"column":14}},"340":{"start":{"line":341,"column":0},"end":{"line":341,"column":31}},"341":{"start":{"line":342,"column":0},"end":{"line":342,"column":54}},"342":{"start":{"line":343,"column":0},"end":{"line":343,"column":7}},"343":{"start":{"line":344,"column":0},"end":{"line":344,"column":46}},"344":{"start":{"line":345,"column":0},"end":{"line":345,"column":20}},"345":{"start":{"line":346,"column":0},"end":{"line":346,"column":14}},"346":{"start":{"line":347,"column":0},"end":{"line":347,"column":35}},"347":{"start":{"line":348,"column":0},"end":{"line":348,"column":8}},"348":{"start":{"line":349,"column":0},"end":{"line":349,"column":5}},"351":{"start":{"line":352,"column":0},"end":{"line":352,"column":42}},"352":{"start":{"line":353,"column":0},"end":{"line":353,"column":56}},"353":{"start":{"line":354,"column":0},"end":{"line":354,"column":37}},"354":{"start":{"line":355,"column":0},"end":{"line":355,"column":22}},"355":{"start":{"line":356,"column":0},"end":{"line":356,"column":5}},"358":{"start":{"line":359,"column":0},"end":{"line":359,"column":45}},"359":{"start":{"line":360,"column":0},"end":{"line":360,"column":45}},"360":{"start":{"line":361,"column":0},"end":{"line":361,"column":20}},"361":{"start":{"line":362,"column":0},"end":{"line":362,"column":52}},"362":{"start":{"line":363,"column":0},"end":{"line":363,"column":8}},"363":{"start":{"line":364,"column":0},"end":{"line":364,"column":35}},"364":{"start":{"line":365,"column":0},"end":{"line":365,"column":44}},"365":{"start":{"line":366,"column":0},"end":{"line":366,"column":7}},"366":{"start":{"line":367,"column":0},"end":{"line":367,"column":22}},"367":{"start":{"line":368,"column":0},"end":{"line":368,"column":5}},"370":{"start":{"line":371,"column":0},"end":{"line":371,"column":41}},"371":{"start":{"line":372,"column":0},"end":{"line":372,"column":49}},"372":{"start":{"line":373,"column":0},"end":{"line":373,"column":20}},"373":{"start":{"line":374,"column":0},"end":{"line":374,"column":14}},"374":{"start":{"line":375,"column":0},"end":{"line":375,"column":32}},"375":{"start":{"line":376,"column":0},"end":{"line":376,"column":8}},"376":{"start":{"line":377,"column":0},"end":{"line":377,"column":5}},"378":{"start":{"line":379,"column":0},"end":{"line":379,"column":25}},"379":{"start":{"line":380,"column":0},"end":{"line":380,"column":3}},"389":{"start":{"line":390,"column":0},"end":{"line":390,"column":46}},"390":{"start":{"line":391,"column":0},"end":{"line":391,"column":29}},"391":{"start":{"line":392,"column":0},"end":{"line":392,"column":26}},"392":{"start":{"line":393,"column":0},"end":{"line":393,"column":31}},"393":{"start":{"line":394,"column":0},"end":{"line":394,"column":17}},"394":{"start":{"line":395,"column":0},"end":{"line":395,"column":47}},"395":{"start":{"line":396,"column":0},"end":{"line":396,"column":64}},"396":{"start":{"line":397,"column":0},"end":{"line":397,"column":18}},"397":{"start":{"line":398,"column":0},"end":{"line":398,"column":19}},"398":{"start":{"line":399,"column":0},"end":{"line":399,"column":6}},"399":{"start":{"line":400,"column":0},"end":{"line":400,"column":66}},"400":{"start":{"line":401,"column":0},"end":{"line":401,"column":40}},"401":{"start":{"line":402,"column":0},"end":{"line":402,"column":25}},"402":{"start":{"line":403,"column":0},"end":{"line":403,"column":3}},"412":{"start":{"line":413,"column":0},"end":{"line":413,"column":44}},"413":{"start":{"line":414,"column":0},"end":{"line":414,"column":29}},"414":{"start":{"line":415,"column":0},"end":{"line":415,"column":26}},"415":{"start":{"line":416,"column":0},"end":{"line":416,"column":29}},"416":{"start":{"line":417,"column":0},"end":{"line":417,"column":17}},"417":{"start":{"line":418,"column":0},"end":{"line":418,"column":24}},"418":{"start":{"line":419,"column":0},"end":{"line":419,"column":64}},"419":{"start":{"line":420,"column":0},"end":{"line":420,"column":64}},"420":{"start":{"line":421,"column":0},"end":{"line":421,"column":18}},"421":{"start":{"line":422,"column":0},"end":{"line":422,"column":19}},"422":{"start":{"line":423,"column":0},"end":{"line":423,"column":6}},"423":{"start":{"line":424,"column":0},"end":{"line":424,"column":68}},"424":{"start":{"line":425,"column":0},"end":{"line":425,"column":40}},"425":{"start":{"line":426,"column":0},"end":{"line":426,"column":25}},"426":{"start":{"line":427,"column":0},"end":{"line":427,"column":3}},"438":{"start":{"line":439,"column":0},"end":{"line":439,"column":47}},"439":{"start":{"line":440,"column":0},"end":{"line":440,"column":29}},"440":{"start":{"line":441,"column":0},"end":{"line":441,"column":26}},"441":{"start":{"line":442,"column":0},"end":{"line":442,"column":31}},"442":{"start":{"line":443,"column":0},"end":{"line":443,"column":17}},"443":{"start":{"line":444,"column":0},"end":{"line":444,"column":60}},"444":{"start":{"line":445,"column":0},"end":{"line":445,"column":64}},"445":{"start":{"line":446,"column":0},"end":{"line":446,"column":18}},"446":{"start":{"line":447,"column":0},"end":{"line":447,"column":19}},"447":{"start":{"line":448,"column":0},"end":{"line":448,"column":6}},"448":{"start":{"line":449,"column":0},"end":{"line":449,"column":64}},"449":{"start":{"line":450,"column":0},"end":{"line":450,"column":40}},"450":{"start":{"line":451,"column":0},"end":{"line":451,"column":25}},"451":{"start":{"line":452,"column":0},"end":{"line":452,"column":3}},"460":{"start":{"line":461,"column":0},"end":{"line":461,"column":36}},"461":{"start":{"line":462,"column":0},"end":{"line":462,"column":29}},"462":{"start":{"line":463,"column":0},"end":{"line":463,"column":35}},"463":{"start":{"line":464,"column":0},"end":{"line":464,"column":25}},"464":{"start":{"line":465,"column":0},"end":{"line":465,"column":23}},"465":{"start":{"line":466,"column":0},"end":{"line":466,"column":64}},"466":{"start":{"line":467,"column":0},"end":{"line":467,"column":6}},"467":{"start":{"line":468,"column":0},"end":{"line":468,"column":3}},"468":{"start":{"line":469,"column":0},"end":{"line":469,"column":1}},"474":{"start":{"line":475,"column":0},"end":{"line":475,"column":41}}},"s":{"0":1,"46":1,"48":40,"51":40,"54":40,"57":40,"66":40,"67":91,"68":91,"69":91,"70":91,"71":3,"72":3,"74":88,"75":88,"76":91,"77":91,"78":91,"79":91,"87":40,"88":36,"89":36,"90":36,"91":36,"92":36,"100":40,"101":26,"102":26,"111":40,"112":43,"113":43,"114":8,"115":35,"116":43,"117":43,"127":40,"128":49,"129":49,"130":49,"131":49,"132":49,"133":49,"134":1,"135":1,"137":49,"138":49,"147":40,"148":53,"149":53,"150":53,"151":53,"152":53,"153":1,"154":1,"156":52,"157":53,"165":40,"166":4,"167":4,"168":4,"176":40,"177":5,"178":5,"187":40,"188":25,"189":25,"207":40,"208":43,"209":43,"210":43,"211":43,"214":43,"215":5,"216":5,"219":43,"220":13,"221":13,"222":13,"223":13,"226":25,"228":43,"230":3,"231":3,"232":3,"233":3,"235":3,"236":1,"237":1,"238":1,"241":3,"242":1,"243":1,"245":1,"246":1,"249":22,"250":22,"251":22,"252":22,"253":22,"255":22,"256":22,"257":22,"259":22,"260":43,"272":40,"273":3,"274":3,"275":3,"276":3,"278":3,"279":2,"280":2,"283":1,"284":1,"287":1,"288":1,"290":1,"291":1,"292":1,"293":1,"294":1,"296":0,"297":3,"314":40,"315":22,"316":22,"317":22,"318":22,"319":22,"320":22,"321":6,"322":6,"325":22,"326":22,"327":5,"328":2,"329":22,"330":2,"331":2,"332":2,"333":2,"334":2,"335":2,"338":20,"339":20,"340":3,"341":1,"342":22,"343":1,"344":1,"345":1,"346":1,"347":1,"348":1,"351":22,"352":1,"353":1,"354":1,"355":1,"358":22,"359":1,"360":1,"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"370":22,"371":16,"372":16,"373":16,"374":16,"375":16,"376":16,"378":1,"379":22,"389":40,"390":2,"391":2,"392":2,"393":2,"394":2,"395":2,"396":2,"397":2,"398":2,"399":2,"400":2,"401":2,"402":2,"412":40,"413":1,"414":1,"415":1,"416":1,"417":1,"418":1,"419":1,"420":1,"421":1,"422":1,"423":1,"424":1,"425":1,"426":1,"438":40,"439":16,"440":16,"441":16,"442":16,"443":16,"444":16,"445":16,"446":16,"447":16,"448":16,"449":16,"450":16,"451":16,"460":40,"461":19,"462":19,"463":19,"464":19,"465":19,"466":19,"467":19,"468":40,"474":1},"branchMap":{"0":{"type":"branch","line":47,"loc":{"start":{"line":47,"column":23},"end":{"line":469,"column":1}},"locations":[{"start":{"line":47,"column":23},"end":{"line":469,"column":1}}]},"1":{"type":"branch","line":67,"loc":{"start":{"line":67,"column":2},"end":{"line":80,"column":3}},"locations":[{"start":{"line":67,"column":2},"end":{"line":80,"column":3}}]},"2":{"type":"branch","line":71,"loc":{"start":{"line":71,"column":39},"end":{"line":73,"column":5}},"locations":[{"start":{"line":71,"column":39},"end":{"line":73,"column":5}}]},"3":{"type":"branch","line":73,"loc":{"start":{"line":73,"column":4},"end":{"line":77,"column":45}},"locations":[{"start":{"line":73,"column":4},"end":{"line":77,"column":45}}]},"4":{"type":"branch","line":73,"loc":{"start":{"line":73,"column":4},"end":{"line":77,"column":43}},"locations":[{"start":{"line":73,"column":4},"end":{"line":77,"column":43}}]},"5":{"type":"branch","line":77,"loc":{"start":{"line":77,"column":32},"end":{"line":77,"column":45}},"locations":[{"start":{"line":77,"column":32},"end":{"line":77,"column":45}}]},"6":{"type":"branch","line":88,"loc":{"start":{"line":88,"column":2},"end":{"line":93,"column":3}},"locations":[{"start":{"line":88,"column":2},"end":{"line":93,"column":3}}]},"7":{"type":"branch","line":101,"loc":{"start":{"line":101,"column":2},"end":{"line":103,"column":3}},"locations":[{"start":{"line":101,"column":2},"end":{"line":103,"column":3}}]},"8":{"type":"branch","line":112,"loc":{"start":{"line":112,"column":10},"end":{"line":118,"column":3}},"locations":[{"start":{"line":112,"column":10},"end":{"line":118,"column":3}}]},"9":{"type":"branch","line":114,"loc":{"start":{"line":114,"column":23},"end":{"line":114,"column":60}},"locations":[{"start":{"line":114,"column":23},"end":{"line":114,"column":60}}]},"10":{"type":"branch","line":114,"loc":{"start":{"line":114,"column":52},"end":{"line":115,"column":23}},"locations":[{"start":{"line":114,"column":52},"end":{"line":115,"column":23}}]},"11":{"type":"branch","line":115,"loc":{"start":{"line":115,"column":22},"end":{"line":116,"column":21}},"locations":[{"start":{"line":115,"column":22},"end":{"line":116,"column":21}}]},"12":{"type":"branch","line":128,"loc":{"start":{"line":128,"column":2},"end":{"line":139,"column":3}},"locations":[{"start":{"line":128,"column":2},"end":{"line":139,"column":3}}]},"13":{"type":"branch","line":134,"loc":{"start":{"line":134,"column":21},"end":{"line":136,"column":5}},"locations":[{"start":{"line":134,"column":21},"end":{"line":136,"column":5}}]},"14":{"type":"branch","line":136,"loc":{"start":{"line":136,"column":4},"end":{"line":138,"column":51}},"locations":[{"start":{"line":136,"column":4},"end":{"line":138,"column":51}}]},"15":{"type":"branch","line":138,"loc":{"start":{"line":138,"column":39},"end":{"line":138,"column":59}},"locations":[{"start":{"line":138,"column":39},"end":{"line":138,"column":59}}]},"16":{"type":"branch","line":148,"loc":{"start":{"line":148,"column":2},"end":{"line":158,"column":3}},"locations":[{"start":{"line":148,"column":2},"end":{"line":158,"column":3}}]},"17":{"type":"branch","line":153,"loc":{"start":{"line":153,"column":21},"end":{"line":155,"column":5}},"locations":[{"start":{"line":153,"column":21},"end":{"line":155,"column":5}}]},"18":{"type":"branch","line":155,"loc":{"start":{"line":155,"column":4},"end":{"line":157,"column":60}},"locations":[{"start":{"line":155,"column":4},"end":{"line":157,"column":60}}]},"19":{"type":"branch","line":166,"loc":{"start":{"line":166,"column":2},"end":{"line":169,"column":3}},"locations":[{"start":{"line":166,"column":2},"end":{"line":169,"column":3}}]},"20":{"type":"branch","line":168,"loc":{"start":{"line":168,"column":11},"end":{"line":168,"column":34}},"locations":[{"start":{"line":168,"column":11},"end":{"line":168,"column":34}}]},"21":{"type":"branch","line":168,"loc":{"start":{"line":168,"column":23},"end":{"line":168,"column":44}},"locations":[{"start":{"line":168,"column":23},"end":{"line":168,"column":44}}]},"22":{"type":"branch","line":177,"loc":{"start":{"line":177,"column":2},"end":{"line":179,"column":3}},"locations":[{"start":{"line":177,"column":2},"end":{"line":179,"column":3}}]},"23":{"type":"branch","line":188,"loc":{"start":{"line":188,"column":2},"end":{"line":190,"column":3}},"locations":[{"start":{"line":188,"column":2},"end":{"line":190,"column":3}}]},"24":{"type":"branch","line":208,"loc":{"start":{"line":208,"column":2},"end":{"line":261,"column":3}},"locations":[{"start":{"line":208,"column":2},"end":{"line":261,"column":3}}]},"25":{"type":"branch","line":215,"loc":{"start":{"line":215,"column":44},"end":{"line":217,"column":5}},"locations":[{"start":{"line":215,"column":44},"end":{"line":217,"column":5}}]},"26":{"type":"branch","line":217,"loc":{"start":{"line":217,"column":4},"end":{"line":220,"column":35}},"locations":[{"start":{"line":217,"column":4},"end":{"line":220,"column":35}}]},"27":{"type":"branch","line":220,"loc":{"start":{"line":220,"column":35},"end":{"line":224,"column":5}},"locations":[{"start":{"line":220,"column":35},"end":{"line":224,"column":5}}]},"28":{"type":"branch","line":224,"loc":{"start":{"line":224,"column":4},"end":{"line":229,"column":19}},"locations":[{"start":{"line":224,"column":4},"end":{"line":229,"column":19}}]},"29":{"type":"branch","line":229,"loc":{"start":{"line":229,"column":19},"end":{"line":247,"column":5}},"locations":[{"start":{"line":229,"column":19},"end":{"line":247,"column":5}}]},"30":{"type":"branch","line":236,"loc":{"start":{"line":236,"column":45},"end":{"line":239,"column":7}},"locations":[{"start":{"line":236,"column":45},"end":{"line":239,"column":7}}]},"31":{"type":"branch","line":239,"loc":{"start":{"line":239,"column":6},"end":{"line":242,"column":33}},"locations":[{"start":{"line":239,"column":6},"end":{"line":242,"column":33}}]},"32":{"type":"branch","line":242,"loc":{"start":{"line":242,"column":33},"end":{"line":247,"column":5}},"locations":[{"start":{"line":242,"column":33},"end":{"line":247,"column":5}}]},"33":{"type":"branch","line":247,"loc":{"start":{"line":247,"column":4},"end":{"line":260,"column":20}},"locations":[{"start":{"line":247,"column":4},"end":{"line":260,"column":20}}]},"34":{"type":"branch","line":273,"loc":{"start":{"line":273,"column":2},"end":{"line":298,"column":3}},"locations":[{"start":{"line":273,"column":2},"end":{"line":298,"column":3}}]},"35":{"type":"branch","line":279,"loc":{"start":{"line":279,"column":9},"end":{"line":279,"column":34}},"locations":[{"start":{"line":279,"column":9},"end":{"line":279,"column":34}}]},"36":{"type":"branch","line":279,"loc":{"start":{"line":279,"column":34},"end":{"line":281,"column":5}},"locations":[{"start":{"line":279,"column":34},"end":{"line":281,"column":5}}]},"37":{"type":"branch","line":281,"loc":{"start":{"line":281,"column":4},"end":{"line":295,"column":5}},"locations":[{"start":{"line":281,"column":4},"end":{"line":295,"column":5}}]},"38":{"type":"branch","line":295,"loc":{"start":{"line":295,"column":4},"end":{"line":297,"column":21}},"locations":[{"start":{"line":295,"column":4},"end":{"line":297,"column":21}}]},"39":{"type":"branch","line":315,"loc":{"start":{"line":315,"column":2},"end":{"line":380,"column":3}},"locations":[{"start":{"line":315,"column":2},"end":{"line":380,"column":3}}]},"40":{"type":"branch","line":321,"loc":{"start":{"line":321,"column":26},"end":{"line":322,"column":26}},"locations":[{"start":{"line":321,"column":26},"end":{"line":322,"column":26}}]},"41":{"type":"branch","line":322,"loc":{"start":{"line":322,"column":19},"end":{"line":323,"column":28}},"locations":[{"start":{"line":322,"column":19},"end":{"line":323,"column":28}}]},"42":{"type":"branch","line":327,"loc":{"start":{"line":327,"column":6},"end":{"line":328,"column":33}},"locations":[{"start":{"line":327,"column":6},"end":{"line":328,"column":33}}]},"43":{"type":"branch","line":328,"loc":{"start":{"line":328,"column":22},"end":{"line":329,"column":56}},"locations":[{"start":{"line":328,"column":22},"end":{"line":329,"column":56}}]},"44":{"type":"branch","line":330,"loc":{"start":{"line":330,"column":6},"end":{"line":336,"column":5}},"locations":[{"start":{"line":330,"column":6},"end":{"line":336,"column":5}}]},"45":{"type":"branch","line":336,"loc":{"start":{"line":336,"column":4},"end":{"line":340,"column":14}},"locations":[{"start":{"line":336,"column":4},"end":{"line":340,"column":14}}]},"46":{"type":"branch","line":340,"loc":{"start":{"line":340,"column":6},"end":{"line":341,"column":31}},"locations":[{"start":{"line":340,"column":6},"end":{"line":341,"column":31}}]},"47":{"type":"branch","line":341,"loc":{"start":{"line":341,"column":20},"end":{"line":342,"column":54}},"locations":[{"start":{"line":341,"column":20},"end":{"line":342,"column":54}}]},"48":{"type":"branch","line":343,"loc":{"start":{"line":343,"column":6},"end":{"line":349,"column":5}},"locations":[{"start":{"line":343,"column":6},"end":{"line":349,"column":5}}]},"49":{"type":"branch","line":349,"loc":{"start":{"line":349,"column":4},"end":{"line":352,"column":17}},"locations":[{"start":{"line":349,"column":4},"end":{"line":352,"column":17}}]},"50":{"type":"branch","line":352,"loc":{"start":{"line":352,"column":8},"end":{"line":352,"column":41}},"locations":[{"start":{"line":352,"column":8},"end":{"line":352,"column":41}}]},"51":{"type":"branch","line":352,"loc":{"start":{"line":352,"column":41},"end":{"line":356,"column":5}},"locations":[{"start":{"line":352,"column":41},"end":{"line":356,"column":5}}]},"52":{"type":"branch","line":356,"loc":{"start":{"line":356,"column":4},"end":{"line":359,"column":17}},"locations":[{"start":{"line":356,"column":4},"end":{"line":359,"column":17}}]},"53":{"type":"branch","line":359,"loc":{"start":{"line":359,"column":8},"end":{"line":359,"column":44}},"locations":[{"start":{"line":359,"column":8},"end":{"line":359,"column":44}}]},"54":{"type":"branch","line":359,"loc":{"start":{"line":359,"column":44},"end":{"line":368,"column":5}},"locations":[{"start":{"line":359,"column":44},"end":{"line":368,"column":5}}]},"55":{"type":"branch","line":368,"loc":{"start":{"line":368,"column":4},"end":{"line":371,"column":40}},"locations":[{"start":{"line":368,"column":4},"end":{"line":371,"column":40}}]},"56":{"type":"branch","line":371,"loc":{"start":{"line":371,"column":40},"end":{"line":377,"column":5}},"locations":[{"start":{"line":371,"column":40},"end":{"line":377,"column":5}}]},"57":{"type":"branch","line":377,"loc":{"start":{"line":377,"column":4},"end":{"line":379,"column":25}},"locations":[{"start":{"line":377,"column":4},"end":{"line":379,"column":25}}]},"58":{"type":"branch","line":390,"loc":{"start":{"line":390,"column":2},"end":{"line":403,"column":3}},"locations":[{"start":{"line":390,"column":2},"end":{"line":403,"column":3}}]},"59":{"type":"branch","line":395,"loc":{"start":{"line":395,"column":34},"end":{"line":395,"column":47}},"locations":[{"start":{"line":395,"column":34},"end":{"line":395,"column":47}}]},"60":{"type":"branch","line":413,"loc":{"start":{"line":413,"column":2},"end":{"line":427,"column":3}},"locations":[{"start":{"line":413,"column":2},"end":{"line":427,"column":3}}]},"61":{"type":"branch","line":439,"loc":{"start":{"line":439,"column":2},"end":{"line":452,"column":3}},"locations":[{"start":{"line":439,"column":2},"end":{"line":452,"column":3}}]},"62":{"type":"branch","line":461,"loc":{"start":{"line":461,"column":2},"end":{"line":468,"column":3}},"locations":[{"start":{"line":461,"column":2},"end":{"line":468,"column":3}}]},"63":{"type":"branch","line":466,"loc":{"start":{"line":466,"column":23},"end":{"line":466,"column":62}},"locations":[{"start":{"line":466,"column":23},"end":{"line":466,"column":62}}]}},"b":{"0":[40],"1":[91],"2":[3],"3":[90],"4":[88],"5":[81],"6":[36],"7":[26],"8":[43],"9":[38],"10":[8],"11":[35],"12":[49],"13":[1],"14":[48],"15":[31],"16":[53],"17":[1],"18":[52],"19":[4],"20":[3],"21":[1],"22":[5],"23":[25],"24":[43],"25":[5],"26":[38],"27":[13],"28":[25],"29":[3],"30":[1],"31":[2],"32":[1],"33":[22],"34":[3],"35":[1],"36":[2],"37":[1],"38":[0],"39":[22],"40":[6],"41":[6],"42":[5],"43":[2],"44":[2],"45":[20],"46":[3],"47":[1],"48":[1],"49":[19],"50":[2],"51":[1],"52":[18],"53":[1],"54":[1],"55":[17],"56":[16],"57":[1],"58":[2],"59":[1],"60":[1],"61":[16],"62":[19],"63":[3]},"fnMap":{"0":{"name":"","decl":{"start":{"line":47,"column":23},"end":{"line":469,"column":1}},"loc":{"start":{"line":47,"column":23},"end":{"line":469,"column":1}},"line":47},"1":{"name":"addModule","decl":{"start":{"line":67,"column":2},"end":{"line":80,"column":3}},"loc":{"start":{"line":67,"column":2},"end":{"line":80,"column":3}},"line":67},"2":{"name":"setModuleMetadata","decl":{"start":{"line":88,"column":2},"end":{"line":93,"column":3}},"loc":{"start":{"line":88,"column":2},"end":{"line":93,"column":3}},"line":88},"3":{"name":"hasModule","decl":{"start":{"line":101,"column":2},"end":{"line":103,"column":3}},"loc":{"start":{"line":101,"column":2},"end":{"line":103,"column":3}},"line":101},"4":{"name":"getCacheKey","decl":{"start":{"line":112,"column":10},"end":{"line":118,"column":3}},"loc":{"start":{"line":112,"column":10},"end":{"line":118,"column":3}},"line":112},"5":{"name":"addProvider","decl":{"start":{"line":128,"column":2},"end":{"line":139,"column":3}},"loc":{"start":{"line":128,"column":2},"end":{"line":139,"column":3}},"line":128},"6":{"name":"getProvider","decl":{"start":{"line":148,"column":2},"end":{"line":158,"column":3}},"loc":{"start":{"line":148,"column":2},"end":{"line":158,"column":3}},"line":148},"7":{"name":"getModuleExports","decl":{"start":{"line":166,"column":2},"end":{"line":169,"column":3}},"loc":{"start":{"line":166,"column":2},"end":{"line":169,"column":3}},"line":166},"8":{"name":"getModuleMetadata","decl":{"start":{"line":177,"column":2},"end":{"line":179,"column":3}},"loc":{"start":{"line":177,"column":2},"end":{"line":179,"column":3}},"line":177},"9":{"name":"registerInstance","decl":{"start":{"line":188,"column":2},"end":{"line":190,"column":3}},"loc":{"start":{"line":188,"column":2},"end":{"line":190,"column":3}},"line":188},"10":{"name":"resolve","decl":{"start":{"line":208,"column":2},"end":{"line":261,"column":3}},"loc":{"start":{"line":208,"column":2},"end":{"line":261,"column":3}},"line":208},"11":{"name":"resolveFromImports","decl":{"start":{"line":273,"column":2},"end":{"line":298,"column":3}},"loc":{"start":{"line":273,"column":2},"end":{"line":298,"column":3}},"line":273},"12":{"name":"instantiateProvider","decl":{"start":{"line":315,"column":2},"end":{"line":380,"column":3}},"loc":{"start":{"line":315,"column":2},"end":{"line":380,"column":3}},"line":315},"13":{"name":"instantiateFactoryProvider","decl":{"start":{"line":390,"column":2},"end":{"line":403,"column":3}},"loc":{"start":{"line":390,"column":2},"end":{"line":403,"column":3}},"line":390},"14":{"name":"instantiateClassProvider","decl":{"start":{"line":413,"column":2},"end":{"line":427,"column":3}},"loc":{"start":{"line":413,"column":2},"end":{"line":427,"column":3}},"line":413},"15":{"name":"instantiateClassConstructor","decl":{"start":{"line":439,"column":2},"end":{"line":452,"column":3}},"loc":{"start":{"line":439,"column":2},"end":{"line":452,"column":3}},"line":439},"16":{"name":"resolveDependencies","decl":{"start":{"line":461,"column":2},"end":{"line":468,"column":3}},"loc":{"start":{"line":461,"column":2},"end":{"line":468,"column":3}},"line":461}},"f":{"0":40,"1":91,"2":36,"3":26,"4":43,"5":49,"6":53,"7":4,"8":5,"9":25,"10":43,"11":3,"12":22,"13":2,"14":1,"15":16,"16":19}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/bootstrap.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/bootstrap.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":29}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":27}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":29}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":14}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":41}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":67}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":56}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":3}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":24}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":2}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":39}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":30}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":21}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":56}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":43}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":68}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":20}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":62}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":5}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":33}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":65}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":62}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":27}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":44}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":18}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":25}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":27}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":10}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":7}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":57}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":48}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":15}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":5}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":50}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":41}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":54}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":60}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":19}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":112}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":8}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":5}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":55}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":3}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":2}}},"s":{"0":1,"26":1,"27":8,"28":8,"29":8,"30":8,"32":8,"33":1,"34":1,"36":7,"37":7,"58":1,"59":14,"60":14,"61":14,"63":14,"64":22,"68":22,"69":2,"70":2,"72":22,"73":8,"74":8,"76":8,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"84":6,"86":6,"87":6,"88":6,"90":12,"91":12,"92":12,"94":22,"95":0,"96":0,"97":0,"98":0,"100":12,"101":12,"102":10},"branchMap":{"0":{"type":"branch","line":27,"loc":{"start":{"line":27,"column":28},"end":{"line":38,"column":2}},"locations":[{"start":{"line":27,"column":28},"end":{"line":38,"column":2}}]},"1":{"type":"branch","line":33,"loc":{"start":{"line":33,"column":66},"end":{"line":35,"column":3}},"locations":[{"start":{"line":33,"column":66},"end":{"line":35,"column":3}}]},"2":{"type":"branch","line":35,"loc":{"start":{"line":35,"column":2},"end":{"line":38,"column":2}},"locations":[{"start":{"line":35,"column":2},"end":{"line":38,"column":2}}]},"3":{"type":"branch","line":59,"loc":{"start":{"line":59,"column":32},"end":{"line":103,"column":2}},"locations":[{"start":{"line":59,"column":32},"end":{"line":103,"column":2}}]},"4":{"type":"branch","line":64,"loc":{"start":{"line":64,"column":42},"end":{"line":102,"column":3}},"locations":[{"start":{"line":64,"column":42},"end":{"line":102,"column":3}}]},"5":{"type":"branch","line":69,"loc":{"start":{"line":69,"column":19},"end":{"line":71,"column":5}},"locations":[{"start":{"line":69,"column":19},"end":{"line":71,"column":5}}]},"6":{"type":"branch","line":71,"loc":{"start":{"line":71,"column":4},"end":{"line":73,"column":23}},"locations":[{"start":{"line":71,"column":4},"end":{"line":73,"column":23}}]},"7":{"type":"branch","line":73,"loc":{"start":{"line":73,"column":17},"end":{"line":73,"column":32}},"locations":[{"start":{"line":73,"column":17},"end":{"line":73,"column":32}}]},"8":{"type":"branch","line":73,"loc":{"start":{"line":73,"column":32},"end":{"line":89,"column":5}},"locations":[{"start":{"line":73,"column":32},"end":{"line":89,"column":5}}]},"9":{"type":"branch","line":77,"loc":{"start":{"line":77,"column":26},"end":{"line":89,"column":5}},"locations":[{"start":{"line":77,"column":26},"end":{"line":89,"column":5}}]},"10":{"type":"branch","line":77,"loc":{"start":{"line":77,"column":26},"end":{"line":83,"column":7}},"locations":[{"start":{"line":77,"column":26},"end":{"line":83,"column":7}}]},"11":{"type":"branch","line":89,"loc":{"start":{"line":89,"column":4},"end":{"line":95,"column":26}},"locations":[{"start":{"line":89,"column":4},"end":{"line":95,"column":26}}]},"12":{"type":"branch","line":95,"loc":{"start":{"line":95,"column":17},"end":{"line":95,"column":36}},"locations":[{"start":{"line":95,"column":17},"end":{"line":95,"column":36}}]},"13":{"type":"branch","line":95,"loc":{"start":{"line":95,"column":26},"end":{"line":95,"column":59}},"locations":[{"start":{"line":95,"column":26},"end":{"line":95,"column":59}}]},"14":{"type":"branch","line":95,"loc":{"start":{"line":95,"column":59},"end":{"line":99,"column":5}},"locations":[{"start":{"line":95,"column":59},"end":{"line":99,"column":5}}]},"15":{"type":"branch","line":99,"loc":{"start":{"line":99,"column":4},"end":{"line":102,"column":3}},"locations":[{"start":{"line":99,"column":4},"end":{"line":102,"column":3}}]},"16":{"type":"branch","line":102,"loc":{"start":{"line":102,"column":2},"end":{"line":103,"column":2}},"locations":[{"start":{"line":102,"column":2},"end":{"line":103,"column":2}}]}},"b":{"0":[8],"1":[1],"2":[7],"3":[14],"4":[22],"5":[2],"6":[20],"7":[8],"8":[8],"9":[6],"10":[1],"11":[12],"12":[0],"13":[0],"14":[0],"15":[12],"16":[10]},"fnMap":{"0":{"name":"getValidLazyTrigger","decl":{"start":{"line":27,"column":28},"end":{"line":38,"column":2}},"loc":{"start":{"line":27,"column":28},"end":{"line":38,"column":2}},"line":27},"1":{"name":"bootstrapModules","decl":{"start":{"line":59,"column":32},"end":{"line":103,"column":2}},"loc":{"start":{"line":59,"column":32},"end":{"line":103,"column":2}},"line":59}},"f":{"0":8,"1":14}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/initialize-module.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/initialize-module.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":39}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":27}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":29}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":21}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":65}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":53}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":21}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":11}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":3}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":21}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":45}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":30}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":43}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":47}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":5}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":2}}},"s":{"0":1,"35":1,"36":34,"37":34,"38":34,"39":34,"40":34,"42":34,"43":2,"44":2,"46":32,"47":32,"48":32,"49":32,"50":32,"51":32,"52":32},"branchMap":{"0":{"type":"branch","line":36,"loc":{"start":{"line":36,"column":32},"end":{"line":53,"column":2}},"locations":[{"start":{"line":36,"column":32},"end":{"line":53,"column":2}}]},"1":{"type":"branch","line":43,"loc":{"start":{"line":43,"column":20},"end":{"line":45,"column":3}},"locations":[{"start":{"line":43,"column":20},"end":{"line":45,"column":3}}]},"2":{"type":"branch","line":45,"loc":{"start":{"line":45,"column":2},"end":{"line":53,"column":2}},"locations":[{"start":{"line":45,"column":2},"end":{"line":53,"column":2}}]}},"b":{"0":[34],"1":[2],"2":[32]},"fnMap":{"0":{"name":"initializeModule","decl":{"start":{"line":36,"column":32},"end":{"line":53,"column":2}},"loc":{"start":{"line":36,"column":32},"end":{"line":53,"column":2}},"line":36}},"f":{"0":34}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/instantiate-module.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/instantiate-module.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":40}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":27}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":24}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":56}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":49}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":36}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":49}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":6}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":4}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":60}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":52}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":18}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":2}}},"s":{"0":1,"30":1,"31":25,"32":25,"33":25,"34":25,"35":25,"36":5,"37":25,"38":25,"40":25,"41":25,"43":25,"44":25},"branchMap":{"0":{"type":"branch","line":31,"loc":{"start":{"line":31,"column":33},"end":{"line":45,"column":2}},"locations":[{"start":{"line":31,"column":33},"end":{"line":45,"column":2}}]},"1":{"type":"branch","line":36,"loc":{"start":{"line":36,"column":21},"end":{"line":37,"column":49}},"locations":[{"start":{"line":36,"column":21},"end":{"line":37,"column":49}}]}},"b":{"0":[25],"1":[5]},"fnMap":{"0":{"name":"instantiateModule","decl":{"start":{"line":31,"column":33},"end":{"line":45,"column":2}},"loc":{"start":{"line":31,"column":33},"end":{"line":45,"column":2}},"line":31}},"f":{"0":25}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-imports.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-imports.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":38}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":29}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":21}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":26}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":11}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":3}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":55}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":55}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":17}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":26}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":38}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":33}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":74}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":5}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":3}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":2}}},"s":{"0":1,"21":1,"22":39,"23":39,"24":39,"25":29,"26":29,"28":10,"29":10,"30":10,"31":10,"32":10,"34":10,"35":9,"36":9,"37":10,"38":10},"branchMap":{"0":{"type":"branch","line":22,"loc":{"start":{"line":22,"column":31},"end":{"line":39,"column":2}},"locations":[{"start":{"line":22,"column":31},"end":{"line":39,"column":2}}]},"1":{"type":"branch","line":25,"loc":{"start":{"line":25,"column":25},"end":{"line":27,"column":3}},"locations":[{"start":{"line":25,"column":25},"end":{"line":27,"column":3}}]},"2":{"type":"branch","line":27,"loc":{"start":{"line":27,"column":2},"end":{"line":39,"column":2}},"locations":[{"start":{"line":27,"column":2},"end":{"line":39,"column":2}}]},"3":{"type":"branch","line":35,"loc":{"start":{"line":35,"column":32},"end":{"line":37,"column":5}},"locations":[{"start":{"line":35,"column":32},"end":{"line":37,"column":5}}]}},"b":{"0":[39],"1":[29],"2":[10],"3":[9]},"fnMap":{"0":{"name":"registerImports","decl":{"start":{"line":22,"column":31},"end":{"line":39,"column":2}},"loc":{"start":{"line":22,"column":31},"end":{"line":39,"column":2}},"line":22}},"f":{"0":39}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-ipc-handlers.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-ipc-handlers.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":42}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":27}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":29}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":21}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":22}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":11}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":3}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":40}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":49}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":3}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":2}}},"s":{"0":1,"23":1,"24":37,"25":37,"26":37,"27":37,"28":32,"29":32,"31":6,"32":6,"33":6,"34":5},"branchMap":{"0":{"type":"branch","line":24,"loc":{"start":{"line":24,"column":35},"end":{"line":35,"column":2}},"locations":[{"start":{"line":24,"column":35},"end":{"line":35,"column":2}}]},"1":{"type":"branch","line":28,"loc":{"start":{"line":28,"column":21},"end":{"line":30,"column":3}},"locations":[{"start":{"line":28,"column":21},"end":{"line":30,"column":3}}]},"2":{"type":"branch","line":30,"loc":{"start":{"line":30,"column":2},"end":{"line":35,"column":2}},"locations":[{"start":{"line":30,"column":2},"end":{"line":35,"column":2}}]},"3":{"type":"branch","line":30,"loc":{"start":{"line":30,"column":2},"end":{"line":32,"column":39}},"locations":[{"start":{"line":30,"column":2},"end":{"line":32,"column":39}}]},"4":{"type":"branch","line":34,"loc":{"start":{"line":34,"column":2},"end":{"line":35,"column":2}},"locations":[{"start":{"line":34,"column":2},"end":{"line":35,"column":2}}]}},"b":{"0":[37],"1":[32],"2":[6],"3":[5],"4":[5]},"fnMap":{"0":{"name":"registerIpcHandlers","decl":{"start":{"line":24,"column":35},"end":{"line":35,"column":2}},"loc":{"start":{"line":24,"column":35},"end":{"line":35,"column":2}},"line":24}},"f":{"0":37}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-lazy-module.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-lazy-module.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":29}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":27}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":29}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":14}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":41}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":67}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":56}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":3}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":24}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":2}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":35}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":27}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":29}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":12}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":61}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":62}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":69}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":22}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":25}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":5}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":62}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":11}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":54}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":45}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":58}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":64}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":23}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":116}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":12}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":9}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":59}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":16}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":28}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":24}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":10}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":23}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":27}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":16}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":29}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":24}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":18}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":76}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":12}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":10}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":7}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":9}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":23}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":5}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":2}}},"s":{"0":1,"20":1,"21":13,"22":13,"23":13,"24":13,"26":13,"27":1,"28":1,"30":12,"31":12,"47":1,"48":13,"49":13,"50":13,"51":13,"52":13,"54":13,"55":6,"56":1,"57":1,"59":5,"60":5,"61":5,"62":5,"63":3,"65":5,"66":0,"67":0,"68":0,"69":0,"71":3,"73":3,"74":3,"75":3,"76":3,"77":5,"78":2,"80":2,"81":2,"82":2,"83":2,"84":2,"85":2,"86":2,"87":2,"88":5,"90":5,"91":13,"92":13},"branchMap":{"0":{"type":"branch","line":21,"loc":{"start":{"line":21,"column":28},"end":{"line":32,"column":2}},"locations":[{"start":{"line":21,"column":28},"end":{"line":32,"column":2}}]},"1":{"type":"branch","line":27,"loc":{"start":{"line":27,"column":66},"end":{"line":29,"column":3}},"locations":[{"start":{"line":27,"column":66},"end":{"line":29,"column":3}}]},"2":{"type":"branch","line":29,"loc":{"start":{"line":29,"column":2},"end":{"line":32,"column":2}},"locations":[{"start":{"line":29,"column":2},"end":{"line":32,"column":2}}]},"3":{"type":"branch","line":48,"loc":{"start":{"line":48,"column":34},"end":{"line":93,"column":2}},"locations":[{"start":{"line":48,"column":34},"end":{"line":93,"column":2}}]},"4":{"type":"branch","line":55,"loc":{"start":{"line":55,"column":26},"end":{"line":92,"column":3}},"locations":[{"start":{"line":55,"column":26},"end":{"line":92,"column":3}}]},"5":{"type":"branch","line":56,"loc":{"start":{"line":56,"column":21},"end":{"line":58,"column":5}},"locations":[{"start":{"line":56,"column":21},"end":{"line":58,"column":5}}]},"6":{"type":"branch","line":58,"loc":{"start":{"line":58,"column":4},"end":{"line":91,"column":23}},"locations":[{"start":{"line":58,"column":4},"end":{"line":91,"column":23}}]},"7":{"type":"branch","line":60,"loc":{"start":{"line":60,"column":19},"end":{"line":89,"column":7}},"locations":[{"start":{"line":60,"column":19},"end":{"line":89,"column":7}}]},"8":{"type":"branch","line":63,"loc":{"start":{"line":63,"column":43},"end":{"line":66,"column":30}},"locations":[{"start":{"line":63,"column":43},"end":{"line":66,"column":30}}]},"9":{"type":"branch","line":66,"loc":{"start":{"line":66,"column":21},"end":{"line":66,"column":40}},"locations":[{"start":{"line":66,"column":21},"end":{"line":66,"column":40}}]},"10":{"type":"branch","line":66,"loc":{"start":{"line":66,"column":30},"end":{"line":66,"column":63}},"locations":[{"start":{"line":66,"column":30},"end":{"line":66,"column":63}}]},"11":{"type":"branch","line":66,"loc":{"start":{"line":66,"column":63},"end":{"line":70,"column":9}},"locations":[{"start":{"line":66,"column":63},"end":{"line":70,"column":9}}]},"12":{"type":"branch","line":70,"loc":{"start":{"line":70,"column":8},"end":{"line":78,"column":15}},"locations":[{"start":{"line":70,"column":8},"end":{"line":78,"column":15}}]},"13":{"type":"branch","line":78,"loc":{"start":{"line":78,"column":6},"end":{"line":88,"column":7}},"locations":[{"start":{"line":78,"column":6},"end":{"line":88,"column":7}}]},"14":{"type":"branch","line":85,"loc":{"start":{"line":85,"column":52},"end":{"line":85,"column":76}},"locations":[{"start":{"line":85,"column":52},"end":{"line":85,"column":76}}]}},"b":{"0":[13],"1":[1],"2":[12],"3":[13],"4":[6],"5":[1],"6":[5],"7":[5],"8":[3],"9":[0],"10":[0],"11":[0],"12":[3],"13":[2],"14":[0]},"fnMap":{"0":{"name":"getValidLazyTrigger","decl":{"start":{"line":21,"column":28},"end":{"line":32,"column":2}},"loc":{"start":{"line":21,"column":28},"end":{"line":32,"column":2}},"line":21},"1":{"name":"registerLazyModule","decl":{"start":{"line":48,"column":34},"end":{"line":93,"column":2}},"loc":{"start":{"line":48,"column":34},"end":{"line":93,"column":2}},"line":48}},"f":{"0":13,"1":13}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-providers.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-providers.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":26}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":20}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":40}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":10}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":78}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":2}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":40}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":27}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":29}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":21}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":28}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":11}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":3}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":46}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":41}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":51}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":15}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":5}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":37}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":69}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":15}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":5}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":53}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":3}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":2}}},"s":{"0":1,"24":1,"25":9,"26":9,"27":9,"28":9,"30":9,"43":1,"44":44,"45":44,"46":44,"47":44,"48":2,"49":2,"51":44,"52":18,"53":9,"54":9,"55":9,"57":12,"58":6,"59":6,"60":6,"62":3,"63":3,"64":39},"branchMap":{"0":{"type":"branch","line":25,"loc":{"start":{"line":25,"column":25},"end":{"line":31,"column":2}},"locations":[{"start":{"line":25,"column":25},"end":{"line":31,"column":2}}]},"1":{"type":"branch","line":29,"loc":{"start":{"line":29,"column":24},"end":{"line":29,"column":57}},"locations":[{"start":{"line":29,"column":24},"end":{"line":29,"column":57}}]},"2":{"type":"branch","line":29,"loc":{"start":{"line":29,"column":49},"end":{"line":29,"column":78}},"locations":[{"start":{"line":29,"column":49},"end":{"line":29,"column":78}}]},"3":{"type":"branch","line":44,"loc":{"start":{"line":44,"column":33},"end":{"line":65,"column":2}},"locations":[{"start":{"line":44,"column":33},"end":{"line":65,"column":2}}]},"4":{"type":"branch","line":48,"loc":{"start":{"line":48,"column":27},"end":{"line":50,"column":3}},"locations":[{"start":{"line":48,"column":27},"end":{"line":50,"column":3}}]},"5":{"type":"branch","line":50,"loc":{"start":{"line":50,"column":2},"end":{"line":52,"column":45}},"locations":[{"start":{"line":50,"column":2},"end":{"line":52,"column":45}}]},"6":{"type":"branch","line":52,"loc":{"start":{"line":52,"column":45},"end":{"line":64,"column":3}},"locations":[{"start":{"line":52,"column":45},"end":{"line":64,"column":3}}]},"7":{"type":"branch","line":53,"loc":{"start":{"line":53,"column":40},"end":{"line":56,"column":5}},"locations":[{"start":{"line":53,"column":40},"end":{"line":56,"column":5}}]},"8":{"type":"branch","line":56,"loc":{"start":{"line":56,"column":4},"end":{"line":64,"column":3}},"locations":[{"start":{"line":56,"column":4},"end":{"line":64,"column":3}}]},"9":{"type":"branch","line":56,"loc":{"start":{"line":56,"column":4},"end":{"line":58,"column":36}},"locations":[{"start":{"line":56,"column":4},"end":{"line":58,"column":36}}]},"10":{"type":"branch","line":58,"loc":{"start":{"line":58,"column":36},"end":{"line":61,"column":5}},"locations":[{"start":{"line":58,"column":36},"end":{"line":61,"column":5}}]},"11":{"type":"branch","line":61,"loc":{"start":{"line":61,"column":4},"end":{"line":64,"column":3}},"locations":[{"start":{"line":61,"column":4},"end":{"line":64,"column":3}}]},"12":{"type":"branch","line":64,"loc":{"start":{"line":64,"column":2},"end":{"line":65,"column":2}},"locations":[{"start":{"line":64,"column":2},"end":{"line":65,"column":2}}]}},"b":{"0":[9],"1":[8],"2":[7],"3":[44],"4":[2],"5":[42],"6":[18],"7":[9],"8":[12],"9":[9],"10":[6],"11":[3],"12":[39]},"fnMap":{"0":{"name":"isProviderObject","decl":{"start":{"line":25,"column":25},"end":{"line":31,"column":2}},"loc":{"start":{"line":25,"column":25},"end":{"line":31,"column":2}},"line":25},"1":{"name":"registerProviders","decl":{"start":{"line":44,"column":33},"end":{"line":65,"column":2}},"loc":{"start":{"line":44,"column":33},"end":{"line":65,"column":2}},"line":44}},"f":{"0":9,"1":44}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-windows.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/register-windows.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":38}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":27}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":29}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":21}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":26}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":11}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":3}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":47}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":52}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":22}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":18}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":42}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":36}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":68}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":38}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":20}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":9}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":5}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":3}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":2}}},"s":{"0":1,"23":1,"24":38,"25":38,"26":38,"27":38,"28":32,"29":32,"31":6,"32":6,"33":6,"34":6,"35":6,"37":6,"38":4,"39":4,"40":4,"41":4,"42":4,"43":6,"44":6},"branchMap":{"0":{"type":"branch","line":24,"loc":{"start":{"line":24,"column":31},"end":{"line":45,"column":2}},"locations":[{"start":{"line":24,"column":31},"end":{"line":45,"column":2}}]},"1":{"type":"branch","line":28,"loc":{"start":{"line":28,"column":25},"end":{"line":30,"column":3}},"locations":[{"start":{"line":28,"column":25},"end":{"line":30,"column":3}}]},"2":{"type":"branch","line":30,"loc":{"start":{"line":30,"column":2},"end":{"line":45,"column":2}},"locations":[{"start":{"line":30,"column":2},"end":{"line":45,"column":2}}]},"3":{"type":"branch","line":38,"loc":{"start":{"line":38,"column":8},"end":{"line":38,"column":35}},"locations":[{"start":{"line":38,"column":8},"end":{"line":38,"column":35}}]},"4":{"type":"branch","line":38,"loc":{"start":{"line":38,"column":35},"end":{"line":43,"column":5}},"locations":[{"start":{"line":38,"column":35},"end":{"line":43,"column":5}}]}},"b":{"0":[38],"1":[32],"2":[6],"3":[5],"4":[4]},"fnMap":{"0":{"name":"registerWindows","decl":{"start":{"line":24,"column":31},"end":{"line":45,"column":2}},"loc":{"start":{"line":24,"column":31},"end":{"line":45,"column":2}},"line":24}},"f":{"0":38}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/settings.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/bootstrap/settings.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":32}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":50}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":59}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":29}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":2}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":45}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":43}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":24}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":44}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":3}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":24}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":2}}},"s":{"0":1,"33":1,"36":1,"58":1,"59":9,"60":9,"68":1,"69":9,"71":9,"72":0,"73":0,"75":9,"76":9},"branchMap":{"0":{"type":"branch","line":59,"loc":{"start":{"line":59,"column":28},"end":{"line":61,"column":2}},"locations":[{"start":{"line":59,"column":28},"end":{"line":61,"column":2}}]},"1":{"type":"branch","line":69,"loc":{"start":{"line":69,"column":27},"end":{"line":77,"column":2}},"locations":[{"start":{"line":69,"column":27},"end":{"line":77,"column":2}}]},"2":{"type":"branch","line":72,"loc":{"start":{"line":72,"column":23},"end":{"line":74,"column":3}},"locations":[{"start":{"line":72,"column":23},"end":{"line":74,"column":3}}]}},"b":{"0":[9],"1":[9],"2":[0]},"fnMap":{"0":{"name":"initSettings","decl":{"start":{"line":59,"column":28},"end":{"line":61,"column":2}},"loc":{"start":{"line":59,"column":28},"end":{"line":61,"column":2}},"line":59},"1":{"name":"getSettings","decl":{"start":{"line":69,"column":27},"end":{"line":77,"column":2}},"loc":{"start":{"line":69,"column":27},"end":{"line":77,"column":2}},"line":69}},"f":{"0":9,"1":9}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/cache.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/cache.ts","all":false,"statementMap":{"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":74}}},"s":{"17":1},"branchMap":{},"b":{},"fnMap":{},"f":{}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/destroy.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/destroy.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":43}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":48}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":33}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":32}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":23}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":5}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":3}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":2}}},"s":{"0":1,"24":1,"25":5,"27":5,"28":6,"29":5,"30":5,"31":6,"32":5},"branchMap":{"0":{"type":"branch","line":25,"loc":{"start":{"line":25,"column":30},"end":{"line":33,"column":2}},"locations":[{"start":{"line":25,"column":30},"end":{"line":33,"column":2}}]},"1":{"type":"branch","line":28,"loc":{"start":{"line":28,"column":32},"end":{"line":32,"column":3}},"locations":[{"start":{"line":28,"column":32},"end":{"line":32,"column":3}}]},"2":{"type":"branch","line":29,"loc":{"start":{"line":29,"column":31},"end":{"line":31,"column":5}},"locations":[{"start":{"line":29,"column":31},"end":{"line":31,"column":5}}]}},"b":{"0":[5],"1":[6],"2":[5]},"fnMap":{"0":{"name":"destroyWindows","decl":{"start":{"line":25,"column":30},"end":{"line":33,"column":2}},"loc":{"start":{"line":25,"column":30},"end":{"line":33,"column":2}},"line":25}},"f":{"0":5}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/receive.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/control-window/receive.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":44}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":10}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":33}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":37}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":62}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":21}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":3}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":13}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":2}}},"s":{"0":1,"30":1,"31":8,"32":8,"33":8,"35":8,"36":4,"37":4,"39":4,"40":4},"branchMap":{"0":{"type":"branch","line":31,"loc":{"start":{"line":31,"column":25},"end":{"line":41,"column":2}},"locations":[{"start":{"line":31,"column":25},"end":{"line":41,"column":2}}]},"1":{"type":"branch","line":36,"loc":{"start":{"line":36,"column":7},"end":{"line":36,"column":42}},"locations":[{"start":{"line":36,"column":7},"end":{"line":36,"column":42}}]},"2":{"type":"branch","line":36,"loc":{"start":{"line":36,"column":29},"end":{"line":36,"column":61}},"locations":[{"start":{"line":36,"column":29},"end":{"line":36,"column":61}}]},"3":{"type":"branch","line":36,"loc":{"start":{"line":36,"column":61},"end":{"line":41,"column":2}},"locations":[{"start":{"line":36,"column":61},"end":{"line":41,"column":2}}]}},"b":{"0":[8],"1":[6],"2":[5],"3":[4]},"fnMap":{"0":{"name":"getWindow","decl":{"start":{"line":31,"column":25},"end":{"line":41,"column":2}},"loc":{"start":{"line":31,"column":25},"end":{"line":41,"column":2}},"line":31}},"f":{"0":8}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/inject.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/inject.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":52}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":70}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":51}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":36}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":13}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":5}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":49}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":68}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":43}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":79}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":4}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":2}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":79}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":71}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":2}}},"s":{"0":1,"19":1,"39":1,"40":17,"41":17,"42":1,"43":1,"45":16,"46":17,"48":17,"50":17,"51":17,"52":17,"62":1,"63":62,"64":62},"branchMap":{"0":{"type":"branch","line":40,"loc":{"start":{"line":40,"column":22},"end":{"line":53,"column":2}},"locations":[{"start":{"line":40,"column":22},"end":{"line":53,"column":2}}]},"1":{"type":"branch","line":41,"loc":{"start":{"line":41,"column":9},"end":{"line":52,"column":4}},"locations":[{"start":{"line":41,"column":9},"end":{"line":52,"column":4}}]},"2":{"type":"branch","line":42,"loc":{"start":{"line":42,"column":35},"end":{"line":44,"column":5}},"locations":[{"start":{"line":42,"column":35},"end":{"line":44,"column":5}}]},"3":{"type":"branch","line":44,"loc":{"start":{"line":44,"column":4},"end":{"line":47,"column":65}},"locations":[{"start":{"line":44,"column":4},"end":{"line":47,"column":65}}]},"4":{"type":"branch","line":47,"loc":{"start":{"line":47,"column":60},"end":{"line":47,"column":68}},"locations":[{"start":{"line":47,"column":60},"end":{"line":47,"column":68}}]},"5":{"type":"branch","line":63,"loc":{"start":{"line":63,"column":33},"end":{"line":65,"column":2}},"locations":[{"start":{"line":63,"column":33},"end":{"line":65,"column":2}}]},"6":{"type":"branch","line":64,"loc":{"start":{"line":64,"column":63},"end":{"line":64,"column":71}},"locations":[{"start":{"line":64,"column":63},"end":{"line":64,"column":71}}]}},"b":{"0":[17],"1":[17],"2":[1],"3":[16],"4":[12],"5":[62],"6":[50]},"fnMap":{"0":{"name":"Inject","decl":{"start":{"line":40,"column":22},"end":{"line":53,"column":2}},"loc":{"start":{"line":40,"column":22},"end":{"line":53,"column":2}},"line":40},"1":{"name":"getInjectedTokens","decl":{"start":{"line":63,"column":33},"end":{"line":65,"column":2}},"loc":{"start":{"line":63,"column":33},"end":{"line":65,"column":2}},"line":63}},"f":{"0":17,"1":62}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/injectable.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/injectable.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":49}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":32}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":55}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":4}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":2}}},"s":{"0":1,"29":1,"30":31,"31":31,"32":31,"33":31},"branchMap":{"0":{"type":"branch","line":30,"loc":{"start":{"line":30,"column":26},"end":{"line":34,"column":2}},"locations":[{"start":{"line":30,"column":26},"end":{"line":34,"column":2}}]},"1":{"type":"branch","line":31,"loc":{"start":{"line":31,"column":9},"end":{"line":33,"column":4}},"locations":[{"start":{"line":31,"column":9},"end":{"line":33,"column":4}}]}},"b":{"0":[31],"1":[31]},"fnMap":{"0":{"name":"Injectable","decl":{"start":{"line":30,"column":26},"end":{"line":34,"column":2}},"loc":{"start":{"line":30,"column":26},"end":{"line":34,"column":2}},"line":30}},"f":{"0":31}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/ipc-handler.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/ipc-handler.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":49}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":32}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":55}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":4}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":2}}},"s":{"0":1,"35":1,"36":5,"37":5,"38":5,"39":5},"branchMap":{"0":{"type":"branch","line":36,"loc":{"start":{"line":36,"column":26},"end":{"line":40,"column":2}},"locations":[{"start":{"line":36,"column":26},"end":{"line":40,"column":2}}]},"1":{"type":"branch","line":37,"loc":{"start":{"line":37,"column":9},"end":{"line":39,"column":4}},"locations":[{"start":{"line":37,"column":9},"end":{"line":39,"column":4}}]}},"b":{"0":[5],"1":[5]},"fnMap":{"0":{"name":"IpcHandler","decl":{"start":{"line":36,"column":26},"end":{"line":40,"column":2}},"loc":{"start":{"line":36,"column":26},"end":{"line":40,"column":2}},"line":36}},"f":{"0":5}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/rg-module.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/rg-module.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":72}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":32}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":56}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":4}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":2}}},"s":{"0":1,"34":1,"35":52,"36":52,"37":52,"38":52},"branchMap":{"0":{"type":"branch","line":35,"loc":{"start":{"line":35,"column":24},"end":{"line":39,"column":2}},"locations":[{"start":{"line":35,"column":24},"end":{"line":39,"column":2}}]},"1":{"type":"branch","line":36,"loc":{"start":{"line":36,"column":9},"end":{"line":38,"column":4}},"locations":[{"start":{"line":36,"column":9},"end":{"line":38,"column":4}}]}},"b":{"0":[52],"1":[52]},"fnMap":{"0":{"name":"RgModule","decl":{"start":{"line":35,"column":24},"end":{"line":39,"column":2}},"loc":{"start":{"line":35,"column":24},"end":{"line":39,"column":2}},"line":35}},"f":{"0":52}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/window-manager.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/decorators/window-manager.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":48}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":34}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":22}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":32}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":61}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":4}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":2}}},"s":{"0":1,"44":1,"45":11,"46":11,"47":11,"48":11,"49":11,"50":11},"branchMap":{"0":{"type":"branch","line":45,"loc":{"start":{"line":45,"column":29},"end":{"line":51,"column":2}},"locations":[{"start":{"line":45,"column":29},"end":{"line":51,"column":2}}]},"1":{"type":"branch","line":48,"loc":{"start":{"line":48,"column":9},"end":{"line":50,"column":4}},"locations":[{"start":{"line":48,"column":9},"end":{"line":50,"column":4}}]}},"b":{"0":[11],"1":[11]},"fnMap":{"0":{"name":"WindowManager","decl":{"start":{"line":45,"column":29},"end":{"line":51,"column":2}},"loc":{"start":{"line":45,"column":29},"end":{"line":51,"column":2}},"line":45}},"f":{"0":11}} +,"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/utils/dependency-tokens.ts": {"path":"/Users/traeop/Documents/projects/npm/electron-modular/src/@core/utils/dependency-tokens.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":3}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":75}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":79}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":51}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":29}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":18}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":3}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":73}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":28}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":51}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":66}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":75}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":21}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":50}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":22}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":3}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":69}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":54}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":5}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":44}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":16}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":2}}},"s":{"0":1,"15":1,"41":1,"42":54,"43":54,"44":2,"45":2,"47":52,"48":40,"49":54,"50":54,"51":54,"53":54,"54":37,"55":37,"56":37,"58":15,"59":20,"60":15,"62":15,"63":15,"64":15},"branchMap":{"0":{"type":"branch","line":42,"loc":{"start":{"line":42,"column":35},"end":{"line":65,"column":2}},"locations":[{"start":{"line":42,"column":35},"end":{"line":65,"column":2}}]},"1":{"type":"branch","line":44,"loc":{"start":{"line":44,"column":28},"end":{"line":46,"column":3}},"locations":[{"start":{"line":44,"column":28},"end":{"line":46,"column":3}}]},"2":{"type":"branch","line":46,"loc":{"start":{"line":46,"column":2},"end":{"line":49,"column":28}},"locations":[{"start":{"line":46,"column":2},"end":{"line":49,"column":28}}]},"3":{"type":"branch","line":46,"loc":{"start":{"line":46,"column":2},"end":{"line":48,"column":73}},"locations":[{"start":{"line":46,"column":2},"end":{"line":48,"column":73}}]},"4":{"type":"branch","line":48,"loc":{"start":{"line":48,"column":69},"end":{"line":49,"column":28}},"locations":[{"start":{"line":48,"column":69},"end":{"line":49,"column":28}}]},"5":{"type":"branch","line":54,"loc":{"start":{"line":54,"column":20},"end":{"line":57,"column":3}},"locations":[{"start":{"line":54,"column":20},"end":{"line":57,"column":3}}]},"6":{"type":"branch","line":57,"loc":{"start":{"line":57,"column":2},"end":{"line":65,"column":2}},"locations":[{"start":{"line":57,"column":2},"end":{"line":65,"column":2}}]},"7":{"type":"branch","line":59,"loc":{"start":{"line":59,"column":54},"end":{"line":61,"column":3}},"locations":[{"start":{"line":59,"column":54},"end":{"line":61,"column":3}}]},"8":{"type":"branch","line":60,"loc":{"start":{"line":60,"column":31},"end":{"line":60,"column":54}},"locations":[{"start":{"line":60,"column":31},"end":{"line":60,"column":54}}]}},"b":{"0":[54],"1":[2],"2":[53],"3":[52],"4":[40],"5":[37],"6":[15],"7":[20],"8":[14]},"fnMap":{"0":{"name":"getDependencyTokens","decl":{"start":{"line":42,"column":35},"end":{"line":65,"column":2}},"loc":{"start":{"line":42,"column":35},"end":{"line":65,"column":2}},"line":42}},"f":{"0":54}} } diff --git a/coverage/index.html b/coverage/index.html index 7575fc6..13f8c1c 100644 --- a/coverage/index.html +++ b/coverage/index.html @@ -23,30 +23,30 @@

All files

- 98.47% + 97.94% Statements - 452/459 + 523/534
- 96.35% + 94.44% Branches - 132/137 + 153/162
100% Functions - 36/36 + 39/39
- 98.47% + 97.94% Lines - 452/459 + 523/534
@@ -100,8 +100,8 @@

All files

99.56% 230/231 - 98.41% - 62/63 + 98.43% + 63/64 100% 17/17 99.56% @@ -110,17 +110,17 @@

All files

src/@core/bootstrap - +
- 95.71% - 134/140 - 90.9% - 40/44 - 100% - 10/10 - 95.71% - 134/140 + 95.34% + 205/215 + 88.05% + 59/67 + 100% + 13/13 + 95.34% + 205/215 @@ -161,7 +161,7 @@

All files

100% 22/22 100% - 8/8 + 9/9 100% 1/1 100% @@ -176,7 +176,7 @@

All files

+ + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/@core/bootstrap/register-providers.ts.html b/coverage/lcov-report/src/@core/bootstrap/register-providers.ts.html index 3bef28d..739eedb 100644 --- a/coverage/lcov-report/src/@core/bootstrap/register-providers.ts.html +++ b/coverage/lcov-report/src/@core/bootstrap/register-providers.ts.html @@ -98,7 +98,56 @@

All files / src/@core 33 34 35 -361x +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +661x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +        @@ -111,19 +160,30 @@

All files / src/@core   9x   +  +  +  +  +  +  +  +  +  +  +  1x -36x -36x -36x -36x +44x +44x +44x +44x 2x 2x   -36x -16x -7x -7x -7x +44x +18x +9x +9x +9x   12x 6x @@ -132,12 +192,31 @@

All files / src/@core   3x 3x -31x - 
import type { Constructor } from "../types/constructor.js";
+39x
+ 
/**
+ * @fileoverview Provider registration logic.
+ *
+ * Handles registration of all provider types:
+ * - Class providers (simple constructors)
+ * - Factory providers (useFactory)
+ * - Value providers (useValue)
+ * - Class providers with custom tokens (useClass)
+ * - Existing providers (useExisting)
+ *
+ * @module @core/bootstrap/register-providers
+ */
+ 
+import type { Constructor } from "../types/constructor.js";
 import type { RgModuleMetadata } from "../types/module-metadata.js";
 import { InvalidProviderError } from "../errors/index.js";
 import { container } from "../container.js";
  
+/**
+ * Type guard to check if a provider is a provider object (not a simple class).
+ *
+ * @param provider - Provider to check
+ * @returns true if provider is an object with a 'provide' property
+ */
 const isProviderObject = (
   provider: unknown,
 ): provider is { provide: unknown } => {
@@ -146,6 +225,17 @@ 

All files / src/@core ); };   +/** + * Registers all providers defined in a module's metadata. + * + * Handles two provider formats: + * 1. Simple class constructors - registered with the class as the token + * 2. Provider objects - registered with custom token and configuration + * + * @param moduleClass - The module class owning these providers + * @param metadata - Module metadata containing providers array + * @throws {InvalidProviderError} If a provider is neither a function nor a valid provider object + */ export const registerProviders = async ( moduleClass: Constructor, metadata: RgModuleMetadata, @@ -175,7 +265,7 @@

All files / src/@core + + + + + + \ No newline at end of file diff --git a/coverage/src/@core/bootstrap/register-providers.ts.html b/coverage/src/@core/bootstrap/register-providers.ts.html index fceee53..f63b099 100644 --- a/coverage/src/@core/bootstrap/register-providers.ts.html +++ b/coverage/src/@core/bootstrap/register-providers.ts.html @@ -98,7 +98,56 @@

All files / src/@core 33 34 35 -361x +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +661x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +        @@ -111,19 +160,30 @@

All files / src/@core   9x   +  +  +  +  +  +  +  +  +  +  +  1x -36x -36x -36x -36x +44x +44x +44x +44x 2x 2x   -36x -16x -7x -7x -7x +44x +18x +9x +9x +9x   12x 6x @@ -132,12 +192,31 @@

All files / src/@core   3x 3x -31x - 
import type { Constructor } from "../types/constructor.js";
+39x
+ 
/**
+ * @fileoverview Provider registration logic.
+ *
+ * Handles registration of all provider types:
+ * - Class providers (simple constructors)
+ * - Factory providers (useFactory)
+ * - Value providers (useValue)
+ * - Class providers with custom tokens (useClass)
+ * - Existing providers (useExisting)
+ *
+ * @module @core/bootstrap/register-providers
+ */
+ 
+import type { Constructor } from "../types/constructor.js";
 import type { RgModuleMetadata } from "../types/module-metadata.js";
 import { InvalidProviderError } from "../errors/index.js";
 import { container } from "../container.js";
  
+/**
+ * Type guard to check if a provider is a provider object (not a simple class).
+ *
+ * @param provider - Provider to check
+ * @returns true if provider is an object with a 'provide' property
+ */
 const isProviderObject = (
   provider: unknown,
 ): provider is { provide: unknown } => {
@@ -146,6 +225,17 @@ 

All files / src/@core ); };   +/** + * Registers all providers defined in a module's metadata. + * + * Handles two provider formats: + * 1. Simple class constructors - registered with the class as the token + * 2. Provider objects - registered with custom token and configuration + * + * @param moduleClass - The module class owning these providers + * @param metadata - Module metadata containing providers array + * @throws {InvalidProviderError} If a provider is neither a function nor a valid provider object + */ export const registerProviders = async ( moduleClass: Constructor, metadata: RgModuleMetadata, @@ -175,7 +265,7 @@

All files / src/@core + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/@core/container.ts.html b/coverage/lcov-report/src/@core/container.ts.html index 95b5557..4a9f4d5 100644 --- a/coverage/lcov-report/src/@core/container.ts.html +++ b/coverage/lcov-report/src/@core/container.ts.html @@ -605,19 +605,19 @@

All files / src/@core    40x -91x -91x -91x -91x +93x +93x +93x +93x 3x 3x   -88x -88x -91x -91x -91x -91x +90x +90x +93x +93x +93x +93x       @@ -626,11 +626,11 @@

All files / src/@core    40x -36x -36x -36x -36x -36x +38x +38x +38x +38x +38x       @@ -1495,7 +1495,7 @@

All files / src/@core Code coverage generated by istanbul - at 2026-02-14T20:35:45.526Z + at 2026-02-14T22:18:43.807Z

+ + + + + + \ No newline at end of file diff --git a/coverage/src/@core/container.ts.html b/coverage/src/@core/container.ts.html index 9c5c7f5..29b0761 100644 --- a/coverage/src/@core/container.ts.html +++ b/coverage/src/@core/container.ts.html @@ -605,19 +605,19 @@

All files / src/@core    40x -91x -91x -91x -91x +93x +93x +93x +93x 3x 3x   -88x -88x -91x -91x -91x -91x +90x +90x +93x +93x +93x +93x       @@ -626,11 +626,11 @@

All files / src/@core    40x -36x -36x -36x -36x -36x +38x +38x +38x +38x +38x       @@ -1495,7 +1495,7 @@

All files / src/@core Code coverage generated by istanbul - at 2026-02-14T20:35:45.466Z + at 2026-02-14T22:18:43.763Z