@_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 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,YAA2B,EACZ,EAAE;IACjB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAE/C,CAAC;QAEd,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAElD,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CACV,0CAA0C,WAAW,CAAC,IAAI,6CAA6C,CACxG,CAAC;QACJ,CAAC;QAED,MAAM,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Constructor } from "../../types/constructor.js";
2
+ import type { RgModuleMetadata } from "../../types/module-metadata.js";
3
+ export declare const initializeIpcHandlers: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
4
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AA+DvE,eAAO,MAAM,qBAAqB,GAChC,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAiBd,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { container } from "../../container.js";
2
+ import { createWindowWithParams } from "./window-creator.js";
3
+ import { createWindowInstance } from "./window-instance-creator.js";
4
+ import { attachWindowEventListeners } from "./window-event-listeners.js";
5
+ const createWindowFactory = (moduleClass, windowMetadata) => {
6
+ if (!windowMetadata?.metadata?.options ||
7
+ !windowMetadata.metadata.hash ||
8
+ !windowMetadata.windowClass) {
9
+ return {
10
+ create: async () => undefined,
11
+ };
12
+ }
13
+ return {
14
+ create: async (params) => {
15
+ const browserWindow = createWindowWithParams(windowMetadata.metadata, params);
16
+ const windowInstance = await createWindowInstance(moduleClass, windowMetadata.windowClass);
17
+ if (browserWindow && windowInstance) {
18
+ attachWindowEventListeners(browserWindow, windowInstance);
19
+ return browserWindow;
20
+ }
21
+ return undefined;
22
+ },
23
+ };
24
+ };
25
+ const createGetWindowFunction = (moduleClass) => {
26
+ return (name) => {
27
+ if (!name) {
28
+ return {
29
+ create: async () => undefined,
30
+ };
31
+ }
32
+ const windowMetadata = container.getProvider(moduleClass, name);
33
+ return createWindowFactory(moduleClass, windowMetadata);
34
+ };
35
+ };
36
+ export const initializeIpcHandlers = async (moduleClass, metadata) => {
37
+ if (!metadata.ipc) {
38
+ return;
39
+ }
40
+ const getWindow = createGetWindowFunction(moduleClass);
41
+ for (const ipcClass of metadata.ipc) {
42
+ const ipcInstance = await container.resolve(moduleClass, ipcClass);
43
+ if (ipcInstance?.onInit) {
44
+ ipcInstance.onInit({ getWindow });
45
+ }
46
+ }
47
+ };
48
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/handlers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,MAAM,mBAAmB,GAAG,CAC1B,WAAwB,EACxB,cAA2C,EAC3B,EAAE;IAClB,IACE,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO;QAClC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI;QAC7B,CAAC,cAAc,CAAC,WAAW,EAC3B,CAAC;QACD,OAAO;YACL,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;SAC9B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,KAAK,EACX,MAA4B,EACQ,EAAE;YACtC,MAAM,aAAa,GAAG,sBAAsB,CAC1C,cAAc,CAAC,QAAQ,EACvB,MAAM,CACP,CAAC;YACF,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC/C,WAAW,EACX,cAAc,CAAC,WAAW,CAC3B,CAAC;YAEF,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpC,0BAA0B,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;gBAC1D,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,WAAwB,EAAE,EAAE;IAC3D,OAAO,CAAC,IAAa,EAAkB,EAAE;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;aAC9B,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,CAC1C,WAAW,EACX,IAAI,CACL,CAAC;QAEF,OAAO,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAEvD,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CACzC,WAAW,EACX,QAAQ,CACT,CAAC;QAEF,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { BrowserWindow } from "electron";
2
+ import type { TParamsCreateWindow } from "../../control-window/types.js";
3
+ export declare const createWindowWithParams: <W extends TParamsCreateWindow>(baseMetadata: W, params?: W) => BrowserWindow;
4
+ //# sourceMappingURL=window-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-creator.d.ts","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AA+BzE,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,mBAAmB,EAClE,cAAc,CAAC,EACf,SAAS,CAAC,KACT,aAOF,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { createWindow } from "../../control-window/create.js";
2
+ const isPlainObject = (value) => {
3
+ return (typeof value === "object" &&
4
+ value !== null &&
5
+ !Array.isArray(value) &&
6
+ Object.prototype.toString.call(value) === "[object Object]");
7
+ };
8
+ const mergeDeep = (target, source) => {
9
+ const output = { ...target };
10
+ for (const [key, value] of Object.entries(source)) {
11
+ if (isPlainObject(value)) {
12
+ const current = output[key];
13
+ output[key] = isPlainObject(current)
14
+ ? mergeDeep(current, value)
15
+ : mergeDeep({}, value);
16
+ }
17
+ else {
18
+ output[key] = value;
19
+ }
20
+ }
21
+ return output;
22
+ };
23
+ export const createWindowWithParams = (baseMetadata, params) => {
24
+ const mergedSettings = params !== undefined
25
+ ? mergeDeep(baseMetadata, params)
26
+ : baseMetadata;
27
+ return createWindow(mergedSettings);
28
+ };
29
+ //# sourceMappingURL=window-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-creator.js","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-creator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D,MAAM,aAAa,GAAG,CAAC,KAAc,EAAyB,EAAE;IAC9D,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAC5D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAyB,MAAS,EAAE,MAAS,EAAK,EAAE;IACpE,MAAM,MAAM,GAAiB,EAAE,GAAG,MAAM,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;gBAClC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;gBAC3B,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,YAAe,EACf,MAAU,EACK,EAAE;IACjB,MAAM,cAAc,GAClB,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,SAAS,CAAC,YAA4B,EAAE,MAAsB,CAAC;QACjE,CAAC,CAAC,YAAY,CAAC;IAEnB,OAAO,YAAY,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { BrowserWindow } from "electron";
2
+ import type { TWindowManagerWithHandlers } from "../../types/window-manager.js";
3
+ export declare const attachWindowEventListeners: (browserWindow: BrowserWindow, windowInstance: TWindowManagerWithHandlers) => void;
4
+ //# sourceMappingURL=window-event-listeners.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-event-listeners.d.ts","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AA0GhF,eAAO,MAAM,0BAA0B,GACrC,eAAe,aAAa,EAC5B,gBAAgB,0BAA0B,KACzC,IA0CF,CAAC"}
@@ -0,0 +1,91 @@
1
+ const windowListeners = new WeakMap();
2
+ const EVENT_PREFIX = "on";
3
+ const WINDOW_PREFIX = "onWindow";
4
+ const WEB_CONTENTS_PREFIX = "onWebContents";
5
+ const getPrototypeMethodNames = (instance) => {
6
+ const names = new Set();
7
+ let proto = Object.getPrototypeOf(instance);
8
+ while (proto && proto !== Object.prototype) {
9
+ Object.getOwnPropertyNames(proto).forEach((name) => {
10
+ if (name !== "constructor") {
11
+ names.add(name);
12
+ }
13
+ });
14
+ proto = Object.getPrototypeOf(proto);
15
+ }
16
+ return Array.from(names);
17
+ };
18
+ const toEventName = (handlerName) => {
19
+ const cleaned = handlerName
20
+ .replace(WINDOW_PREFIX, "")
21
+ .replace(WEB_CONTENTS_PREFIX, "")
22
+ .replace(EVENT_PREFIX, "");
23
+ return cleaned
24
+ .replace(/([a-z0-9])([A-Z])/g, "$1-$2")
25
+ .replace(/([A-Z])([A-Z][a-z])/g, "$1-$2")
26
+ .toLowerCase();
27
+ };
28
+ const isHandlerName = (name) => {
29
+ return name.startsWith(EVENT_PREFIX);
30
+ };
31
+ const isWebContentsHandler = (name) => {
32
+ return name.startsWith(WEB_CONTENTS_PREFIX);
33
+ };
34
+ const addListener = (emitter, eventName, listener) => {
35
+ emitter.on(eventName, listener);
36
+ return () => {
37
+ if (emitter.off) {
38
+ emitter.off(eventName, listener);
39
+ }
40
+ else if (emitter.removeListener) {
41
+ emitter.removeListener(eventName, listener);
42
+ }
43
+ };
44
+ };
45
+ const attachHandlersToEmitter = (emitter, browserWindow, windowInstance, handlerNames, filter) => {
46
+ const cleanups = [];
47
+ for (const handlerName of handlerNames) {
48
+ if (!filter(handlerName)) {
49
+ continue;
50
+ }
51
+ const handler = windowInstance[handlerName];
52
+ if (typeof handler !== "function") {
53
+ continue;
54
+ }
55
+ const eventName = toEventName(handlerName);
56
+ const listener = (...args) => {
57
+ if (handler.length <= 1) {
58
+ handler.apply(windowInstance, [browserWindow]);
59
+ }
60
+ else {
61
+ handler.apply(windowInstance, [...args, browserWindow]);
62
+ }
63
+ };
64
+ cleanups.push(addListener(emitter, eventName, listener));
65
+ }
66
+ return cleanups;
67
+ };
68
+ export const attachWindowEventListeners = (browserWindow, windowInstance) => {
69
+ const entry = windowListeners.get(browserWindow);
70
+ if (entry?.instance === windowInstance) {
71
+ return;
72
+ }
73
+ if (entry) {
74
+ entry.cleanup.forEach((cleanup) => cleanup());
75
+ }
76
+ const handlerNames = getPrototypeMethodNames(windowInstance).filter(isHandlerName);
77
+ const windowCleanups = attachHandlersToEmitter(browserWindow, browserWindow, windowInstance, handlerNames, (name) => !isWebContentsHandler(name));
78
+ const webContentsCleanups = attachHandlersToEmitter(browserWindow.webContents, browserWindow, windowInstance, handlerNames, isWebContentsHandler);
79
+ windowListeners.set(browserWindow, {
80
+ instance: windowInstance,
81
+ cleanup: [...windowCleanups, ...webContentsCleanups],
82
+ });
83
+ browserWindow.once("closed", () => {
84
+ const existing = windowListeners.get(browserWindow);
85
+ if (existing) {
86
+ existing.cleanup.forEach((cleanup) => cleanup());
87
+ windowListeners.delete(browserWindow);
88
+ }
89
+ });
90
+ };
91
+ //# sourceMappingURL=window-event-listeners.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-event-listeners.js","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-event-listeners.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Constructor } from "../../types/constructor.js";
2
+ import type { TWindowManagerWithHandlers } from "../../types/window-manager.js";
3
+ export declare const createWindowInstance: <T extends TWindowManagerWithHandlers>(moduleClass: Constructor, windowClass: Constructor<T>) => Promise<T | undefined>;
4
+ //# sourceMappingURL=window-instance-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-instance-creator.d.ts","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-instance-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAIhF,eAAO,MAAM,oBAAoB,GAC/B,CAAC,SAAS,0BAA0B,EAEpC,aAAa,WAAW,EACxB,aAAa,WAAW,CAAC,CAAC,CAAC,KAC1B,OAAO,CAAC,CAAC,GAAG,SAAS,CAWvB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { container } from "../../container.js";
2
+ import { getDependencyTokens } from "../../utils/dependency-tokens.js";
3
+ export const createWindowInstance = async (moduleClass, windowClass) => {
4
+ if (!windowClass) {
5
+ return undefined;
6
+ }
7
+ const dependenciesTypes = getDependencyTokens(windowClass);
8
+ const resolvedDependencies = await Promise.all(dependenciesTypes.map((depType) => container.resolve(moduleClass, depType)));
9
+ return new windowClass(...resolvedDependencies);
10
+ };
11
+ //# sourceMappingURL=window-instance-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-instance-creator.js","sourceRoot":"","sources":["../../../../src/@core/bootstrap/initialize-ipc/window-instance-creator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAGvC,WAAwB,EACxB,WAA2B,EACH,EAAE;IAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5C,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAC5E,CAAC;IAEF,OAAO,IAAI,WAAW,CAAC,GAAG,oBAAoB,CAAC,CAAC;AAClD,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { RgModuleMetadata } from "../types/module-metadata.js";
2
+ import type { Constructor } from "../types/constructor.js";
3
+ export declare const initializeModule: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
4
+ //# sourceMappingURL=initialize-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize-module.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/initialize-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAO3D,eAAO,MAAM,gBAAgB,GAC3B,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAcd,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { container } from "../container.js";
2
+ import { registerProviders } from "./register-providers.js";
3
+ import { registerImports } from "./register-imports.js";
4
+ import { registerWindows } from "./register-windows.js";
5
+ import { registerIpcHandlers } from "./register-ipc-handlers.js";
6
+ export const initializeModule = async (moduleClass, metadata) => {
7
+ const isNewModule = container.addModule(moduleClass, metadata);
8
+ container.setModuleMetadata(moduleClass, metadata);
9
+ if (!isNewModule) {
10
+ return;
11
+ }
12
+ await Promise.all([
13
+ registerProviders(moduleClass, metadata),
14
+ registerImports(metadata),
15
+ registerWindows(moduleClass, metadata),
16
+ registerIpcHandlers(moduleClass, metadata),
17
+ ]);
18
+ };
19
+ //# sourceMappingURL=initialize-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize-module.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/initialize-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/D,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC;QACxC,eAAe,CAAC,QAAQ,CAAC;QACzB,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC;QACtC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Constructor } from "../types/constructor.js";
2
+ export declare const instantiateModule: (moduleClass: Constructor) => Promise<unknown>;
3
+ //# sourceMappingURL=instantiate-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiate-module.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/instantiate-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,eAAO,MAAM,iBAAiB,GAC5B,aAAa,WAAW,KACvB,OAAO,CAAC,OAAO,CAYjB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { container } from "../container.js";
2
+ import { getDependencyTokens } from "../utils/dependency-tokens.js";
3
+ export const instantiateModule = async (moduleClass) => {
4
+ const dependencies = getDependencyTokens(moduleClass);
5
+ const resolvedDependencies = await Promise.all(dependencies.map((dependency) => container.resolve(moduleClass, dependency)));
6
+ const instance = new moduleClass(...resolvedDependencies);
7
+ container.registerInstance(moduleClass, instance);
8
+ return instance;
9
+ };
10
+ //# sourceMappingURL=instantiate-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiate-module.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/instantiate-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,WAAwB,EACN,EAAE;IACpB,MAAM,YAAY,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5C,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9B,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAC3C,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAC1D,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAElD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { RgModuleMetadata } from "../types/module-metadata.js";
2
+ export declare const registerImports: (metadata: RgModuleMetadata) => Promise<void>;
3
+ //# sourceMappingURL=register-imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-imports.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,eAAe,GAC1B,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAed,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { initializeModule } from "./initialize-module.js";
2
+ export const registerImports = async (metadata) => {
3
+ if (!metadata.imports) {
4
+ return;
5
+ }
6
+ for (const importedModuleClass of metadata.imports) {
7
+ const importedModuleMetadata = Reflect.getMetadata("RgModule", importedModuleClass);
8
+ if (importedModuleMetadata) {
9
+ await initializeModule(importedModuleClass, importedModuleMetadata);
10
+ }
11
+ }
12
+ };
13
+ //# sourceMappingURL=register-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-imports.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,mBAAmB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAChD,UAAU,EACV,mBAAmB,CACY,CAAC;QAElC,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Constructor } from "../types/constructor.js";
2
+ import type { RgModuleMetadata } from "../types/module-metadata.js";
3
+ export declare const registerIpcHandlers: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
4
+ //# sourceMappingURL=register-ipc-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-ipc-handlers.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-ipc-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,mBAAmB,GAC9B,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAQd,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { container } from "../container.js";
2
+ export const registerIpcHandlers = async (moduleClass, metadata) => {
3
+ if (!metadata.ipc) {
4
+ return;
5
+ }
6
+ for (const ipcClass of metadata.ipc) {
7
+ container.addProvider(moduleClass, ipcClass);
8
+ }
9
+ };
10
+ //# sourceMappingURL=register-ipc-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-ipc-handlers.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-ipc-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Constructor } from "../types/constructor.js";
2
+ import type { RgModuleMetadata } from "../types/module-metadata.js";
3
+ export declare const registerProviders: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
4
+ //# sourceMappingURL=register-providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-providers.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAYpE,eAAO,MAAM,iBAAiB,GAC5B,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAkBd,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { InvalidProviderError } from "../errors/index.js";
2
+ import { container } from "../container.js";
3
+ const isProviderObject = (provider) => {
4
+ return (typeof provider === "object" && provider !== null && "provide" in provider);
5
+ };
6
+ export const registerProviders = async (moduleClass, metadata) => {
7
+ if (!metadata.providers) {
8
+ return;
9
+ }
10
+ for (const provider of metadata.providers) {
11
+ if (typeof provider === "function") {
12
+ container.addProvider(moduleClass, provider);
13
+ continue;
14
+ }
15
+ if (isProviderObject(provider)) {
16
+ container.addProvider(moduleClass, provider.provide, provider);
17
+ continue;
18
+ }
19
+ throw new InvalidProviderError(moduleClass.name);
20
+ }
21
+ };
22
+ //# sourceMappingURL=register-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-providers.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,gBAAgB,GAAG,CACvB,QAAiB,EACiB,EAAE;IACpC,OAAO,CACL,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,SAAS,IAAI,QAAQ,CAC3E,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/D,SAAS;QACX,CAAC;QAED,MAAM,IAAI,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Constructor } from "../types/constructor.js";
2
+ import type { RgModuleMetadata } from "../types/module-metadata.js";
3
+ export declare const registerWindows: (moduleClass: Constructor, metadata: RgModuleMetadata) => Promise<void>;
4
+ //# sourceMappingURL=register-windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-windows.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-windows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAIpE,eAAO,MAAM,eAAe,GAC1B,aAAa,WAAW,EACxB,UAAU,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAkBd,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { container } from "../container.js";
2
+ export const registerWindows = async (moduleClass, metadata) => {
3
+ if (!metadata.windows) {
4
+ return;
5
+ }
6
+ for (const windowClass of metadata.windows) {
7
+ const windowMetadataValue = Reflect.getMetadata("WindowManager", windowClass);
8
+ if (windowMetadataValue?.hash) {
9
+ container.addProvider(moduleClass, windowMetadataValue.hash, {
10
+ metadata: windowMetadataValue,
11
+ windowClass,
12
+ });
13
+ }
14
+ }
15
+ };
16
+ //# sourceMappingURL=register-windows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-windows.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/register-windows.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,WAAwB,EACxB,QAA0B,EACX,EAAE;IACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAC7C,eAAe,EACf,WAAW,CACwB,CAAC;QAEtC,IAAI,mBAAmB,EAAE,IAAI,EAAE,CAAC;YAC9B,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,mBAAmB,CAAC,IAAI,EAAE;gBAC3D,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type TFolderSettings = {
2
+ distRenderer: string;
3
+ distMain: string;
4
+ };
5
+ export type TSettings = {
6
+ baseRestApi: string;
7
+ localhostPort: string;
8
+ folders: TFolderSettings;
9
+ };
10
+ export declare const initSettings: (options: TSettings) => void;
11
+ export declare const getSettings: () => TSettings;
12
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/@core/bootstrap/settings.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAKF,eAAO,MAAM,YAAY,GAAI,SAAS,SAAS,KAAG,IAEjD,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,SAQ9B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { SettingsNotInitializedError } from "../errors/index.js";
2
+ const KEY = "settings";
3
+ const settings = new Map();
4
+ export const initSettings = (options) => {
5
+ settings.set(KEY, options);
6
+ };
7
+ export const getSettings = () => {
8
+ const cachedSettings = settings.get(KEY);
9
+ if (!cachedSettings) {
10
+ throw new SettingsNotInitializedError();
11
+ }
12
+ return cachedSettings;
13
+ };
14
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/@core/bootstrap/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAajE,MAAM,GAAG,GAAG,UAAmB,CAAC;AAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAkB,EAAQ,EAAE;IACvD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAc,EAAE;IACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,2BAA2B,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { Constructor } from "./types/constructor.js";
2
+ import type { RgModuleMetadata } from "./types/module-metadata.js";
3
+ import type { TProviderToken } from "./types/provider.js";
4
+ export declare class Container {
5
+ private readonly modules;
6
+ private readonly moduleMetadata;
7
+ private readonly instances;
8
+ private readonly resolutionCache;
9
+ addModule(moduleClass: Constructor, metadata: Pick<RgModuleMetadata, "exports" | "providers">): boolean;
10
+ setModuleMetadata(moduleClass: Constructor, metadata: RgModuleMetadata): void;
11
+ hasModule(moduleClass: Constructor): boolean;
12
+ private getCacheKey;
13
+ addProvider(moduleClass: Constructor, provider: TProviderToken, instance?: unknown): void;
14
+ getProvider<T = unknown>(moduleClass: Constructor, token: TProviderToken): T | undefined;
15
+ getModuleExports(moduleClass: Constructor): Set<TProviderToken>;
16
+ getModuleMetadata(moduleClass: Constructor): RgModuleMetadata | undefined;
17
+ registerInstance(token: TProviderToken, instance: unknown): void;
18
+ resolve<T>(moduleClass: Constructor, token: TProviderToken): Promise<T | undefined>;
19
+ private resolveFromImports;
20
+ private instantiateProvider;
21
+ private instantiateFactoryProvider;
22
+ private instantiateClassProvider;
23
+ private instantiateClassConstructor;
24
+ private resolveDependencies;
25
+ private isProviderObject;
26
+ private isFactoryProvider;
27
+ private isClassProvider;
28
+ private isValueProvider;
29
+ private isExistingProvider;
30
+ }
31
+ export declare const container: Container;
32
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/@core/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAY7B,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAE9D,SAAS,CACP,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,WAAW,CAAC,GACxD,OAAO;IAYV,iBAAiB,CACf,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,gBAAgB,GACzB,IAAI;IAIP,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAI5C,OAAO,CAAC,WAAW;IAQnB,WAAW,CACT,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,cAAc,EACxB,QAAQ,CAAC,EAAE,OAAO,GACjB,IAAI;IASP,WAAW,CAAC,CAAC,GAAG,OAAO,EACrB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,cAAc,GACpB,CAAC,GAAG,SAAS;IAShB,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC;IAK/D,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,gBAAgB,GAAG,SAAS;IAIzE,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI1D,OAAO,CAAC,CAAC,EACb,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;YA8CX,kBAAkB;YAyBlB,mBAAmB;YAqCnB,0BAA0B;YAe1B,wBAAwB;YAgBxB,2BAA2B;YAe3B,mBAAmB;IASjC,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,kBAAkB;CAG3B;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}