nmtjs 0.15.0-beta.2 → 0.15.0-beta.21

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 (254) hide show
  1. package/dist/cli.d.ts +2 -0
  2. package/dist/cli.js +3 -2
  3. package/dist/cli.js.map +1 -0
  4. package/dist/config.d.ts +51 -0
  5. package/dist/config.js +1 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/entrypoints/cli.d.ts +1 -0
  8. package/dist/entrypoints/cli.js +1 -0
  9. package/dist/entrypoints/cli.js.map +1 -0
  10. package/dist/entrypoints/main.d.ts +5 -0
  11. package/dist/entrypoints/main.js +83 -15
  12. package/dist/entrypoints/main.js.map +1 -0
  13. package/dist/entrypoints/thread.d.ts +14 -0
  14. package/dist/entrypoints/thread.js +130 -24
  15. package/dist/entrypoints/thread.js.map +1 -0
  16. package/dist/entrypoints/worker.d.ts +3 -0
  17. package/dist/entrypoints/worker.js +4 -3
  18. package/dist/entrypoints/worker.js.map +1 -0
  19. package/dist/index.d.ts +69 -0
  20. package/dist/{_exports/index.js → index.js} +9 -5
  21. package/dist/index.js.map +1 -0
  22. package/dist/resolver.d.ts +2 -0
  23. package/dist/resolver.js +1 -0
  24. package/dist/resolver.js.map +1 -0
  25. package/dist/runtime/application/api/api.d.ts +49 -0
  26. package/dist/runtime/application/api/api.js +193 -0
  27. package/dist/runtime/application/api/api.js.map +1 -0
  28. package/dist/runtime/application/api/constants.d.ts +14 -0
  29. package/dist/runtime/application/api/constants.js +8 -0
  30. package/dist/runtime/application/api/constants.js.map +1 -0
  31. package/dist/runtime/application/api/filters.d.ts +14 -0
  32. package/dist/runtime/application/api/filters.js +11 -0
  33. package/dist/runtime/application/api/filters.js.map +1 -0
  34. package/dist/runtime/application/api/guards.d.ts +13 -0
  35. package/dist/runtime/application/api/guards.js +8 -0
  36. package/dist/runtime/application/api/guards.js.map +1 -0
  37. package/dist/runtime/application/api/index.d.ts +8 -0
  38. package/dist/runtime/application/api/index.js +9 -0
  39. package/dist/runtime/application/api/index.js.map +1 -0
  40. package/dist/runtime/application/api/middlewares.d.ts +14 -0
  41. package/dist/runtime/application/api/middlewares.js +12 -0
  42. package/dist/runtime/application/api/middlewares.js.map +1 -0
  43. package/dist/runtime/application/api/procedure.d.ts +67 -0
  44. package/dist/runtime/application/api/procedure.js +50 -0
  45. package/dist/runtime/application/api/procedure.js.map +1 -0
  46. package/dist/runtime/application/api/router.d.ts +71 -0
  47. package/dist/runtime/application/api/router.js +51 -0
  48. package/dist/runtime/application/api/router.js.map +1 -0
  49. package/dist/runtime/application/api/types.d.ts +32 -0
  50. package/dist/runtime/application/api/types.js +2 -0
  51. package/dist/runtime/application/api/types.js.map +1 -0
  52. package/dist/runtime/application/config.d.ts +26 -0
  53. package/dist/runtime/application/config.js +21 -0
  54. package/dist/runtime/application/config.js.map +1 -0
  55. package/dist/runtime/application/constants.d.ts +2 -0
  56. package/dist/runtime/application/constants.js +2 -0
  57. package/dist/runtime/application/constants.js.map +1 -0
  58. package/dist/runtime/application/hook.d.ts +19 -0
  59. package/dist/runtime/application/hook.js +11 -0
  60. package/dist/runtime/application/hook.js.map +1 -0
  61. package/dist/runtime/application/hooks.d.ts +3 -0
  62. package/dist/runtime/application/hooks.js +4 -0
  63. package/dist/runtime/application/hooks.js.map +1 -0
  64. package/dist/runtime/application/index.d.ts +5 -0
  65. package/dist/runtime/application/index.js +6 -0
  66. package/dist/runtime/application/index.js.map +1 -0
  67. package/dist/runtime/constants.d.ts +8 -0
  68. package/dist/runtime/constants.js +5 -0
  69. package/dist/runtime/constants.js.map +1 -0
  70. package/dist/runtime/core/hooks.d.ts +4 -0
  71. package/dist/runtime/core/hooks.js +4 -0
  72. package/dist/runtime/core/hooks.js.map +1 -0
  73. package/dist/runtime/core/plugin.d.ts +8 -0
  74. package/dist/runtime/core/plugin.js +4 -0
  75. package/dist/runtime/core/plugin.js.map +1 -0
  76. package/dist/runtime/core/runtime.d.ts +27 -0
  77. package/dist/runtime/core/runtime.js +81 -0
  78. package/dist/runtime/core/runtime.js.map +1 -0
  79. package/dist/runtime/enums.d.ts +21 -0
  80. package/dist/runtime/enums.js +26 -0
  81. package/dist/runtime/enums.js.map +1 -0
  82. package/dist/runtime/index.d.ts +21 -0
  83. package/dist/runtime/index.js +22 -0
  84. package/dist/runtime/index.js.map +1 -0
  85. package/dist/runtime/injectables.d.ts +23 -0
  86. package/dist/runtime/injectables.js +20 -0
  87. package/dist/runtime/injectables.js.map +1 -0
  88. package/dist/runtime/jobs/job.d.ts +132 -0
  89. package/dist/runtime/jobs/job.js +68 -0
  90. package/dist/runtime/jobs/job.js.map +1 -0
  91. package/dist/runtime/jobs/manager.d.ts +113 -0
  92. package/dist/runtime/jobs/manager.js +210 -0
  93. package/dist/runtime/jobs/manager.js.map +1 -0
  94. package/dist/runtime/jobs/router.d.ts +266 -0
  95. package/dist/runtime/jobs/router.js +432 -0
  96. package/dist/runtime/jobs/router.js.map +1 -0
  97. package/dist/runtime/jobs/runner.d.ts +64 -0
  98. package/dist/runtime/jobs/runner.js +256 -0
  99. package/dist/runtime/jobs/runner.js.map +1 -0
  100. package/dist/runtime/jobs/step.d.ts +23 -0
  101. package/dist/runtime/jobs/step.js +18 -0
  102. package/dist/runtime/jobs/step.js.map +1 -0
  103. package/dist/runtime/jobs/ui.d.ts +3 -0
  104. package/dist/runtime/jobs/ui.js +17 -0
  105. package/dist/runtime/jobs/ui.js.map +1 -0
  106. package/dist/runtime/pubsub/manager.d.ts +48 -0
  107. package/dist/runtime/pubsub/manager.js +119 -0
  108. package/dist/runtime/pubsub/manager.js.map +1 -0
  109. package/dist/runtime/pubsub/redis.d.ts +16 -0
  110. package/dist/runtime/pubsub/redis.js +98 -0
  111. package/dist/runtime/pubsub/redis.js.map +1 -0
  112. package/dist/runtime/scheduler/index.d.ts +22 -0
  113. package/dist/runtime/scheduler/index.js +20 -0
  114. package/dist/runtime/scheduler/index.js.map +1 -0
  115. package/dist/runtime/server/applications.d.ts +52 -0
  116. package/dist/runtime/server/applications.js +133 -0
  117. package/dist/runtime/server/applications.js.map +1 -0
  118. package/dist/runtime/server/config.d.ts +121 -0
  119. package/dist/runtime/server/config.js +33 -0
  120. package/dist/runtime/server/config.js.map +1 -0
  121. package/dist/runtime/server/jobs.d.ts +41 -0
  122. package/dist/runtime/server/jobs.js +181 -0
  123. package/dist/runtime/server/jobs.js.map +1 -0
  124. package/dist/runtime/server/pool.d.ts +54 -0
  125. package/dist/runtime/server/pool.js +194 -0
  126. package/dist/runtime/server/pool.js.map +1 -0
  127. package/dist/runtime/server/proxy.d.ts +21 -0
  128. package/dist/runtime/server/proxy.js +79 -0
  129. package/dist/runtime/server/proxy.js.map +1 -0
  130. package/dist/runtime/server/server.d.ts +53 -0
  131. package/dist/runtime/server/server.js +90 -0
  132. package/dist/runtime/server/server.js.map +1 -0
  133. package/dist/runtime/store/index.d.ts +3 -0
  134. package/dist/runtime/store/index.js +23 -0
  135. package/dist/runtime/store/index.js.map +1 -0
  136. package/dist/runtime/types.d.ts +103 -0
  137. package/dist/runtime/types.js +2 -0
  138. package/dist/runtime/types.js.map +1 -0
  139. package/dist/runtime/workers/application.d.ts +47 -0
  140. package/dist/runtime/workers/application.js +162 -0
  141. package/dist/runtime/workers/application.js.map +1 -0
  142. package/dist/runtime/workers/base.d.ts +16 -0
  143. package/dist/runtime/workers/base.js +46 -0
  144. package/dist/runtime/workers/base.js.map +1 -0
  145. package/dist/runtime/workers/cli.d.ts +1 -0
  146. package/dist/runtime/workers/cli.js +2 -0
  147. package/dist/runtime/workers/cli.js.map +1 -0
  148. package/dist/runtime/workers/job.d.ts +20 -0
  149. package/dist/runtime/workers/job.js +172 -0
  150. package/dist/runtime/workers/job.js.map +1 -0
  151. package/dist/typings.d.ts +5 -0
  152. package/dist/typings.js +4 -3
  153. package/dist/typings.js.map +1 -0
  154. package/dist/vite/builder.d.ts +5 -0
  155. package/dist/vite/builder.js +5 -1
  156. package/dist/vite/builder.js.map +1 -0
  157. package/dist/vite/config.d.ts +28 -0
  158. package/dist/vite/config.js +1 -0
  159. package/dist/vite/config.js.map +1 -0
  160. package/dist/vite/plugins.d.ts +2 -0
  161. package/dist/vite/plugins.js +1 -0
  162. package/dist/vite/plugins.js.map +1 -0
  163. package/dist/vite/runners/worker.d.ts +4 -0
  164. package/dist/vite/runners/worker.js +1 -0
  165. package/dist/vite/runners/worker.js.map +1 -0
  166. package/dist/vite/server.d.ts +3 -0
  167. package/dist/vite/server.js +6 -1
  168. package/dist/vite/server.js.map +1 -0
  169. package/dist/vite/servers/main.d.ts +8 -0
  170. package/dist/vite/servers/main.js +1 -0
  171. package/dist/vite/servers/main.js.map +1 -0
  172. package/dist/vite/servers/worker.d.ts +11 -0
  173. package/dist/vite/servers/worker.js +28 -0
  174. package/dist/vite/servers/worker.js.map +1 -0
  175. package/package.json +31 -18
  176. package/src/cli.ts +144 -0
  177. package/src/config.ts +64 -0
  178. package/src/entrypoints/cli.ts +13 -0
  179. package/src/entrypoints/main.ts +200 -0
  180. package/src/entrypoints/thread.ts +184 -0
  181. package/src/entrypoints/worker.ts +48 -0
  182. package/src/index.ts +82 -0
  183. package/src/resolver.ts +16 -0
  184. package/src/runtime/application/api/api.ts +265 -0
  185. package/src/runtime/application/api/constants.ts +22 -0
  186. package/src/runtime/application/api/filters.ts +39 -0
  187. package/src/runtime/application/api/guards.ts +29 -0
  188. package/src/runtime/application/api/index.ts +8 -0
  189. package/src/runtime/application/api/middlewares.ts +37 -0
  190. package/src/runtime/application/api/procedure.ts +229 -0
  191. package/src/runtime/application/api/router.ts +193 -0
  192. package/src/runtime/application/api/types.ts +124 -0
  193. package/src/runtime/application/config.ts +69 -0
  194. package/src/runtime/application/constants.ts +4 -0
  195. package/src/runtime/application/hook.ts +51 -0
  196. package/src/runtime/application/hooks.ts +3 -0
  197. package/src/runtime/application/index.ts +5 -0
  198. package/src/runtime/constants.ts +13 -0
  199. package/src/runtime/core/hooks.ts +5 -0
  200. package/src/runtime/core/plugin.ts +13 -0
  201. package/src/runtime/core/runtime.ts +109 -0
  202. package/src/runtime/enums.ts +24 -0
  203. package/src/runtime/index.ts +21 -0
  204. package/src/runtime/injectables.ts +61 -0
  205. package/src/runtime/jobs/job.ts +370 -0
  206. package/src/runtime/jobs/manager.ts +348 -0
  207. package/src/runtime/jobs/router.ts +896 -0
  208. package/src/runtime/jobs/runner.ts +320 -0
  209. package/src/runtime/jobs/step.ts +66 -0
  210. package/src/runtime/jobs/ui.ts +21 -0
  211. package/src/runtime/pubsub/manager.ts +211 -0
  212. package/src/runtime/pubsub/redis.ts +108 -0
  213. package/src/runtime/scheduler/index.ts +39 -0
  214. package/src/runtime/server/applications.ts +210 -0
  215. package/src/runtime/server/config.ts +158 -0
  216. package/src/runtime/server/jobs.ts +250 -0
  217. package/src/runtime/server/pool.ts +260 -0
  218. package/src/runtime/server/proxy.ts +118 -0
  219. package/src/runtime/server/server.ts +155 -0
  220. package/src/runtime/store/index.ts +30 -0
  221. package/src/runtime/types.ts +93 -0
  222. package/src/runtime/workers/application.ts +209 -0
  223. package/src/runtime/workers/base.ts +68 -0
  224. package/src/runtime/workers/cli.ts +0 -0
  225. package/src/runtime/workers/job.ts +153 -0
  226. package/src/typings.ts +30 -0
  227. package/src/vite/builder.ts +122 -0
  228. package/src/vite/config.ts +45 -0
  229. package/src/vite/plugins.ts +26 -0
  230. package/src/vite/runners/worker.ts +57 -0
  231. package/src/vite/server.ts +39 -0
  232. package/src/vite/servers/main.ts +34 -0
  233. package/src/vite/servers/worker.ts +143 -0
  234. package/dist/_exports/application.js +0 -1
  235. package/dist/_exports/common.js +0 -1
  236. package/dist/_exports/contract.js +0 -2
  237. package/dist/_exports/core.js +0 -1
  238. package/dist/_exports/gateway.js +0 -1
  239. package/dist/_exports/http-transport/bun.js +0 -1
  240. package/dist/_exports/http-transport/deno.js +0 -1
  241. package/dist/_exports/http-transport/node.js +0 -1
  242. package/dist/_exports/http-transport.js +0 -1
  243. package/dist/_exports/json-format.js +0 -1
  244. package/dist/_exports/protocol/client.js +0 -1
  245. package/dist/_exports/protocol/server.js +0 -1
  246. package/dist/_exports/protocol.js +0 -1
  247. package/dist/_exports/runtime/types.js +0 -1
  248. package/dist/_exports/runtime.js +0 -1
  249. package/dist/_exports/type.js +0 -2
  250. package/dist/_exports/ws-transport/bun.js +0 -1
  251. package/dist/_exports/ws-transport/deno.js +0 -1
  252. package/dist/_exports/ws-transport/node.js +0 -1
  253. package/dist/_exports/ws-transport.js +0 -1
  254. package/dist/command.js +0 -30
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node --enable-source-maps
2
+ export {};
package/dist/cli.js CHANGED
@@ -51,7 +51,7 @@ const mainCommand = defineCommand({
51
51
  // const applicationEntryPaths: Record<string, string> = {}
52
52
  applicationImports = {};
53
53
  const currentPkg = resolver.sync(process.cwd(), './package.json');
54
- for (const [appName, appSpecifier] of Object.entries(config.applications)) {
54
+ for (const [appName, { specifier: appSpecifier, type }] of Object.entries(config.applications)) {
55
55
  const resolution = resolver.sync(process.cwd(), appSpecifier);
56
56
  if (resolution.error)
57
57
  throw new Error(`Failed to resolve application path for ${appName}: ${resolution.error}`);
@@ -60,7 +60,7 @@ const mainCommand = defineCommand({
60
60
  const specifier = resolution.packageJsonPath === currentPkg.path
61
61
  ? relative(resolve('.neemata'), resolution.path)
62
62
  : appSpecifier;
63
- applicationImports[appName] = { path: resolution.path, specifier };
63
+ applicationImports[appName] = { path: resolution.path, specifier, type };
64
64
  }
65
65
  viteConfigOptions = {
66
66
  applicationImports,
@@ -119,3 +119,4 @@ const mainCommand = defineCommand({
119
119
  },
120
120
  });
121
121
  runMain(mainCommand);
122
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { Plugin as VitePlugin } from 'vite';
2
+ export type ExtrernalDependency = string | RegExp;
3
+ type DeepPartial<T> = {
4
+ [P in keyof T]?: T[P] extends Record<any, unknown> ? DeepPartial<T[P]> : T[P];
5
+ };
6
+ export interface NeemataConfig {
7
+ /**
8
+ * Path to application entry point
9
+ */
10
+ applications: {
11
+ /**
12
+ * Application name
13
+ */
14
+ [appName: string]: {
15
+ type: 'neemata' | 'custom';
16
+ specifier: string;
17
+ };
18
+ };
19
+ /**
20
+ * Path to server entry point
21
+ */
22
+ serverPath: string;
23
+ /**
24
+ * External dependencies to exclude from application bundle
25
+ *
26
+ * 'prod' - exclude production dependencies from package.json
27
+ *
28
+ * 'all' - exclude all dependencies from package.json
29
+ *
30
+ * ExtrernalDependency[] - array of package names or regular expressions to match package names
31
+ */
32
+ externalDependencies: 'prod' | 'all' | ExtrernalDependency[];
33
+ /**
34
+ * Timeout in milliseconds for graceful shutdown of application workers
35
+ */
36
+ timeout: number;
37
+ /**
38
+ * Environment variables to set for application workers
39
+ *
40
+ * Strings are paths to .env files
41
+ * Records are key-value pairs to set directly
42
+ */
43
+ env: (Record<string, string> | string)[];
44
+ build: {
45
+ outDir: string;
46
+ minify: boolean;
47
+ };
48
+ plugins: VitePlugin[];
49
+ }
50
+ export declare function defineConfig(config?: DeepPartial<NeemataConfig>): NeemataConfig;
51
+ export {};
package/dist/config.js CHANGED
@@ -11,3 +11,4 @@ export function defineConfig(config = {}) {
11
11
  build: { outDir: './dist', minify: true, ...config.build },
12
12
  };
13
13
  }
14
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAiDA,MAAM,UAAU,YAAY,CAC1B,SAAqC,EAAE;IAEvC,OAAO;QACL,UAAU,EAAE,iBAAiB;QAC7B,oBAAoB,EAAE,MAAM;QAC5B,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,EAAE;QACX,GAAG,MAAM;QACT,mBAAmB;QACnB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;QACvC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE;KAC3D,CAAA;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -9,3 +9,4 @@ export {};
9
9
  // // workerType: ApplicationWorkerType.Command,
10
10
  // })
11
11
  // runMain(command(worker))
12
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/entrypoints/cli.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kCAAkC;;AAElC,sCAAsC;AACtC,yCAAyC;AAEzC,sCAAsC;AACtC,sCAAsC;AACtC,sCAAsC;AACtC,kDAAkD;AAClD,KAAK;AAEL,2BAA2B"}
@@ -0,0 +1,5 @@
1
+ declare global {
2
+ const __VITE_CONFIG__: string;
3
+ const __APPLICATIONS_CONFIG__: string;
4
+ }
5
+ export {};
@@ -8,25 +8,25 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
8
8
  };
9
9
  import EventEmitter from 'node:events';
10
10
  import { fileURLToPath } from 'node:url';
11
- import { ApplicationServer, isServerConfig } from '@nmtjs/runtime';
11
+ import { ApplicationServer, isServerConfig } from 'nmtjs/runtime';
12
12
  class InvalidServerConfigError extends Error {
13
13
  constructor() {
14
- super(`Server config file does not have a default export, or it not a valid application. Please, make sure the application is defined using defineApplication().`);
14
+ super(`Server config file does not have a default export, or it is not a valid server config. Please, make sure the server config is defined using defineServer().`);
15
15
  this.name = 'InvalidServerConfigError';
16
16
  }
17
17
  }
18
18
  const _ext = new URL(import.meta.url).pathname.endsWith('.ts') ? '.ts' : '.js';
19
19
  const _vite = __VITE_CONFIG__ ? JSON.parse(__VITE_CONFIG__) : undefined;
20
- const applicationsConfig = __APPLICATIONS_CONFIG__
21
- ? JSON.parse(__APPLICATIONS_CONFIG__)
22
- : {};
20
+ const applicationsConfig = __APPLICATIONS_CONFIG__ ? JSON.parse(__APPLICATIONS_CONFIG__) : {};
23
21
  let _viteServerEvents;
24
22
  let _viteWorkerServer;
25
23
  let server;
24
+ let hasActiveWorkerError = false;
25
+ const isDev = _vite?.mode === 'development';
26
26
  if (import.meta.env.DEV && import.meta.hot) {
27
27
  import.meta.hot.accept('#server', async (module) => {
28
- await server.stop();
29
- await createServer(module?.default);
28
+ await shutdownServer();
29
+ await bootWithHandling(module?.default);
30
30
  });
31
31
  }
32
32
  if (_vite) {
@@ -35,12 +35,14 @@ if (_vite) {
35
35
  /* @vite-ignore */
36
36
  _vite.options.configPath)).then((m) => m.default);
37
37
  _viteServerEvents = new EventEmitter();
38
+ _viteServerEvents.on('worker-error', handleWorkerError);
39
+ _viteServerEvents.on('worker-ready', handleWorkerReady);
38
40
  _viteWorkerServer = await createWorkerServer(_vite.options, _vite.mode, neemataConfig, _viteServerEvents);
39
41
  }
40
- async function createServer(config) {
41
- if (!isServerConfig(config))
42
+ async function bootServer(configValue) {
43
+ if (!isServerConfig(configValue))
42
44
  throw new InvalidServerConfigError();
43
- server = new ApplicationServer(config, applicationsConfig, {
45
+ const workerConfig = {
44
46
  path: fileURLToPath(import.meta.resolve(`./thread${_ext}`)),
45
47
  workerData: { vite: _vite?.mode },
46
48
  worker: _viteServerEvents
@@ -48,28 +50,92 @@ async function createServer(config) {
48
50
  _viteServerEvents.emit('worker', worker);
49
51
  }
50
52
  : undefined,
51
- });
52
- await server.start();
53
+ events: _viteServerEvents,
54
+ };
55
+ const appServer = new ApplicationServer(configValue, applicationsConfig, workerConfig);
56
+ try {
57
+ await appServer.start();
58
+ server = appServer;
59
+ clearWorkerErrorOverlay();
60
+ }
61
+ catch (error) {
62
+ await appServer.stop().catch(() => { });
63
+ throw error;
64
+ }
65
+ }
66
+ async function bootWithHandling(configValue) {
67
+ try {
68
+ await bootServer(configValue);
69
+ }
70
+ catch (error) {
71
+ handleStartupError(error);
72
+ if (!isDev)
73
+ throw error;
74
+ }
53
75
  }
54
76
  let isTerminating = false;
55
77
  async function handleTermination() {
56
78
  if (isTerminating)
57
79
  return;
58
80
  isTerminating = true;
59
- await server?.stop();
81
+ await shutdownServer();
60
82
  _viteWorkerServer?.close();
61
83
  process.exit(0);
62
84
  }
63
85
  function handleUnexpectedError(error) {
64
86
  console.error(new Error('Unexpected Error:', { cause: error }));
65
87
  }
88
+ async function shutdownServer() {
89
+ if (!server)
90
+ return;
91
+ try {
92
+ await server.stop();
93
+ }
94
+ catch (error) {
95
+ console.error(new Error('Failed to stop application server', { cause: error }));
96
+ }
97
+ finally {
98
+ server = undefined;
99
+ }
100
+ }
101
+ function handleWorkerError(event) {
102
+ hasActiveWorkerError = true;
103
+ console.error(new Error(`Worker ${event.application} thread ${event.threadId} error`, {
104
+ cause: event.error,
105
+ }));
106
+ }
107
+ function handleWorkerReady(_) {
108
+ clearWorkerErrorOverlay();
109
+ }
110
+ function handleStartupError(error) {
111
+ const normalized = error instanceof Error ? error : new Error(String(error));
112
+ if (_viteServerEvents) {
113
+ _viteServerEvents.emit('worker-error', {
114
+ application: 'server',
115
+ threadId: -1,
116
+ error: normalized,
117
+ });
118
+ }
119
+ else {
120
+ hasActiveWorkerError = true;
121
+ console.error(new Error('Failed to start application server', { cause: normalized }));
122
+ }
123
+ }
124
+ function clearWorkerErrorOverlay() {
125
+ if (!hasActiveWorkerError)
126
+ return;
127
+ hasActiveWorkerError = false;
128
+ }
66
129
  process.once('SIGTERM', handleTermination);
67
130
  process.once('SIGINT', handleTermination);
68
131
  process.on('uncaughtException', handleUnexpectedError);
69
132
  process.on('unhandledRejection', handleUnexpectedError);
70
- await createServer(await import(
133
+ await bootWithHandling(await import(
71
134
  // @ts-expect-error
72
- '#server').then((m) => m.default));
135
+ '#server').then((m) => m.default)).catch(() => {
136
+ if (!isDev)
137
+ process.exit(1);
138
+ });
73
139
  const { format } = Intl.NumberFormat('en', {
74
140
  notation: 'compact',
75
141
  maximumFractionDigits: 2,
@@ -81,5 +147,7 @@ const printMem = () => {
81
147
  const memoryUsage = process.memoryUsage();
82
148
  console.log(`Memory Usage: RSS=${format(memoryUsage.rss)}, HeapTotal=${format(memoryUsage.heapTotal)}, HeapUsed=${format(memoryUsage.heapUsed)}, External=${format(memoryUsage.external)}, ArrayBuffers=${format(memoryUsage.arrayBuffers)}`);
83
149
  };
150
+ void printMem;
84
151
  // printMem()
85
152
  // setInterval(printMem, 5000)
153
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/entrypoints/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { MessagePort } from 'node:worker_threads';
2
+ export type RunWorkerOptions = {
3
+ port: MessagePort;
4
+ runtime: {
5
+ type: 'application';
6
+ name: string;
7
+ path: string;
8
+ transportsData: any;
9
+ } | {
10
+ type: 'jobs';
11
+ jobWorkerPool: string;
12
+ };
13
+ vite?: 'development' | 'production';
14
+ };
@@ -11,42 +11,148 @@ import { workerData as _workerData } from 'node:worker_threads';
11
11
  const workerData = _workerData;
12
12
  const ext = new URL(import.meta.url).pathname.endsWith('.ts') ? '.ts' : '.js';
13
13
  const workerPath = fileURLToPath(import.meta.resolve(`./worker${ext}`));
14
+ const kReportedError = Symbol.for('nmtjs.worker.reported-error');
15
+ let runner;
16
+ let workerModule;
17
+ let runtime;
18
+ let runtimeStarted = false;
14
19
  process.on('uncaughtException', (error) => {
15
- console.error(new Error('Uncaught Exception:', { cause: error }));
20
+ reportError(error, 'runtime', { fatal: true });
16
21
  });
17
22
  process.on('unhandledRejection', (error) => {
18
- console.error(new Error('Unhandled Promise Rejection:', { cause: error }));
23
+ reportError(error, 'runtime', { fatal: true });
19
24
  });
20
- process.on('beforeExit', (code) => {
21
- runner?.close();
25
+ process.on('exit', () => {
26
+ void cleanup();
22
27
  });
23
- let runner;
24
- let workerModule;
25
- try {
26
- if (workerData.vite) {
27
- const { createModuleRunner } = (await import("../vite/runners/worker.js"));
28
- runner = createModuleRunner(workerData.vite);
29
- workerModule = await runner.import(workerPath);
28
+ async function cleanup() {
29
+ await stopRuntime();
30
+ await closeRunner();
31
+ }
32
+ async function closeRunner() {
33
+ if (!runner)
34
+ return;
35
+ try {
36
+ await runner.close();
30
37
  }
31
- else {
38
+ catch (error) {
39
+ reportError(error, 'runtime', { fatal: false });
40
+ }
41
+ finally {
32
42
  runner = undefined;
33
- workerModule = await import(__rewriteRelativeImportExtension(
34
- /* @vite-ignore */
35
- workerPath));
36
43
  }
37
- const runtime = await workerModule.run(workerData.runtime);
44
+ }
45
+ async function stopRuntime() {
46
+ if (!runtime)
47
+ return;
48
+ try {
49
+ if (runtimeStarted) {
50
+ await runtime.stop();
51
+ }
52
+ }
53
+ catch (error) {
54
+ reportError(error, 'runtime', { fatal: false });
55
+ }
56
+ finally {
57
+ runtimeStarted = false;
58
+ }
59
+ }
60
+ function normalizeError(value) {
61
+ if (value instanceof Error)
62
+ return value;
63
+ if (typeof value === 'string')
64
+ return new Error(value);
65
+ if (value && typeof value === 'object') {
66
+ try {
67
+ return new Error(JSON.stringify(value));
68
+ }
69
+ catch { }
70
+ }
71
+ return new Error(String(value));
72
+ }
73
+ function serializeError(error, origin, fatal) {
74
+ return {
75
+ message: error.message,
76
+ name: error.name,
77
+ stack: error.stack,
78
+ origin,
79
+ fatal,
80
+ };
81
+ }
82
+ function reportError(value, origin, options = {}) {
83
+ const fatal = options.fatal ?? origin !== 'runtime';
84
+ const error = normalizeError(value);
85
+ if (!error[kReportedError]) {
86
+ try {
87
+ workerData.port.postMessage({
88
+ type: 'error',
89
+ data: serializeError(error, origin, fatal),
90
+ });
91
+ }
92
+ catch { }
93
+ console.error(new Error(`Worker thread ${origin} error`, { cause: error }));
94
+ error[kReportedError] = true;
95
+ }
96
+ return error;
97
+ }
98
+ async function loadWorkerModule() {
99
+ try {
100
+ if (workerData.vite) {
101
+ const { createModuleRunner } = (await import("../vite/runners/worker.js"));
102
+ runner = createModuleRunner(workerData.vite);
103
+ workerModule = await runner.import(workerPath);
104
+ }
105
+ else {
106
+ runner = undefined;
107
+ workerModule = await import(__rewriteRelativeImportExtension(
108
+ /* @vite-ignore */
109
+ workerPath));
110
+ }
111
+ }
112
+ catch (error) {
113
+ throw reportError(error, 'bootstrap');
114
+ }
115
+ }
116
+ async function initializeRuntime() {
117
+ try {
118
+ runtime = await workerModule.run(workerData.runtime);
119
+ }
120
+ catch (error) {
121
+ throw reportError(error, 'bootstrap');
122
+ }
38
123
  workerData.port.on('message', async (msg) => {
39
124
  if (msg.type === 'stop') {
40
- await runtime.stop();
125
+ await cleanup();
41
126
  process.exit(0);
42
127
  }
43
128
  });
44
- const hosts = (await runtime?.start()) || undefined;
45
- workerData.port.postMessage({
46
- type: 'ready',
47
- data: { hosts },
48
- });
49
129
  }
50
- catch (error) {
51
- console.error(new Error('Worker thread error:', { cause: error }));
130
+ async function startRuntime() {
131
+ if (!runtime)
132
+ return;
133
+ try {
134
+ const hosts = (await runtime.start()) || undefined;
135
+ runtimeStarted = true;
136
+ workerData.port.postMessage({
137
+ type: 'ready',
138
+ data: { hosts },
139
+ });
140
+ }
141
+ catch (error) {
142
+ throw reportError(error, 'start');
143
+ }
144
+ }
145
+ async function main() {
146
+ await loadWorkerModule();
147
+ await initializeRuntime();
148
+ await startRuntime();
52
149
  }
150
+ main().catch(async (error) => {
151
+ const normalized = error instanceof Error ? error : normalizeError(error);
152
+ if (!normalized[kReportedError]) {
153
+ reportError(normalized, 'bootstrap');
154
+ }
155
+ await cleanup();
156
+ process.exit(1);
157
+ });
158
+ //# sourceMappingURL=thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.js","sourceRoot":"","sources":["../../src/entrypoints/thread.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ApplicationWorkerRuntime, JobWorkerRuntime } from 'nmtjs/runtime';
2
+ import type { RunWorkerOptions } from './thread.ts';
3
+ export declare function run(options: RunWorkerOptions['runtime']): Promise<ApplicationWorkerRuntime | JobWorkerRuntime>;
@@ -7,7 +7,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
7
7
  return path;
8
8
  };
9
9
  import { workerData } from 'node:worker_threads';
10
- import { ApplicationWorkerRuntime, isApplicationConfig, JobWorkerRuntime, } from '@nmtjs/runtime';
10
+ import { ApplicationWorkerRuntime, isApplicationConfig, JobWorkerRuntime, } from 'nmtjs/runtime';
11
11
  export async function run(options) {
12
12
  const serverConfig = await import(
13
13
  // @ts-expect-error
@@ -28,9 +28,9 @@ export async function run(options) {
28
28
  return runtime;
29
29
  }
30
30
  else if (options.type === 'jobs') {
31
- const { jobWorkerQueue } = options;
31
+ const { jobWorkerPool } = options;
32
32
  const runtime = new JobWorkerRuntime(serverConfig, {
33
- queueName: jobWorkerQueue,
33
+ poolName: jobWorkerPool,
34
34
  port: workerData.port,
35
35
  });
36
36
  return runtime;
@@ -39,3 +39,4 @@ export async function run(options) {
39
39
  throw new Error(`Unknown runtime type: ${workerData.runtime.type}`);
40
40
  }
41
41
  }
42
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/entrypoints/worker.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAA;AAItB,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAoC;IAC5D,MAAM,YAAY,GAAiB,MAAM,MAAM;IAC7C,mBAAmB;IACnB,SAAS,CACV,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACxB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACnC,UAAU,CAAC,UAAU,GAAG,CAAC,MAAW,EAAE,EAAE;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;gBAC/C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;QACH,CAAC,CAAA;QAED,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;QAC9C,MAAM,SAAS,GAAG,MAAM,MAAM;QAC5B,kBAAkB;QAClB,IAAI,EACL,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAExB,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAC1C,YAAY,EACZ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,EAC1C,SAAS,CACV,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACnC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;QACjC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE;YACjD,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,UAAU,CAAC,IAAI;SACtB,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,yBAA0B,UAAU,CAAC,OAAe,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { createConsolePrettyDestination, createFactoryInjectable, createLazyInjectable, createValueInjectable } from '@nmtjs/core';
2
+ import { createTransport } from '@nmtjs/gateway';
3
+ import { createContractProcedure, createContractRouter, createFilter, createGuard, createHook, createJob, createJobsRouter, createMiddleware, createPlugin, createProcedure, createRootRouter, createRouter, createStep, defineApplication, defineServer, jobOperation } from './runtime/index.ts';
4
+ export declare const neemata: {
5
+ app: typeof defineApplication;
6
+ server: typeof defineServer;
7
+ injectables: {
8
+ pubSubAdapter: import("@nmtjs/core").LazyInjectable<import("./runtime/index.ts").PubSubAdapterType, import("@nmtjs/core").Scope.Global>;
9
+ pubSubPublish: import("@nmtjs/core").LazyInjectable<import("./runtime/index.ts").PubSubPublish, import("@nmtjs/core").Scope.Global>;
10
+ pubSubSubscribe: import("@nmtjs/core").LazyInjectable<import("./runtime/index.ts").PubSubSubscribe, import("@nmtjs/core").Scope.Global>;
11
+ jobManager: import("@nmtjs/core").LazyInjectable<import("./runtime/index.ts").JobManagerInstance, import("@nmtjs/core").Scope.Global>;
12
+ storeConfig: import("@nmtjs/core").LazyInjectable<import("./runtime/index.ts").ServerStoreConfig, import("@nmtjs/core").Scope.Global>;
13
+ workerType: import("@nmtjs/core").LazyInjectable<import("./runtime/enums.ts").WorkerType, import("@nmtjs/core").Scope.Global>;
14
+ jobWorkerPool: import("@nmtjs/core").LazyInjectable<import("./runtime/enums.ts").JobWorkerPool, import("@nmtjs/core").Scope.Global>;
15
+ jobAbortSignal: import("@nmtjs/core").LazyInjectable<AbortSignal, import("@nmtjs/core").Scope.Global>;
16
+ connection: import("@nmtjs/core").LazyInjectable<import("@nmtjs/gateway").GatewayConnection, import("@nmtjs/core").Scope.Connection>;
17
+ connectionId: import("@nmtjs/core").LazyInjectable<string, import("@nmtjs/core").Scope.Connection>;
18
+ connectionData: import("@nmtjs/core").LazyInjectable<unknown, import("@nmtjs/core").Scope.Connection>;
19
+ connectionAbortSignal: import("@nmtjs/core").LazyInjectable<AbortSignal, import("@nmtjs/core").Scope.Connection>;
20
+ rpcClientAbortSignal: import("@nmtjs/core").LazyInjectable<AbortSignal, import("@nmtjs/core").Scope.Call>;
21
+ rpcStreamAbortSignal: import("@nmtjs/core").LazyInjectable<AbortSignal, import("@nmtjs/core").Scope.Call>;
22
+ rpcAbortSignal: import("@nmtjs/core").FactoryInjectable<AbortSignal, {
23
+ rpcClientAbortSignal: import("@nmtjs/core").LazyInjectable<AbortSignal, import("@nmtjs/core").Scope.Call>;
24
+ connectionAbortSignal: import("@nmtjs/core").LazyInjectable<AbortSignal, import("@nmtjs/core").Scope.Connection>;
25
+ rpcStreamAbortSignal: import("@nmtjs/core").DependencyOptional<import("@nmtjs/core").LazyInjectable<AbortSignal, import("@nmtjs/core").Scope.Call>>;
26
+ }, import("@nmtjs/core").Scope.Global, AbortSignal>;
27
+ createBlob: import("@nmtjs/core").LazyInjectable<(source: import("stream").Readable | globalThis.ReadableStream | File | Blob | string | ArrayBuffer | Uint8Array, metadata?: import("@nmtjs/protocol").ProtocolBlobMetadata) => import("@nmtjs/protocol").ProtocolBlobInterface, import("@nmtjs/core").Scope.Call>;
28
+ logger: ((label: string) => import("@nmtjs/core").FactoryInjectable<import("@nmtjs/core").Logger, {
29
+ logger: import("@nmtjs/core").LazyInjectable<import("@nmtjs/core").Logger>;
30
+ }>) & import("@nmtjs/core").LazyInjectable<import("@nmtjs/core").Logger, import("@nmtjs/core").Scope.Global>;
31
+ inject: import("@nmtjs/core").LazyInjectable<(<T extends import("@nmtjs/core").AnyInjectable>(injectable: T, context: { [K in keyof T["dependencies"]]?: import("@nmtjs/core").ResolveInjectableType<T["dependencies"][K]> | import("@nmtjs/core").AnyInjectable<import("@nmtjs/core").ResolveInjectableType<T["dependencies"][K]>> | undefined; }, scope?: Exclude<import("@nmtjs/core").Scope, import("@nmtjs/core").Scope.Transient>) => Promise<import("@nmtjs/core").ResolveInjectableType<T>>) & {
32
+ explicit: <T extends import("@nmtjs/core").AnyInjectable>(injectable: T, context: { [K in keyof T["dependencies"]]?: import("@nmtjs/core").ResolveInjectableType<T["dependencies"][K]> | import("@nmtjs/core").AnyInjectable<import("@nmtjs/core").ResolveInjectableType<T["dependencies"][K]>> | undefined; }, scope?: Exclude<import("@nmtjs/core").Scope, import("@nmtjs/core").Scope.Transient>) => Promise<{
33
+ instance: Awaited<import("@nmtjs/core").ResolveInjectableType<T>>;
34
+ [Symbol.asyncDispose]: () => Promise<void>;
35
+ }>;
36
+ }, import("@nmtjs/core").Scope.Global>;
37
+ dispose: import("@nmtjs/core").LazyInjectable<(<T extends import("@nmtjs/core").AnyInjectable>(injectable: T, instance?: any) => Promise<void>), import("@nmtjs/core").Scope.Global>;
38
+ };
39
+ transport: typeof createTransport;
40
+ plugin: typeof createPlugin;
41
+ logging: {
42
+ console: typeof createConsolePrettyDestination;
43
+ };
44
+ value: typeof createValueInjectable;
45
+ lazy: typeof createLazyInjectable;
46
+ factory: typeof createFactoryInjectable;
47
+ rootRouter: typeof createRootRouter;
48
+ router: typeof createRouter;
49
+ contractRouter: typeof createContractRouter;
50
+ procedure: typeof createProcedure;
51
+ contractProcedure: typeof createContractProcedure;
52
+ middleware: typeof createMiddleware;
53
+ guard: typeof createGuard;
54
+ filter: typeof createFilter;
55
+ job: typeof createJob;
56
+ step: typeof createStep;
57
+ hook: typeof createHook;
58
+ jobRouter: typeof createJobsRouter & {
59
+ operation: typeof jobOperation;
60
+ };
61
+ };
62
+ export { c } from '@nmtjs/contract';
63
+ export { Scope } from '@nmtjs/core';
64
+ export { type ConnectionIdentityType, GatewayHook, ProxyableTransportType, } from '@nmtjs/gateway';
65
+ export { ConnectionType, ErrorCode, ProtocolBlob } from '@nmtjs/protocol';
66
+ export { t } from '@nmtjs/type';
67
+ export { ApiError, defineApplication, JobWorkerPool, LifecycleHook, StoreType, WorkerType, } from './runtime/index.ts';
68
+ export { neemata as n };
69
+ export default neemata;
@@ -1,8 +1,9 @@
1
- import { CoreInjectables, createConsolePrettyDestination, createFactoryInjectable, createLazyInjectable, createOptionalInjectable, createValueInjectable, } from '@nmtjs/core';
1
+ import { CoreInjectables, createConsolePrettyDestination, createFactoryInjectable, createLazyInjectable, createValueInjectable, } from '@nmtjs/core';
2
2
  import { createTransport, GatewayInjectables } from '@nmtjs/gateway';
3
- import { createContractProcedure, createContractRouter, createFilter, createGuard, createHook, createJob, createMiddleware, createPlugin, createProcedure, createRouter, createStep, defineApplication, RuntimeInjectables, } from '@nmtjs/runtime';
3
+ import { createContractProcedure, createContractRouter, createFilter, createGuard, createHook, createJob, createJobsRouter, createMiddleware, createPlugin, createProcedure, createRootRouter, createRouter, createStep, defineApplication, defineServer, jobOperation, RuntimeInjectables, } from "./runtime/index.js";
4
4
  export const neemata = {
5
5
  app: defineApplication,
6
+ server: defineServer,
6
7
  injectables: {
7
8
  ...CoreInjectables,
8
9
  ...GatewayInjectables,
@@ -15,10 +16,10 @@ export const neemata = {
15
16
  // TODO: TSC wants it
16
17
  createConsolePrettyDestination,
17
18
  },
18
- optional: createOptionalInjectable,
19
19
  value: createValueInjectable,
20
20
  lazy: createLazyInjectable,
21
21
  factory: createFactoryInjectable,
22
+ rootRouter: createRootRouter,
22
23
  router: createRouter,
23
24
  contractRouter: createContractRouter,
24
25
  procedure: createProcedure,
@@ -29,11 +30,14 @@ export const neemata = {
29
30
  job: createJob,
30
31
  step: createStep,
31
32
  hook: createHook,
33
+ jobRouter: Object.assign(createJobsRouter, { operation: jobOperation }),
32
34
  };
33
35
  export { c } from '@nmtjs/contract';
34
36
  export { Scope } from '@nmtjs/core';
35
- export { ErrorCode, ProtocolBlob } from '@nmtjs/protocol';
37
+ export { GatewayHook, ProxyableTransportType, } from '@nmtjs/gateway';
38
+ export { ConnectionType, ErrorCode, ProtocolBlob } from '@nmtjs/protocol';
36
39
  export { t } from '@nmtjs/type';
37
- export { ApiError, defineApplication, LifecycleHook } from 'nmtjs/runtime';
40
+ export { ApiError, defineApplication, JobWorkerPool, LifecycleHook, StoreType, WorkerType, } from "./runtime/index.js";
38
41
  export { neemata as n };
39
42
  export default neemata;
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,8BAA8B,EAC9B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAEpE,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,GAAG,EAAE,iBAAiB;IACtB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE;QACX,GAAG,eAAe;QAClB,GAAG,kBAAkB;QACrB,GAAI,kBAAgD;KACrD;IACD,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE;QACP,OAAO;QACL,qBAAqB;QACrB,8BAAuE;KAC1E;IACD,KAAK,EAAE,qBAAqB;IAC5B,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,uBAAuB;IAChC,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,YAAY;IACpB,cAAc,EAAE,oBAAoB;IACpC,SAAS,EAAE,eAAe;IAC1B,iBAAiB,EAAE,uBAAuB;IAC1C,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;CACxE,CAAA;AAED,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAEL,WAAW,EACX,sBAAsB,GACvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AAE/B,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,GACX,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,CAAA;AACvB,eAAe,OAAO,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { ResolverFactory } from 'oxc-resolver';
2
+ export declare const resolver: ResolverFactory;