@_traeop_/electron-modular 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +675 -0
  3. package/dist/@core/bootstrap/bootstrap.d.ts +3 -0
  4. package/dist/@core/bootstrap/bootstrap.d.ts.map +1 -0
  5. package/dist/@core/bootstrap/bootstrap.js +21 -0
  6. package/dist/@core/bootstrap/bootstrap.js.map +1 -0
  7. package/dist/@core/bootstrap/initialize-ipc/handlers.d.ts +4 -0
  8. package/dist/@core/bootstrap/initialize-ipc/handlers.d.ts.map +1 -0
  9. package/dist/@core/bootstrap/initialize-ipc/handlers.js +48 -0
  10. package/dist/@core/bootstrap/initialize-ipc/handlers.js.map +1 -0
  11. package/dist/@core/bootstrap/initialize-ipc/window-creator.d.ts +4 -0
  12. package/dist/@core/bootstrap/initialize-ipc/window-creator.d.ts.map +1 -0
  13. package/dist/@core/bootstrap/initialize-ipc/window-creator.js +29 -0
  14. package/dist/@core/bootstrap/initialize-ipc/window-creator.js.map +1 -0
  15. package/dist/@core/bootstrap/initialize-ipc/window-event-listeners.d.ts +4 -0
  16. package/dist/@core/bootstrap/initialize-ipc/window-event-listeners.d.ts.map +1 -0
  17. package/dist/@core/bootstrap/initialize-ipc/window-event-listeners.js +91 -0
  18. package/dist/@core/bootstrap/initialize-ipc/window-event-listeners.js.map +1 -0
  19. package/dist/@core/bootstrap/initialize-ipc/window-instance-creator.d.ts +4 -0
  20. package/dist/@core/bootstrap/initialize-ipc/window-instance-creator.d.ts.map +1 -0
  21. package/dist/@core/bootstrap/initialize-ipc/window-instance-creator.js +11 -0
  22. package/dist/@core/bootstrap/initialize-ipc/window-instance-creator.js.map +1 -0
  23. package/dist/@core/bootstrap/initialize-module.d.ts +4 -0
  24. package/dist/@core/bootstrap/initialize-module.d.ts.map +1 -0
  25. package/dist/@core/bootstrap/initialize-module.js +19 -0
  26. package/dist/@core/bootstrap/initialize-module.js.map +1 -0
  27. package/dist/@core/bootstrap/instantiate-module.d.ts +3 -0
  28. package/dist/@core/bootstrap/instantiate-module.d.ts.map +1 -0
  29. package/dist/@core/bootstrap/instantiate-module.js +10 -0
  30. package/dist/@core/bootstrap/instantiate-module.js.map +1 -0
  31. package/dist/@core/bootstrap/register-imports.d.ts +3 -0
  32. package/dist/@core/bootstrap/register-imports.d.ts.map +1 -0
  33. package/dist/@core/bootstrap/register-imports.js +13 -0
  34. package/dist/@core/bootstrap/register-imports.js.map +1 -0
  35. package/dist/@core/bootstrap/register-ipc-handlers.d.ts +4 -0
  36. package/dist/@core/bootstrap/register-ipc-handlers.d.ts.map +1 -0
  37. package/dist/@core/bootstrap/register-ipc-handlers.js +10 -0
  38. package/dist/@core/bootstrap/register-ipc-handlers.js.map +1 -0
  39. package/dist/@core/bootstrap/register-providers.d.ts +4 -0
  40. package/dist/@core/bootstrap/register-providers.d.ts.map +1 -0
  41. package/dist/@core/bootstrap/register-providers.js +22 -0
  42. package/dist/@core/bootstrap/register-providers.js.map +1 -0
  43. package/dist/@core/bootstrap/register-windows.d.ts +4 -0
  44. package/dist/@core/bootstrap/register-windows.d.ts.map +1 -0
  45. package/dist/@core/bootstrap/register-windows.js +16 -0
  46. package/dist/@core/bootstrap/register-windows.js.map +1 -0
  47. package/dist/@core/bootstrap/settings.d.ts +12 -0
  48. package/dist/@core/bootstrap/settings.d.ts.map +1 -0
  49. package/dist/@core/bootstrap/settings.js +14 -0
  50. package/dist/@core/bootstrap/settings.js.map +1 -0
  51. package/dist/@core/container.d.ts +32 -0
  52. package/dist/@core/container.d.ts.map +1 -0
  53. package/dist/@core/container.js +166 -0
  54. package/dist/@core/container.js.map +1 -0
  55. package/dist/@core/control-window/cache.d.ts +2 -0
  56. package/dist/@core/control-window/cache.d.ts.map +1 -0
  57. package/dist/@core/control-window/cache.js +2 -0
  58. package/dist/@core/control-window/cache.js.map +1 -0
  59. package/dist/@core/control-window/create.d.ts +4 -0
  60. package/dist/@core/control-window/create.d.ts.map +1 -0
  61. package/dist/@core/control-window/create.js +82 -0
  62. package/dist/@core/control-window/create.js.map +1 -0
  63. package/dist/@core/control-window/destroy.d.ts +2 -0
  64. package/dist/@core/control-window/destroy.d.ts.map +1 -0
  65. package/dist/@core/control-window/destroy.js +10 -0
  66. package/dist/@core/control-window/destroy.js.map +1 -0
  67. package/dist/@core/control-window/receive.d.ts +3 -0
  68. package/dist/@core/control-window/receive.d.ts.map +1 -0
  69. package/dist/@core/control-window/receive.js +9 -0
  70. package/dist/@core/control-window/receive.js.map +1 -0
  71. package/dist/@core/control-window/types.d.ts +15 -0
  72. package/dist/@core/control-window/types.d.ts.map +1 -0
  73. package/dist/@core/control-window/types.js +2 -0
  74. package/dist/@core/control-window/types.js.map +1 -0
  75. package/dist/@core/decorators/inject.d.ts +7 -0
  76. package/dist/@core/decorators/inject.d.ts.map +1 -0
  77. package/dist/@core/decorators/inject.js +16 -0
  78. package/dist/@core/decorators/inject.js.map +1 -0
  79. package/dist/@core/decorators/injectable.d.ts +3 -0
  80. package/dist/@core/decorators/injectable.d.ts.map +1 -0
  81. package/dist/@core/decorators/injectable.js +7 -0
  82. package/dist/@core/decorators/injectable.js.map +1 -0
  83. package/dist/@core/decorators/ipc-handler.d.ts +3 -0
  84. package/dist/@core/decorators/ipc-handler.d.ts.map +1 -0
  85. package/dist/@core/decorators/ipc-handler.js +7 -0
  86. package/dist/@core/decorators/ipc-handler.js.map +1 -0
  87. package/dist/@core/decorators/rg-module.d.ts +4 -0
  88. package/dist/@core/decorators/rg-module.d.ts.map +1 -0
  89. package/dist/@core/decorators/rg-module.js +7 -0
  90. package/dist/@core/decorators/rg-module.js.map +1 -0
  91. package/dist/@core/decorators/window-manager.d.ts +4 -0
  92. package/dist/@core/decorators/window-manager.d.ts.map +1 -0
  93. package/dist/@core/decorators/window-manager.js +7 -0
  94. package/dist/@core/decorators/window-manager.js.map +1 -0
  95. package/dist/@core/errors/index.d.ts +16 -0
  96. package/dist/@core/errors/index.d.ts.map +1 -0
  97. package/dist/@core/errors/index.js +31 -0
  98. package/dist/@core/errors/index.js.map +1 -0
  99. package/dist/@core/types/constructor.d.ts +2 -0
  100. package/dist/@core/types/constructor.d.ts.map +1 -0
  101. package/dist/@core/types/constructor.js +2 -0
  102. package/dist/@core/types/constructor.js.map +1 -0
  103. package/dist/@core/types/index.d.ts +8 -0
  104. package/dist/@core/types/index.d.ts.map +1 -0
  105. package/dist/@core/types/index.js +2 -0
  106. package/dist/@core/types/index.js.map +1 -0
  107. package/dist/@core/types/ipc-handler.d.ts +8 -0
  108. package/dist/@core/types/ipc-handler.d.ts.map +1 -0
  109. package/dist/@core/types/ipc-handler.js +2 -0
  110. package/dist/@core/types/ipc-handler.js.map +1 -0
  111. package/dist/@core/types/module-metadata.d.ts +11 -0
  112. package/dist/@core/types/module-metadata.d.ts.map +1 -0
  113. package/dist/@core/types/module-metadata.js +2 -0
  114. package/dist/@core/types/module-metadata.js.map +1 -0
  115. package/dist/@core/types/provider.d.ts +22 -0
  116. package/dist/@core/types/provider.d.ts.map +1 -0
  117. package/dist/@core/types/provider.js +2 -0
  118. package/dist/@core/types/provider.js.map +1 -0
  119. package/dist/@core/types/window-factory.d.ts +7 -0
  120. package/dist/@core/types/window-factory.d.ts.map +1 -0
  121. package/dist/@core/types/window-factory.js +2 -0
  122. package/dist/@core/types/window-factory.js.map +1 -0
  123. package/dist/@core/types/window-manager.d.ts +11 -0
  124. package/dist/@core/types/window-manager.d.ts.map +1 -0
  125. package/dist/@core/types/window-manager.js +2 -0
  126. package/dist/@core/types/window-manager.js.map +1 -0
  127. package/dist/@core/types/window-metadata.d.ts +7 -0
  128. package/dist/@core/types/window-metadata.d.ts.map +1 -0
  129. package/dist/@core/types/window-metadata.js +2 -0
  130. package/dist/@core/types/window-metadata.js.map +1 -0
  131. package/dist/@core/utils/dependency-tokens.d.ts +5 -0
  132. package/dist/@core/utils/dependency-tokens.d.ts.map +1 -0
  133. package/dist/@core/utils/dependency-tokens.js +24 -0
  134. package/dist/@core/utils/dependency-tokens.js.map +1 -0
  135. package/dist/config.d.ts +5 -0
  136. package/dist/config.d.ts.map +1 -0
  137. package/dist/config.js +5 -0
  138. package/dist/config.js.map +1 -0
  139. package/dist/index.d.ts +27 -0
  140. package/dist/index.d.ts.map +1 -0
  141. package/dist/index.js +35 -0
  142. package/dist/index.js.map +1 -0
  143. package/package.json +53 -0
@@ -0,0 +1,166 @@
1
+ import { getDependencyTokens } from "./utils/dependency-tokens.js";
2
+ import { ModuleNotRegisteredError, ProviderNotFoundError, } from "./errors/index.js";
3
+ export class Container {
4
+ modules = new Map();
5
+ moduleMetadata = new Map();
6
+ instances = new Map();
7
+ resolutionCache = new Map();
8
+ addModule(moduleClass, metadata) {
9
+ if (this.modules.has(moduleClass)) {
10
+ return false;
11
+ }
12
+ this.modules.set(moduleClass, {
13
+ providers: new Map(),
14
+ exports: new Set(metadata.exports ?? []),
15
+ });
16
+ return true;
17
+ }
18
+ setModuleMetadata(moduleClass, metadata) {
19
+ this.moduleMetadata.set(moduleClass, metadata);
20
+ }
21
+ hasModule(moduleClass) {
22
+ return this.modules.has(moduleClass);
23
+ }
24
+ getCacheKey(moduleClass, token) {
25
+ const tokenKey = typeof token === "string" || typeof token === "symbol"
26
+ ? String(token)
27
+ : token.name;
28
+ return `${moduleClass.name}:${tokenKey}`;
29
+ }
30
+ addProvider(moduleClass, provider, instance) {
31
+ const moduleData = this.modules.get(moduleClass);
32
+ if (!moduleData) {
33
+ throw new ModuleNotRegisteredError(moduleClass.name);
34
+ }
35
+ moduleData.providers.set(provider, instance ?? provider);
36
+ }
37
+ getProvider(moduleClass, token) {
38
+ const moduleData = this.modules.get(moduleClass);
39
+ if (!moduleData) {
40
+ return undefined;
41
+ }
42
+ return moduleData.providers.get(token);
43
+ }
44
+ getModuleExports(moduleClass) {
45
+ const moduleData = this.modules.get(moduleClass);
46
+ return moduleData?.exports ?? new Set();
47
+ }
48
+ getModuleMetadata(moduleClass) {
49
+ return this.moduleMetadata.get(moduleClass);
50
+ }
51
+ registerInstance(token, instance) {
52
+ this.instances.set(token, instance);
53
+ }
54
+ async resolve(moduleClass, token) {
55
+ const cacheKey = this.getCacheKey(moduleClass, token);
56
+ if (this.resolutionCache.has(cacheKey)) {
57
+ return this.resolutionCache.get(cacheKey);
58
+ }
59
+ if (this.instances.has(token)) {
60
+ const instance = this.instances.get(token);
61
+ this.resolutionCache.set(cacheKey, instance);
62
+ return instance;
63
+ }
64
+ const provider = this.getProvider(moduleClass, token);
65
+ if (!provider) {
66
+ const resolvedFromImports = await this.resolveFromImports(moduleClass, token);
67
+ if (resolvedFromImports !== undefined) {
68
+ this.resolutionCache.set(cacheKey, resolvedFromImports);
69
+ return resolvedFromImports;
70
+ }
71
+ if (token !== moduleClass) {
72
+ throw new ProviderNotFoundError(String(token), moduleClass.name);
73
+ }
74
+ return undefined;
75
+ }
76
+ const instance = await this.instantiateProvider(moduleClass, token, provider);
77
+ if (instance !== undefined) {
78
+ this.resolutionCache.set(cacheKey, instance);
79
+ }
80
+ return instance;
81
+ }
82
+ async resolveFromImports(moduleClass, token) {
83
+ const moduleMetadata = this.getModuleMetadata(moduleClass);
84
+ if (!moduleMetadata?.imports) {
85
+ return undefined;
86
+ }
87
+ for (const importedModuleClass of moduleMetadata.imports) {
88
+ const exportedProviders = this.getModuleExports(importedModuleClass);
89
+ if (exportedProviders.has(token)) {
90
+ const exportedProvider = this.getProvider(importedModuleClass, token);
91
+ if (exportedProvider !== undefined) {
92
+ return this.resolve(importedModuleClass, token);
93
+ }
94
+ }
95
+ }
96
+ return undefined;
97
+ }
98
+ async instantiateProvider(moduleClass, token, provider) {
99
+ if (this.isFactoryProvider(provider)) {
100
+ return this.instantiateFactoryProvider(moduleClass, token, provider);
101
+ }
102
+ if (this.isClassProvider(provider)) {
103
+ return this.instantiateClassProvider(moduleClass, token, provider);
104
+ }
105
+ if (this.isValueProvider(provider)) {
106
+ this.instances.set(token, provider.useValue);
107
+ return provider.useValue;
108
+ }
109
+ if (this.isExistingProvider(provider)) {
110
+ const instance = await this.resolve(moduleClass, provider.useExisting);
111
+ if (instance !== undefined) {
112
+ this.instances.set(token, instance);
113
+ }
114
+ return instance;
115
+ }
116
+ if (typeof provider === "function") {
117
+ return this.instantiateClassConstructor(moduleClass, token, provider);
118
+ }
119
+ return provider;
120
+ }
121
+ async instantiateFactoryProvider(moduleClass, token, provider) {
122
+ const dependencies = provider.inject ?? [];
123
+ const resolvedDependencies = await this.resolveDependencies(moduleClass, dependencies);
124
+ const instance = provider.useFactory(...resolvedDependencies);
125
+ this.instances.set(token, instance);
126
+ return instance;
127
+ }
128
+ async instantiateClassProvider(moduleClass, token, provider) {
129
+ const dependencies = provider.inject ?? getDependencyTokens(provider.useClass);
130
+ const resolvedDependencies = await this.resolveDependencies(moduleClass, dependencies);
131
+ const instance = new provider.useClass(...resolvedDependencies);
132
+ this.instances.set(token, instance);
133
+ return instance;
134
+ }
135
+ async instantiateClassConstructor(moduleClass, token, providerClass) {
136
+ const dependencies = getDependencyTokens(providerClass);
137
+ const resolvedDependencies = await this.resolveDependencies(moduleClass, dependencies);
138
+ const instance = new providerClass(...resolvedDependencies);
139
+ this.instances.set(token, instance);
140
+ return instance;
141
+ }
142
+ async resolveDependencies(moduleClass, dependencies) {
143
+ return Promise.all(dependencies.map((dep) => this.resolve(moduleClass, dep)));
144
+ }
145
+ isProviderObject(provider) {
146
+ return (typeof provider === "object" && provider !== null && "provide" in provider);
147
+ }
148
+ isFactoryProvider(provider) {
149
+ return (this.isProviderObject(provider) &&
150
+ "useFactory" in provider &&
151
+ typeof provider.useFactory === "function");
152
+ }
153
+ isClassProvider(provider) {
154
+ return (this.isProviderObject(provider) &&
155
+ "useClass" in provider &&
156
+ typeof provider.useClass === "function");
157
+ }
158
+ isValueProvider(provider) {
159
+ return this.isProviderObject(provider) && "useValue" in provider;
160
+ }
161
+ isExistingProvider(provider) {
162
+ return this.isProviderObject(provider) && "useExisting" in provider;
163
+ }
164
+ }
165
+ export const container = new Container();
166
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/@core/container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const cacheWindows: Map<string, Electron.CrossProcessExports.BrowserWindow>;
2
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/@core/control-window/cache.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yDAAgD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const cacheWindows = new Map();
2
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/@core/control-window/cache.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAsC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BrowserWindow } from "electron";
2
+ import type { TParamsCreateWindow } from "./types.js";
3
+ export declare const createWindow: <N extends string>({ hash, options, isCache, loadURL, }: TParamsCreateWindow<N>) => BrowserWindow;
4
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/@core/control-window/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,UAAU,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAuDtD,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,sCAK5C,mBAAmB,CAAC,CAAC,CAAC,KAAG,aA2D3B,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { BrowserWindow, session, app } from "electron";
2
+ import path from "node:path";
3
+ import { cacheWindows } from "./cache.js";
4
+ import { getWindow } from "./receive.js";
5
+ import { getSettings } from "../bootstrap/settings.js";
6
+ const createContentSecurityPolicy = (baseRestApi, isDev) => {
7
+ const csp = `
8
+ default-src 'self';
9
+ connect-src 'self' ${baseRestApi};
10
+ img-src * data:;
11
+ style-src 'self' 'unsafe-inline';
12
+ script-src 'self' ${isDev ? "'unsafe-inline'" : ""};
13
+ `
14
+ .replace(/\s{2,}/g, " ")
15
+ .trim();
16
+ return csp;
17
+ };
18
+ const setupContentSecurityPolicy = (baseRestApi, isDev) => {
19
+ const csp = createContentSecurityPolicy(baseRestApi, isDev);
20
+ session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
21
+ callback({
22
+ responseHeaders: {
23
+ ...details.responseHeaders,
24
+ "Content-Security-Policy": [csp],
25
+ },
26
+ });
27
+ });
28
+ };
29
+ const getAppPaths = (settings, isDev) => {
30
+ return {
31
+ ui: path.join(app.getAppPath(), `/${settings.folders.distRenderer}/index.html`),
32
+ preload: path.join(app.getAppPath(), isDev ? "." : "..", `/${settings.folders.distMain}/preload.cjs`),
33
+ };
34
+ };
35
+ export const createWindow = ({ hash, options, isCache, loadURL, }) => {
36
+ const settings = getSettings();
37
+ const isDev = process.env.NODE_ENV === "development";
38
+ const { ui: uiPath, preload: preloadPath } = getAppPaths(settings, isDev);
39
+ if (!settings.baseRestApi) {
40
+ console.warn('Warning: You have to add an environment variable called "process.env.BASE_REST_API"!');
41
+ }
42
+ if (!settings.localhostPort) {
43
+ console.warn('Warning: You have to add an environment variable called "process.env.LOCALHOST_ELECTRON_SERVER_PORT"!');
44
+ }
45
+ if (hash && isCache) {
46
+ const existingWindow = getWindow(hash);
47
+ if (existingWindow) {
48
+ existingWindow.show();
49
+ return existingWindow;
50
+ }
51
+ }
52
+ const newWindow = new BrowserWindow({
53
+ ...options,
54
+ webPreferences: {
55
+ preload: preloadPath,
56
+ contextIsolation: true,
57
+ nodeIntegration: false,
58
+ ...options?.webPreferences,
59
+ },
60
+ });
61
+ if (isCache && !loadURL) {
62
+ setupContentSecurityPolicy(settings.baseRestApi, isDev);
63
+ }
64
+ if (loadURL) {
65
+ newWindow.loadURL(loadURL);
66
+ }
67
+ else if (isDev) {
68
+ newWindow.loadURL(`http://localhost:${settings.localhostPort}${hash ? `#${hash}` : ""}`);
69
+ }
70
+ else if (hash) {
71
+ newWindow.loadFile(uiPath, { hash });
72
+ }
73
+ if (hash && isCache) {
74
+ cacheWindows.set(hash, newWindow);
75
+ newWindow.on("close", (event) => {
76
+ event.preventDefault();
77
+ newWindow.hide();
78
+ });
79
+ }
80
+ return newWindow;
81
+ };
82
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/@core/control-window/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const destroyWindows: () => void;
2
+ //# sourceMappingURL=destroy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy.d.ts","sourceRoot":"","sources":["../../../src/@core/control-window/destroy.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,QAAO,IAQjC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { BrowserWindow } from "electron";
2
+ export const destroyWindows = () => {
3
+ const windows = BrowserWindow.getAllWindows();
4
+ for (const window of windows) {
5
+ if (!window.isDestroyed()) {
6
+ window.destroy();
7
+ }
8
+ }
9
+ };
10
+ //# sourceMappingURL=destroy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../../src/@core/control-window/destroy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAS,EAAE;IACvC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YAC1B,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BrowserWindow } from "electron";
2
+ export declare const getWindow: <N extends string>(name: N) => BrowserWindow | undefined;
3
+ //# sourceMappingURL=receive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receive.d.ts","sourceRoot":"","sources":["../../../src/@core/control-window/receive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EACxC,MAAM,CAAC,KACN,aAAa,GAAG,SAQlB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { cacheWindows } from "./cache.js";
2
+ export const getWindow = (name) => {
3
+ const win = cacheWindows.get(name);
4
+ if (!win || typeof win === "boolean" || win.isDestroyed()) {
5
+ return undefined;
6
+ }
7
+ return win;
8
+ };
9
+ //# sourceMappingURL=receive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receive.js","sourceRoot":"","sources":["../../../src/@core/control-window/receive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAO,EACoB,EAAE;IAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { BrowserWindow, type BrowserWindowConstructorOptions } from "electron";
2
+ export type TParamsRoute = {
3
+ [key: string]: string;
4
+ };
5
+ export type TParamsCreateWindow<N = string> = {
6
+ hash?: N;
7
+ isCache?: boolean;
8
+ paramsRoute?: TParamsRoute;
9
+ options?: BrowserWindowConstructorOptions;
10
+ loadURL?: string;
11
+ };
12
+ export type TCache = {
13
+ [key in string]: BrowserWindow;
14
+ };
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/@core/control-window/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,MAAM,IAAI;IAC5C,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,+BAA+B,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;KAClB,GAAG,IAAI,MAAM,GAAG,aAAa;CAC/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { BrowserWindow } from "electron";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/@core/control-window/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ import "reflect-metadata/lite";
2
+ import type { TProviderToken } from "../types/provider.js";
3
+ type TInjectTokensMetadata = Record<number, TProviderToken>;
4
+ export declare const Inject: (token: TProviderToken) => ParameterDecorator;
5
+ export declare const getInjectedTokens: (target: Function) => TInjectTokensMetadata;
6
+ export {};
7
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../src/@core/decorators/inject.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAI5D,eAAO,MAAM,MAAM,GAAI,OAAO,cAAc,KAAG,kBAa9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,QAAQ,KAAG,qBAEpD,CAAC"}
@@ -0,0 +1,16 @@
1
+ import "reflect-metadata/lite";
2
+ const INJECT_TOKENS_METADATA_KEY = "RgInjectTokens";
3
+ export const Inject = (token) => {
4
+ return (target, propertyKey, parameterIndex) => {
5
+ if (propertyKey !== undefined) {
6
+ return;
7
+ }
8
+ const existingTokens = Reflect.getMetadata(INJECT_TOKENS_METADATA_KEY, target) ?? {};
9
+ existingTokens[parameterIndex] = token;
10
+ Reflect.defineMetadata(INJECT_TOKENS_METADATA_KEY, existingTokens, target);
11
+ };
12
+ };
13
+ export const getInjectedTokens = (target) => {
14
+ return Reflect.getMetadata(INJECT_TOKENS_METADATA_KEY, target) ?? {};
15
+ };
16
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/@core/decorators/inject.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAK/B,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAEpD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAqB,EAAsB,EAAE;IAClE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;QAC7C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAClB,OAAO,CAAC,WAAW,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAEhE,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QAEvC,OAAO,CAAC,cAAc,CAAC,0BAA0B,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAgB,EAAyB,EAAE;IAC3E,OAAO,OAAO,CAAC,WAAW,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import "reflect-metadata/lite";
2
+ export declare const Injectable: () => ClassDecorator;
3
+ //# sourceMappingURL=injectable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectable.d.ts","sourceRoot":"","sources":["../../../src/@core/decorators/injectable.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,eAAO,MAAM,UAAU,QAAO,cAI7B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import "reflect-metadata/lite";
2
+ export const Injectable = () => {
3
+ return (target) => {
4
+ Reflect.defineMetadata("Injectable", true, target);
5
+ };
6
+ };
7
+ //# sourceMappingURL=injectable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../src/@core/decorators/injectable.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAmB,EAAE;IAC7C,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import "reflect-metadata/lite";
2
+ export declare const IpcHandler: () => ClassDecorator;
3
+ //# sourceMappingURL=ipc-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc-handler.d.ts","sourceRoot":"","sources":["../../../src/@core/decorators/ipc-handler.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,eAAO,MAAM,UAAU,QAAO,cAI7B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import "reflect-metadata/lite";
2
+ export const IpcHandler = () => {
3
+ return (target) => {
4
+ Reflect.defineMetadata("IpcHandler", true, target);
5
+ };
6
+ };
7
+ //# sourceMappingURL=ipc-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc-handler.js","sourceRoot":"","sources":["../../../src/@core/decorators/ipc-handler.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAmB,EAAE;IAC7C,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import "reflect-metadata/lite";
2
+ import type { RgModuleMetadata } from "../types/module-metadata.js";
3
+ export declare const RgModule: (options: RgModuleMetadata) => ClassDecorator;
4
+ //# sourceMappingURL=rg-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rg-module.d.ts","sourceRoot":"","sources":["../../../src/@core/decorators/rg-module.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,eAAO,MAAM,QAAQ,GAAI,SAAS,gBAAgB,KAAG,cAIpD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import "reflect-metadata/lite";
2
+ export const RgModule = (options) => {
3
+ return (target) => {
4
+ Reflect.defineMetadata("RgModule", options, target);
5
+ };
6
+ };
7
+ //# sourceMappingURL=rg-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rg-module.js","sourceRoot":"","sources":["../../../src/@core/decorators/rg-module.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAG/B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAyB,EAAkB,EAAE;IACpE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import "reflect-metadata/lite";
2
+ import type { TParamsCreateWindow } from "../control-window/types.js";
3
+ export declare const WindowManager: <P extends string>(options: TParamsCreateWindow<P>) => ClassDecorator;
4
+ //# sourceMappingURL=window-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-manager.d.ts","sourceRoot":"","sources":["../../../src/@core/decorators/window-manager.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,EAC5C,SAAS,mBAAmB,CAAC,CAAC,CAAC,KAC9B,cAIF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import "reflect-metadata/lite";
2
+ export const WindowManager = (options) => {
3
+ return (target) => {
4
+ Reflect.defineMetadata("WindowManager", options, target);
5
+ };
6
+ };
7
+ //# sourceMappingURL=window-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-manager.js","sourceRoot":"","sources":["../../../src/@core/decorators/window-manager.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAG/B,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAA+B,EACf,EAAE;IAClB,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare class ModuleNotRegisteredError extends Error {
2
+ constructor(moduleName: string);
3
+ }
4
+ export declare class ProviderNotFoundError extends Error {
5
+ constructor(token: string, moduleName: string);
6
+ }
7
+ export declare class ModuleDecoratorMissingError extends Error {
8
+ constructor(moduleName: string);
9
+ }
10
+ export declare class InvalidProviderError extends Error {
11
+ constructor(moduleName: string);
12
+ }
13
+ export declare class SettingsNotInitializedError extends Error {
14
+ constructor();
15
+ }
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/@core/errors/index.ts"],"names":[],"mappings":"AAAA,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAM9C;AAED,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,2BAA4B,SAAQ,KAAK;;CAKrD"}
@@ -0,0 +1,31 @@
1
+ export class ModuleNotRegisteredError extends Error {
2
+ constructor(moduleName) {
3
+ super(`Module "${moduleName}" is not registered in the container.`);
4
+ this.name = "ModuleNotRegisteredError";
5
+ }
6
+ }
7
+ export class ProviderNotFoundError extends Error {
8
+ constructor(token, moduleName) {
9
+ super(`Provider not found for token "${token}" in module "${moduleName}" or its imports.`);
10
+ this.name = "ProviderNotFoundError";
11
+ }
12
+ }
13
+ export class ModuleDecoratorMissingError extends Error {
14
+ constructor(moduleName) {
15
+ super(`Module ${moduleName} does not have the @RgModule decorator`);
16
+ this.name = "ModuleDecoratorMissingError";
17
+ }
18
+ }
19
+ export class InvalidProviderError extends Error {
20
+ constructor(moduleName) {
21
+ super(`Invalid provider definition registered in module ${moduleName}`);
22
+ this.name = "InvalidProviderError";
23
+ }
24
+ }
25
+ export class SettingsNotInitializedError extends Error {
26
+ constructor() {
27
+ super("App settings cache has not been initialized.");
28
+ this.name = "SettingsNotInitializedError";
29
+ }
30
+ }
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/@core/errors/index.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,UAAkB;QAC5B,KAAK,CAAC,WAAW,UAAU,uCAAuC,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,KAAa,EAAE,UAAkB;QAC3C,KAAK,CACH,iCAAiC,KAAK,gBAAgB,UAAU,mBAAmB,CACpF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,UAAkB;QAC5B,KAAK,CAAC,UAAU,UAAU,wCAAwC,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,UAAkB;QAC5B,KAAK,CAAC,oDAAoD,UAAU,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD;QACE,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export type Constructor<T = any> = new (...args: any[]) => T;
2
+ //# sourceMappingURL=constructor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructor.d.ts","sourceRoot":"","sources":["../../../src/@core/types/constructor.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constructor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructor.js","sourceRoot":"","sources":["../../../src/@core/types/constructor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export type { Constructor } from "./constructor.js";
2
+ export type { TIpcHandlerInterface, TParamOnInit } from "./ipc-handler.js";
3
+ export type { RgModuleMetadata } from "./module-metadata.js";
4
+ export type { TProviderToken, TClassProvider, TFactoryProvider, TValueProvider, TExistingProvider, TProvider, } from "./provider.js";
5
+ export type { TWindowFactory, TWindowCreate } from "./window-factory.js";
6
+ export type { WindowManagerOptions, TWindowManagerWithHandlers, } from "./window-manager.js";
7
+ export type { TMetadataWindow } from "./window-metadata.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/@core/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3E,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,YAAY,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzE,YAAY,EACV,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/@core/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { TWindowFactory } from "./window-factory.js";
2
+ export type TParamOnInit<N = string> = {
3
+ getWindow: (name?: N) => TWindowFactory;
4
+ };
5
+ export type TIpcHandlerInterface = {
6
+ onInit: (data: TParamOnInit) => void;
7
+ };
8
+ //# sourceMappingURL=ipc-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc-handler.d.ts","sourceRoot":"","sources":["../../../src/@core/types/ipc-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,MAAM,IAAI;IACrC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,cAAc,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CACtC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ipc-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc-handler.js","sourceRoot":"","sources":["../../../src/@core/types/ipc-handler.ts"],"names":[],"mappings":""}