@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.
@@ -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,CACpB,4BAA4B,EAC5B,MAAM,EACN,WAAW,CACZ,CAAC;QACJ,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,EA1EgB,QAAQ,aAxBT,QAAQ,GAwBP,QAAQ,QA0ExB"}
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,CACpB,0BAA0B,EAC1B,MAAM,EACN,WAAW,CACZ;gBAED,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
+ {"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":"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"}
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-20260709134626-fd1c6686950f
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-20260709053824-84bdc4acccb0 h1:j6jDYzWEow5+0KacfIzsi8xV9t0MTcShfNHYiPJk2LA=
12
- github.com/samchon/ttsc/packages/ttsc v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:w1lJWUKJ3tMV+vAG2S8aj4c5E5m+OzA66tLh8a0dlUY=
13
- github.com/samchon/ttsc/packages/ttsc/shim/ast v0.0.0-20260709053824-84bdc4acccb0 h1:v015/xr8MaQMLoYqPQXu5lUrEQmnG1D3V5zzlDUus6U=
14
- github.com/samchon/ttsc/packages/ttsc/shim/ast v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:BCVAEArtMC+X1laJmDwxlsRROIQIYvHeT7Dl0gNjT0A=
15
- github.com/samchon/ttsc/packages/ttsc/shim/bundled v0.0.0-20260709053824-84bdc4acccb0 h1:EEeHe7pRKahBDyoUkBwQ8zFpzSswNj0JEhhrKwFpQTg=
16
- github.com/samchon/ttsc/packages/ttsc/shim/bundled v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:0tz+Y8szXmEpXWHWVrLrv11ga1z6tQJQErkUyIWJ9RQ=
17
- github.com/samchon/ttsc/packages/ttsc/shim/checker v0.0.0-20260709053824-84bdc4acccb0 h1:sMwvPvb2gbVJ9JODyPYAmUPObU5YX5XkBihrex9pw7s=
18
- github.com/samchon/ttsc/packages/ttsc/shim/checker v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:4xfafgG/qosSp8f0tCf83assFoUKRdGHhvPD1EI9LKg=
19
- github.com/samchon/ttsc/packages/ttsc/shim/compiler v0.0.0-20260709053824-84bdc4acccb0 h1:jmrwyhAcdD56mQSAm96sUZxs2F+5902VnHhNzYTAdhw=
20
- github.com/samchon/ttsc/packages/ttsc/shim/compiler v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:s12vcy3pf6RYDxXcyiK7448DiK+Ol9qx3cjiInd1uxw=
21
- github.com/samchon/ttsc/packages/ttsc/shim/core v0.0.0-20260709053824-84bdc4acccb0 h1:Y8wMEDosAZu6lELpWWbJf2IyCZNQZBLQQX+K//8nwc8=
22
- github.com/samchon/ttsc/packages/ttsc/shim/core v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:DUewcVNEdXyDveQholE4GAsiqqA3C2+SJYqia3nCf00=
23
- github.com/samchon/ttsc/packages/ttsc/shim/diagnosticwriter v0.0.0-20260709053824-84bdc4acccb0 h1:rpRxTBX5DOVeuzMDojBU0PRfdUZXQ7T/rp+Md0yP2VY=
24
- github.com/samchon/ttsc/packages/ttsc/shim/diagnosticwriter v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:v86GtrD7qALo6Xkgz1MDomPMSV2D9NdniQWB5t8eY6k=
25
- github.com/samchon/ttsc/packages/ttsc/shim/parser v0.0.0-20260709053824-84bdc4acccb0 h1:sWGdmZHFtlgdAI3m4LNKZSTCf7jK1+GMs5sJDGSep+M=
26
- github.com/samchon/ttsc/packages/ttsc/shim/parser v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:inUjC/bNlCkO0zIzHZRXlHR/WgLcK0vi2KLc7tpQ1ek=
27
- github.com/samchon/ttsc/packages/ttsc/shim/printer v0.0.0-20260709053824-84bdc4acccb0 h1:7cxbkCAQ85dKpeuB0uwkAcQr8akOSDcVRNp6RJCiFYg=
28
- github.com/samchon/ttsc/packages/ttsc/shim/printer v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:Hz8BbCqKCrykLfIX+PburWsGEKR8+bkrBJDe2TMLLS0=
29
- github.com/samchon/ttsc/packages/ttsc/shim/scanner v0.0.0-20260709053824-84bdc4acccb0 h1:Ua1uEGKXX/SPrbNPFoS5FAoFrBlM56ecX2s+eeHmbQQ=
30
- github.com/samchon/ttsc/packages/ttsc/shim/scanner v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:abIC7C28cUA5IQKmLJulsl2qOvmimhkMNOfjJhRm5jM=
31
- github.com/samchon/ttsc/packages/ttsc/shim/tsoptions v0.0.0-20260709053824-84bdc4acccb0 h1:ySIVZhDxe0u5sb3GtFFQ8leXar69QZjCYgPKGBEkIQA=
32
- github.com/samchon/ttsc/packages/ttsc/shim/tsoptions v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:EQwrCr3nY0U1SZBNyp6cQSogAiXsjFxTuT8NlMit1lc=
33
- github.com/samchon/ttsc/packages/ttsc/shim/tspath v0.0.0-20260709053824-84bdc4acccb0 h1:bY1Rdiqs6rc7S7/YbY3gWJoXvTeb7LhXMNYrl6fvp1E=
34
- github.com/samchon/ttsc/packages/ttsc/shim/tspath v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:hsE2c1bZquSNlDLIkT3SfLH3MrDmMk1BLzWI/KomT1A=
35
- github.com/samchon/ttsc/packages/ttsc/shim/vfs v0.0.0-20260709053824-84bdc4acccb0 h1:FU0AuiZLsw9kMU4Fy56XvhJ3bD99n5WTkjJh93gB0m0=
36
- github.com/samchon/ttsc/packages/ttsc/shim/vfs v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:HoQcoC0FEG3iMI6zvjg8r6j/ves+RVH6SRn48VSi5H0=
37
- github.com/samchon/ttsc/packages/ttsc/shim/vfs/cachedvfs v0.0.0-20260709053824-84bdc4acccb0 h1:rOw6pmYXNlaC0KKG9D38HTJEsfNiDI1+u2mBA8QRbZ8=
38
- github.com/samchon/ttsc/packages/ttsc/shim/vfs/cachedvfs v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:XS3LhXkn5xadyRe3tW+9+suW/7gh7dPdL43Q+s/lUDo=
39
- github.com/samchon/ttsc/packages/ttsc/shim/vfs/osvfs v0.0.0-20260709053824-84bdc4acccb0 h1:LXPQxe57qlWiHG5s8pQOKZD4nZRnRkrKIDsdJVfh2ws=
40
- github.com/samchon/ttsc/packages/ttsc/shim/vfs/osvfs v0.0.0-20260709053824-84bdc4acccb0/go.mod h1:otX+qw8aZLNCoBmCwMAn53Nw0RQTPzSoId3DxmE67So=
41
- github.com/samchon/typia/packages/typia/native v0.0.0-20260709134626-fd1c6686950f h1:8axuxtT7YdYhJy7so6SDxVK2oJPDkq8vl55K+nTudtw=
42
- github.com/samchon/typia/packages/typia/native v0.0.0-20260709134626-fd1c6686950f/go.mod h1:SJDrfiCEK5dtObhJeAl0iqelqmmFm/JIjfJ6z0kID60=
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=
@@ -72,6 +72,8 @@ func runBuild(args []string) int {
72
72
  return 2
73
73
  }
74
74
  defer prog.Close()
75
+ releaseTypiaRegistries := registerTypiaDefaultLibraryClassifier(prog)
76
+ defer releaseTypiaRegistries()
75
77
  if profile {
76
78
  started = time.Now()
77
79
  }
@@ -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 := sourceFileKey(cwd, filepath.ToSlash(sf.FileName()))
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": "12.1.0",
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": "^13.2.0",
49
- "@typia/utils": "^13.2.0",
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": "^13.2.0",
57
+ "typia": "^14.0.1",
58
58
  "ws": "^7.5.3",
59
- "@nestia/fetcher": "^12.1.0"
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
- "typia": "^13.2.0",
68
- "@nestia/fetcher": "^12.1.0"
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.20.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
- Reflect.getOwnMetadata(
165
- "nestia/SwaggerExample/Parameters",
166
- target,
167
- propertyKey,
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(