@fluojs/core 1.1.0 → 2.0.0

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.
package/README.ko.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  <p><a href="./README.md"><kbd>English</kbd></a> <strong><kbd>한국어</kbd></strong></p>
4
4
 
5
+ Node.js 지원 범위는 `>=24.0.0 <27`입니다. 업그레이드 절차는 [Node.js 지원 및 마이그레이션](../../docs/reference/node-support.ko.md)을 참조하세요.
6
+
5
7
  모든 fluo 패키지가 공통으로 사용하는 표준 데코레이터, 공유 계약, 메타데이터 프리미티브를 제공하는 기반 패키지입니다.
6
8
 
7
9
  ## 목차
@@ -60,14 +62,24 @@ class UserService {
60
62
 
61
63
  fluo는 TC39 표준 데코레이터를 사용하므로 `experimentalDecorators: true`나 `emitDecoratorMetadata: true`에 의존하지 않습니다.
62
64
 
63
- core 메타데이터는 fluo가 소유한 저장소와 TC39 `Symbol.metadata` 통합 지점을 통해 기록되며, `reflect-metadata`나 컴파일러가 생성하는 design type 메타데이터를 사용하지 않습니다. `@fluojs/core`를 import하는 것만으로는 전역 `Symbol.metadata` 폴리필을 설치하지 않습니다. 런타임이 사용자 정의 표준 데코레이터를 평가하기 전에 폴리필을 설치해야 한다면 테스트나 부트스트랩 경계에서 `ensureMetadataSymbol()`을 호출하세요.
65
+ core 메타데이터는 fluo가 소유한 저장소와 TC39 `Symbol.metadata` 통합 지점을 통해 기록되며, `reflect-metadata`나 컴파일러가 생성하는 design type 메타데이터를 사용하지 않습니다. `@fluojs/core`를 import하는 것만으로는 전역 `Symbol.metadata` 폴리필을 설치하지 않습니다. fluo 내장 데코레이터는 framework-owned store를 통해 계속 동작하지만, `context.metadata`를 읽는 사용자 정의 표준 데코레이터는 decorated module이 평가되기 전에 `Symbol.metadata`가 필요합니다.
64
66
 
65
67
  ```ts
68
+ // preload.ts — 이 파일을 애플리케이션 entrypoint로 설정합니다.
66
69
  import { ensureMetadataSymbol } from '@fluojs/core';
67
70
 
68
71
  ensureMetadataSymbol();
72
+ await import('./bootstrap.js');
69
73
  ```
70
74
 
75
+ dynamic import는 의도적인 순서 보장입니다. decorated class를 static import한 일반 bootstrap module에서 나중에 `ensureMetadataSymbol()`을 호출하면 너무 늦습니다. ESM은 bootstrap module body를 실행하기 전에 static import graph를 먼저 평가하기 때문입니다.
76
+
77
+ ### 빈 module metadata
78
+
79
+ `@Module()`과 `@Module(undefined)`는 `@Module({})`의 축약입니다. Module metadata 등록,
80
+ 앞서 선언된 부분 필드와 어느 순서의 `@Global()` 보존, metadata version 갱신은 유지합니다.
81
+ Decorator가 없는 클래스와는 다릅니다.
82
+
71
83
  ### 명시적인 의존성 메타데이터
72
84
 
73
85
  `@Inject(...)`는 리플렉션 기반 추론 대신 코드 안에서 의존성 토큰을 직접 드러냅니다. 이 데코레이터는 표준 클래스 데코레이터이므로 constructor parameter나 property가 아니라 생성자 토큰을 선언할 클래스 위에 붙입니다. 상속된 constructor 토큰을 명시적으로 비우려면 `@Inject()`를 사용하면 됩니다.
@@ -97,6 +109,8 @@ class UsesDeferredAndOptionalDeps {}
97
109
 
98
110
  애플리케이션 코드는 공개 데코레이터, `ensureMetadataSymbol()`, read-only module metadata inspection을 `@fluojs/core`에서 import해야 합니다. `@fluojs/core/internal` 서브패스는 메타데이터 레코드, 컨트롤러/라우트 헬퍼, injection/validation 헬퍼, clone 유틸리티가 필요한 fluo 패키지를 위한 경로입니다. 표준 metadata bag helper는 current/native `Symbol.metadata`와 fallback symbol이 섞인 lookup을 처리합니다. 어느 era에서 온 own metadata든 같은 key에 대해서는 어느 era에서 온 inherited metadata보다 우선하지만, child가 다른 key만 소유한 경우 parent constructor의 inherited key는 계속 보입니다. DI와 모듈 그래프 hot path의 allocation을 줄이기 위해 `getModuleMetadata()`, `getOwnClassDiMetadata()`, `getInheritedClassDiMetadata()`, `getClassDiMetadata()`는 frozen snapshot을 반환하며 write 사이에는 같은 reference를 재사용할 수 있습니다. 이 결과, collection 필드, class DI wrapper-token entry(`ForwardRefToken` / `OptionalInjectToken`), module provider descriptor wrapper와 middleware route-config wrapper(그 안의 `routes` 배열 포함)는 immutable로 취급해야 합니다. 데코레이션 이후 caller가 소유한 dependency wrapper 객체를 변경해도 저장된 class DI metadata를 다시 쓸 수 없습니다. `useValue` payload 객체와 runtime middleware/guard/interceptor instance는 mutable reference로 유지되며 이 snapshot 때문에 freeze되지 않습니다. 다른 metadata reader는 각 reader의 테스트가 stable-reference 재사용을 문서화하지 않는 한 기존 defensive-read 동작을 유지합니다.
99
111
 
112
+ Internal `RouteMetadata.method` declaration은 string을 받으므로 `@fluojs/http`가 built-in method 및 reserved `ALL` wildcard sentinel과 함께 canonical uppercase custom HTTP method token을 저장할 수 있습니다. Method-token validation과 `ALL` reservation은 이 low-level metadata record가 아니라 public HTTP decorator가 소유합니다.
113
+
100
114
  ```ts
101
115
  import { getModuleMetadata } from '@fluojs/core';
102
116
 
@@ -109,16 +123,18 @@ console.log(metadata.providers);
109
123
  `AsyncModuleOptions<T>`는 외부 `ConfigService` 등에 의존하여 비동기적으로 초기화가 필요한 모듈을 위한 표준 계약입니다.
110
124
 
111
125
  ```ts
112
- import { AsyncModuleOptions, MaybePromise, Token } from '@fluojs/core';
126
+ import { type AsyncModuleOptions } from '@fluojs/core';
127
+ import { defineModule, type ModuleType } from '@fluojs/runtime';
113
128
 
114
129
  interface Config {
115
130
  apiKey: string;
116
131
  }
117
132
 
118
133
  class EmailModule {
119
- static forRootAsync(options: AsyncModuleOptions<Config>) {
120
- return {
121
- module: EmailModule,
134
+ static forRootAsync(options: AsyncModuleOptions<Config>): ModuleType {
135
+ class EmailRuntimeModule {}
136
+
137
+ return defineModule(EmailRuntimeModule, {
122
138
  providers: [
123
139
  {
124
140
  provide: 'CONFIG',
@@ -126,7 +142,7 @@ class EmailModule {
126
142
  inject: options.inject,
127
143
  },
128
144
  ],
129
- };
145
+ });
130
146
  }
131
147
  }
132
148
  ```
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  <p><strong><kbd>English</kbd></strong> <a href="./README.ko.md"><kbd>한국어</kbd></a></p>
4
4
 
5
+ Node.js support is `>=24.0.0 <27`. See [Node.js support and migration](../../docs/reference/node-support.md) before upgrading.
6
+
5
7
  Shared contracts, standard decorators, and metadata primitives that every fluo package builds on.
6
8
 
7
9
  ## Table of Contents
@@ -62,14 +64,24 @@ class UserService {
62
64
 
63
65
  fluo uses TC39 standard decorators. You do not need `experimentalDecorators: true` or `emitDecoratorMetadata: true` to use `@Module`, `@Inject`, `@Global`, or `@Scope`.
64
66
 
65
- Core metadata is written through fluo-owned stores and TC39 `Symbol.metadata` integration points, never through `reflect-metadata` or compiler-emitted design types. Importing `@fluojs/core` does not install a global `Symbol.metadata` polyfill. Call `ensureMetadataSymbol()` at test or bootstrap boundaries when a runtime needs the polyfill installed before evaluating custom standard decorators.
67
+ Core metadata is written through fluo-owned stores and TC39 `Symbol.metadata` integration points, never through `reflect-metadata` or compiler-emitted design types. Importing `@fluojs/core` does not install a global `Symbol.metadata` polyfill. Fluo's built-in decorators keep working through framework-owned stores, but a custom standard decorator that reads `context.metadata` needs `Symbol.metadata` before its decorated module is evaluated.
66
68
 
67
69
  ```ts
70
+ // preload.ts — configure this as the application entrypoint
68
71
  import { ensureMetadataSymbol } from '@fluojs/core';
69
72
 
70
73
  ensureMetadataSymbol();
74
+ await import('./bootstrap.js');
71
75
  ```
72
76
 
77
+ The dynamic import is intentional. An ordinary bootstrap module that statically imports decorated classes and then calls `ensureMetadataSymbol()` is too late, because ESM evaluates the static import graph before running the bootstrap module body.
78
+
79
+ ### Empty module metadata
80
+
81
+ `@Module()` and `@Module(undefined)` are shorthand for `@Module({})`. They still register
82
+ module metadata, preserve previously declared partial fields and `@Global()` in either
83
+ order, and advance the metadata version. An undecorated class is different.
84
+
73
85
  ### Explicit dependency metadata
74
86
 
75
87
  `@Inject(...)` keeps dependency wiring visible in code instead of relying on emitted reflection metadata. It is a standard class decorator: place it on the class whose constructor tokens you are declaring, not on constructor parameters or properties. Call `@Inject()` when you want to record an explicit empty override for inherited constructor tokens.
@@ -99,6 +111,8 @@ class UsesDeferredAndOptionalDeps {}
99
111
 
100
112
  Application code should import public decorators, `ensureMetadataSymbol()`, and read-only module metadata inspection from `@fluojs/core`. The `@fluojs/core/internal` subpath is reserved for fluo packages that need metadata records, controller/route helpers, injection and validation helpers, or clone utilities. Standard metadata bag helpers handle mixed-era lookups across current/native `Symbol.metadata` and the fallback symbol: own metadata from either era overrides inherited metadata from either era for the same key, while inherited keys from parent constructors remain visible when the child owns a different key. To reduce DI and module-graph hot-path allocations, `getModuleMetadata()`, `getOwnClassDiMetadata()`, `getInheritedClassDiMetadata()`, and `getClassDiMetadata()` return frozen snapshots and may reuse the same reference between writes. Treat those results, their collection fields, class DI wrapper-token entries (`ForwardRefToken` / `OptionalInjectToken`), module provider descriptor wrappers, and middleware route-config wrappers (including their `routes` arrays) as immutable. Mutating caller-owned dependency wrapper objects after decoration cannot rewrite stored class DI metadata. `useValue` payload objects and runtime middleware/guard/interceptor instances remain mutable references and are not frozen by these snapshots. Other metadata readers keep their existing defensive-read behavior unless their own tests document stable-reference reuse.
101
113
 
114
+ The internal `RouteMetadata.method` declaration accepts a string so `@fluojs/http` can store canonical uppercase custom HTTP method tokens as well as built-in methods and the reserved `ALL` wildcard sentinel. Method-token validation and `ALL` reservation remain owned by the public HTTP decorators rather than this low-level metadata record.
115
+
102
116
  ```ts
103
117
  import { getModuleMetadata } from '@fluojs/core';
104
118
 
@@ -111,16 +125,18 @@ console.log(metadata.providers);
111
125
  `AsyncModuleOptions<T>` is the standard contract for modules that require asynchronous initialization, such as those relying on an external `ConfigService`.
112
126
 
113
127
  ```ts
114
- import { AsyncModuleOptions, MaybePromise, Token } from '@fluojs/core';
128
+ import { type AsyncModuleOptions } from '@fluojs/core';
129
+ import { defineModule, type ModuleType } from '@fluojs/runtime';
115
130
 
116
131
  interface Config {
117
132
  apiKey: string;
118
133
  }
119
134
 
120
135
  class EmailModule {
121
- static forRootAsync(options: AsyncModuleOptions<Config>) {
122
- return {
123
- module: EmailModule,
136
+ static forRootAsync(options: AsyncModuleOptions<Config>): ModuleType {
137
+ class EmailRuntimeModule {}
138
+
139
+ return defineModule(EmailRuntimeModule, {
124
140
  providers: [
125
141
  {
126
142
  provide: 'CONFIG',
@@ -128,7 +144,7 @@ class EmailModule {
128
144
  inject: options.inject,
129
145
  },
130
146
  ],
131
- };
147
+ });
132
148
  }
133
149
  }
134
150
  ```
@@ -5,10 +5,11 @@ type TupleOnly<T extends readonly unknown[]> = number extends T['length'] ? neve
5
5
  /**
6
6
  * Declares module-level metadata (`imports`, `providers`, `controllers`, `exports`, `global`) on a class.
7
7
  *
8
- * @param definition Module composition metadata consumed by the runtime module-graph compiler.
8
+ * @param definition Module composition metadata; omission or `undefined` uses `{}`.
9
9
  * @returns A standard class decorator that records the module contract on the target class.
10
+ * @remarks Empty metadata still registers the module, preserves earlier partial fields, and updates its metadata version.
10
11
  */
11
- export declare function Module(definition: ModuleMetadata): StandardClassDecoratorFn;
12
+ export declare function Module(definition?: ModuleMetadata): StandardClassDecoratorFn;
12
13
  /**
13
14
  * Marks the decorated module as global so its exported providers are visible without explicit imports.
14
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,KAAK,wBAAwB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE1F,KAAK,SAAS,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAEtF;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,cAAc,GAAG,wBAAwB,CAI3E;AAED;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,wBAAwB,CAIjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,IAAI,wBAAwB,CAAC;AACnD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,cAAc,EAAE,EACpE,GAAG,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,GAC5B,wBAAwB,CAAC;AAC5B;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,wBAAwB,CAAC;AAiBpF;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,wBAAwB,CAI5F"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EAGpB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,KAAK,wBAAwB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE1F,KAAK,SAAS,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAEtF;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,UAAU,GAAE,cAAmB,GAAG,wBAAwB,CAIhF;AAED;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,wBAAwB,CAIjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,IAAI,wBAAwB,CAAC;AACnD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,cAAc,EAAE,EACpE,GAAG,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,GAC5B,wBAAwB,CAAC;AAC5B;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,wBAAwB,CAAC;AAiBpF;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,wBAAwB,CAI5F"}
@@ -2,10 +2,11 @@ import { defineClassDiMetadata, defineModuleMetadata } from './metadata.js';
2
2
  /**
3
3
  * Declares module-level metadata (`imports`, `providers`, `controllers`, `exports`, `global`) on a class.
4
4
  *
5
- * @param definition Module composition metadata consumed by the runtime module-graph compiler.
5
+ * @param definition Module composition metadata; omission or `undefined` uses `{}`.
6
6
  * @returns A standard class decorator that records the module contract on the target class.
7
+ * @remarks Empty metadata still registers the module, preserves earlier partial fields, and updates its metadata version.
7
8
  */
8
- export function Module(definition) {
9
+ export function Module(definition = {}) {
9
10
  return target => {
10
11
  defineModuleMetadata(target, definition);
11
12
  };
@@ -1,8 +1,8 @@
1
1
  import type { Constructor, InjectionToken, MaybePromise, MetadataPropertyKey, MetadataSource, Token } from '../types.js';
2
2
  /**
3
- * Defines the metadata collection type.
3
+ * Defines the read-only metadata collection type.
4
4
  */
5
- export type MetadataCollection<T = unknown> = T[];
5
+ export type MetadataCollection<T = unknown> = readonly T[];
6
6
  /**
7
7
  * Describes the module metadata contract.
8
8
  */
@@ -41,7 +41,7 @@ export interface RouteRedirect {
41
41
  * Describes the route metadata contract.
42
42
  */
43
43
  export interface RouteMetadata {
44
- method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'ALL';
44
+ method: string;
45
45
  path: string;
46
46
  request?: new (...args: never[]) => unknown;
47
47
  guards?: MetadataCollection;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -66,5 +66,5 @@ export type MetadataPropertyKey = string | symbol;
66
66
  /**
67
67
  * Canonical request-data origins used by packages that describe how metadata values are bound.
68
68
  */
69
- export type MetadataSource = 'path' | 'query' | 'header' | 'cookie' | 'body';
69
+ export type MetadataSource = 'path' | 'query' | 'header' | 'cookie' | 'body' | 'files';
70
70
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;CACrC;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC9C,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAEjG;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;CACrC;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC9C,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAEjG;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC"}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "types",
10
10
  "foundation"
11
11
  ],
12
- "version": "1.1.0",
12
+ "version": "2.0.0",
13
13
  "private": false,
14
14
  "license": "MIT",
15
15
  "repository": {
@@ -18,7 +18,7 @@
18
18
  "directory": "packages/core"
19
19
  },
20
20
  "engines": {
21
- "node": ">=20.0.0"
21
+ "node": ">=24.0.0 <27"
22
22
  },
23
23
  "publishConfig": {
24
24
  "access": "public"
@@ -44,7 +44,7 @@
44
44
  "dist"
45
45
  ],
46
46
  "devDependencies": {
47
- "vitest": "^3.2.4"
47
+ "vitest": "^4.1.11"
48
48
  },
49
49
  "scripts": {
50
50
  "prebuild": "node ../../tooling/scripts/clean-dist.mjs",
@@ -1,45 +0,0 @@
1
- /**
2
- * TC39 standard method decorator contract for `Transaction`.
3
- *
4
- * - Uses the 2023-11 standard decorator shape.
5
- * - Does not rely on `reflect-metadata` or legacy decorator emit.
6
- * - The factory accepts a direct accessor function.
7
- * - ORM packages that expose transaction options can also accept their package-specific options object.
8
- */
9
- /**
10
- * Resolves the transaction-facing service instance for a decorated method.
11
- *
12
- * Default behavior is implicit: `@Transaction()` uses the decorated instance itself.
13
- * Explicit behavior is opt-in: `@Transaction((self) => self.namedClient)` can select
14
- * a different service object such as a Prisma, Drizzle, or Mongoose client wrapper.
15
- *
16
- * Nested reuse is allowed by contract: if a transaction already exists for the
17
- * current call chain, the implementation should reuse that transaction context
18
- * instead of opening a nested one.
19
- *
20
- * Prisma and Drizzle may also accept package-specific transaction options at
21
- * the outer boundary. Nested transaction helpers reject options while an
22
- * ambient transaction already exists so option intent is not silently ignored.
23
- */
24
- export type TransactionAccessor<T> = (self: T) => {
25
- transaction: Function;
26
- current: Function;
27
- };
28
- /**
29
- * TC39 standard method decorator contract for `Transaction`.
30
- *
31
- * The decorator returned here is a standard 2023-11 method decorator and therefore
32
- * receives `ClassMethodDecoratorContext` rather than any reflect-based metadata.
33
- */
34
- export type TransactionDecorator = (value: Function, context: ClassMethodDecoratorContext) => Function | void;
35
- /**
36
- * Factory shape for the shared `Transaction` decorator used by ORM packages.
37
- *
38
- * Package-local API shape:
39
- * - `Transaction()` => default accessor using `this`
40
- * - `Transaction((self) => self.namedClient)` => explicit client selection
41
- * - package-specific transaction options where the ORM wrapper supports them
42
- * - no combined object shape such as `Transaction({ accessor: ... })`
43
- */
44
- export type TransactionDecoratorFactory<T> = (accessor?: TransactionAccessor<T>) => TransactionDecorator;
45
- //# sourceMappingURL=transaction-decorator-contract.notes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction-decorator-contract.notes.d.ts","sourceRoot":"","sources":["../src/transaction-decorator-contract.notes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK;IAChD,WAAW,EAAE,QAAQ,CAAC;IACtB,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,2BAA2B,KACjC,QAAQ,GAAG,IAAI,CAAC;AAErB;;;;;;;;GAQG;AACH,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI,CAC3C,QAAQ,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC9B,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- export {};