@nestia/core 12.0.0-rc.4 → 12.1.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.
Files changed (60) hide show
  1. package/lib/adaptors/McpAdaptor.js +21 -18
  2. package/lib/adaptors/McpAdaptor.js.map +1 -1
  3. package/lib/decorators/EncryptedBody.js +2 -7
  4. package/lib/decorators/EncryptedBody.js.map +1 -1
  5. package/lib/decorators/EncryptedRoute.js +1 -1
  6. package/lib/decorators/EncryptedRoute.js.map +1 -1
  7. package/lib/decorators/McpRoute.js +1 -1
  8. package/lib/decorators/McpRoute.js.map +1 -1
  9. package/lib/decorators/NoTransformConfigurationError.js +2 -2
  10. package/lib/decorators/PlainBody.js +2 -7
  11. package/lib/decorators/PlainBody.js.map +1 -1
  12. package/lib/decorators/SwaggerCustomizer.js +2 -2
  13. package/lib/decorators/SwaggerCustomizer.js.map +1 -1
  14. package/lib/decorators/SwaggerExample.d.ts +37 -40
  15. package/lib/decorators/SwaggerExample.js +24 -26
  16. package/lib/decorators/SwaggerExample.js.map +1 -1
  17. package/lib/decorators/TypedBody.js +3 -7
  18. package/lib/decorators/TypedBody.js.map +1 -1
  19. package/lib/decorators/TypedException.d.ts +2 -2
  20. package/lib/decorators/TypedFormData.js +2 -7
  21. package/lib/decorators/TypedFormData.js.map +1 -1
  22. package/lib/decorators/TypedQuery.js +2 -9
  23. package/lib/decorators/TypedQuery.js.map +1 -1
  24. package/lib/decorators/WebSocketRoute.js +1 -1
  25. package/lib/decorators/WebSocketRoute.js.map +1 -1
  26. package/lib/decorators/internal/get_path_and_querify.js +1 -1
  27. package/lib/decorators/internal/get_path_and_querify.js.map +1 -1
  28. package/lib/decorators/internal/is_media_type.d.ts +1 -0
  29. package/lib/decorators/internal/is_media_type.js +11 -0
  30. package/lib/decorators/internal/is_media_type.js.map +1 -0
  31. package/lib/decorators/internal/validate_request_query.js.map +1 -1
  32. package/native/plugin/plan.go +17 -0
  33. package/native/transform/build.go +39 -80
  34. package/native/transform/contributor.go +4 -64
  35. package/native/transform/core_transform.go +42 -705
  36. package/native/transform/node_transform.go +3 -5
  37. package/native/transform/printer.go +0 -217
  38. package/native/transform/transform.go +2 -91
  39. package/native/transform/typia_fast.go +0 -320
  40. package/package.json +10 -10
  41. package/src/adaptors/McpAdaptor.ts +29 -21
  42. package/src/decorators/EncryptedBody.ts +2 -9
  43. package/src/decorators/EncryptedRoute.ts +1 -1
  44. package/src/decorators/McpRoute.ts +6 -5
  45. package/src/decorators/NoTransformConfigurationError.ts +2 -2
  46. package/src/decorators/PlainBody.ts +2 -9
  47. package/src/decorators/SwaggerCustomizer.ts +8 -2
  48. package/src/decorators/SwaggerExample.ts +43 -45
  49. package/src/decorators/TypedBody.ts +5 -9
  50. package/src/decorators/TypedException.ts +2 -2
  51. package/src/decorators/TypedFormData.ts +7 -9
  52. package/src/decorators/TypedQuery.ts +7 -12
  53. package/src/decorators/WebSocketRoute.ts +1 -1
  54. package/src/decorators/internal/get_path_and_querify.ts +1 -1
  55. package/src/decorators/internal/is_media_type.ts +10 -0
  56. package/src/decorators/internal/validate_request_query.ts +2 -1
  57. package/native/transform/cleanup.go +0 -408
  58. package/native/transform/exports.go +0 -13
  59. package/native/transform/rewrite.go +0 -668
  60. package/native/transform/typia_replacement.go +0 -24
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketRoute.js","sourceRoot":"","sources":["../../src/decorators/WebSocketRoute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebSocketRoute.js","sourceRoot":"","sources":["../../src/decorators/WebSocketRoute.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ const take = (method) => (functor) => {
40
40
  const querify = (input) => {
41
41
  const output = new URLSearchParams();
42
42
  for (const [key, value] of Object.entries(input))
43
- if (key === undefined)
43
+ if (value === undefined)
44
44
  continue;
45
45
  else if (Array.isArray(value))
46
46
  for (const elem of value)
@@ -1 +1 @@
1
- {"version":3,"file":"get_path_and_querify.js","sourceRoot":"","sources":["../../../src/decorators/internal/get_path_and_querify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get_path_and_querify.js","sourceRoot":"","sources":["../../../src/decorators/internal/get_path_and_querify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.is_media_type = void 0;
4
+ /** @internal */
5
+ const is_media_type = (text, expected) => text !== undefined &&
6
+ text
7
+ .split(";")
8
+ .map((str) => str.trim().toLowerCase())
9
+ .some((str) => str === expected.toLowerCase());
10
+ exports.is_media_type = is_media_type;
11
+ //# sourceMappingURL=is_media_type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is_media_type.js","sourceRoot":"","sources":["../../../src/decorators/internal/is_media_type.ts"],"names":[],"mappings":";;;AAAA,gBAAgB;AACT,MAAM,aAAa,GAAG,CAC3B,IAAwB,EACxB,QAAgB,EACP,EAAE,CACX,IAAI,KAAK,SAAS;IAClB,IAAI;SACD,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACtC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AARtC,QAAA,aAAa,GAAb,aAAa,CAQyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate_request_query.js","sourceRoot":"","sources":["../../../src/decorators/internal/validate_request_query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate_request_query.js","sourceRoot":"","sources":["../../../src/decorators/internal/validate_request_query.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,23 @@ func (p Plan) UsesNestia() bool {
32
32
  return p.Core || p.SDK
33
33
  }
34
34
 
35
+ // Kind reports which plugin family an entry belongs to: "core", "sdk", "typia",
36
+ // or "" when it is none of them.
37
+ func (e Entry) Kind() string {
38
+ return classify(e)
39
+ }
40
+
41
+ // BoolConfig reads a boolean option from an entry's resolved plugin config. The
42
+ // second result distinguishes an option explicitly set to false from one that is
43
+ // absent, which the tri-state options depend on.
44
+ func (e Entry) BoolConfig(key string) (bool, bool) {
45
+ if e.Config == nil {
46
+ return false, false
47
+ }
48
+ value, ok := e.Config[key].(bool)
49
+ return value, ok
50
+ }
51
+
35
52
  func ParsePlan(payload string) (Plan, error) {
36
53
  payload = strings.TrimSpace(payload)
37
54
  if payload == "" {
@@ -8,12 +8,9 @@ import (
8
8
  "io"
9
9
  "os"
10
10
  "path/filepath"
11
- "regexp"
12
11
  "time"
13
12
 
14
- shimast "github.com/microsoft/typescript-go/shim/ast"
15
13
  shimcompiler "github.com/microsoft/typescript-go/shim/compiler"
16
- shimscanner "github.com/microsoft/typescript-go/shim/scanner"
17
14
  "github.com/samchon/nestia/packages/core/native/plugin"
18
15
  "github.com/samchon/ttsc/packages/ttsc/driver"
19
16
  typiaadapter "github.com/samchon/typia/packages/typia/native/adapter"
@@ -105,7 +102,7 @@ func runBuild(args []string) int {
105
102
  // AST-integration emit: typia's per-file transformer and @nestia/core's own
106
103
  // per-file transformer both run inside tsgo's emit pipeline (sharing the
107
104
  // EmitContext), so they return AST and tsgo's module-transform aliases the
108
- // namespace imports they inject. No text-splice RewriteSet, no cleanup pass.
105
+ // namespace imports they inject. This is the only emit path.
109
106
  transformDiags := []Diagnostic{}
110
107
  addDiagnostic := func(diag Diagnostic) {
111
108
  transformDiags = append(transformDiags, diag)
@@ -116,7 +113,7 @@ func runBuild(args []string) int {
116
113
  newPathsRewriter(prog).applyAll(prog.SourceFiles())
117
114
  profileBuildStep(profile, "paths-rewrite", started)
118
115
 
119
- typiaTransform := nestiaTypiaNodeTransform(prog, readTypiaPluginOptions(cwd, *tsconfigPath), addDiagnostic)
116
+ typiaTransform := nestiaTypiaNodeTransform(prog, readTypiaPluginOptions(plan), addDiagnostic)
120
117
  coreTransform := nestiaCoreNodeTransform(prog, plan, addDiagnostic)
121
118
 
122
119
  // Statically linked contributors (e.g. the @nestia/sdk OperationMetadata
@@ -286,95 +283,57 @@ func profileBuildStep(enabled bool, name string, started time.Time) {
286
283
  profileBuildDuration(enabled, name, time.Since(started))
287
284
  }
288
285
  }
289
-
290
- func profileBuildStepCount(enabled bool, name string, started time.Time, count int) {
291
- if enabled {
292
- fmt.Fprintf(stderr, "ttsc-nestia profile: %s=%s count=%d\n", name, time.Since(started), count)
293
- }
294
- }
295
-
296
286
  func profileBuildDuration(enabled bool, name string, elapsed time.Duration) {
297
287
  if enabled {
298
288
  fmt.Fprintf(stderr, "ttsc-nestia profile: %s=%s\n", name, elapsed)
299
289
  }
300
290
  }
301
291
 
302
- func NewDiagnostic(site typiaadapter.CallSite, message string) Diagnostic {
303
- line, column := 0, 0
304
- if site.File != nil && site.Call != nil {
305
- pos := site.Call.AsNode().Pos()
306
- if pos >= 0 {
307
- l, c := shimscanner.GetECMALineAndByteOffsetOfPosition(site.File, pos)
308
- line, column = l+1, c+1
292
+ // readTypiaPluginOptions takes typia's transform options from the resolved plugin
293
+ // payload ttsc hands this binary, not from the text of one tsconfig file.
294
+ //
295
+ // The file is the wrong source twice over. It is only the *entry* of an `extends`
296
+ // chain, so an option declared in a base was invisible — the compile then
297
+ // succeeded with a weaker validator than the project asked for, and nothing said
298
+ // so. And a text scan matches anywhere, so `"numeric": true` inside a comment or
299
+ // an unrelated object turned the option on for a project that never set it. ttsc
300
+ // has already resolved the whole chain by the time it builds --plugins-json.
301
+ //
302
+ // Options are read from every plugin entry, with typia's own entry winning, so a
303
+ // project that sets them on the composing @nestia/core entry keeps working.
304
+ func readTypiaPluginOptions(plan plugin.Plan) typiaadapter.PluginOptions {
305
+ options := typiaadapter.PluginOptions{}
306
+ apply := func(entry plugin.Entry) {
307
+ if value, ok := entry.BoolConfig("functional"); ok {
308
+ options.Functional = value
309
309
  }
310
- }
311
- return Diagnostic{
312
- File: site.FilePath,
313
- Line: line,
314
- Column: column,
315
- Code: "typia." + site.Module + "." + site.Method,
316
- Message: message,
317
- }
318
- }
319
-
320
- func typiaBuildRewriteSortKey(site typiaadapter.CallSite) int {
321
- node := site.Call.AsNode()
322
- if node == nil {
323
- return 0
324
- }
325
- insideDecorator := false
326
- classEnd := 0
327
- for current := node.Parent; current != nil; current = current.Parent {
328
- if current.Kind == NestiaCoreKindDecorator {
329
- insideDecorator = true
310
+ if value, ok := entry.BoolConfig("numeric"); ok {
311
+ options.Numeric = value
330
312
  }
331
- if current.Kind == shimast.KindClassDeclaration || current.Kind == shimast.KindClassExpression {
332
- classEnd = current.End()
333
- break
313
+ if value, ok := entry.BoolConfig("finite"); ok {
314
+ options.Finite = value
315
+ }
316
+ // `undefined` is tri-state: an explicit false must stay distinguishable
317
+ // from an absent option, so copy into a fresh variable rather than
318
+ // aliasing the closure's parameter.
319
+ if value, ok := entry.BoolConfig("undefined"); ok {
320
+ flag := value
321
+ options.Undefined = &flag
334
322
  }
335
323
  }
336
- if insideDecorator == false {
337
- return node.Pos()
338
- }
339
- if classEnd != 0 {
340
- return classEnd + node.Pos()
341
- }
342
- return node.Pos() + 1_000_000_000
343
- }
344
-
345
- func readTypiaPluginOptions(cwd, tsconfigPath string) typiaadapter.PluginOptions {
346
- path := tsconfigPath
347
- if !filepath.IsAbs(path) {
348
- path = filepath.Join(cwd, path)
349
- }
350
- data, err := os.ReadFile(path)
351
- if err != nil {
352
- return typiaadapter.PluginOptions{}
353
- }
354
- text := string(data)
355
- return typiaadapter.PluginOptions{
356
- Functional: typiaOptionFunctionalPattern.MatchString(text),
357
- Numeric: typiaOptionNumericPattern.MatchString(text),
358
- Finite: typiaOptionFinitePattern.MatchString(text),
359
- Undefined: readBooleanPluginOption(text, "undefined"),
324
+ for _, entry := range plan.Entries {
325
+ if entry.Kind() != "typia" {
326
+ apply(entry)
327
+ }
360
328
  }
361
- }
362
-
363
- func readBooleanPluginOption(text string, name string) *bool {
364
- matched := regexp.MustCompile(`(?s)"` + regexp.QuoteMeta(name) + `"\s*:\s*(true|false)`).FindStringSubmatch(text)
365
- if matched == nil {
366
- return nil
329
+ for _, entry := range plan.Entries {
330
+ if entry.Kind() == "typia" {
331
+ apply(entry)
332
+ }
367
333
  }
368
- value := matched[1] == "true"
369
- return &value
334
+ return options
370
335
  }
371
336
 
372
- var (
373
- typiaOptionFunctionalPattern = regexp.MustCompile(`(?s)"functional"\s*:\s*true`)
374
- typiaOptionNumericPattern = regexp.MustCompile(`(?s)"numeric"\s*:\s*true`)
375
- typiaOptionFinitePattern = regexp.MustCompile(`(?s)"finite"\s*:\s*true`)
376
- )
377
-
378
337
  func resolveCWD(label string, cwdOverride string) (string, bool) {
379
338
  if cwdOverride != "" {
380
339
  return cwdOverride, true
@@ -5,81 +5,21 @@ import (
5
5
  "github.com/samchon/ttsc/packages/ttsc/driver"
6
6
  )
7
7
 
8
- // BuildOutputRewriter patches emitted JavaScript after the core native
9
- // rewrites have been applied. Contributor packages register these from init().
10
- type BuildOutputRewriter struct {
11
- Len func() int
12
- Apply func(outputName string, text string) (string, error)
13
- }
14
-
15
- type buildOutputRewriteCollector func(*driver.Program, plugin.Plan) (*BuildOutputRewriter, []Diagnostic)
16
- type sourceRewriteCollector func(*driver.Program, plugin.Plan, string) (map[string][]SourceRewrite, []Diagnostic)
17
8
  type emitTransformCollector func(*driver.Program, plugin.Plan) (driver.PluginTransform, []Diagnostic)
18
9
 
19
- var buildOutputRewriteCollectors []buildOutputRewriteCollector
20
- var sourceRewriteCollectors []sourceRewriteCollector
21
10
  var emitTransformCollectors []emitTransformCollector
22
11
 
23
- // RegisterBuildOutputRewriteCollector registers a statically linked
24
- // contributor's emitted-JavaScript rewrite pass.
25
- func RegisterBuildOutputRewriteCollector(collector buildOutputRewriteCollector) {
26
- if collector != nil {
27
- buildOutputRewriteCollectors = append(buildOutputRewriteCollectors, collector)
28
- }
29
- }
30
-
31
- // RegisterSourceRewriteCollector registers a statically linked contributor's
32
- // TypeScript source-to-source rewrite pass.
33
- func RegisterSourceRewriteCollector(collector sourceRewriteCollector) {
34
- if collector != nil {
35
- sourceRewriteCollectors = append(sourceRewriteCollectors, collector)
36
- }
37
- }
38
-
39
12
  // RegisterEmitTransformCollector registers a statically linked contributor's
40
- // emit-phase AST transformer. The `transform` subcommand runs these inside the
41
- // shared EmitContext alongside the typia and core node transforms, so a linked
42
- // contributor (e.g. @nestia/sdk) participates in the node-path source-to-source
43
- // output the same way its source-rewrite collector did on the legacy text path.
13
+ // emit-phase AST transformer. The `build` and `transform` subcommands run these
14
+ // inside the shared EmitContext alongside the typia and core node transforms, so
15
+ // a linked contributor (e.g. @nestia/sdk) participates in the same emit pass
16
+ // rather than patching its output afterwards.
44
17
  func RegisterEmitTransformCollector(collector emitTransformCollector) {
45
18
  if collector != nil {
46
19
  emitTransformCollectors = append(emitTransformCollectors, collector)
47
20
  }
48
21
  }
49
22
 
50
- func collectContributorBuildOutputRewriters(
51
- prog *driver.Program,
52
- plan plugin.Plan,
53
- ) ([]BuildOutputRewriter, []Diagnostic) {
54
- output := []BuildOutputRewriter{}
55
- diagnostics := []Diagnostic{}
56
- for _, collector := range buildOutputRewriteCollectors {
57
- rewriter, diags := collector(prog, plan)
58
- diagnostics = append(diagnostics, diags...)
59
- if rewriter != nil && rewriter.Apply != nil {
60
- output = append(output, *rewriter)
61
- }
62
- }
63
- return output, diagnostics
64
- }
65
-
66
- func collectContributorSourceRewriteMap(
67
- prog *driver.Program,
68
- plan plugin.Plan,
69
- onlyFile string,
70
- ) (map[string][]SourceRewrite, []Diagnostic) {
71
- output := map[string][]SourceRewrite{}
72
- diagnostics := []Diagnostic{}
73
- for _, collector := range sourceRewriteCollectors {
74
- rewrites, diags := collector(prog, plan, onlyFile)
75
- diagnostics = append(diagnostics, diags...)
76
- for file, entries := range rewrites {
77
- output[file] = append(output[file], entries...)
78
- }
79
- }
80
- return output, diagnostics
81
- }
82
-
83
23
  func collectContributorEmitTransforms(
84
24
  prog *driver.Program,
85
25
  plan plugin.Plan,