@nmtjs/core 0.16.1 → 0.17.0-beta.1

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 (43) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +41 -1
  3. package/dist/container.d.ts +1 -1
  4. package/dist/container.js +3 -5
  5. package/dist/container.js.map +1 -1
  6. package/dist/execution-environment.d.ts +15 -0
  7. package/dist/execution-environment.js +30 -0
  8. package/dist/execution-environment.js.map +1 -0
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/injectables.d.ts +13 -5
  13. package/dist/injectables.js +16 -6
  14. package/dist/injectables.js.map +1 -1
  15. package/dist/logger.d.ts +2 -1
  16. package/dist/logger.js +15 -7
  17. package/dist/logger.js.map +1 -1
  18. package/dist/metadata.d.ts +4 -6
  19. package/dist/metadata.js +2 -3
  20. package/dist/metadata.js.map +1 -1
  21. package/package.json +6 -9
  22. package/src/container.ts +3 -7
  23. package/src/execution-environment.ts +50 -0
  24. package/src/index.ts +1 -1
  25. package/src/injectables.ts +60 -13
  26. package/src/logger.ts +24 -9
  27. package/src/metadata.ts +11 -32
  28. package/dist/utils/functions.d.ts +0 -7
  29. package/dist/utils/functions.js +0 -18
  30. package/dist/utils/functions.js.map +0 -1
  31. package/dist/utils/index.d.ts +0 -3
  32. package/dist/utils/index.js +0 -4
  33. package/dist/utils/index.js.map +0 -1
  34. package/dist/utils/pool.d.ts +0 -18
  35. package/dist/utils/pool.js +0 -106
  36. package/dist/utils/pool.js.map +0 -1
  37. package/dist/utils/semaphore.d.ts +0 -13
  38. package/dist/utils/semaphore.js +0 -56
  39. package/dist/utils/semaphore.js.map +0 -1
  40. package/src/utils/functions.ts +0 -31
  41. package/src/utils/index.ts +0 -3
  42. package/src/utils/pool.ts +0 -111
  43. package/src/utils/semaphore.ts +0 -63
package/LICENSE.md CHANGED
@@ -4,4 +4,4 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
4
 
5
5
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
6
 
7
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,9 +1,49 @@
1
1
  # NeemataJS - RPC application server for real-time applications (proof of concept)
2
2
 
3
3
  ### Built with following in mind:
4
+
4
5
  - transport-agnostic (like WebSockets, WebTransport, .etc)
5
6
  - format-agnostic (like JSON, MessagePack, BSON, .etc)
6
7
  - binary data streaming and event subscriptions
7
8
  - contract-based API
8
9
  - end-to-end type safety
9
- - CPU-intensive task execution on separate workers
10
+ - CPU-intensive task execution on separate workers
11
+
12
+ ## Neem CLI draft
13
+
14
+ `neem build` compiles config, app entries, plugin entries, and plugin-declared
15
+ artifacts into `dist` by default. It writes an internal `neem.manifest.json`
16
+ with relative artifact paths.
17
+
18
+ `neem start` consumes an existing built output directory. It reads the manifest
19
+ for executable artifacts and serialized runtime config, registers built plugin
20
+ hooks, and starts app workers in production mode.
21
+
22
+ `neem dev` uses `.neem` by default as a build-like watched output directory. It
23
+ uses the same manifest shape as `start`, restarts app workers after successful
24
+ config/app rebuilds, reloads plugin hooks after plugin entry rebuilds, and keeps
25
+ existing workers alive on rebuild errors.
26
+
27
+ ## Service integration tests
28
+
29
+ Service-backed package integration tests live beside package owners under
30
+ `packages/*/tests/integration`.
31
+
32
+ Local services:
33
+
34
+ ```sh
35
+ docker compose up -d --wait redis valkey kafka
36
+ ```
37
+
38
+ Run required service tests:
39
+
40
+ ```sh
41
+ NMTJS_REQUIRE_SERVICE_TESTS=1 \
42
+ REDIS_URL=redis://localhost:6379 \
43
+ VALKEY_URL=redis://localhost:6380 \
44
+ KAFKA_BROKERS=localhost:9092 \
45
+ pnpm run test:integration:services
46
+ ```
47
+
48
+ Without service env, these tests skip in normal package/root test runs. In CI,
49
+ `NMTJS_REQUIRE_SERVICE_TESTS=1` makes missing service env fail instead of skip.
@@ -26,7 +26,7 @@ export declare class Container {
26
26
  find(scope: Exclude<Scope, Scope.Transient>): Container | undefined;
27
27
  [Symbol.asyncDispose](): Promise<void>;
28
28
  dispose(): Promise<void>;
29
- containsWithinSelf(injectable: AnyInjectable): boolean;
29
+ owns(injectable: AnyInjectable): boolean;
30
30
  contains(injectable: AnyInjectable): boolean;
31
31
  get<T extends AnyInjectable>(injectable: T): ResolveInjectableType<T>;
32
32
  resolve<T extends AnyInjectable>(injectable: T, measurements?: PerformanceMeasure[]): Promise<ResolveInjectableType<T>>;
package/dist/container.js CHANGED
@@ -76,14 +76,13 @@ export class Container {
76
76
  this.dependants.clear();
77
77
  this.disposing = false;
78
78
  }
79
- containsWithinSelf(injectable) {
79
+ owns(injectable) {
80
80
  return (this.provisions.has(injectable) ||
81
81
  this.instances.has(injectable) ||
82
82
  this.resolvers.has(injectable));
83
83
  }
84
84
  contains(injectable) {
85
- return (this.containsWithinSelf(injectable) ||
86
- (this.parent?.contains(injectable) ?? false));
85
+ return this.owns(injectable) || (this.parent?.contains(injectable) ?? false);
87
86
  }
88
87
  get(injectable) {
89
88
  if (injectable.scope === Scope.Transient) {
@@ -216,7 +215,6 @@ export class Container {
216
215
  : null;
217
216
  const resolution = this.createResolution(injectable, measurements).finally(() => {
218
217
  this.resolvers.delete(injectable);
219
- // biome-ignore lint: false
220
218
  // @ts-ignore
221
219
  if (measurements && measure)
222
220
  measurements.push(measure);
@@ -238,7 +236,7 @@ export class Container {
238
236
  context,
239
237
  };
240
238
  if (isFactoryInjectable(injectable)) {
241
- wrapper.private = await Promise.resolve(injectable.factory(wrapper.context));
239
+ wrapper.private = await Promise.resolve(injectable.create(wrapper.context));
242
240
  wrapper.public = injectable.pick(wrapper.private);
243
241
  }
244
242
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Container } from './container.ts';
2
+ import type { Dependant } from './injectables.ts';
3
+ import type { Logger } from './logger.ts';
4
+ export type ExecutionEnvironmentOptions = {
5
+ logger: Logger;
6
+ container?: Container;
7
+ label?: string;
8
+ };
9
+ export declare class ExecutionEnvironment {
10
+ readonly logger: Logger;
11
+ readonly container: Container;
12
+ constructor(options: ExecutionEnvironmentOptions);
13
+ initialize(dependants?: Iterable<Dependant>): Promise<void>;
14
+ dispose(): Promise<void>;
15
+ }
@@ -0,0 +1,30 @@
1
+ import { Container as CoreContainer } from './container.js';
2
+ import { Scope } from './enums.js';
3
+ import { CoreInjectables, getDepedencencyInjectable, provision, } from './injectables.js';
4
+ import { forkLogger } from './logger.js';
5
+ export class ExecutionEnvironment {
6
+ logger;
7
+ container;
8
+ constructor(options) {
9
+ this.logger = options.label
10
+ ? forkLogger(options.logger, options.label)
11
+ : options.logger;
12
+ this.container = options.container
13
+ ? options.container.fork(Scope.Global)
14
+ : new CoreContainer({ logger: this.logger });
15
+ this.container.provide([provision(CoreInjectables.logger, this.logger)]);
16
+ }
17
+ async initialize(dependants = []) {
18
+ const dependencies = new Set();
19
+ for (const dependant of dependants) {
20
+ for (const dependency of Object.values(dependant.dependencies)) {
21
+ dependencies.add(getDepedencencyInjectable(dependency));
22
+ }
23
+ }
24
+ await this.container.initialize(dependencies);
25
+ }
26
+ async dispose() {
27
+ await this.container.dispose();
28
+ }
29
+ }
30
+ //# sourceMappingURL=execution-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-environment.js","sourceRoot":"","sources":["../src/execution-environment.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,SAAS,GACV,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAQxC,MAAM,OAAO,oBAAoB;IACtB,MAAM,CAAQ;IACd,SAAS,CAAW;IAE7B,YAAY,OAAoC;QAC9C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK;YACzB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC;YAC3C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;QAElB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;YAChC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAE9C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAU,GAAwB,EAAE;QACnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiB,CAAA;QAE7C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/D,YAAY,CAAC,GAAG,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;IAChC,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  export * from './constants.ts';
2
2
  export * from './container.ts';
3
3
  export * from './enums.ts';
4
+ export * from './execution-environment.ts';
4
5
  export * from './hooks.ts';
5
6
  export * from './injectables.ts';
6
7
  export * from './logger.ts';
7
8
  export * from './metadata.ts';
8
9
  export * from './plugin.ts';
9
10
  export * from './types.ts';
10
- export * from './utils/index.ts';
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  export * from './constants.js';
2
2
  export * from './container.js';
3
3
  export * from './enums.js';
4
+ export * from './execution-environment.js';
4
5
  export * from './hooks.js';
5
6
  export * from './injectables.js';
6
7
  export * from './logger.js';
7
8
  export * from './metadata.js';
8
9
  export * from './plugin.js';
9
10
  export * from './types.js';
10
- export * from './utils/index.js';
11
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
@@ -20,13 +20,21 @@ export type DependencyContext<Deps extends Dependencies> = {
20
20
  } & {
21
21
  readonly [K in keyof Deps as Deps[K] extends DependencyOptional ? K : never]?: Deps[K] extends DependencyOptional ? ResolveInjectableType<Deps[K]['injectable']> : never;
22
22
  };
23
+ export type HandlerFn<Deps extends Dependencies, Args extends readonly unknown[], Return> = (context: DependencyContext<Deps>, ...args: Args) => MaybePromise<Return>;
24
+ export interface Handler<Deps extends Dependencies, Args extends readonly unknown[], Return> extends Dependant<Deps> {
25
+ handler: HandlerFn<Deps, Args, Return>;
26
+ }
27
+ export type HandlerInput<Deps extends Dependencies, Args extends readonly unknown[], Return> = HandlerFn<{}, Args, Return> | {
28
+ dependencies?: Deps;
29
+ handler: HandlerFn<Deps, Args, Return>;
30
+ };
31
+ export declare function createHandler<Args extends readonly unknown[], Return, Deps extends Dependencies = {}>(paramsOrHandler: HandlerInput<Deps, Args, Return>): Handler<Deps, Args, Return>;
23
32
  export type InjectableFactoryType<InjectableType, InjectableDeps extends Dependencies> = (context: DependencyContext<InjectableDeps>) => MaybePromise<InjectableType>;
24
33
  export type InjectablePickType<Input, Output> = (injectable: Input) => Output;
25
34
  export type InjectableDisposeType<InjectableType, InjectableDeps extends Dependencies> = (instance: InjectableType, context: DependencyContext<InjectableDeps>) => any;
26
35
  export interface LazyInjectable<T, S extends Scope = Scope.Global> extends Dependant<{}> {
27
36
  scope: S;
28
37
  $withType<O extends T>(): LazyInjectable<O, S>;
29
- optional(): DependencyOptional<LazyInjectable<T, S>>;
30
38
  [kInjectable]: any;
31
39
  [kLazyInjectable]: T;
32
40
  }
@@ -38,10 +46,9 @@ export interface ValueInjectable<T> extends Dependant<{}> {
38
46
  }
39
47
  export interface FactoryInjectable<T, D extends Dependencies = {}, S extends Scope = Scope.Global, P = T> extends Dependant<D> {
40
48
  scope: S;
41
- factory: InjectableFactoryType<P, D>;
49
+ create: InjectableFactoryType<P, D>;
42
50
  pick: InjectablePickType<P, T>;
43
51
  dispose?: InjectableDisposeType<P, D>;
44
- optional(): DependencyOptional<FactoryInjectable<T, D, S, P>>;
45
52
  [kInjectable]: any;
46
53
  [kFactoryInjectable]: any;
47
54
  }
@@ -54,14 +61,15 @@ export declare const isInjectable: (injectable: any) => injectable is AnyInjecta
54
61
  export declare const isOptionalInjectable: (injectable: any) => injectable is DependencyOptional<any>;
55
62
  export declare function getInjectableScope(injectable: AnyInjectable): Scope;
56
63
  export declare function getDepedencencyInjectable(dependency: Depedency): AnyInjectable;
57
- export declare function createOptionalInjectable<T extends AnyInjectable>(injectable: T): DependencyOptional<T>;
64
+ export declare function createOptionalInjectable<T extends LazyInjectable<any, any>>(injectable: T): DependencyOptional<T>;
65
+ export declare function optional<T, S extends Scope>(injectable: LazyInjectable<T, S>): DependencyOptional<LazyInjectable<T, S>>;
58
66
  export declare function createLazyInjectable<T, S extends Scope = Scope.Global>(scope?: S, label?: string, stackTraceDepth?: number): LazyInjectable<T, S>;
59
67
  export declare function createValueInjectable<T>(value: T, label?: string, stackTraceDepth?: number): ValueInjectable<T>;
60
68
  export declare function createFactoryInjectable<T, D extends Dependencies = {}, S extends Scope = Scope.Global, P = T>(paramsOrFactory: {
61
69
  dependencies?: D;
62
70
  scope?: S;
63
71
  pick?: InjectablePickType<P, T>;
64
- factory: InjectableFactoryType<P, D>;
72
+ create: InjectableFactoryType<P, D>;
65
73
  dispose?: InjectableDisposeType<P, D>;
66
74
  } | InjectableFactoryType<P, D>, label?: string, stackTraceDepth?: number): FactoryInjectable<null extends T ? P : T, D, S, P>;
67
75
  export type DependenciesSubstitution<T extends Dependencies> = {
@@ -1,12 +1,19 @@
1
1
  import { tryCaptureStackTrace } from '@nmtjs/common';
2
2
  import { kFactoryInjectable, kInjectable, kLazyInjectable, kOptionalDependency, kValueInjectable, } from './constants.js';
3
3
  import { Scope } from './enums.js';
4
+ import { forkLogger } from './logger.js';
4
5
  const ScopeStrictness = {
5
6
  [Scope.Transient]: Number.NaN, // this should make it always fail to compare with other scopes
6
7
  [Scope.Global]: 1,
7
8
  [Scope.Connection]: 2,
8
9
  [Scope.Call]: 3,
9
10
  };
11
+ export function createHandler(paramsOrHandler) {
12
+ const { dependencies = {}, handler } = typeof paramsOrHandler === 'function'
13
+ ? { handler: paramsOrHandler }
14
+ : paramsOrHandler;
15
+ return Object.freeze({ dependencies, handler });
16
+ }
10
17
  export const isLazyInjectable = (injectable) => injectable[kLazyInjectable];
11
18
  export const isFactoryInjectable = (injectable) => injectable[kFactoryInjectable];
12
19
  export const isValueInjectable = (injectable) => injectable[kValueInjectable];
@@ -39,13 +46,18 @@ export function createOptionalInjectable(injectable) {
39
46
  injectable,
40
47
  });
41
48
  }
49
+ export function optional(injectable) {
50
+ if (!isLazyInjectable(injectable)) {
51
+ throw new TypeError('Optional dependencies can only wrap lazy injectables');
52
+ }
53
+ return createOptionalInjectable(injectable);
54
+ }
42
55
  export function createLazyInjectable(scope = Scope.Global, label, stackTraceDepth = 0) {
43
56
  const injectable = Object.freeze({
44
57
  scope,
45
58
  dependencies: {},
46
59
  label,
47
60
  stack: tryCaptureStackTrace(stackTraceDepth),
48
- optional: () => createOptionalInjectable(injectable),
49
61
  $withType: () => injectable,
50
62
  [kInjectable]: true,
51
63
  [kLazyInjectable]: true,
@@ -65,16 +77,15 @@ export function createValueInjectable(value, label, stackTraceDepth = 0) {
65
77
  }
66
78
  export function createFactoryInjectable(paramsOrFactory, label, stackTraceDepth = 0) {
67
79
  const isFactory = typeof paramsOrFactory === 'function';
68
- const params = isFactory ? { factory: paramsOrFactory } : paramsOrFactory;
80
+ const params = isFactory ? { create: paramsOrFactory } : paramsOrFactory;
69
81
  const injectable = {
70
82
  dependencies: (params.dependencies ?? {}),
71
83
  scope: (params.scope ?? Scope.Global),
72
- factory: params.factory,
84
+ create: params.create,
73
85
  dispose: params.dispose,
74
86
  pick: params.pick ?? ((instance) => instance),
75
87
  label,
76
88
  stack: tryCaptureStackTrace(stackTraceDepth),
77
- optional: () => createOptionalInjectable(injectable),
78
89
  [kInjectable]: true,
79
90
  [kFactoryInjectable]: true,
80
91
  };
@@ -123,11 +134,10 @@ export function compareScope(left, operator, right) {
123
134
  }
124
135
  }
125
136
  const loggerInjectable = Object.assign((label, options) => {
126
- const bindings = label ? { $label: label } : {};
127
137
  return createFactoryInjectable({
128
138
  dependencies: { logger: loggerInjectable },
129
139
  scope: Scope.Global,
130
- factory: ({ logger }) => logger.child(bindings, options),
140
+ create: ({ logger }) => forkLogger(logger, label, options),
131
141
  });
132
142
  }, createLazyInjectable(Scope.Global, 'Logger'));
133
143
  const injectFnInjectable = createLazyInjectable(Scope.Global, 'Inject function');
@@ -1 +1 @@
1
- {"version":3,"file":"injectables.js","sourceRoot":"","sources":["../src/injectables.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAIpD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,eAAe,GAAG;IACtB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,+DAA+D;IAC9F,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IACjB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;IACrB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;CAChB,CAAA;AAkGD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAAe,EACoB,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAAe,EACuB,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,UAAe,EACqB,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAErE,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,UAAe,EACmB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAAe,EACwB,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAA;AAE3E,MAAM,UAAU,kBAAkB,CAAC,UAAyB;IAC1D,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,YAA4B,CAAA;IACpD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAA;QACxD,MAAM,eAAe,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QACtD,IACE,eAAe,KAAK,KAAK,CAAC,SAAS;YACnC,KAAK,KAAK,KAAK,CAAC,SAAS;YACzB,YAAY,CAAC,eAAe,EAAE,GAAG,EAAE,KAAK,CAAC,EACzC,CAAC;YACD,KAAK,GAAG,eAAe,CAAA;QACzB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,UAAqB;IAErB,IAAI,mBAAmB,IAAI,UAAU,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,UAAU,CAAA;IAC9B,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAAa;IAEb,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,CAAC,mBAAmB,CAAC,EAAE,IAAI;QAC3B,UAAU;KACX,CAA0B,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAK,GAAG,KAAK,CAAC,MAAW,EACzB,KAAc,EACd,eAAe,GAAG,CAAC;IAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,KAAK;QACL,YAAY,EAAE,EAAE;QAChB,KAAK;QACL,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC;QAC5C,QAAQ,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC;QACpD,SAAS,EAAE,GAAG,EAAE,CAAC,UAAiB;QAClC,CAAC,WAAW,CAAC,EAAE,IAAI;QACnB,CAAC,eAAe,CAAC,EAAE,IAAoB;KACxC,CAAC,CAAA;IACF,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAQ,EACR,KAAc,EACd,eAAe,GAAG,CAAC;IAEnB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,YAAY,EAAE,EAAE;QAChB,KAAK;QACL,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC;QAC5C,CAAC,WAAW,CAAC,EAAE,IAAI;QACnB,CAAC,gBAAgB,CAAC,EAAE,IAAI;KACzB,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAMrC,eAQ+B,EAC/B,KAAc,EACd,eAAe,GAAG,CAAC;IAEnB,MAAM,SAAS,GAAG,OAAO,eAAe,KAAK,UAAU,CAAA;IACvD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CAAA;IACzE,MAAM,UAAU,GAAG;QACjB,YAAY,EAAE,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAM;QAC9C,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAM;QAC1C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,QAAW,EAAE,EAAE,CAAC,QAAwB,CAAC;QAChE,KAAK;QACL,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC;QAC5C,QAAQ,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC;QACpD,CAAC,WAAW,CAAC,EAAE,IAAI;QACnB,CAAC,kBAAkB,CAAC,EAAE,IAAI;KAC3B,CAAA;IACD,UAAU,CAAC,KAAK,GAAG,sBAAsB,CACvC,OAAO,MAAM,CAAC,KAAK,KAAK,WAAW,EACnC,UAAU,CACN,CAAA;IACN,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAQ,CAAA;AACzC,CAAC;AAQD,MAAM,UAAU,UAAU,CACxB,UAAa,EACb,YAAyD,EACzD,eAAe,GAAG,CAAC;IAEnB,MAAM,YAAY,GAAG,EAAE,GAAG,UAAU,CAAC,YAAY,EAAE,CAAA;IACnD,MAAM,KAAK,GAAG,eAAe,GAAG,CAAC,CAAA;IACjC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAE,CAAA;QAChC,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YAC3B,CAAC;iBAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,YAAY,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,mBAAmB;QACnB,OAAO,uBAAuB,CAC5B,EAAE,GAAG,UAAU,EAAE,YAAY,EAAE,EAC/B,UAAU,CAAC,KAAK,EAChB,KAAK,CACN,CAAA;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAW,EACX,QAA8C,EAC9C,KAAY;IAEZ,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACzC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,SAAS,KAAK,UAAU,CAAA;QACjC,KAAK,IAAI;YACP,OAAO,SAAS,KAAK,UAAU,CAAA;QACjC,KAAK,GAAG;YACN,OAAO,SAAS,GAAG,UAAU,CAAA;QAC/B,KAAK,GAAG;YACN,OAAO,SAAS,GAAG,UAAU,CAAA;QAC/B,KAAK,IAAI;YACP,OAAO,SAAS,IAAI,UAAU,CAAA;QAChC,KAAK,IAAI;YACP,OAAO,SAAS,IAAI,UAAU,CAAA;QAChC;YACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CACpC,CAAC,KAAyB,EAAE,OAA4B,EAAE,EAAE;IAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/C,OAAO,uBAAuB,CAAC;QAC7B,YAAY,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE;QAC1C,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACzD,CAAC,CAAA;AACJ,CAAC,EACD,oBAAoB,CAAS,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAI9B,CAAA;AAExB,MAAM,kBAAkB,GAAG,oBAAoB,CAC7C,KAAK,CAAC,MAAM,EACZ,iBAAiB,CAClB,CAAA;AACD,MAAM,mBAAmB,GAAG,oBAAoB,CAC9C,KAAK,CAAC,MAAM,EACZ,kBAAkB,CACnB,CAAA;AAED,SAAS,sBAAsB,CAC7B,cAAuB,EACvB,UAAyB;IAEzB,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IAClD,IAAI,CAAC,cAAc,IAAI,YAAY,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC;QACrE,MAAM,IAAI,KAAK,CACb,iBAAiB,UAAU,CAAC,KAAK,0DAA0D,WAAW,EAAE,CACzG,CAAA;IACH,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,KAAW,eAAe,CAI/B;AAJD,WAAiB,eAAe;IACjB,sBAAM,GAAG,gBAAgB,CAAA;IACzB,sBAAM,GAAG,kBAAkB,CAAA;IAC3B,uBAAO,GAAG,mBAAmB,CAAA;AAC5C,CAAC,EAJgB,eAAe,KAAf,eAAe,QAI/B;AASD,MAAM,CAAC,MAAM,SAAS,GAAG,CAIvB,KAAQ,EACR,KAAQ,EACM,EAAE;IAChB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;AACzB,CAAC,CAAA"}
1
+ {"version":3,"file":"injectables.js","sourceRoot":"","sources":["../src/injectables.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
- import type { ChildLoggerOptions, DestinationStream, Level, Logger, LoggerOptions, StreamEntry } from 'pino';
2
+ import type { Bindings, ChildLoggerOptions, DestinationStream, Level, Logger, LoggerOptions, StreamEntry } from 'pino';
3
3
  export declare const loggerLocalStorage: AsyncLocalStorage<object | undefined>;
4
4
  export declare const createLogger: (options: LoggingOptions | undefined, $label: string) => Logger<never, boolean>;
5
+ export declare const forkLogger: (logger: Logger, label: string | undefined, options?: ChildLoggerOptions, bindings?: Bindings) => Logger<never, boolean>;
5
6
  export type CreateConsolePrettyDestination = (level: Level, sync?: boolean) => StreamEntry;
6
7
  export declare const createConsolePrettyDestination: CreateConsolePrettyDestination;
7
8
  export type { ChildLoggerOptions, DestinationStream, Level, Logger, LoggerOptions, StreamEntry, };
package/dist/logger.js CHANGED
@@ -38,10 +38,11 @@ export const loggerLocalStorage = new AsyncLocalStorage({
38
38
  name: 'NeemataAsyncLocalStorage',
39
39
  });
40
40
  export const createLogger = (options = {}, $label) => {
41
- let { destinations, pinoOptions } = options;
42
- if (!destinations || !destinations?.length) {
41
+ let { destinations } = options;
42
+ const { pinoOptions } = options;
43
+ if (!destinations?.length) {
43
44
  destinations = [
44
- createConsolePrettyDestination((options.pinoOptions?.level || 'info')),
45
+ createConsolePrettyDestination((pinoOptions?.level || 'info')),
45
46
  ];
46
47
  }
47
48
  const lowestLevelValue = destinations.reduce((acc, destination) => Math.min(acc, 'stream' in destination
@@ -74,7 +75,14 @@ export const createLogger = (options = {}, $label) => {
74
75
  return object;
75
76
  },
76
77
  },
77
- }, multistream(destinations)).child({ $label, $threadId: threadId });
78
+ base: { $label, $threadId: threadId },
79
+ }, multistream(destinations));
80
+ };
81
+ export const forkLogger = (logger, label, options, bindings) => {
82
+ const _bindings = { ...bindings };
83
+ if (label !== undefined)
84
+ _bindings.$label = label;
85
+ return logger.child(_bindings, options);
78
86
  };
79
87
  export const createConsolePrettyDestination = (level, sync = true) => ({
80
88
  level,
@@ -83,9 +91,9 @@ export const createConsolePrettyDestination = (level, sync = true) => ({
83
91
  ignore: 'hostname,$label,$threadId',
84
92
  errorLikeObjectKeys: ['err', 'error', 'cause'],
85
93
  messageFormat: (log, messageKey) => {
86
- const group = fg(`[${log.$label}]`, 11);
87
- const msg = fg(log[messageKey], messageColors[log.level]);
88
- const thread = fg(`(Thread-${log.$threadId})`, 89);
94
+ const group = fg(`[${String(log.$label)}]`, 11);
95
+ const msg = fg(String(log[messageKey]), messageColors[log.level]);
96
+ const thread = fg(`(T-${String(log.$threadId)})`, 89);
89
97
  return `\x1b[0m${thread} ${group} ${msg}`;
90
98
  },
91
99
  customPrettifiers: {
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { MaybePromise } from '@nmtjs/common';
2
- import type { Dependant, Dependencies, DependencyContext, LazyInjectable, ResolveInjectableType } from './injectables.ts';
1
+ import type { Dependant, Dependencies, Handler, HandlerFn, LazyInjectable, ResolveInjectableType } from './injectables.ts';
3
2
  import { kMetaBinding, kMetadata } from './constants.ts';
4
3
  import { Scope } from './enums.ts';
5
4
  export declare enum MetadataKind {
@@ -26,10 +25,9 @@ export interface StaticMetaBinding<T extends AnyMeta = AnyMeta> extends Dependan
26
25
  readonly kind: MetadataKind.STATIC;
27
26
  readonly value: ResolveInjectableType<T>;
28
27
  }
29
- export interface MetaFactoryBinding<T extends AnyMeta = AnyMeta, Deps extends Dependencies = {}, Phase extends MetaPhase = MetaPhase, Call = unknown, Input = unknown> extends Dependant<Deps>, MetaBindingToken<T> {
28
+ export interface MetaFactoryBinding<T extends AnyMeta = AnyMeta, Deps extends Dependencies = {}, Phase extends MetaPhase = MetaPhase, Call = unknown, Input = unknown> extends Handler<Deps, [call: Call, input: Input], ResolveInjectableType<T>>, MetaBindingToken<T> {
30
29
  readonly kind: MetadataKind.FACTORY;
31
30
  readonly phase: Phase;
32
- readonly resolve: (context: DependencyContext<Deps>, call: Call, input: Input) => MaybePromise<ResolveInjectableType<T>>;
33
31
  }
34
32
  export type BeforeDecodeMetaBinding<T extends AnyMeta = AnyMeta, Deps extends Dependencies = {}, Call = unknown> = MetaFactoryBinding<T, Deps, 'beforeDecode', Call, unknown>;
35
33
  export type AfterDecodeMetaBinding<T extends AnyMeta = AnyMeta, Deps extends Dependencies = {}, Call = unknown, Input = unknown> = MetaFactoryBinding<T, Deps, 'afterDecode', Call, Input>;
@@ -39,12 +37,12 @@ export type MetaFactoryMethod<Value, Call = unknown> = {
39
37
  <Deps extends Dependencies = {}>(params: {
40
38
  dependencies?: Deps;
41
39
  phase?: 'beforeDecode';
42
- resolve: (context: DependencyContext<Deps>, call: Call, payload: unknown) => MaybePromise<Value>;
40
+ handler: HandlerFn<Deps, [call: Call, payload: unknown], Value>;
43
41
  }): BeforeDecodeMetaBinding<MetaToken<Value>, Deps, Call>;
44
42
  <Deps extends Dependencies = {}, Input = unknown>(params: {
45
43
  dependencies?: Deps;
46
44
  phase: 'afterDecode';
47
- resolve: (context: DependencyContext<Deps>, call: Call, input: Input) => MaybePromise<Value>;
45
+ handler: HandlerFn<Deps, [call: Call, input: Input], Value>;
48
46
  }): AfterDecodeMetaBinding<MetaToken<Value>, Deps, Call, Input>;
49
47
  };
50
48
  export type ResolveMetaBindingMeta<T extends AnyMetaBinding> = T[typeof kMetaBinding];
package/dist/metadata.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { kMetaBinding, kMetadata } from './constants.js';
2
2
  import { Scope } from './enums.js';
3
- import { createLazyInjectable, createOptionalInjectable, } from './injectables.js';
3
+ import { createLazyInjectable } from './injectables.js';
4
4
  export var MetadataKind;
5
5
  (function (MetadataKind) {
6
6
  MetadataKind["STATIC"] = "STATIC";
@@ -21,7 +21,6 @@ export function createMeta() {
21
21
  ...injectable,
22
22
  [kMetadata]: true,
23
23
  $withType: () => meta,
24
- optional: () => createOptionalInjectable(meta),
25
24
  static: (value) => Object.freeze({
26
25
  dependencies: {},
27
26
  kind: MetadataKind.STATIC,
@@ -31,9 +30,9 @@ export function createMeta() {
31
30
  factory: ((params) => {
32
31
  return Object.freeze({
33
32
  dependencies: params.dependencies ?? {},
33
+ handler: params.handler,
34
34
  kind: MetadataKind.FACTORY,
35
35
  phase: params.phase ?? 'beforeDecode',
36
- resolve: params.resolve,
37
36
  [kMetaBinding]: meta,
38
37
  });
39
38
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAkGD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,QAAqC,EACrC,IAAO,EAC+B,EAAE;IACxC,IAAI,KAA2C,CAAA;IAE/C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,KAAK,GAAG,OAAO,CAAC,KAAiC,CAAA;QACnD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,UAAU,UAAU;IAKxB,MAAM,UAAU,GAAG,oBAAoB,CAAoB,KAAK,CAAC,IAAI,CAAC,CAAA;IAEtE,MAAM,IAAI,GAAG;QACX,GAAG,UAAU;QACb,CAAC,SAAS,CAAC,EAAE,IAAa;QAC1B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAW;QAC5B,MAAM,EAAE,CAAC,KAAY,EAAE,EAAE,CACvB,MAAM,CAAC,MAAM,CAAC;YACZ,YAAY,EAAE,EAAE;YAChB,IAAI,EAAE,YAAY,CAAC,MAAM;YACzB,KAAK;YACL,CAAC,YAAY,CAAC,EAAE,IAAI;SACrB,CAAwC;QAC3C,OAAO,EAAE,CAAC,CAAC,MAIV,EAAE,EAAE;YACH,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;gBACvC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,YAAY,CAAC,OAAO;gBAC1B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,cAAc;gBACrC,CAAC,YAAY,CAAC,EAAE,IAAI;aACrB,CAAC,CAAA;QACJ,CAAC,CAAmC;KACrC,CAAA;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAA4B,CAAA;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAU,EAAoB,EAAE,CACrD,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAU,EAA2B,EAAE,CACnE,OAAO,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;AAEhC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAU,EAA8B,EAAE,CAC5E,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,CAAA;AAE5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAAU,EACsB,EAAE,CAClC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,CAAA;AAE7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAU,EACiB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;AASrD,MAAM,UAAU,wBAAwB,CAEtC,QAAqB,EAAE,KAAa;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAA;IACvC,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,OAAO,aAAa,KAAK,WAAW,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,sFAAsF,aAAa,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,kDAAkD,CAClN,CAAA;QACH,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACrB,KAAK,EAAE,CAAA;IACT,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -21,16 +21,16 @@
21
21
  "pino": "^10.0.0",
22
22
  "pino-pretty": "^13.0.0",
23
23
  "pino-std-serializers": "^7.0.0",
24
- "@nmtjs/common": "0.16.1",
25
- "@nmtjs/type": "0.16.1"
24
+ "@nmtjs/common": "0.17.0-beta.1",
25
+ "@nmtjs/type": "0.17.0-beta.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@types/node": "^24",
28
+ "@types/node": "^24.13.2",
29
29
  "pino": "^10.3.1",
30
30
  "pino-pretty": "^13.0.0",
31
31
  "pino-std-serializers": "^7.0.0",
32
- "@nmtjs/common": "0.16.1",
33
- "@nmtjs/type": "0.16.1"
32
+ "@nmtjs/common": "0.17.0-beta.1",
33
+ "@nmtjs/type": "0.17.0-beta.1"
34
34
  },
35
35
  "files": [
36
36
  "dist",
@@ -38,12 +38,9 @@
38
38
  "LICENSE.md",
39
39
  "README.md"
40
40
  ],
41
- "version": "0.16.1",
41
+ "version": "0.17.0-beta.1",
42
42
  "repository": {
43
43
  "type": "git",
44
44
  "url": "https://github.com/neematajs/neemata"
45
- },
46
- "scripts": {
47
- "clean-build": "rm -rf ./dist"
48
45
  }
49
46
  }