@nestia/core 12.1.0 → 13.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/lib/decorators/McpRoute.js.map +1 -1
- package/lib/decorators/SwaggerCustomizer.js.map +1 -1
- package/lib/decorators/SwaggerExample.js.map +1 -1
- package/native/go.mod +1 -1
- package/native/go.sum +32 -32
- package/native/transform/build.go +2 -0
- package/native/transform/run.go +29 -0
- package/native/transform/transform.go +52 -8
- package/native/transform/typia_dependency.go +117 -0
- package/native/transform/typia_registry.go +40 -0
- package/package.json +12 -8
- package/src/decorators/McpRoute.ts +1 -5
- package/src/decorators/SwaggerCustomizer.ts +1 -5
- package/src/decorators/SwaggerExample.ts +5 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpRoute.js","sourceRoot":"","sources":["../../src/decorators/McpRoute.ts"],"names":[],"mappings":";;;AAEA,4EAAyE;AAsDzE,kBAAyB,KAAgC;IACvD,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,OAAO,SAAS,QAAQ,CACtB,OAAe,EACf,YAA6B,EAC7B,UAAwC;;QAExC,OAAO,CAAC,cAAc,CACpB,iBAAiB,EACjB;YACE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,QAAE,MAAM,CAAC,WAAW,mCAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YACrE,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW;SACL,EAC5B,UAAU,CAAC,KAAK,CACjB,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,WAAiB,QAAQ;IAmBvB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,MAAM,CACpB,SAAoC;QAEpC,MAAM,QAAQ,GAAG,IAAA,6CAAqB,EAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,SAAS,cAAc,CAC5B,MAAc,EACd,WAAwC,EACxC,cAAsB;YAEtB,OAAO,CAAC,MAAM,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,EAAE;gBACjC,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,cAAc;gBACrB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAfe,SAAA,MAAM,SAerB,CAAA;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,CACd,MAAc,EACd,WAA4B,EAC5B,KAAiC,EACjC,EAAE;QACF,MAAM,KAAK,GACT,OAAO,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"McpRoute.js","sourceRoot":"","sources":["../../src/decorators/McpRoute.ts"],"names":[],"mappings":";;;AAEA,4EAAyE;AAsDzE,kBAAyB,KAAgC;IACvD,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,OAAO,SAAS,QAAQ,CACtB,OAAe,EACf,YAA6B,EAC7B,UAAwC;;QAExC,OAAO,CAAC,cAAc,CACpB,iBAAiB,EACjB;YACE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,QAAE,MAAM,CAAC,WAAW,mCAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YACrE,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW;SACL,EAC5B,UAAU,CAAC,KAAK,CACjB,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,WAAiB,QAAQ;IAmBvB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,MAAM,CACpB,SAAoC;QAEpC,MAAM,QAAQ,GAAG,IAAA,6CAAqB,EAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,SAAS,cAAc,CAC5B,MAAc,EACd,WAAwC,EACxC,cAAsB;YAEtB,OAAO,CAAC,MAAM,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,EAAE;gBACjC,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,cAAc;gBACrB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAfe,SAAA,MAAM,SAerB,CAAA;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,CACd,MAAc,EACd,WAA4B,EAC5B,KAAiC,EACjC,EAAE;QACF,MAAM,KAAK,GACT,OAAO,CAAC,cAAc,CAAC,4BAA4B,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5E,IAAI,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAEzC,OAAO,CAAC,cAAc,CACpB,4BAA4B,EAC5B,CAAC,KAAK,CAAC,EACP,MAAM,EACN,WAAW,CACZ,CAAC;IACN,CAAC,CAAC;AACJ,CAAC,EAtEgB,QAAQ,aAxBT,QAAQ,GAwBP,QAAQ,QAsExB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwaggerCustomizer.js","sourceRoot":"","sources":["../../src/decorators/SwaggerCustomizer.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;GAaG;AACH,2BACE,OAAqD;IAErD,OAAO,SAAS,iBAAiB,CAC/B,MAAc,EACd,WAA4B,EAC5B,UAAwC;QAExC,MAAM,KAAK,GAAwD,CAAC,GAAG,EAAE;YACvE,IACE,OAAO,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"SwaggerCustomizer.js","sourceRoot":"","sources":["../../src/decorators/SwaggerCustomizer.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;GAaG;AACH,2BACE,OAAqD;IAErD,OAAO,SAAS,iBAAiB,CAC/B,MAAc,EACd,WAA4B,EAC5B,UAAwC;QAExC,MAAM,KAAK,GAAwD,CAAC,GAAG,EAAE;YACvE,IACE,OAAO,CAAC,cAAc,CAAC,0BAA0B,EAAE,MAAM,EAAE,WAAW,CAAC;gBAEvE,OAAO,OAAO,CAAC,cAAc,CAC3B,0BAA0B,EAC1B,MAAM,EACN,WAAW,CACZ,CAAC;YACJ,MAAM,KAAK,GAAwD,EAAE,CAAC;YACtE,OAAO,CAAC,cAAc,CACpB,0BAA0B,EAC1B,KAAK,EACL,MAAM,EACN,WAAW,CACZ,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;QACL,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwaggerExample.js","sourceRoot":"","sources":["../../src/decorators/SwaggerExample.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,IAAiB,cAAc,CAwE9B;AAxED,WAAiB,cAAc;IAoB7B,SAAgB,QAAQ,CAAC,GAAG,IAAW;QACrC,OAAO,SAAS,sBAAsB,CACpC,OAAe,EACf,YAA6B,EAC7B,UAAwC;YAExC,YAAY,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IATe,eAAA,QAAQ,WASvB,CAAA;IAqBD,SAAgB,SAAS,CAAC,GAAG,IAAW;QACtC,OAAO,SAAS,uBAAuB,CACrC,MAAc,EACd,WAAwC,EACxC,KAAa;YAEb,YAAY,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3E,CAAC,CAAC;IACJ,CAAC;IARe,eAAA,SAAS,YAQxB,CAAA;AAcH,CAAC,EAxEgB,cAAc,aAAd,cAAc,GAAd,cAAc,QAwE9B;AAED,MAAM,YAAY,GAChB,CAAI,IAA6B,EAAE,EAAE,CACrC,CAAC,IAAW,EAAE,EAAE;;IACd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;SACzC,CAAC;QACJ,MAAM,GAAG,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAA,IAAI,CAAC,QAAQ,oCAAb,IAAI,CAAC,QAAQ,GAAK,EAAE,EAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC;AAEJ,MAAM,iBAAiB,GAAG,CACxB,UAAwC,EACf,EAAE;IAC3B,MAAM,MAAM,GAAwC,OAAO,CAAC,WAAW,CACrE,gCAAgC,EAChC,UAAU,CAAC,KAAK,CACjB,CAAC;IACF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,OAAO,CAAC,cAAc,CACpB,gCAAgC,EAChC,MAAM,EACN,UAAU,CAAC,KAAK,CACjB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACzB,MAAc,EACd,WAA4B,EAC5B,KAAa,EACc,EAAE;IAC7B,MAAM,KAAK,GAAgC,wBAAwB,CACjE,MAAM,EACN,WAAW,CACZ,CAAC;IACF,MAAM,MAAM,GAA0C,KAAK,CAAC,IAAI,CAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CACzB,CAAC;IACF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,IAAI,GAA8B,EAAE,KAAK,EAAE,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,MAAc,EACd,WAA4B,EACC,EAAE;IAC/B,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"SwaggerExample.js","sourceRoot":"","sources":["../../src/decorators/SwaggerExample.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,IAAiB,cAAc,CAwE9B;AAxED,WAAiB,cAAc;IAoB7B,SAAgB,QAAQ,CAAC,GAAG,IAAW;QACrC,OAAO,SAAS,sBAAsB,CACpC,OAAe,EACf,YAA6B,EAC7B,UAAwC;YAExC,YAAY,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IATe,eAAA,QAAQ,WASvB,CAAA;IAqBD,SAAgB,SAAS,CAAC,GAAG,IAAW;QACtC,OAAO,SAAS,uBAAuB,CACrC,MAAc,EACd,WAAwC,EACxC,KAAa;YAEb,YAAY,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3E,CAAC,CAAC;IACJ,CAAC;IARe,eAAA,SAAS,YAQxB,CAAA;AAcH,CAAC,EAxEgB,cAAc,aAAd,cAAc,GAAd,cAAc,QAwE9B;AAED,MAAM,YAAY,GAChB,CAAI,IAA6B,EAAE,EAAE,CACrC,CAAC,IAAW,EAAE,EAAE;;IACd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;SACzC,CAAC;QACJ,MAAM,GAAG,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAA,IAAI,CAAC,QAAQ,oCAAb,IAAI,CAAC,QAAQ,GAAK,EAAE,EAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC;AAEJ,MAAM,iBAAiB,GAAG,CACxB,UAAwC,EACf,EAAE;IAC3B,MAAM,MAAM,GAAwC,OAAO,CAAC,WAAW,CACrE,gCAAgC,EAChC,UAAU,CAAC,KAAK,CACjB,CAAC;IACF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,OAAO,CAAC,cAAc,CACpB,gCAAgC,EAChC,MAAM,EACN,UAAU,CAAC,KAAK,CACjB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACzB,MAAc,EACd,WAA4B,EAC5B,KAAa,EACc,EAAE;IAC7B,MAAM,KAAK,GAAgC,wBAAwB,CACjE,MAAM,EACN,WAAW,CACZ,CAAC;IACF,MAAM,MAAM,GAA0C,KAAK,CAAC,IAAI,CAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CACzB,CAAC;IACF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,IAAI,GAA8B,EAAE,KAAK,EAAE,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,MAAc,EACd,WAA4B,EACC,EAAE;IAC/B,MAAM,KAAK,GAA4C,OAAO,CAAC,cAAc,CAC3E,kCAAkC,EAClC,MAAM,EACN,WAAW,CACZ,CAAC;IACF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,MAAM,GAAgC,EAAE,CAAC;IAC/C,OAAO,CAAC,cAAc,CACpB,kCAAkC,EAClC,MAAM,EACN,MAAM,EACN,WAAW,CACZ,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
package/native/go.mod
CHANGED
|
@@ -10,7 +10,7 @@ require (
|
|
|
10
10
|
github.com/microsoft/typescript-go/shim/printer v0.0.0
|
|
11
11
|
github.com/microsoft/typescript-go/shim/scanner v0.0.0
|
|
12
12
|
github.com/samchon/ttsc/packages/ttsc v0.0.0
|
|
13
|
-
github.com/samchon/typia/packages/typia/native v0.0.0-
|
|
13
|
+
github.com/samchon/typia/packages/typia/native v0.0.0-20260818045905-f692fd63a846
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
require (
|
package/native/go.sum
CHANGED
|
@@ -8,38 +8,38 @@ github.com/microsoft/typescript-go v0.0.0-20260429010842-56ab4af42157 h1:llOMPhK
|
|
|
8
8
|
github.com/microsoft/typescript-go v0.0.0-20260429010842-56ab4af42157/go.mod h1:m8YA0PMC7ti0GW0RI05D6fEcjQeu98XVS+FWF+VDW2k=
|
|
9
9
|
github.com/peter-evans/patience v0.3.0 h1:rX0JdJeepqdQl1Sk9c9uvorjYYzL2TfgLX1adqYm9cA=
|
|
10
10
|
github.com/peter-evans/patience v0.3.0/go.mod h1:Kmxu5sY1NmBLFSStvXjX1wS9mIv7wMcP/ubucyMOAu0=
|
|
11
|
-
github.com/samchon/ttsc/packages/ttsc v0.0.0-
|
|
12
|
-
github.com/samchon/ttsc/packages/ttsc v0.0.0-
|
|
13
|
-
github.com/samchon/ttsc/packages/ttsc/shim/ast v0.0.0-
|
|
14
|
-
github.com/samchon/ttsc/packages/ttsc/shim/ast v0.0.0-
|
|
15
|
-
github.com/samchon/ttsc/packages/ttsc/shim/bundled v0.0.0-
|
|
16
|
-
github.com/samchon/ttsc/packages/ttsc/shim/bundled v0.0.0-
|
|
17
|
-
github.com/samchon/ttsc/packages/ttsc/shim/checker v0.0.0-
|
|
18
|
-
github.com/samchon/ttsc/packages/ttsc/shim/checker v0.0.0-
|
|
19
|
-
github.com/samchon/ttsc/packages/ttsc/shim/compiler v0.0.0-
|
|
20
|
-
github.com/samchon/ttsc/packages/ttsc/shim/compiler v0.0.0-
|
|
21
|
-
github.com/samchon/ttsc/packages/ttsc/shim/core v0.0.0-
|
|
22
|
-
github.com/samchon/ttsc/packages/ttsc/shim/core v0.0.0-
|
|
23
|
-
github.com/samchon/ttsc/packages/ttsc/shim/diagnosticwriter v0.0.0-
|
|
24
|
-
github.com/samchon/ttsc/packages/ttsc/shim/diagnosticwriter v0.0.0-
|
|
25
|
-
github.com/samchon/ttsc/packages/ttsc/shim/parser v0.0.0-
|
|
26
|
-
github.com/samchon/ttsc/packages/ttsc/shim/parser v0.0.0-
|
|
27
|
-
github.com/samchon/ttsc/packages/ttsc/shim/printer v0.0.0-
|
|
28
|
-
github.com/samchon/ttsc/packages/ttsc/shim/printer v0.0.0-
|
|
29
|
-
github.com/samchon/ttsc/packages/ttsc/shim/scanner v0.0.0-
|
|
30
|
-
github.com/samchon/ttsc/packages/ttsc/shim/scanner v0.0.0-
|
|
31
|
-
github.com/samchon/ttsc/packages/ttsc/shim/tsoptions v0.0.0-
|
|
32
|
-
github.com/samchon/ttsc/packages/ttsc/shim/tsoptions v0.0.0-
|
|
33
|
-
github.com/samchon/ttsc/packages/ttsc/shim/tspath v0.0.0-
|
|
34
|
-
github.com/samchon/ttsc/packages/ttsc/shim/tspath v0.0.0-
|
|
35
|
-
github.com/samchon/ttsc/packages/ttsc/shim/vfs v0.0.0-
|
|
36
|
-
github.com/samchon/ttsc/packages/ttsc/shim/vfs v0.0.0-
|
|
37
|
-
github.com/samchon/ttsc/packages/ttsc/shim/vfs/cachedvfs v0.0.0-
|
|
38
|
-
github.com/samchon/ttsc/packages/ttsc/shim/vfs/cachedvfs v0.0.0-
|
|
39
|
-
github.com/samchon/ttsc/packages/ttsc/shim/vfs/osvfs v0.0.0-
|
|
40
|
-
github.com/samchon/ttsc/packages/ttsc/shim/vfs/osvfs v0.0.0-
|
|
41
|
-
github.com/samchon/typia/packages/typia/native v0.0.0-
|
|
42
|
-
github.com/samchon/typia/packages/typia/native v0.0.0-
|
|
11
|
+
github.com/samchon/ttsc/packages/ttsc v0.0.0-20260820075544-3fe6b732f888 h1:N4jvJNOiHPpelrsNowlY1ubn5tDIJ7VV9/uEYogFMqU=
|
|
12
|
+
github.com/samchon/ttsc/packages/ttsc v0.0.0-20260820075544-3fe6b732f888/go.mod h1:mHD0o2ZFVv6wSNzKZi+ux6u0Wz34Kq33YrPj2tdSyU8=
|
|
13
|
+
github.com/samchon/ttsc/packages/ttsc/shim/ast v0.0.0-20260820075544-3fe6b732f888 h1:9Gi+v6ZIJfs+vGuuVoZrPM0ZusY9aY9u3XwwlRBREc0=
|
|
14
|
+
github.com/samchon/ttsc/packages/ttsc/shim/ast v0.0.0-20260820075544-3fe6b732f888/go.mod h1:BCVAEArtMC+X1laJmDwxlsRROIQIYvHeT7Dl0gNjT0A=
|
|
15
|
+
github.com/samchon/ttsc/packages/ttsc/shim/bundled v0.0.0-20260820075544-3fe6b732f888 h1:wH6goeOwavAxUjlyOo7LqOkOr6PnoJSw4JBTPrZSFFM=
|
|
16
|
+
github.com/samchon/ttsc/packages/ttsc/shim/bundled v0.0.0-20260820075544-3fe6b732f888/go.mod h1:0tz+Y8szXmEpXWHWVrLrv11ga1z6tQJQErkUyIWJ9RQ=
|
|
17
|
+
github.com/samchon/ttsc/packages/ttsc/shim/checker v0.0.0-20260820075544-3fe6b732f888 h1:MzAA30HyHf8eLzEN3+vTohyAETv+lyx8p67ag6hSXyc=
|
|
18
|
+
github.com/samchon/ttsc/packages/ttsc/shim/checker v0.0.0-20260820075544-3fe6b732f888/go.mod h1:lX+u4ZMEyydpdGXSRaOAi5gkP6VIl7WE+Ue7eokwMjM=
|
|
19
|
+
github.com/samchon/ttsc/packages/ttsc/shim/compiler v0.0.0-20260820075544-3fe6b732f888 h1:RkUrnwWL67tR6CtKGz5Uv1unwlmYOmZOmh5mcnHpiyg=
|
|
20
|
+
github.com/samchon/ttsc/packages/ttsc/shim/compiler v0.0.0-20260820075544-3fe6b732f888/go.mod h1:s12vcy3pf6RYDxXcyiK7448DiK+Ol9qx3cjiInd1uxw=
|
|
21
|
+
github.com/samchon/ttsc/packages/ttsc/shim/core v0.0.0-20260820075544-3fe6b732f888 h1:oTcsePbFgh4VIRQlJSWs83uG6VwOXkvs1vt9PJHg/SY=
|
|
22
|
+
github.com/samchon/ttsc/packages/ttsc/shim/core v0.0.0-20260820075544-3fe6b732f888/go.mod h1:DUewcVNEdXyDveQholE4GAsiqqA3C2+SJYqia3nCf00=
|
|
23
|
+
github.com/samchon/ttsc/packages/ttsc/shim/diagnosticwriter v0.0.0-20260820075544-3fe6b732f888 h1:lfw9JjPoUilJPkP/2sWmHPPk7hupGjvVUS51jO9JVYM=
|
|
24
|
+
github.com/samchon/ttsc/packages/ttsc/shim/diagnosticwriter v0.0.0-20260820075544-3fe6b732f888/go.mod h1:v86GtrD7qALo6Xkgz1MDomPMSV2D9NdniQWB5t8eY6k=
|
|
25
|
+
github.com/samchon/ttsc/packages/ttsc/shim/parser v0.0.0-20260820075544-3fe6b732f888 h1:VfBPOZsU736NVxZncttHSSnTHg3wmGJciamo2WK/mXQ=
|
|
26
|
+
github.com/samchon/ttsc/packages/ttsc/shim/parser v0.0.0-20260820075544-3fe6b732f888/go.mod h1:inUjC/bNlCkO0zIzHZRXlHR/WgLcK0vi2KLc7tpQ1ek=
|
|
27
|
+
github.com/samchon/ttsc/packages/ttsc/shim/printer v0.0.0-20260820075544-3fe6b732f888 h1:rWSO7jtTdfmthgJvkQ3875LfrGL6kQM+eU4hakjT9zQ=
|
|
28
|
+
github.com/samchon/ttsc/packages/ttsc/shim/printer v0.0.0-20260820075544-3fe6b732f888/go.mod h1:Hz8BbCqKCrykLfIX+PburWsGEKR8+bkrBJDe2TMLLS0=
|
|
29
|
+
github.com/samchon/ttsc/packages/ttsc/shim/scanner v0.0.0-20260820075544-3fe6b732f888 h1:PWwuDTnPxbj0tVl0B7/wDoZHgysUqnyQMsoKwJ1D6Q4=
|
|
30
|
+
github.com/samchon/ttsc/packages/ttsc/shim/scanner v0.0.0-20260820075544-3fe6b732f888/go.mod h1:abIC7C28cUA5IQKmLJulsl2qOvmimhkMNOfjJhRm5jM=
|
|
31
|
+
github.com/samchon/ttsc/packages/ttsc/shim/tsoptions v0.0.0-20260820075544-3fe6b732f888 h1:lz0eJbiPb4e0DnWNfZRIW2+FEtEdkStClUCEko481s8=
|
|
32
|
+
github.com/samchon/ttsc/packages/ttsc/shim/tsoptions v0.0.0-20260820075544-3fe6b732f888/go.mod h1:EQwrCr3nY0U1SZBNyp6cQSogAiXsjFxTuT8NlMit1lc=
|
|
33
|
+
github.com/samchon/ttsc/packages/ttsc/shim/tspath v0.0.0-20260820075544-3fe6b732f888 h1:gx0BaA7+aiZH8gadWxlUc1rJ0uFS9lyP2FIDPMTcxD0=
|
|
34
|
+
github.com/samchon/ttsc/packages/ttsc/shim/tspath v0.0.0-20260820075544-3fe6b732f888/go.mod h1:hsE2c1bZquSNlDLIkT3SfLH3MrDmMk1BLzWI/KomT1A=
|
|
35
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs v0.0.0-20260820075544-3fe6b732f888 h1:hluGlN8yDeNO9fOn3nmPuEpnrQ7HLqb+kZITTwlc2jc=
|
|
36
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs v0.0.0-20260820075544-3fe6b732f888/go.mod h1:HoQcoC0FEG3iMI6zvjg8r6j/ves+RVH6SRn48VSi5H0=
|
|
37
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs/cachedvfs v0.0.0-20260820075544-3fe6b732f888 h1:rFmIUXTH4TVyii/qidmmHDRtwYwORquRd83WUoUkdmk=
|
|
38
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs/cachedvfs v0.0.0-20260820075544-3fe6b732f888/go.mod h1:XS3LhXkn5xadyRe3tW+9+suW/7gh7dPdL43Q+s/lUDo=
|
|
39
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs/osvfs v0.0.0-20260820075544-3fe6b732f888 h1:ihiKD2OhuYc7Dngxw3uFYbVoiA/xuPwwQoUakB59E40=
|
|
40
|
+
github.com/samchon/ttsc/packages/ttsc/shim/vfs/osvfs v0.0.0-20260820075544-3fe6b732f888/go.mod h1:otX+qw8aZLNCoBmCwMAn53Nw0RQTPzSoId3DxmE67So=
|
|
41
|
+
github.com/samchon/typia/packages/typia/native v0.0.0-20260818045905-f692fd63a846 h1:x9xL0zn2AqPf19lTp8dNal+Ia3cIu0uYnyXlY4mo3QI=
|
|
42
|
+
github.com/samchon/typia/packages/typia/native v0.0.0-20260818045905-f692fd63a846/go.mod h1:pUTSG5IZxw8Hohle//RsDXnE+8ZhAus7mPDKFqzvZnk=
|
|
43
43
|
github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=
|
|
44
44
|
github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
|
|
45
45
|
github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs=
|
package/native/transform/run.go
CHANGED
|
@@ -42,6 +42,35 @@ func Run(args []string) (code int) {
|
|
|
42
42
|
return run(args)
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
// RunWithOutput is Run with the host's stdout and stderr writers redirected for
|
|
46
|
+
// the duration of the call, then restored.
|
|
47
|
+
//
|
|
48
|
+
// The project-mode `transform` subcommand publishes its whole result — the
|
|
49
|
+
// transformed sources, the diagnostics, and the reference graph — as one JSON
|
|
50
|
+
// envelope on stdout, and unlike the single-file path it has no `--out` seam. An
|
|
51
|
+
// exit code is therefore the only thing an external test module can observe
|
|
52
|
+
// about it, which is not enough to pin what the envelope carries. This makes the
|
|
53
|
+
// envelope itself observable without giving the CLI a flag ttsc never passes.
|
|
54
|
+
//
|
|
55
|
+
// Restoring inside the call keeps the redirect scoped: a nil writer is ignored,
|
|
56
|
+
// so a caller can redirect one stream and leave the other on the process. The
|
|
57
|
+
// writers are package state, so concurrent calls would interleave; the host runs
|
|
58
|
+
// one command per process and Go tests in one package run sequentially unless
|
|
59
|
+
// they opt into t.Parallel.
|
|
60
|
+
func RunWithOutput(args []string, out io.Writer, errOut io.Writer) int {
|
|
61
|
+
previousOut, previousErr := stdout, stderr
|
|
62
|
+
defer func() {
|
|
63
|
+
stdout, stderr = previousOut, previousErr
|
|
64
|
+
}()
|
|
65
|
+
if out != nil {
|
|
66
|
+
stdout = out
|
|
67
|
+
}
|
|
68
|
+
if errOut != nil {
|
|
69
|
+
stderr = errOut
|
|
70
|
+
}
|
|
71
|
+
return Run(args)
|
|
72
|
+
}
|
|
73
|
+
|
|
45
74
|
func run(args []string) int {
|
|
46
75
|
if len(args) == 0 {
|
|
47
76
|
return runHelp(nil)
|
|
@@ -14,11 +14,34 @@ import (
|
|
|
14
14
|
shimprinter "github.com/microsoft/typescript-go/shim/printer"
|
|
15
15
|
"github.com/samchon/nestia/packages/core/native/plugin"
|
|
16
16
|
"github.com/samchon/ttsc/packages/ttsc/driver"
|
|
17
|
+
schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
17
18
|
)
|
|
18
19
|
|
|
19
20
|
type transformProjectOutput struct {
|
|
20
21
|
Diagnostics []transformCompilerDiagnostic `json:"diagnostics,omitempty"`
|
|
21
22
|
TypeScript map[string]string `json:"typescript"`
|
|
23
|
+
// Graph is the host-owned reference graph of the loaded program produced by
|
|
24
|
+
// the ttsc driver SDK (driver.NewTransformGraph): direct resolved reference
|
|
25
|
+
// edges, ambient global-scope files, the tsconfig extends chain, and the
|
|
26
|
+
// module-resolution candidates that outrank a selected target. Keys and
|
|
27
|
+
// values share TypeScript's keying through driver.TransformOutputKey, so a
|
|
28
|
+
// consumer joins the sections by key.
|
|
29
|
+
//
|
|
30
|
+
// A bundler erases type-only imports from its own module graph, so without
|
|
31
|
+
// this section nothing tells a persistent filesystem cache that a generated
|
|
32
|
+
// validator depends on the DTO declaration it was generated from, and the
|
|
33
|
+
// cache replays the stale module after the DTO's type changes. Stamping it
|
|
34
|
+
// also moves `@ttsc/unplugin` off the whole-snapshot revalidation path onto
|
|
35
|
+
// its narrow per-file one. Omitted only for a nil or unloaded program, which
|
|
36
|
+
// cannot happen here: LoadProgram failures return before this point.
|
|
37
|
+
Graph *driver.TransformGraph `json:"graph,omitempty"`
|
|
38
|
+
// Dependencies maps each transformed file (same keys as TypeScript) to the
|
|
39
|
+
// source files owning the declarations typia's metadata analysis consulted
|
|
40
|
+
// while generating that file's validators and stringifiers. A consumer
|
|
41
|
+
// unions them with Graph rather than choosing between them, so the list is
|
|
42
|
+
// additive: an omission costs nothing, and narrowing would require the
|
|
43
|
+
// separate `dependenciesComplete` declaration this envelope does not make.
|
|
44
|
+
Dependencies map[string][]string `json:"dependencies,omitempty"`
|
|
22
45
|
}
|
|
23
46
|
|
|
24
47
|
type transformCompilerDiagnostic struct {
|
|
@@ -68,6 +91,8 @@ func runTransform(args []string) int {
|
|
|
68
91
|
return 2
|
|
69
92
|
}
|
|
70
93
|
defer prog.Close()
|
|
94
|
+
releaseTypiaRegistries := registerTypiaDefaultLibraryClassifier(prog)
|
|
95
|
+
defer releaseTypiaRegistries()
|
|
71
96
|
|
|
72
97
|
// AST-integration source-to-source: typia's, core's, and any linked
|
|
73
98
|
// contributor's per-file node transformers run inside one shared EmitContext
|
|
@@ -123,16 +148,42 @@ func runTransformProject(
|
|
|
123
148
|
Diagnostics: []transformCompilerDiagnostic{},
|
|
124
149
|
TypeScript: map[string]string{},
|
|
125
150
|
}
|
|
151
|
+
// Compute the reference graph from the loaded program before the transform
|
|
152
|
+
// loop runs: the graph must describe the original sources' resolved
|
|
153
|
+
// references, which are the transform's inputs, and the loop's printing pass
|
|
154
|
+
// sets parent pointers on the node tree it walks. ttsc's own `api-transform`
|
|
155
|
+
// host stamps it at the same point.
|
|
156
|
+
output.Graph = driver.NewTransformGraph(prog, cwd)
|
|
157
|
+
// `dependencies` is the second, narrower channel: the declaration files
|
|
158
|
+
// typia's analysis actually read for each file, reported alongside the graph
|
|
159
|
+
// rather than instead of it. The two are unioned by the consumer, so this
|
|
160
|
+
// list can only add inputs.
|
|
161
|
+
//
|
|
162
|
+
// The envelope deliberately declares no `dependenciesComplete`. That field
|
|
163
|
+
// transfers responsibility -- a listed file stops watching everything the
|
|
164
|
+
// reference closure carries -- and this host cannot honor it: whether a file
|
|
165
|
+
// is transformed at all depends on symbol resolutions that no listener
|
|
166
|
+
// reports, including the negative ones, and typia's own trigger set belongs
|
|
167
|
+
// to typia rather than to this host. See samchon/typia#2357.
|
|
168
|
+
collector := newTransformDependencyCollector(cwd, func(fileName string) bool {
|
|
169
|
+
sf := prog.SourceFile(fileName)
|
|
170
|
+
return sf != nil && prog.TSProgram.IsLibFile(sf)
|
|
171
|
+
})
|
|
172
|
+
schemametadata.MetadataDependency_listen(prog.Checker, collector.Touch)
|
|
173
|
+
defer schemametadata.MetadataDependency_release(prog.Checker)
|
|
126
174
|
for _, sf := range prog.SourceFiles() {
|
|
127
175
|
if sf.IsDeclarationFile {
|
|
128
176
|
continue
|
|
129
177
|
}
|
|
130
|
-
key :=
|
|
178
|
+
key := driver.TransformOutputKey(cwd, sf.FileName())
|
|
131
179
|
if filepath.IsAbs(key) || key == ".." || strings.HasPrefix(key, "../") {
|
|
132
180
|
continue
|
|
133
181
|
}
|
|
182
|
+
collector.Begin(key)
|
|
134
183
|
output.TypeScript[key] = transformFileToTypeScript(prog, transforms, sf)
|
|
184
|
+
collector.End()
|
|
135
185
|
}
|
|
186
|
+
output.Dependencies = collector.ToJSON()
|
|
136
187
|
for _, diag := range *transformDiags {
|
|
137
188
|
output.Diagnostics = append(output.Diagnostics, transformDiagnosticToCompilerDiagnostic(diag))
|
|
138
189
|
}
|
|
@@ -221,13 +272,6 @@ var (
|
|
|
221
272
|
normalizeParenNullishPattern = regexp.MustCompile(`\| \((null|undefined)\)`)
|
|
222
273
|
)
|
|
223
274
|
|
|
224
|
-
func sourceFileKey(cwd string, file string) string {
|
|
225
|
-
rel, err := filepath.Rel(cwd, filepath.FromSlash(file))
|
|
226
|
-
if err != nil || rel == ".." || strings.HasPrefix(rel, ".."+string(os.PathSeparator)) {
|
|
227
|
-
return filepath.ToSlash(file)
|
|
228
|
-
}
|
|
229
|
-
return filepath.ToSlash(rel)
|
|
230
|
-
}
|
|
231
275
|
func transformDiagnosticToCompilerDiagnostic(
|
|
232
276
|
diag Diagnostic,
|
|
233
277
|
) transformCompilerDiagnostic {
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
package transform
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"sort"
|
|
5
|
+
"strings"
|
|
6
|
+
|
|
7
|
+
"github.com/samchon/ttsc/packages/ttsc/driver"
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
// transformDependencyCollector accumulates the declaration files typia's
|
|
11
|
+
// metadata analysis reports while one project file is transformed, attributing
|
|
12
|
+
// them to that file's envelope key.
|
|
13
|
+
//
|
|
14
|
+
// These are the envelope's `dependencies`: the source files owning the
|
|
15
|
+
// declarations the analysis actually read to generate that file's validators and
|
|
16
|
+
// stringifiers. A consumer unions them with the host-owned reference graph, so
|
|
17
|
+
// the list is additive and an omission costs nothing; it never narrows anything
|
|
18
|
+
// on its own. Narrowing is what `dependenciesComplete` would do, and this
|
|
19
|
+
// envelope does not declare it -- see the note in runTransformProject.
|
|
20
|
+
type transformDependencyCollector struct {
|
|
21
|
+
cwd string
|
|
22
|
+
current string
|
|
23
|
+
files map[string]map[string]bool
|
|
24
|
+
// isLibraryFile reports the compiler's own classification of a file as a
|
|
25
|
+
// default library. Classification must come from the program, never from a
|
|
26
|
+
// file-name pattern, for the reason registerTypiaDefaultLibraryClassifier
|
|
27
|
+
// records: a project's own ambient declaration file may legitimately be
|
|
28
|
+
// named `lib.custom.d.ts`, and dropping it by base name silently loses cache
|
|
29
|
+
// invalidation for the types it declares.
|
|
30
|
+
isLibraryFile func(fileName string) bool
|
|
31
|
+
// values memoizes fileName -> envelope value ("" for a dropped file). The
|
|
32
|
+
// listener reports the same declaration files repeatedly across call sites.
|
|
33
|
+
values map[string]string
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
func newTransformDependencyCollector(
|
|
37
|
+
cwd string,
|
|
38
|
+
isLibraryFile func(fileName string) bool,
|
|
39
|
+
) *transformDependencyCollector {
|
|
40
|
+
return &transformDependencyCollector{
|
|
41
|
+
cwd: cwd,
|
|
42
|
+
isLibraryFile: isLibraryFile,
|
|
43
|
+
files: map[string]map[string]bool{},
|
|
44
|
+
values: map[string]string{},
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Begin attributes subsequent touches to the given envelope key.
|
|
49
|
+
func (collector *transformDependencyCollector) Begin(key string) {
|
|
50
|
+
collector.current = key
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// End closes the window Begin opened, so a touch arriving between two files is
|
|
54
|
+
// dropped rather than charged against whichever file happened to run last.
|
|
55
|
+
func (collector *transformDependencyCollector) End() {
|
|
56
|
+
collector.current = ""
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Touch records one consulted declaration file for the current key. Default
|
|
60
|
+
// library files, virtual URI sources (tsgo's `bundled:///` libraries), and the
|
|
61
|
+
// transformed file itself are dropped: the first two are toolchain-versioned
|
|
62
|
+
// rather than project inputs, and the third is already the cache key.
|
|
63
|
+
func (collector *transformDependencyCollector) Touch(fileName string) {
|
|
64
|
+
if collector.current == "" {
|
|
65
|
+
return
|
|
66
|
+
}
|
|
67
|
+
value, memoized := collector.values[fileName]
|
|
68
|
+
if memoized == false {
|
|
69
|
+
value = collector.value(fileName)
|
|
70
|
+
collector.values[fileName] = value
|
|
71
|
+
}
|
|
72
|
+
if value == "" || value == collector.current {
|
|
73
|
+
return
|
|
74
|
+
}
|
|
75
|
+
set := collector.files[collector.current]
|
|
76
|
+
if set == nil {
|
|
77
|
+
set = map[string]bool{}
|
|
78
|
+
collector.files[collector.current] = set
|
|
79
|
+
}
|
|
80
|
+
set[value] = true
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// value renders one reported file as its envelope key, or "" when it is dropped.
|
|
84
|
+
// The key is driver.TransformOutputKey, the same one `typescript` and `graph`
|
|
85
|
+
// use, so a consumer joins every section by key.
|
|
86
|
+
func (collector *transformDependencyCollector) value(fileName string) string {
|
|
87
|
+
if strings.Contains(fileName, "://") || collector.isLibraryFile(fileName) {
|
|
88
|
+
return ""
|
|
89
|
+
}
|
|
90
|
+
return driver.TransformOutputKey(collector.cwd, fileName)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// ToJSON renders the collected sets as the envelope's `dependencies` map with
|
|
94
|
+
// deterministically sorted values, or nil when nothing was collected. The nil
|
|
95
|
+
// keeps the field off the wire entirely, which is what an envelope with nothing
|
|
96
|
+
// to report must send.
|
|
97
|
+
func (collector *transformDependencyCollector) ToJSON() map[string][]string {
|
|
98
|
+
if len(collector.files) == 0 {
|
|
99
|
+
return nil
|
|
100
|
+
}
|
|
101
|
+
output := map[string][]string{}
|
|
102
|
+
for key, set := range collector.files {
|
|
103
|
+
if len(set) == 0 {
|
|
104
|
+
continue
|
|
105
|
+
}
|
|
106
|
+
values := make([]string, 0, len(set))
|
|
107
|
+
for value := range set {
|
|
108
|
+
values = append(values, value)
|
|
109
|
+
}
|
|
110
|
+
sort.Strings(values)
|
|
111
|
+
output[key] = values
|
|
112
|
+
}
|
|
113
|
+
if len(output) == 0 {
|
|
114
|
+
return nil
|
|
115
|
+
}
|
|
116
|
+
return output
|
|
117
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
package transform
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
shimast "github.com/microsoft/typescript-go/shim/ast"
|
|
5
|
+
"github.com/samchon/ttsc/packages/ttsc/driver"
|
|
6
|
+
schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
// registerTypiaDefaultLibraryClassifier hands typia's metadata analysis the
|
|
10
|
+
// program's own default-library classification and returns the release the
|
|
11
|
+
// caller defers.
|
|
12
|
+
//
|
|
13
|
+
// @nestia/core hosts typia's transform rather than reimplementing it, so it
|
|
14
|
+
// owes that analysis the same per-program registrations typia's own host
|
|
15
|
+
// installs. Runtime-native identity is decided from this classifier: a global is
|
|
16
|
+
// the JavaScript built-in only when a runtime authority declares it. With no
|
|
17
|
+
// classifier registered the analysis falls back to a `lib.*.d.ts` base-name
|
|
18
|
+
// test, and a default library is not recognizable from its file name --
|
|
19
|
+
// `libReplacement` points it at `node_modules/@typescript/lib-es2022/index.d.ts`,
|
|
20
|
+
// which does not even start with `lib.`, while `lib.d.ts` is an ordinary
|
|
21
|
+
// published file name any dependency may use. Without this, the same DTO
|
|
22
|
+
// generates one validator through typia's plugin and a different one through
|
|
23
|
+
// nestia's host.
|
|
24
|
+
//
|
|
25
|
+
// The registry is keyed by checker, so the release must run before the program
|
|
26
|
+
// closes; otherwise a closed program's checker stays reachable from a
|
|
27
|
+
// process-global map.
|
|
28
|
+
func registerTypiaDefaultLibraryClassifier(prog *driver.Program) func() {
|
|
29
|
+
if prog == nil || prog.TSProgram == nil {
|
|
30
|
+
return func() {}
|
|
31
|
+
}
|
|
32
|
+
program := prog.TSProgram
|
|
33
|
+
checker := prog.Checker
|
|
34
|
+
schemametadata.MetadataDefaultLibrary_register(checker, func(source *shimast.SourceFile) bool {
|
|
35
|
+
return source != nil && program.IsLibFile(source)
|
|
36
|
+
})
|
|
37
|
+
return func() {
|
|
38
|
+
schemametadata.MetadataDefaultLibrary_release(checker)
|
|
39
|
+
}
|
|
40
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "13.0.0",
|
|
4
4
|
"description": "Super-fast validation decorators of NestJS",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
},
|
|
46
46
|
"homepage": "https://nestia.io",
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@typia/interface": "^
|
|
49
|
-
"@typia/utils": "^
|
|
48
|
+
"@typia/interface": "^14.0.1",
|
|
49
|
+
"@typia/utils": "^14.0.1",
|
|
50
50
|
"get-function-location": "^2.0.0",
|
|
51
51
|
"glob": "^11.0.3",
|
|
52
52
|
"path-parser": "^6.1.0",
|
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
"reflect-metadata": ">=0.1.12",
|
|
55
55
|
"rxjs": ">=6.0.3",
|
|
56
56
|
"tgrid": "^1.1.0",
|
|
57
|
-
"typia": "^
|
|
57
|
+
"typia": "^14.0.1",
|
|
58
58
|
"ws": "^7.5.3",
|
|
59
|
-
"@nestia/fetcher": "^
|
|
59
|
+
"@nestia/fetcher": "^13.0.0"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"@modelcontextprotocol/sdk": "^1.18.0",
|
|
@@ -64,12 +64,16 @@
|
|
|
64
64
|
"@nestjs/core": ">=7.0.1",
|
|
65
65
|
"reflect-metadata": ">=0.1.12",
|
|
66
66
|
"rxjs": ">=6.0.3",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
67
|
+
"ttsc": ">=0.19.2",
|
|
68
|
+
"typia": "^14.0.1",
|
|
69
|
+
"@nestia/fetcher": "^13.0.0"
|
|
69
70
|
},
|
|
70
71
|
"peerDependenciesMeta": {
|
|
71
72
|
"@modelcontextprotocol/sdk": {
|
|
72
73
|
"optional": true
|
|
74
|
+
},
|
|
75
|
+
"ttsc": {
|
|
76
|
+
"optional": true
|
|
73
77
|
}
|
|
74
78
|
},
|
|
75
79
|
"devDependencies": {
|
|
@@ -82,7 +86,7 @@
|
|
|
82
86
|
"@types/ws": "^8.5.10",
|
|
83
87
|
"fastify": "^4.28.1",
|
|
84
88
|
"rimraf": "^6.1.3",
|
|
85
|
-
"ttsc": "^0.
|
|
89
|
+
"ttsc": "^0.28.1",
|
|
86
90
|
"tstl": "^3.0.0",
|
|
87
91
|
"typescript": "^7.0.2"
|
|
88
92
|
},
|
|
@@ -138,11 +138,7 @@ export namespace McpRoute {
|
|
|
138
138
|
value: IMcpRouteReflect.IArgument,
|
|
139
139
|
) => {
|
|
140
140
|
const array: IMcpRouteReflect.IArgument[] | undefined =
|
|
141
|
-
Reflect.getOwnMetadata(
|
|
142
|
-
"nestia/McpRoute/Parameters",
|
|
143
|
-
target,
|
|
144
|
-
propertyKey,
|
|
145
|
-
);
|
|
141
|
+
Reflect.getOwnMetadata("nestia/McpRoute/Parameters", target, propertyKey);
|
|
146
142
|
if (array !== undefined) array.push(value);
|
|
147
143
|
else
|
|
148
144
|
Reflect.defineMetadata(
|
|
@@ -24,11 +24,7 @@ export function SwaggerCustomizer(
|
|
|
24
24
|
) {
|
|
25
25
|
const array: Array<(props: SwaggerCustomizer.IProps) => unknown> = (() => {
|
|
26
26
|
if (
|
|
27
|
-
Reflect.hasOwnMetadata(
|
|
28
|
-
"nestia/SwaggerCustomizer",
|
|
29
|
-
target,
|
|
30
|
-
propertyKey,
|
|
31
|
-
)
|
|
27
|
+
Reflect.hasOwnMetadata("nestia/SwaggerCustomizer", target, propertyKey)
|
|
32
28
|
)
|
|
33
29
|
return Reflect.getOwnMetadata(
|
|
34
30
|
"nestia/SwaggerCustomizer",
|
|
@@ -160,12 +160,11 @@ const emplaceArrayOfParameters = (
|
|
|
160
160
|
target: Object,
|
|
161
161
|
propertyKey: string | symbol,
|
|
162
162
|
): SwaggerExample.IData<any>[] => {
|
|
163
|
-
const array: SwaggerExample.IData<any>[] | undefined =
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
);
|
|
163
|
+
const array: SwaggerExample.IData<any>[] | undefined = Reflect.getOwnMetadata(
|
|
164
|
+
"nestia/SwaggerExample/Parameters",
|
|
165
|
+
target,
|
|
166
|
+
propertyKey,
|
|
167
|
+
);
|
|
169
168
|
if (array !== undefined) return array;
|
|
170
169
|
const newbie: SwaggerExample.IData<any>[] = [];
|
|
171
170
|
Reflect.defineMetadata(
|