@formspec/build 0.1.0-alpha.14 → 0.1.0-alpha.15

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/dist/__tests__/extension-runtime.integration.test.d.ts +2 -0
  2. package/dist/__tests__/extension-runtime.integration.test.d.ts.map +1 -0
  3. package/dist/__tests__/fixtures/edge-cases.d.ts +11 -0
  4. package/dist/__tests__/fixtures/edge-cases.d.ts.map +1 -1
  5. package/dist/__tests__/fixtures/example-a-builtins.d.ts +6 -6
  6. package/dist/__tests__/fixtures/example-interface-types.d.ts +26 -26
  7. package/dist/__tests__/fixtures/example-interface-types.d.ts.map +1 -1
  8. package/dist/__tests__/jsdoc-constraints.test.d.ts +4 -5
  9. package/dist/__tests__/jsdoc-constraints.test.d.ts.map +1 -1
  10. package/dist/__tests__/parity/fixtures/plan-status/chain-dsl.d.ts +19 -0
  11. package/dist/__tests__/parity/fixtures/plan-status/chain-dsl.d.ts.map +1 -0
  12. package/dist/__tests__/parity/fixtures/plan-status/expected-ir.d.ts +6 -0
  13. package/dist/__tests__/parity/fixtures/plan-status/expected-ir.d.ts.map +1 -0
  14. package/dist/__tests__/parity/fixtures/plan-status/tsdoc.d.ts +17 -0
  15. package/dist/__tests__/parity/fixtures/plan-status/tsdoc.d.ts.map +1 -0
  16. package/dist/__tests__/parity/fixtures/usd-cents/chain-dsl.d.ts +9 -0
  17. package/dist/__tests__/parity/fixtures/usd-cents/chain-dsl.d.ts.map +1 -0
  18. package/dist/__tests__/parity/fixtures/usd-cents/expected-ir.d.ts +6 -0
  19. package/dist/__tests__/parity/fixtures/usd-cents/expected-ir.d.ts.map +1 -0
  20. package/dist/__tests__/parity/fixtures/usd-cents/tsdoc.d.ts +19 -0
  21. package/dist/__tests__/parity/fixtures/usd-cents/tsdoc.d.ts.map +1 -0
  22. package/dist/__tests__/parity/utils.d.ts +6 -1
  23. package/dist/__tests__/parity/utils.d.ts.map +1 -1
  24. package/dist/analyzer/class-analyzer.d.ts +1 -1
  25. package/dist/analyzer/class-analyzer.d.ts.map +1 -1
  26. package/dist/analyzer/jsdoc-constraints.d.ts +7 -51
  27. package/dist/analyzer/jsdoc-constraints.d.ts.map +1 -1
  28. package/dist/analyzer/tsdoc-parser.d.ts +6 -8
  29. package/dist/analyzer/tsdoc-parser.d.ts.map +1 -1
  30. package/dist/browser.cjs +387 -98
  31. package/dist/browser.cjs.map +1 -1
  32. package/dist/browser.d.ts +15 -2
  33. package/dist/browser.d.ts.map +1 -1
  34. package/dist/browser.js +385 -98
  35. package/dist/browser.js.map +1 -1
  36. package/dist/build.d.ts +131 -5
  37. package/dist/canonicalize/tsdoc-canonicalizer.d.ts +3 -3
  38. package/dist/cli.cjs +272 -69
  39. package/dist/cli.cjs.map +1 -1
  40. package/dist/cli.js +271 -72
  41. package/dist/cli.js.map +1 -1
  42. package/dist/index.cjs +257 -67
  43. package/dist/index.cjs.map +1 -1
  44. package/dist/index.d.ts +20 -3
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +255 -71
  47. package/dist/index.js.map +1 -1
  48. package/dist/internals.cjs +461 -137
  49. package/dist/internals.cjs.map +1 -1
  50. package/dist/internals.js +459 -139
  51. package/dist/internals.js.map +1 -1
  52. package/dist/json-schema/generator.d.ts +8 -2
  53. package/dist/json-schema/generator.d.ts.map +1 -1
  54. package/dist/json-schema/ir-generator.d.ts +24 -2
  55. package/dist/json-schema/ir-generator.d.ts.map +1 -1
  56. package/dist/json-schema/types.d.ts +1 -1
  57. package/dist/json-schema/types.d.ts.map +1 -1
  58. package/dist/validate/constraint-validator.d.ts +3 -7
  59. package/dist/validate/constraint-validator.d.ts.map +1 -1
  60. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extension-runtime.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-runtime.integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/extension-runtime.integration.test.ts"],"names":[],"mappings":""}
@@ -43,12 +43,23 @@ export declare class ArrayEdgeCases {
43
43
  anyArray: unknown[];
44
44
  nestedArray: string[][];
45
45
  }
46
+ /**
47
+ * Self-referential dictionary type — used to verify the circular-reference
48
+ * guard in `tryResolveRecordType`. An index signature that references its
49
+ * own interface is the TS-valid equivalent of `Record<string, X>` where X
50
+ * is self-referential; without the guard, resolving the value type would
51
+ * recurse infinitely.
52
+ */
53
+ export interface SelfRefRecord {
54
+ [key: string]: SelfRefRecord;
55
+ }
46
56
  /**
47
57
  * Various object type patterns.
48
58
  */
49
59
  export declare class ObjectEdgeCases {
50
60
  emptyObject: {};
51
61
  stringRecord: Record<string, string>;
62
+ selfRefRecord: SelfRefRecord;
52
63
  deepNested: {
53
64
  level1: {
54
65
  level2: {
@@ -1 +1 @@
1
- {"version":3,"file":"edge-cases.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/edge-cases.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,qBAAa,eAAe;IAE1B,cAAc,EAAG,MAAM,GAAG,MAAM,CAAC;IAGjC,YAAY,EAAG,MAAM,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAG5C,WAAW,EAAG;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAMD;;GAEG;AACH,qBAAa,gBAAgB;IAE3B,cAAc,EAAG,MAAM,GAAG,IAAI,CAAC;IAG/B,eAAe,EAAG,MAAM,GAAG,SAAS,CAAC;IAGrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGjC,WAAW,EAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAGxC,cAAc,EAAG,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;CAC/C;AAMD;;GAEG;AACH,qBAAa,cAAc;IAEzB,OAAO,EAAG,MAAM,EAAE,CAAC;IAGnB,UAAU,EAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAGjC,aAAa,EAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAGhC,WAAW,EAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAG7C,QAAQ,EAAG,OAAO,EAAE,CAAC;IAGrB,WAAW,EAAG,MAAM,EAAE,EAAE,CAAC;CAC1B;AAMD;;GAEG;AACH,qBAAa,eAAe;IAG1B,WAAW,EAAG,EAAE,CAAC;IAGjB,YAAY,EAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGtC,UAAU,EAAG;QACX,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM,CAAC;iBACf,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;IAGF,aAAa,EAAG;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAMD;;GAEG;AACH,qBAAa,YAAY;IAGvB,QAAQ,EAAG,GAAG,CAAC;IAGf,YAAY,EAAG,OAAO,CAAC;IAOvB,SAAS,EAAG,IAAI,CAAC;IAGjB,SAAS,EAAG,IAAI,CAAC;CAClB;AAMD;;GAEG;AACH,qBAAa,cAAc;IAEzB,aAAa,EAAG,MAAM,CAAC;IAGvB,UAAU,EAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAIvB,aAAa,EAAG,QAAQ,GAAG,EAAE,CAAC;IAG9B,SAAS,EAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACvE;AAMD;;GAEG;AACH,qBAAa,iBAAiB;IAE5B,IAAI,EAAG,MAAM,CAAC;IAGd,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,MAAM,EAAG,OAAO,CAAC;CAClB;AAMD,eAAO,MAAM,YAAY,MAAO,CAAC;AACjC,eAAO,MAAM,YAAY,WAAY,CAAC;AACtC,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,YAAY;;CAAsB,CAAC;AAChD,eAAO,MAAM,YAAY;;CAA4B,CAAC;AACtD,eAAO,MAAM,YAAY;;;;CAAwC,CAAC;AAClE,eAAO,MAAM,YAAY;;CAAuB,CAAC"}
1
+ {"version":3,"file":"edge-cases.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/edge-cases.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,24 @@
1
1
  export declare class ExampleAForm {
2
- /** @Field_displayName Full Name
3
- * @Field_description Your legal name
2
+ /** @displayName Full Name
3
+ * @description Your legal name
4
4
  * @minLength 2
5
5
  * @maxLength 100
6
6
  */
7
7
  name: string;
8
- /** @Field_displayName Age
8
+ /** @displayName Age
9
9
  * @minimum 0
10
10
  * @maximum 150
11
11
  */
12
12
  age: number;
13
- /** @Field_displayName Score
13
+ /** @displayName Score
14
14
  * @exclusiveMinimum 0
15
15
  */
16
16
  score: number;
17
- /** @Field_displayName Email
17
+ /** @displayName Email
18
18
  * @pattern ^[^@]+@[^@]+$
19
19
  */
20
20
  email?: string;
21
- /** @Field_displayName Country
21
+ /** @displayName Country
22
22
  * @enumOptions [{"id":"us","label":"United States"},{"id":"ca","label":"Canada"}]
23
23
  */
24
24
  country: "us" | "ca";
@@ -6,27 +6,27 @@
6
6
  */
7
7
  export interface SimpleConfig {
8
8
  /**
9
- * @Field_displayName Full Name
10
- * @Field_description The user's legal name
9
+ * @displayName Full Name
10
+ * @description The user's legal name
11
11
  * @minLength 1
12
12
  * @maxLength 200
13
13
  */
14
14
  name: string;
15
- /** @Field_displayName Age @minimum 0 @maximum 150 */
15
+ /** @displayName Age @minimum 0 @maximum 150 */
16
16
  age: number;
17
- /** @Field_displayName Email @pattern ^[^@]+@[^@]+$ */
17
+ /** @displayName Email @pattern ^[^@]+@[^@]+$ */
18
18
  email?: string;
19
- /** @Field_displayName Active */
19
+ /** @displayName Active */
20
20
  active: boolean;
21
21
  }
22
22
  export interface WithEnumOptions {
23
23
  /**
24
- * @Field_displayName Status
24
+ * @displayName Status
25
25
  * @enumOptions ["draft","active","archived"]
26
26
  */
27
27
  status: "draft" | "active" | "archived";
28
28
  /**
29
- * @Field_displayName Priority
29
+ * @displayName Priority
30
30
  * @enumOptions [{"id":"low","label":"Low Priority"},{"id":"high","label":"High Priority"}]
31
31
  */
32
32
  priority: "low" | "high";
@@ -34,29 +34,29 @@ export interface WithEnumOptions {
34
34
  export interface EmptyInterface {
35
35
  }
36
36
  export interface OnlyOptionalFields {
37
- /** @Field_displayName Notes */
37
+ /** @displayName Notes */
38
38
  notes?: string;
39
- /** @Field_displayName Tags */
39
+ /** @displayName Tags */
40
40
  tags?: string;
41
41
  }
42
42
  /** @deprecated Use NewConfig instead */
43
43
  export interface DeprecatedFieldInterface {
44
44
  /** @deprecated Use fullName instead */
45
45
  name?: string;
46
- /** @Field_displayName Full Name */
46
+ /** @displayName Full Name */
47
47
  fullName: string;
48
48
  }
49
49
  export type SimpleTypeAlias = {
50
- /** @Field_displayName Label @minLength 1 */
50
+ /** @displayName Label @minLength 1 */
51
51
  label: string;
52
- /** @Field_displayName Count @minimum 0 */
52
+ /** @displayName Count @minimum 0 */
53
53
  count: number;
54
- /** @Field_displayName Description */
54
+ /** @displayName Description */
55
55
  description?: string;
56
56
  };
57
57
  export type TypeAliasWithEnumOptions = {
58
58
  /**
59
- * @Field_displayName Color
59
+ * @displayName Color
60
60
  * @enumOptions ["red","green","blue"]
61
61
  */
62
62
  color: "red" | "green" | "blue";
@@ -67,36 +67,36 @@ export type UnionAlias = "a" | "b" | "c";
67
67
  export type Percent = number;
68
68
  /** @minLength 1 @maxLength 255 @pattern ^[^@]+@[^@]+$ */
69
69
  export type Email = string;
70
- /** @Field_displayName Discount Rate @Field_description Percentage discount applied @minimum 0 @maximum 100 */
70
+ /** @displayName Discount Rate @description Percentage discount applied @minimum 0 @maximum 100 */
71
71
  export type AnnotatedPercent = number;
72
72
  export interface ConfigWithAliasedTypes {
73
- /** @Field_displayName Discount */
73
+ /** @displayName Discount */
74
74
  discount: Percent;
75
- /** @Field_displayName Contact Email */
75
+ /** @displayName Contact Email */
76
76
  contactEmail: Email;
77
- /** @Field_displayName Tax Rate */
77
+ /** @displayName Tax Rate */
78
78
  taxRate: AnnotatedPercent;
79
79
  }
80
80
  export interface Address {
81
- /** @Field_displayName Street @minLength 1 @maxLength 200 */
81
+ /** @displayName Street @minLength 1 @maxLength 200 */
82
82
  street: string;
83
- /** @Field_displayName City @minLength 1 */
83
+ /** @displayName City @minLength 1 */
84
84
  city: string;
85
- /** @Field_displayName Zip @pattern ^[0-9]{5}$ */
85
+ /** @displayName Zip @pattern ^[0-9]{5}$ */
86
86
  zip?: string;
87
87
  }
88
88
  export type ContactInfo = {
89
- /** @Field_displayName Email @pattern ^[^@]+@[^@]+$ */
89
+ /** @displayName Email @pattern ^[^@]+@[^@]+$ */
90
90
  email: string;
91
- /** @Field_displayName Phone @maxLength 20 */
91
+ /** @displayName Phone @maxLength 20 */
92
92
  phone?: string;
93
93
  };
94
94
  export interface NestedConfig {
95
- /** @Field_displayName Name */
95
+ /** @displayName Name */
96
96
  name: string;
97
- /** @Field_displayName Address */
97
+ /** @displayName Address */
98
98
  address: Address;
99
- /** @Field_displayName Contact */
99
+ /** @displayName Contact */
100
100
  contact: ContactInfo;
101
101
  }
102
102
  //# sourceMappingURL=example-interface-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"example-interface-types.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/example-interface-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IAEZ,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAExC;;;OAGG;IACH,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,cAAc;CAAG;AAElC,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,MAAM,eAAe,GAAG;IAC5B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IAEd,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IAEd,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;OAGG;IACH,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;CACjC,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAIzC,8BAA8B;AAC9B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,yDAAyD;AACzD,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B,8GAA8G;AAC9G,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,MAAM,WAAW,sBAAsB;IACrC,kCAAkC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAElB,uCAAuC;IACvC,YAAY,EAAE,KAAK,CAAC;IAEpB,kCAAkC;IAClC,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAID,MAAM,WAAW,OAAO;IACtB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,MAAM,WAAW,GAAG;IACxB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,OAAO,EAAE,WAAW,CAAC;CACtB"}
1
+ {"version":3,"file":"example-interface-types.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/example-interface-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IAEZ,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0BAA0B;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAExC;;;OAGG;IACH,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC;CAC1B;AAGD,MAAM,WAAW,cAAc;CAAG;AAElC,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,MAAM,eAAe,GAAG;IAC5B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IAEd,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IAEd,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;OAGG;IACH,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;CACjC,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAIzC,8BAA8B;AAC9B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,yDAAyD;AACzD,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B,kGAAkG;AAClG,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAElB,iCAAiC;IACjC,YAAY,EAAE,KAAK,CAAC;IAEpB,4BAA4B;IAC5B,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAID,MAAM,WAAW,OAAO;IACtB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,MAAM,WAAW,GAAG;IACxB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,2BAA2B;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB"}
@@ -1,10 +1,9 @@
1
1
  /**
2
- * Unit tests for JSDoc constraint extraction.
2
+ * Legacy constraint extraction tests have been removed.
3
3
  *
4
- * Verifies that {@link extractJSDocConstraints} correctly parses JSDoc
5
- * constraints into synthetic ConstraintInfo objects.
6
- *
7
- * @see packages/core/src/types/constraint-definitions.ts for BUILTIN_CONSTRAINT_DEFINITIONS
4
+ * `extractJSDocConstraints` and `extractJSDocFieldMetadata` were deleted as
5
+ * part of the decorator-era cleanup. Equivalent coverage exists in:
6
+ * - ir-jsdoc-constraints.test.ts (tests extractJSDocConstraintNodes / extractJSDocAnnotationNodes)
8
7
  */
9
8
  export {};
10
9
  //# sourceMappingURL=jsdoc-constraints.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsdoc-constraints.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/jsdoc-constraints.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
1
+ {"version":3,"file":"jsdoc-constraints.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/jsdoc-constraints.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Parity fixture — plan-status — chain DSL definition.
3
+ *
4
+ * Covers the shared static enum surface:
5
+ * - field-level display name
6
+ * - labeled enum members via object options
7
+ * - required enum field
8
+ */
9
+ export declare const planStatusForm: import("@formspec/core").FormSpec<readonly [import("@formspec/core").StaticEnumField<"status", readonly [{
10
+ readonly id: "active";
11
+ readonly label: "Active";
12
+ }, {
13
+ readonly id: "paused";
14
+ readonly label: "Paused";
15
+ }, {
16
+ readonly id: "cancelled";
17
+ readonly label: "Cancelled";
18
+ }]>]>;
19
+ //# sourceMappingURL=chain-dsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-dsl.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/parity/fixtures/plan-status/chain-dsl.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,cAAc;;;;;;;;;KAa1B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Parity fixture — plan-status — expected provenance-free IR.
3
+ */
4
+ import type { ProvenanceFreeFormIR } from "../../utils.js";
5
+ export declare const expectedIR: ProvenanceFreeFormIR;
6
+ //# sourceMappingURL=expected-ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expected-ir.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/parity/fixtures/plan-status/expected-ir.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,eAAO,MAAM,UAAU,EAAE,oBA2BxB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Parity fixture — plan-status — TSDoc class definition.
3
+ *
4
+ * This stays on the shared static surface. The TSDoc field carries the same
5
+ * field-level label and member labels that the chain DSL expresses via
6
+ * `field.enum(..., [{ id, label }], { label })`.
7
+ */
8
+ export declare class SubscriptionForm {
9
+ /**
10
+ * @displayName Plan Status
11
+ * @displayName :active Active
12
+ * @displayName :paused Paused
13
+ * @displayName :cancelled Cancelled
14
+ */
15
+ status: "active" | "paused" | "cancelled";
16
+ }
17
+ //# sourceMappingURL=tsdoc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsdoc.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/parity/fixtures/plan-status/tsdoc.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qBAAa,gBAAgB;IAC3B;;;;;OAKG;IACH,MAAM,EAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;CAC5C"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Parity fixture — usd-cents — chain DSL definition.
3
+ *
4
+ * Mirrors the effective numeric semantics of the TSDoc alias chain:
5
+ * - integer-valued number fields via `multipleOf: 1`
6
+ * - inherited minimum bounds resolved into the final field constraints
7
+ */
8
+ export declare const usdCentsForm: import("@formspec/core").FormSpec<readonly [import("@formspec/core").NumberField<"unitPrice">, import("@formspec/core").NumberField<"quantity">]>;
9
+ //# sourceMappingURL=chain-dsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain-dsl.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/parity/fixtures/usd-cents/chain-dsl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,YAAY,mJAWxB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Parity fixture — usd-cents — expected provenance-free IR.
3
+ */
4
+ import type { ProvenanceFreeFormIR } from "../../utils.js";
5
+ export declare const expectedIR: ProvenanceFreeFormIR;
6
+ //# sourceMappingURL=expected-ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expected-ir.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/parity/fixtures/usd-cents/expected-ir.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,eAAO,MAAM,UAAU,EAAE,oBAgDxB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Parity fixture — usd-cents — TSDoc class definition.
3
+ *
4
+ * The alias chain exercises the same shared static semantics as the chain DSL:
5
+ * integer-valued fields represented as numbers plus `@multipleOf 1`, with
6
+ * per-alias minimum bounds flowing to the final field.
7
+ */
8
+ /** @multipleOf 1 */
9
+ type Integer = number;
10
+ /** @minimum 0 */
11
+ type USDCents = Integer;
12
+ /** @minimum 1 */
13
+ type Quantity = Integer;
14
+ export declare class LineItemForm {
15
+ unitPrice: USDCents;
16
+ quantity: Quantity;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=tsdoc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsdoc.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/parity/fixtures/usd-cents/tsdoc.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,oBAAoB;AACpB,KAAK,OAAO,GAAG,MAAM,CAAC;AAEtB,iBAAiB;AACjB,KAAK,QAAQ,GAAG,OAAO,CAAC;AAExB,iBAAiB;AACjB,KAAK,QAAQ,GAAG,OAAO,CAAC;AAExB,qBAAa,YAAY;IACvB,SAAS,EAAG,QAAQ,CAAC;IACrB,QAAQ,EAAG,QAAQ,CAAC;CACrB"}
@@ -40,6 +40,11 @@ export interface ProvenanceFreeObjectTypeNode {
40
40
  readonly properties: readonly ProvenanceFreeObjectProperty[];
41
41
  readonly additionalProperties: boolean;
42
42
  }
43
+ /** Record type node — valueType is recursively provenance-free. */
44
+ export interface ProvenanceFreeRecordTypeNode {
45
+ readonly kind: "record";
46
+ readonly valueType: ProvenanceFreeTypeNode;
47
+ }
43
48
  /** Union type node — members are recursively provenance-free. */
44
49
  export interface ProvenanceFreeUnionTypeNode {
45
50
  readonly kind: "union";
@@ -56,7 +61,7 @@ export type ProvenanceFreeDynamicTypeNode = DynamicTypeNode;
56
61
  /** Custom type node has no `provenance` field — pass through unchanged. */
57
62
  export type ProvenanceFreeCustomTypeNode = CustomTypeNode;
58
63
  /** Union of all provenance-free type node variants. */
59
- export type ProvenanceFreeTypeNode = ProvenanceFreePrimitiveTypeNode | ProvenanceFreeEnumTypeNode | ProvenanceFreeArrayTypeNode | ProvenanceFreeObjectTypeNode | ProvenanceFreeUnionTypeNode | ProvenanceFreeReferenceTypeNode | ProvenanceFreeDynamicTypeNode | ProvenanceFreeCustomTypeNode;
64
+ export type ProvenanceFreeTypeNode = ProvenanceFreePrimitiveTypeNode | ProvenanceFreeEnumTypeNode | ProvenanceFreeArrayTypeNode | ProvenanceFreeObjectTypeNode | ProvenanceFreeRecordTypeNode | ProvenanceFreeUnionTypeNode | ProvenanceFreeReferenceTypeNode | ProvenanceFreeDynamicTypeNode | ProvenanceFreeCustomTypeNode;
60
65
  export type ProvenanceFreeNumericConstraintNode = Omit<NumericConstraintNode, "provenance">;
61
66
  export type ProvenanceFreeLengthConstraintNode = Omit<LengthConstraintNode, "provenance">;
62
67
  export type ProvenanceFreePatternConstraintNode = Omit<PatternConstraintNode, "provenance">;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/__tests__/parity/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/__tests__/parity/utils.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  import * as ts from "typescript";
9
9
  import type { FieldNode, TypeNode, TypeDefinition, JsonValue } from "@formspec/core";
10
10
  /**
11
- * Layout metadata extracted from `@Group` and `@ShowWhen` decorators.
11
+ * Layout metadata extracted from `@Group` and `@ShowWhen` TSDoc tags.
12
12
  * One entry per field, in the same order as `fields`.
13
13
  */
14
14
  export interface FieldLayoutMetadata {
@@ -1 +1 @@
1
- {"version":3,"file":"class-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/class-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"class-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/class-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EAOR,cAAc,EACd,SAAS,EACV,MAAM,gBAAgB,CAAC;AAmCxB;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC;CAC3E;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACtD,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtD,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,EAAE,SAAS,UAAU,EAAE,CAAC;IAChD,qBAAqB;IACrB,QAAQ,CAAC,aAAa,EAAE,SAAS,UAAU,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAClC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAMnD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAC9B,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,IAAI,SAAK,GACR,eAAe,CA8BjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,EAAE,CAAC,oBAAoB,EACtC,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,IAAI,SAAK,GACR,eAAe,CAiBjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAClC,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,IAAI,SAAK,GACR,0BAA0B,CAqC5B;AA+ND;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5C,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GACrB,QAAQ,CAoDV;AAsaD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,uBAAuB;IACvB,cAAc,EAAE,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC;IACxC,2BAA2B;IAC3B,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC;IAClC,oBAAoB;IACpB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACd,0DAA0D;IAC1D,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iEAAiE;IACjE,QAAQ,EAAE,OAAO,CAAC;CACnB"}
@@ -4,36 +4,16 @@
4
4
  * Extracts constraints and annotation tags from JSDoc comments on
5
5
  * class/interface fields and returns canonical IR nodes directly:
6
6
  * - {@link ConstraintNode} for set-influencing tags (@minimum, @pattern, etc.)
7
- * - {@link AnnotationNode} for value-influencing tags (@Field_displayName, etc.)
7
+ * - {@link AnnotationNode} for value-influencing tags (@displayName, etc.)
8
8
  *
9
9
  * The IR extraction path uses the official `@microsoft/tsdoc` parser for
10
- * constraints (all TSDoc-compliant alphanumeric names) and the TypeScript
11
- * compiler JSDoc API for annotation tags (which contain underscores, e.g.
12
- * `@Field_displayName`).
10
+ * all canonical tags.
13
11
  *
14
- * Supported constraints correspond to keys in {@link BUILTIN_CONSTRAINT_DEFINITIONS}
15
- * from `@formspec/core` (e.g., `@minimum`, `@maximum`, `@pattern`).
12
+ * Supported constraints correspond to the built-in FormSpec constraint tags
13
+ * (e.g., `@minimum`, `@maximum`, `@pattern`).
16
14
  */
17
15
  import * as ts from "typescript";
18
- import { type ConstraintNode, type AnnotationNode } from "@formspec/core";
19
- /**
20
- * A constraint argument value.
21
- */
22
- export type ConstraintArg = string | number | boolean | null | ConstraintArg[] | {
23
- [key: string]: ConstraintArg;
24
- };
25
- /**
26
- * Extracted constraint information from a JSDoc tag.
27
- * @deprecated Use {@link ConstraintNode} from the IR path instead.
28
- */
29
- export interface ConstraintInfo {
30
- /** Constraint name (e.g., "Minimum", "Pattern", "Field") */
31
- name: string;
32
- /** Constraint arguments as literal values */
33
- args: ConstraintArg[];
34
- /** Raw AST node (undefined for synthetic JSDoc constraint entries) */
35
- node: ts.Decorator | undefined;
36
- }
16
+ import type { ConstraintNode, AnnotationNode } from "@formspec/core";
37
17
  /**
38
18
  * Extracts constraints from JSDoc comments on a TypeScript AST node and returns
39
19
  * canonical {@link ConstraintNode} objects.
@@ -47,14 +27,8 @@ export interface ConstraintInfo {
47
27
  */
48
28
  export declare function extractJSDocConstraintNodes(node: ts.Node, file?: string): ConstraintNode[];
49
29
  /**
50
- * Extracts `@Field_displayName`, `@Field_description`, and `@deprecated`
51
- * TSDoc tags from a node and returns canonical {@link AnnotationNode} objects.
52
- *
53
- * Uses a hybrid approach:
54
- * - `@deprecated` is extracted via the TSDoc parser (standard tag).
55
- * - `@Field_displayName` and `@Field_description` are extracted via the
56
- * TypeScript compiler JSDoc API because they contain underscores which
57
- * are invalid in TSDoc tag names.
30
+ * Extracts canonical annotation tags from a node and returns
31
+ * {@link AnnotationNode} objects.
58
32
  *
59
33
  * @param node - The AST node to inspect for annotation tags
60
34
  * @param file - Absolute path to the source file for provenance
@@ -74,22 +48,4 @@ export declare function hasDeprecatedTag(node: ts.Node): boolean;
74
48
  * Only extracts literal values (strings, numbers, booleans, null).
75
49
  */
76
50
  export declare function extractDefaultValueAnnotation(initializer: ts.Expression | undefined, file?: string): AnnotationNode | null;
77
- /**
78
- * Extracts JSDoc constraint tags and returns synthetic {@link ConstraintInfo}
79
- * objects for backward compatibility with the decorator-based pipeline.
80
- *
81
- * Uses the TypeScript compiler JSDoc API (not TSDoc parser) to maintain
82
- * identical behavior with the legacy pipeline.
83
- *
84
- * @deprecated Use {@link extractJSDocConstraintNodes} for IR output.
85
- */
86
- export declare function extractJSDocConstraints(node: ts.Node): ConstraintInfo[];
87
- /**
88
- * Extracts `@Field_displayName` and `@Field_description` TSDoc tags
89
- * and returns a synthetic `Field` {@link ConstraintInfo} for backward
90
- * compatibility with the decorator-based pipeline.
91
- *
92
- * @deprecated Use {@link extractJSDocAnnotationNodes} for IR output.
93
- */
94
- export declare function extractJSDocFieldMetadata(node: ts.Node): ConstraintInfo | null;
95
51
  //# sourceMappingURL=jsdoc-constraints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsdoc-constraints.d.ts","sourceRoot":"","sources":["../../src/analyzer/jsdoc-constraints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AAQxB;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,aAAa,EAAE,GACf;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,sEAAsE;IACtE,IAAI,EAAE,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;CAChC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,SAAK,GAAG,cAAc,EAAE,CAGtF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,SAAK,GAAG,cAAc,EAAE,CAGtF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,EACtC,IAAI,SAAK,GACR,cAAc,GAAG,IAAI,CAwCvB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,cAAc,EAAE,CA0CvE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,cAAc,GAAG,IAAI,CAgC9E"}
1
+ {"version":3,"file":"jsdoc-constraints.d.ts","sourceRoot":"","sources":["../../src/analyzer/jsdoc-constraints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAOhF;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,SAAK,GAAG,cAAc,EAAE,CAGtF;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,SAAK,GAAG,cAAc,EAAE,CAGtF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,EACtC,IAAI,SAAK,GACR,cAAc,GAAG,IAAI,CAwCvB"}
@@ -14,10 +14,9 @@
14
14
  * — Parsed via TSDocParser as custom block tags.
15
15
  * Both camelCase and PascalCase forms are accepted (e.g., `@Minimum`).
16
16
  *
17
- * 2. **Annotation tags** (`@Field_displayName`, `@Field_description`):
18
- * These contain underscores which are not valid in TSDoc tag names.
19
- * They are extracted via the TypeScript compiler's `ts.getJSDocTags()`
20
- * until a future migration to underscore-free tag names.
17
+ * 2. **Annotation tags** (`@displayName`, `@description`):
18
+ * These are parsed as structured custom block tags and mapped directly
19
+ * onto annotation IR nodes.
21
20
  *
22
21
  * The `@deprecated` tag is a standard TSDoc block tag, parsed structurally.
23
22
  *
@@ -36,7 +35,7 @@ import { type ConstraintNode, type AnnotationNode, type PathTarget } from "@form
36
35
  export interface TSDocParseResult {
37
36
  /** Constraint IR nodes extracted from custom block tags. */
38
37
  readonly constraints: readonly ConstraintNode[];
39
- /** Annotation IR nodes extracted from modifier/block tags and TS JSDoc API. */
38
+ /** Annotation IR nodes extracted from canonical TSDoc block tags. */
40
39
  readonly annotations: readonly AnnotationNode[];
41
40
  }
42
41
  /**
@@ -45,9 +44,8 @@ export interface TSDocParseResult {
45
44
  * nodes.
46
45
  *
47
46
  * For constraint tags (`@minimum`, `@pattern`, `@enumOptions`, etc.),
48
- * the structured TSDoc parser is used. For annotation tags that contain
49
- * underscores (`@Field_displayName`, `@Field_description`), the TypeScript
50
- * compiler JSDoc API is used as a fallback.
47
+ * the structured TSDoc parser is used. Canonical annotation tags
48
+ * (`@displayName`, `@description`) are also parsed structurally.
51
49
  *
52
50
  * @param node - The TS AST node to inspect (PropertyDeclaration, PropertySignature, etc.)
53
51
  * @param file - Absolute source file path for provenance
@@ -1 +1 @@
1
- {"version":3,"file":"tsdoc-parser.d.ts","sourceRoot":"","sources":["../../src/analyzer/tsdoc-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAYjC,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,cAAc,EAInB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AA6ExB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CACjD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,SAAK,GAAG,gBAAgB,CAuHzE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAsB5D;AAMD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQpD"}
1
+ {"version":3,"file":"tsdoc-parser.d.ts","sourceRoot":"","sources":["../../src/analyzer/tsdoc-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAYjC,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,cAAc,EAInB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAwFxB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CACjD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,SAAK,GAAG,gBAAgB,CAkGzE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAsB5D;AAMD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQpD"}