@distilled.cloud/core 1.0.0-rc.1 → 1.0.0-rc.10

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 (148) hide show
  1. package/LICENSE +201 -0
  2. package/lib/api.d.ts.map +1 -1
  3. package/lib/api.js +16 -4
  4. package/lib/api.js.map +1 -1
  5. package/lib/category.d.ts +4 -4
  6. package/lib/category.js +4 -4
  7. package/lib/codegen/boolean-string-enums.d.ts +36 -0
  8. package/lib/codegen/boolean-string-enums.d.ts.map +1 -0
  9. package/lib/codegen/boolean-string-enums.js +94 -0
  10. package/lib/codegen/boolean-string-enums.js.map +1 -0
  11. package/lib/codegen/boolean-string-enums.test.d.ts +2 -0
  12. package/lib/codegen/boolean-string-enums.test.d.ts.map +1 -0
  13. package/lib/codegen/boolean-string-enums.test.js +147 -0
  14. package/lib/codegen/boolean-string-enums.test.js.map +1 -0
  15. package/lib/codegen/cli.d.ts +56 -6
  16. package/lib/codegen/cli.d.ts.map +1 -1
  17. package/lib/codegen/cli.js +59 -75
  18. package/lib/codegen/cli.js.map +1 -1
  19. package/lib/codegen/emit.d.ts +3 -7
  20. package/lib/codegen/emit.d.ts.map +1 -1
  21. package/lib/codegen/emit.js +6 -10
  22. package/lib/codegen/emit.js.map +1 -1
  23. package/lib/codegen/generator.d.ts.map +1 -1
  24. package/lib/codegen/generator.js +142 -20
  25. package/lib/codegen/generator.js.map +1 -1
  26. package/lib/codegen/graphql-client.d.ts +62 -0
  27. package/lib/codegen/graphql-client.d.ts.map +1 -0
  28. package/lib/codegen/graphql-client.js +294 -0
  29. package/lib/codegen/graphql-client.js.map +1 -0
  30. package/lib/codegen/graphql-client.test.d.ts +2 -0
  31. package/lib/codegen/graphql-client.test.d.ts.map +1 -0
  32. package/lib/codegen/graphql-client.test.js +311 -0
  33. package/lib/codegen/graphql-client.test.js.map +1 -0
  34. package/lib/codegen/graphql.d.ts +207 -0
  35. package/lib/codegen/graphql.d.ts.map +1 -0
  36. package/lib/codegen/graphql.js +799 -0
  37. package/lib/codegen/graphql.js.map +1 -0
  38. package/lib/codegen/openapi-cli.d.ts +17 -3
  39. package/lib/codegen/openapi-cli.d.ts.map +1 -1
  40. package/lib/codegen/openapi-cli.js +50 -48
  41. package/lib/codegen/openapi-cli.js.map +1 -1
  42. package/lib/codegen/openapi.d.ts +69 -6
  43. package/lib/codegen/openapi.d.ts.map +1 -1
  44. package/lib/codegen/openapi.js +173 -16
  45. package/lib/codegen/openapi.js.map +1 -1
  46. package/lib/codegen/patches.d.ts +65 -0
  47. package/lib/codegen/patches.d.ts.map +1 -0
  48. package/lib/codegen/patches.js +236 -0
  49. package/lib/codegen/patches.js.map +1 -0
  50. package/lib/codegen/patches.test.d.ts +2 -0
  51. package/lib/codegen/patches.test.d.ts.map +1 -0
  52. package/lib/codegen/patches.test.js +105 -0
  53. package/lib/codegen/patches.test.js.map +1 -0
  54. package/lib/codegen/proto.d.ts +121 -0
  55. package/lib/codegen/proto.d.ts.map +1 -0
  56. package/lib/codegen/proto.js +962 -0
  57. package/lib/codegen/proto.js.map +1 -0
  58. package/lib/codegen/rewrite-operation-ids.d.ts +131 -0
  59. package/lib/codegen/rewrite-operation-ids.d.ts.map +1 -0
  60. package/lib/codegen/rewrite-operation-ids.js +1079 -0
  61. package/lib/codegen/rewrite-operation-ids.js.map +1 -0
  62. package/lib/codegen/rewrite-operation-ids.test.d.ts +2 -0
  63. package/lib/codegen/rewrite-operation-ids.test.d.ts.map +1 -0
  64. package/lib/codegen/rewrite-operation-ids.test.js +533 -0
  65. package/lib/codegen/rewrite-operation-ids.test.js.map +1 -0
  66. package/lib/codegen/spec-path.d.ts +16 -0
  67. package/lib/codegen/spec-path.d.ts.map +1 -0
  68. package/lib/codegen/spec-path.js +101 -0
  69. package/lib/codegen/spec-path.js.map +1 -0
  70. package/lib/errors.d.ts.map +1 -1
  71. package/lib/errors.js +17 -13
  72. package/lib/errors.js.map +1 -1
  73. package/lib/graphql.d.ts +284 -0
  74. package/lib/graphql.d.ts.map +1 -0
  75. package/lib/graphql.fixture.d.ts +249 -0
  76. package/lib/graphql.fixture.d.ts.map +1 -0
  77. package/lib/graphql.fixture.js +240 -0
  78. package/lib/graphql.fixture.js.map +1 -0
  79. package/lib/graphql.js +718 -0
  80. package/lib/graphql.js.map +1 -0
  81. package/lib/graphql.test.d.ts +2 -0
  82. package/lib/graphql.test.d.ts.map +1 -0
  83. package/lib/graphql.test.js +780 -0
  84. package/lib/graphql.test.js.map +1 -0
  85. package/lib/graphql.types.d.ts +2 -0
  86. package/lib/graphql.types.d.ts.map +1 -0
  87. package/lib/graphql.types.js +45 -0
  88. package/lib/graphql.types.js.map +1 -0
  89. package/lib/json-patch.d.ts +18 -11
  90. package/lib/json-patch.d.ts.map +1 -1
  91. package/lib/json-patch.js +63 -25
  92. package/lib/json-patch.js.map +1 -1
  93. package/lib/pagination.d.ts +43 -3
  94. package/lib/pagination.d.ts.map +1 -1
  95. package/lib/pagination.js +91 -5
  96. package/lib/pagination.js.map +1 -1
  97. package/lib/protocol-http.d.ts.map +1 -1
  98. package/lib/protocol-http.js +62 -26
  99. package/lib/protocol-http.js.map +1 -1
  100. package/lib/protocol-http.test.d.ts +2 -0
  101. package/lib/protocol-http.test.d.ts.map +1 -0
  102. package/lib/protocol-http.test.js +88 -0
  103. package/lib/protocol-http.test.js.map +1 -0
  104. package/lib/protocol-rest.d.ts +12 -2
  105. package/lib/protocol-rest.d.ts.map +1 -1
  106. package/lib/protocol-rest.js +17 -3
  107. package/lib/protocol-rest.js.map +1 -1
  108. package/lib/retry.js +1 -1
  109. package/lib/schema.d.ts +1 -1
  110. package/lib/schema.d.ts.map +1 -1
  111. package/lib/schema.js +1 -1
  112. package/lib/schema.js.map +1 -1
  113. package/lib/trait.d.ts +27 -3
  114. package/lib/trait.d.ts.map +1 -1
  115. package/lib/trait.js +17 -1
  116. package/lib/trait.js.map +1 -1
  117. package/package.json +13 -10
  118. package/src/api.ts +18 -4
  119. package/src/category.ts +4 -4
  120. package/src/codegen/boolean-string-enums.test.ts +168 -0
  121. package/src/codegen/boolean-string-enums.ts +106 -0
  122. package/src/codegen/cli.ts +127 -110
  123. package/src/codegen/emit.ts +6 -10
  124. package/src/codegen/generator.ts +151 -21
  125. package/src/codegen/graphql-client.test.ts +386 -0
  126. package/src/codegen/graphql-client.ts +419 -0
  127. package/src/codegen/graphql.ts +1217 -0
  128. package/src/codegen/openapi-cli.ts +75 -59
  129. package/src/codegen/openapi.ts +255 -16
  130. package/src/codegen/patches.test.ts +130 -0
  131. package/src/codegen/patches.ts +291 -0
  132. package/src/codegen/proto.ts +1128 -0
  133. package/src/codegen/rewrite-operation-ids.test.ts +563 -0
  134. package/src/codegen/rewrite-operation-ids.ts +1206 -0
  135. package/src/codegen/spec-path.ts +115 -0
  136. package/src/errors.ts +20 -25
  137. package/src/graphql.fixture.ts +371 -0
  138. package/src/graphql.test.ts +974 -0
  139. package/src/graphql.ts +1321 -0
  140. package/src/graphql.types.ts +185 -0
  141. package/src/json-patch.ts +82 -25
  142. package/src/pagination.ts +134 -7
  143. package/src/protocol-http.test.ts +107 -0
  144. package/src/protocol-http.ts +67 -31
  145. package/src/protocol-rest.ts +28 -4
  146. package/src/retry.ts +1 -1
  147. package/src/schema.ts +2 -2
  148. package/src/trait.ts +39 -3
@@ -0,0 +1,147 @@
1
+ import { describe, expect, test } from "bun:test";
2
+ import { booleanStringEnums, STRING_ENCODED_TRAIT, } from "./boolean-string-enums.js";
3
+ import { generateService } from "./generator.js";
4
+ const boolEnum = {
5
+ type: "enum",
6
+ members: {
7
+ TRUE: {
8
+ target: "smithy.api#Unit",
9
+ traits: { "smithy.api#enumValue": "true" },
10
+ },
11
+ FALSE: {
12
+ target: "smithy.api#Unit",
13
+ traits: { "smithy.api#enumValue": "false" },
14
+ },
15
+ },
16
+ };
17
+ const model = (shapes) => ({ smithy: "2.0", shapes });
18
+ describe("booleanStringEnums", () => {
19
+ test("retargets a request member and stamps the trait", () => {
20
+ const m = model({
21
+ "com.example.x#Flag": boolEnum,
22
+ "com.example.x#Request": {
23
+ type: "structure",
24
+ traits: { "smithy.api#input": {} },
25
+ members: { validation_enabled: { target: "com.example.x#Flag" } },
26
+ },
27
+ });
28
+ expect(booleanStringEnums(m)).toEqual({ members: 1, lists: 0 });
29
+ const member = m.shapes["com.example.x#Request"].members.validation_enabled;
30
+ expect(member.target).toBe("smithy.api#Boolean");
31
+ expect(member.traits[STRING_ENCODED_TRAIT]).toEqual({});
32
+ });
33
+ test("leaves response members alone", () => {
34
+ const m = model({
35
+ "com.example.x#Flag": boolEnum,
36
+ "com.example.x#Response": {
37
+ type: "structure",
38
+ members: { active: { target: "com.example.x#Flag" } },
39
+ },
40
+ });
41
+ expect(booleanStringEnums(m)).toEqual({ members: 0, lists: 0 });
42
+ expect(m.shapes["com.example.x#Response"].members.active.target).toBe("com.example.x#Flag");
43
+ });
44
+ test("retargets a request-only list's element type", () => {
45
+ const m = model({
46
+ "com.example.x#Flag": boolEnum,
47
+ "com.example.x#FlagList": {
48
+ type: "list",
49
+ member: { target: "com.example.x#Flag" },
50
+ },
51
+ "com.example.x#Request": {
52
+ type: "structure",
53
+ traits: { "smithy.api#input": {} },
54
+ members: { unique_entries: { target: "com.example.x#FlagList" } },
55
+ },
56
+ });
57
+ expect(booleanStringEnums(m)).toEqual({ members: 1, lists: 1 });
58
+ expect(m.shapes["com.example.x#FlagList"].member.target).toBe("smithy.api#Boolean");
59
+ });
60
+ test("leaves a list a response also uses", () => {
61
+ const m = model({
62
+ "com.example.x#Flag": boolEnum,
63
+ "com.example.x#FlagList": {
64
+ type: "list",
65
+ member: { target: "com.example.x#Flag" },
66
+ },
67
+ "com.example.x#Request": {
68
+ type: "structure",
69
+ traits: { "smithy.api#input": {} },
70
+ members: { unique_entries: { target: "com.example.x#FlagList" } },
71
+ },
72
+ "com.example.x#Response": {
73
+ type: "structure",
74
+ members: { seen: { target: "com.example.x#FlagList" } },
75
+ },
76
+ });
77
+ expect(booleanStringEnums(m)).toEqual({ members: 0, lists: 0 });
78
+ expect(m.shapes["com.example.x#FlagList"].member.target).toBe("com.example.x#Flag");
79
+ });
80
+ test("leaves an enum that is not exactly true/false", () => {
81
+ const m = model({
82
+ "com.example.x#Tri": {
83
+ type: "enum",
84
+ members: {
85
+ TRUE: {
86
+ target: "smithy.api#Unit",
87
+ traits: { "smithy.api#enumValue": "true" },
88
+ },
89
+ FALSE: {
90
+ target: "smithy.api#Unit",
91
+ traits: { "smithy.api#enumValue": "false" },
92
+ },
93
+ AUTO: {
94
+ target: "smithy.api#Unit",
95
+ traits: { "smithy.api#enumValue": "auto" },
96
+ },
97
+ },
98
+ },
99
+ "com.example.x#Request": {
100
+ type: "structure",
101
+ traits: { "smithy.api#input": {} },
102
+ members: { mode: { target: "com.example.x#Tri" } },
103
+ },
104
+ });
105
+ expect(booleanStringEnums(m)).toEqual({ members: 0, lists: 0 });
106
+ });
107
+ });
108
+ describe("generateService", () => {
109
+ test("emits a boolean piped through T.StringEncoded()", () => {
110
+ const { code } = generateService(model({
111
+ "com.example.x#Example": {
112
+ type: "service",
113
+ version: "2024-01-01",
114
+ operations: [{ target: "com.example.x#GetThing" }],
115
+ },
116
+ "com.example.x#GetThing": {
117
+ type: "operation",
118
+ input: { target: "com.example.x#GetThingRequest" },
119
+ output: { target: "smithy.api#Unit" },
120
+ traits: { "smithy.api#http": { method: "GET", uri: "/things" } },
121
+ },
122
+ "com.example.x#GetThingRequest": {
123
+ type: "structure",
124
+ traits: { "smithy.api#input": {} },
125
+ members: {
126
+ verbose: {
127
+ target: "com.example.x#Flag",
128
+ traits: { "smithy.api#httpQuery": "verbose" },
129
+ },
130
+ },
131
+ },
132
+ "com.example.x#Flag": boolEnum,
133
+ }), {
134
+ operationDecl: {
135
+ contextType: "ExampleOpContext",
136
+ commonErrorType: "ExampleOpError",
137
+ commonErrorClasses: [],
138
+ protocol: "ExampleProtocol",
139
+ retry: "Retry.Retry",
140
+ },
141
+ });
142
+ expect(code).toContain('"verbose": S.optional(S.Boolean.pipe(T.Query(), T.StringEncoded())),');
143
+ expect(code).toContain("verbose?: boolean;");
144
+ expect(code).not.toContain('"true" | "false"');
145
+ });
146
+ });
147
+ //# sourceMappingURL=boolean-string-enums.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean-string-enums.test.js","sourceRoot":"","sources":["../../src/codegen/boolean-string-enums.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE;SAC3C;QACD,KAAK,EAAE;YACL,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE;SAC5C;KACF;CACF,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,MAA2B,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAE3E,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,GAAG,KAAK,CAAC;YACd,oBAAoB,EAAE,QAAQ;YAC9B,uBAAuB,EAAE;gBACvB,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE;gBAClC,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE;aAClE;SACF,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,KAAK,CAAC;YACd,oBAAoB,EAAE,QAAQ;YAC9B,wBAAwB,EAAE;gBACxB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE;aACtD;SACF,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACnE,oBAAoB,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,GAAG,KAAK,CAAC;YACd,oBAAoB,EAAE,QAAQ;YAC9B,wBAAwB,EAAE;gBACxB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE;aACzC;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE;gBAClC,OAAO,EAAE,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE;aAClE;SACF,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAC3D,oBAAoB,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,GAAG,KAAK,CAAC;YACd,oBAAoB,EAAE,QAAQ;YAC9B,wBAAwB,EAAE;gBACxB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE;aACzC;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE;gBAClC,OAAO,EAAE,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE;aAClE;YACD,wBAAwB,EAAE;gBACxB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE;aACxD;SACF,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAC3D,oBAAoB,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,GAAG,KAAK,CAAC;YACd,mBAAmB,EAAE;gBACnB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE;wBACJ,MAAM,EAAE,iBAAiB;wBACzB,MAAM,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE;qBAC3C;oBACD,KAAK,EAAE;wBACL,MAAM,EAAE,iBAAiB;wBACzB,MAAM,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE;qBAC5C;oBACD,IAAI,EAAE;wBACJ,MAAM,EAAE,iBAAiB;wBACzB,MAAM,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE;qBAC3C;iBACF;aACF;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE;gBAClC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE;aACnD;SACF,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAC9B,KAAK,CAAC;YACJ,uBAAuB,EAAE;gBACvB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;aACnD;YACD,wBAAwB,EAAE;gBACxB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,EAAE,MAAM,EAAE,+BAA+B,EAAE;gBAClD,MAAM,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE;gBACrC,MAAM,EAAE,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;aACjE;YACD,+BAA+B,EAAE;gBAC/B,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE;gBAClC,OAAO,EAAE;oBACP,OAAO,EAAE;wBACP,MAAM,EAAE,oBAAoB;wBAC5B,MAAM,EAAE,EAAE,sBAAsB,EAAE,SAAS,EAAE;qBAC9C;iBACF;aACF;YACD,oBAAoB,EAAE,QAAQ;SAC/B,CAAC,EACF;YACE,aAAa,EAAE;gBACb,WAAW,EAAE,kBAAkB;gBAC/B,eAAe,EAAE,gBAAgB;gBACjC,kBAAkB,EAAE,EAAE;gBACtB,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK,EAAE,aAAa;aACrB;SACF,CACF,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CACpB,sEAAsE,CACvE,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,3 +1,6 @@
1
+ import { Effect } from "effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import * as Path from "effect/Path";
1
4
  import { type SdkSpec } from "./generator.ts";
2
5
  export interface GeneratorCliOptions {
3
6
  /** Command description shown in --help. */
@@ -10,15 +13,62 @@ export interface GeneratorCliOptions {
10
13
  readonly outDir?: string;
11
14
  /** Model files to skip (e.g. a shared protocols model). */
12
15
  readonly excludeModel?: (file: string) => boolean;
16
+ /**
17
+ * Where the models are, when they aren't a flat directory of `<resource>.json`.
18
+ * AWS vendors Amazon's own repo, whose models sit at
19
+ * `models/<service>/service/<version>/<service>-<version>.json`.
20
+ *
21
+ * Returns the model files to compile; manual specs are merged in after,
22
+ * as usual.
23
+ */
24
+ readonly discoverModels?: (ctx: {
25
+ readonly smithyDir: string;
26
+ }) => Effect.Effect<ReadonlyArray<{
27
+ readonly file: string;
28
+ readonly dir: string;
29
+ }>, never, FileSystem.FileSystem | Path.Path>;
30
+ /**
31
+ * Side effects to run before generating — e.g. AWS copies `partitions.json`
32
+ * out of the smithy submodule, runtime data its endpoint resolver reads.
33
+ */
34
+ readonly prepare?: (ctx: {
35
+ readonly root: string;
36
+ readonly outDir: string;
37
+ }) => Effect.Effect<void, never, FileSystem.FileSystem | Path.Path>;
38
+ /**
39
+ * The output module's name, when it isn't the model's filename. AWS names
40
+ * modules after the service's `aws.api#service` sdkId (`amazon-s3.json` →
41
+ * `s3.ts`), so the public surface reads `AWS.S3.getObject`.
42
+ */
43
+ readonly resourceName?: (ctx: {
44
+ readonly model: any;
45
+ readonly file: string;
46
+ }) => string;
47
+ /** Barrel export name for a resource. Default: the resource name itself. */
48
+ readonly barrelExportName?: (resource: string) => string;
49
+ /**
50
+ * The closing pass over the output directory. Defaults to formatting;
51
+ * AWS lint-fixes first (see `codegen/format.ts`).
52
+ */
53
+ readonly finalize?: (dir: string) => Effect.Effect<void>;
54
+ /**
55
+ * Keep generating after a model fails, instead of stopping at the first.
56
+ * AWS compiles 430 services in one run, and one broken model shouldn't
57
+ * hide the state of the other 429. The run still FAILS at the end — the
58
+ * failures are reported together rather than swallowed.
59
+ */
60
+ readonly continueOnModelError?: boolean;
13
61
  /** Directory of hand-authored models merged after the generated ones. */
14
62
  readonly manualSpecsDir?: string;
15
- /** RFC-6902 patch chain root. Default `patches`; `false` disables. */
16
- readonly patchesDir?: string | false;
17
63
  /**
18
- * Model transform applied AFTER the patch chain, before generation —
19
- * for whole-model rewrites that must see post-patch shape names (e.g.
20
- * cloudflare's scope-twin structural dedup). May mutate the model;
21
- * a returned log line is printed.
64
+ * RFC-6902 patches apply in convert, never here. Only `false` is accepted
65
+ * so a string is a type error rather than a silently ignored setting.
66
+ */
67
+ readonly patchesDir?: false;
68
+ /**
69
+ * Model transform applied before generation (e.g. AWS dropping
70
+ * unreachable foreign-namespace shapes from a vendored model). Does not
71
+ * write back to `.generated-specs` — convert owns the committed model.
22
72
  */
23
73
  readonly transformModel?: (model: any, resource: string) => string | void;
24
74
  /** The provider spec — built per model (metadata may vary per model). */
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1E,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;CACxC;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,YAAa,mBAAmB,KAAG,IAoN9D,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"AAaA,OAAO,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAKpC,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE;QAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,KAAK,MAAM,CAAC,MAAM,CACjB,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,EAC9D,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAClC,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE;QAC5B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,KAAK,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC1E,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;CACxC;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,YAAa,mBAAmB,KAAG,IA2L9D,CAAC"}
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * The generic generator CLI harness (dev-time only).
3
3
  *
4
- * Owns the smithy-model pipeline every SDK package shares: scan the model
5
- * directory (plus optional hand-authored manual specs), apply the RFC-6902
6
- * patch chain (`patches/<resource>/*.json`, `*.manual.json` last; stale
7
- * targets warn, malformed patches fail the run), compile each model through
8
- * {@link generateService} with the provider's {@link SdkSpec}, write the
9
- * service modules and the namespaced barrel.
4
+ * Owns the smithy→SDK pipeline every SDK package shares: scan the model
5
+ * directory (plus optional hand-authored manual specs), compile each model
6
+ * through {@link generateService} with the provider's {@link SdkSpec}, write
7
+ * the service modules and the namespaced barrel. RFC-6902 patches apply in
8
+ * convert so `.generated-specs` is already the patched model.
10
9
  *
11
10
  * A provider's `scripts/generate.ts` is: trait consts + an SdkSpec + a
12
11
  * `runGeneratorCli` call.
@@ -17,16 +16,15 @@ import * as FileSystem from "effect/FileSystem";
17
16
  import * as Path from "effect/Path";
18
17
  import { Flag } from "effect/unstable/cli";
19
18
  import { Command } from "effect/unstable/cli";
20
- import { applyOperation, isStaleTargetError, } from "../json-patch.js";
21
19
  import { barrel } from "./emit.js";
22
20
  import { formatGenerated } from "./format.js";
23
21
  import { generateService } from "./generator.js";
24
22
  /** Run the generator CLI (BunRuntime main — call at module top level). */
25
23
  export const runGeneratorCli = (options) => {
26
24
  const command = Command.make("generate", {
27
- smithy: Flag.string("smithy").pipe(Flag.withDefault(options.smithyDir ?? ".generated-specs"), Flag.withDescription("Directory of Smithy JSON models")),
28
- out: Flag.string("out").pipe(Flag.withDefault(options.outDir ?? "src/services"), Flag.withDescription("Output directory for generated service modules")),
29
- resource: Flag.string("resource").pipe(Flag.withDefault(""), Flag.withDescription("Only generate this resource (e.g. ai)")),
25
+ smithy: Flag.String("smithy").pipe(Flag.withDefault(options.smithyDir ?? ".generated-specs"), Flag.withDescription("Directory of Smithy JSON models")),
26
+ out: Flag.String("out").pipe(Flag.withDefault(options.outDir ?? "src/services"), Flag.withDescription("Output directory for generated service modules")),
27
+ resource: Flag.String("resource").pipe(Flag.withDefault(""), Flag.withDescription("Only generate this resource (e.g. ai)")),
30
28
  }, (config) => Effect.gen(function* () {
31
29
  const fs = yield* FileSystem.FileSystem;
32
30
  const path = yield* Path.Path;
@@ -36,12 +34,15 @@ export const runGeneratorCli = (options) => {
36
34
  yield* Console.log("⚙️ generate");
37
35
  yield* Console.log(` Smithy: ${smithyDir}`);
38
36
  yield* Console.log(` Output: ${outDir}`);
37
+ yield* options.prepare?.({ root, outDir }) ?? Effect.void;
39
38
  // Generated models plus optional manual-specs (hand-authored models
40
39
  // for APIs the provider's spec source doesn't cover). A manual model
41
40
  // must not shadow a generated one.
42
- const generated = (yield* fs.readDirectory(smithyDir))
43
- .filter((f) => f.endsWith(".json") && !(options.excludeModel?.(f) ?? false))
44
- .map((f) => ({ file: f, dir: smithyDir }));
41
+ const generated = options.discoverModels
42
+ ? yield* options.discoverModels({ smithyDir })
43
+ : (yield* fs.readDirectory(smithyDir))
44
+ .filter((f) => f.endsWith(".json") && !(options.excludeModel?.(f) ?? false))
45
+ .map((f) => ({ file: f, dir: smithyDir }));
45
46
  const manualDir = options.manualSpecsDir
46
47
  ? path.resolve(root, options.manualSpecsDir)
47
48
  : undefined;
@@ -58,75 +59,43 @@ export const runGeneratorCli = (options) => {
58
59
  const entries = [...generated, ...manual].sort((a, b) => a.file.localeCompare(b.file));
59
60
  yield* fs.makeDirectory(outDir, { recursive: true });
60
61
  const written = [];
62
+ const failedModels = [];
61
63
  let totalOps = 0;
62
- let totalPatches = 0;
63
- let staleOps = 0;
64
- const badPatches = [];
65
- // Orphan check: a patch directory matching no smithy model would be
66
- // silently dropped — flag it instead.
67
- const patchRoot = options.patchesDir === false
68
- ? undefined
69
- : path.join(root, options.patchesDir ?? "patches");
70
- if (patchRoot && (yield* fs.exists(patchRoot))) {
71
- const resources = new Set(entries.map((e) => e.file.replace(/\.json$/, "")));
72
- for (const dir of yield* fs.readDirectory(patchRoot)) {
73
- if (!resources.has(dir)) {
74
- yield* Console.warn(`⚠️ patches/${dir}/ matches no smithy model — orphaned?`);
75
- }
76
- }
77
- }
78
64
  for (const { file, dir } of entries) {
79
- const resource = file.replace(/\.json$/, "");
65
+ const model = JSON.parse(yield* fs.readFileString(path.join(dir, file)));
66
+ // The module's name — the model's filename unless the provider
67
+ // derives it from the model itself (AWS: the service's sdkId).
68
+ const resource = options.resourceName?.({ model, file }) ??
69
+ file.replace(/\.json$/, "");
80
70
  if (config.resource && resource !== config.resource)
81
71
  continue;
82
- const model = JSON.parse(yield* fs.readFileString(path.join(dir, file)));
83
- // Apply the RFC-6902 patch chain before generating. Hand-written
84
- // *.manual.json patches apply after the generated ones — they
85
- // usually target post-rename shape names.
86
- const patchDir = patchRoot && path.join(patchRoot, resource);
87
- if (patchDir && (yield* fs.exists(patchDir))) {
88
- const patchFiles = (yield* fs.readDirectory(patchDir))
89
- .filter((f) => f.endsWith(".json"))
90
- .sort((a, b) => Number(a.endsWith(".manual.json")) -
91
- Number(b.endsWith(".manual.json")) || a.localeCompare(b));
92
- for (const pf of patchFiles) {
93
- const parsed = JSON.parse(yield* fs.readFileString(path.join(patchDir, pf)));
94
- for (const patchOp of parsed.patches ?? []) {
95
- try {
96
- applyOperation(model, patchOp);
97
- }
98
- catch (e) {
99
- const msg = e instanceof Error ? e.message : String(e);
100
- if (isStaleTargetError(msg)) {
101
- staleOps++;
102
- yield* Console.warn(` ⚠️ stale: ${resource}/${pf} [${patchOp.op} ${patchOp.path}]`);
103
- }
104
- else {
105
- badPatches.push(`${resource}/${pf} [${patchOp.op} ${patchOp.path}]: ${msg}`);
106
- }
107
- }
108
- }
109
- totalPatches++;
110
- }
111
- }
112
72
  if (options.transformModel) {
113
73
  const note = options.transformModel(model, resource);
114
74
  if (note)
115
75
  yield* Console.log(` ${note}`);
116
76
  }
117
- const { code, operations } = generateService(model, options.spec(model));
77
+ // `generateService` and the provider spec are synchronous and
78
+ // throw; with continueOnModelError the throw is recorded and the
79
+ // run moves on, so one broken model doesn't hide the state of
80
+ // every model after it. The run still fails at the end.
81
+ let generated;
82
+ try {
83
+ generated = generateService(model, options.spec(model));
84
+ }
85
+ catch (e) {
86
+ if (!options.continueOnModelError)
87
+ throw e;
88
+ failedModels.push(`${resource}: ${e instanceof Error ? e.message : String(e)}`);
89
+ yield* Console.error(`❌ ${resource}`);
90
+ continue;
91
+ }
92
+ const { code, operations } = generated;
118
93
  if (operations === 0)
119
94
  continue;
120
95
  yield* fs.writeFileString(path.join(outDir, `${resource}.ts`), code);
121
96
  written.push(resource);
122
97
  totalOps += operations;
123
98
  }
124
- if (badPatches.length) {
125
- for (const b of badPatches) {
126
- yield* Console.error(`❌ bad patch: ${b}`);
127
- }
128
- return yield* Effect.die(new Error(`${badPatches.length} malformed patch operation(s) — fix or remove them`));
129
- }
130
99
  // Barrel — namespace per resource to avoid op-name collisions.
131
100
  //
132
101
  // A FULL run is authoritative: the barrel is exactly what was
@@ -140,11 +109,17 @@ export const runGeneratorCli = (options) => {
140
109
  // resource without removing anything.
141
110
  const barrelPath = path.join(outDir, "index.ts");
142
111
  const filtered = config.resource !== "";
143
- let resources = written;
112
+ // Sorted, not in generation order: a provider that discovers models
113
+ // in some other order (AWS walks Amazon's directory tree) would
114
+ // otherwise reshuffle the barrel on every run.
115
+ let resources = [...written].sort((a, b) => `${a}.json`.localeCompare(`${b}.json`));
144
116
  if (filtered && (yield* fs.exists(barrelPath))) {
117
+ // Recover the RESOURCE from each export line's path, not its name:
118
+ // the two differ when barrelExportName renames (AWS exports
119
+ // `S3` from `./s3.ts`).
145
120
  const existing = (yield* fs.readFileString(barrelPath))
146
121
  .split("\n")
147
- .map((line) => /^export \* as (\S+) from/.exec(line)?.[1])
122
+ .map((line) => /^export \* as \S+ from "\.\/(.+)\.ts";/.exec(line)?.[1])
148
123
  .filter((name) => name !== undefined);
149
124
  // Ordered exactly as a full run orders it: by MODEL FILENAME, so
150
125
  // the `.json` takes part in the collation (`ai_gateway.json` sorts
@@ -152,13 +127,22 @@ export const runGeneratorCli = (options) => {
152
127
  // Otherwise a filtered run reshuffles the barrel into diff noise.
153
128
  resources = [...new Set([...existing, ...written])].sort((a, b) => `${a}.json`.localeCompare(`${b}.json`));
154
129
  }
155
- yield* fs.writeFileString(barrelPath, barrel(`// AUTO-GENERATED by scripts/generate.ts. Do not edit.\n`, resources.map((r) => ({ name: r, path: `./${r}.ts` }))));
156
- yield* formatGenerated(outDir);
157
- yield* Console.log(`\n✅ Generated ${totalOps} operations across ${written.length} resource modules` +
158
- (totalPatches
159
- ? ` (${totalPatches} patch files applied${staleOps ? `, ${staleOps} stale op(s) skipped` : ""}).`
160
- : "."));
130
+ yield* fs.writeFileString(barrelPath, barrel(`// AUTO-GENERATED by scripts/generate.ts. Do not edit.\n`, resources.map((r) => ({
131
+ name: options.barrelExportName?.(r) ?? r,
132
+ path: `./${r}.ts`,
133
+ }))));
134
+ yield* (options.finalize ?? formatGenerated)(outDir);
135
+ yield* Console.log(`\n✅ Generated ${totalOps} operations across ${written.length} resource modules.`);
161
136
  yield* Console.log(` ${path.join(outDir, "index.ts")}`);
137
+ // Models that failed under continueOnModelError. Reported together,
138
+ // at the end, and the run FAILS — a generate that couldn't produce
139
+ // a module must not exit 0 with the failure buried in the log.
140
+ if (failedModels.length) {
141
+ yield* Console.error(`\n❌ ${failedModels.length} model(s) failed to generate:`);
142
+ for (const f of failedModels)
143
+ yield* Console.error(` ${f}`);
144
+ return yield* Effect.die(new Error(`${failedModels.length} model(s) failed to generate`));
145
+ }
162
146
  })).pipe(Command.withDescription(options.description));
163
147
  BunRuntime.runMain(Effect.provide(Command.run(command, { version: "1.0.0" }), BunServices.layer));
164
148
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
1
- /**
2
- * The PURE annotation emitted before generated schema consts. A single
3
- * `/*@__PURE__*​/` — Rolldown 1.1+ warns on the `/*#__PURE__*​/` form
4
- * (distilled #374).
5
- */
1
+ /** PURE annotates calls, never property reads. Both @ and # forms are supported. */
6
2
  export declare const PURE = "/*@__PURE__*/ ";
7
3
  /** `export interface X { … }` (or the empty-body form). */
8
4
  export declare const interfaceDecl: (name: string, fields: string[]) => string;
@@ -68,7 +64,7 @@ export interface ErrorClassOptions {
68
64
  readonly wrap?: (cls: string) => string;
69
65
  }
70
66
  /**
71
- * `export class X extends /*@__PURE__*​/ S.TaggedErrorClass<X>()("X", { … }) {}`
67
+ * `export class X extends /*@__PURE__*​/ S.TaggedError<X>()("X", { … }) {}`
72
68
  *
73
69
  * The PURE markers are what make an unused error class droppable. A class
74
70
  * whose heritage clause is an unannotated call can never be tree-shaken —
@@ -78,7 +74,7 @@ export interface ErrorClassOptions {
78
74
  *
79
75
  * `wrap` needs its own marker as well as the inner one: a pure call's
80
76
  * ARGUMENTS are still evaluated, so annotating only
81
- * `T.applyErrorMatchers(S.TaggedErrorClass…(…), […])` leaves the inner call
77
+ * `T.applyErrorMatchers(S.TaggedError…(…), […])` leaves the inner call
82
78
  * holding the class alive. Verified against esbuild in both directions.
83
79
  */
84
80
  export declare const errorClass: (o: ErrorClassOptions) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/codegen/emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/codegen/emit.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * .annotate({ identifier: "X" })
10
10
  * as any as S.Schema<X>; // no inference needed
11
11
  *
12
- * plus closed-alias string-union enums, `S.TaggedErrorClass` error classes, and
12
+ * plus closed-alias string-union enums, `S.TaggedError` error classes, and
13
13
  * `API.make(() => ({ … }))` operation consts. The helpers here own those
14
14
  * shared skeletons; providers own the content strings (member pipes, trait
15
15
  * calls, config fields). Emitted output is normalized by oxfmt afterwards,
@@ -17,11 +17,7 @@
17
17
  * whitespace.
18
18
  */
19
19
  import { q } from "./naming.js";
20
- /**
21
- * The PURE annotation emitted before generated schema consts. A single
22
- * `/*@__PURE__*​/` — Rolldown 1.1+ warns on the `/*#__PURE__*​/` form
23
- * (distilled #374).
24
- */
20
+ /** PURE annotates calls, never property reads. Both @ and # forms are supported. */
25
21
  export const PURE = "/*@__PURE__*/ ";
26
22
  /** `export interface X { … }` (or the empty-body form). */
27
23
  export const interfaceDecl = (name, fields) => fields.length
@@ -65,11 +61,11 @@ export const enumDecl = (o) => {
65
61
  const union = o.values.length ? o.values.map(q).join(" | ") : "string";
66
62
  return [
67
63
  `export type ${o.name} = ${union};`,
68
- `export const ${o.name} = ${o.pure ?? ""}${o.schemaExpr ?? "S.String"};\n`,
64
+ `export const ${o.name} = ${o.schemaExpr ? `${o.pure ?? ""}${o.schemaExpr}` : "S.String"};\n`,
69
65
  ];
70
66
  };
71
67
  /**
72
- * `export class X extends /*@__PURE__*​/ S.TaggedErrorClass<X>()("X", { … }) {}`
68
+ * `export class X extends /*@__PURE__*​/ S.TaggedError<X>()("X", { … }) {}`
73
69
  *
74
70
  * The PURE markers are what make an unused error class droppable. A class
75
71
  * whose heritage clause is an unannotated call can never be tree-shaken —
@@ -79,12 +75,12 @@ export const enumDecl = (o) => {
79
75
  *
80
76
  * `wrap` needs its own marker as well as the inner one: a pure call's
81
77
  * ARGUMENTS are still evaluated, so annotating only
82
- * `T.applyErrorMatchers(S.TaggedErrorClass…(…), […])` leaves the inner call
78
+ * `T.applyErrorMatchers(S.TaggedError…(…), […])` leaves the inner call
83
79
  * holding the class alive. Verified against esbuild in both directions.
84
80
  */
85
81
  export const errorClass = (o) => {
86
82
  const annotations = o.annotations ? `,\n${o.annotations}` : "";
87
- const cls = `${PURE}S.TaggedErrorClass<${o.name}>()(${q(o.tag ?? o.name)}, {\n${o.fields.join("\n")}\n}${annotations})${o.pipes ?? ""}`;
83
+ const cls = `${PURE}S.TaggedError<${o.name}>()(${q(o.tag ?? o.name)}, {\n${o.fields.join("\n")}\n}${annotations})${o.pipes ?? ""}`;
88
84
  const body = o.wrap ? `${PURE}${o.wrap(cls)}` : cls;
89
85
  return `export class ${o.name} extends ${body} {}\n`;
90
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/codegen/emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAErC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAgB,EAAU,EAAE,CACtE,MAAM,CAAC,MAAM;IACX,CAAC,CAAC,oBAAoB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;IACvD,CAAC,CAAC,oBAAoB,IAAI,KAAK,CAAC;AAuBpC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAsB,EAAU,EAAE;IAC7D,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9D,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS;QACzB,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM;QACrC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU;QAC3B,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG;QAC9B,CAAC,CAAC,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;YAC3C,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,gBAAgB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,OAAO,GAAG,QAAQ,cAAc,IAAI,KAAK,CAAC;AAC9F,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,KAAK,GAAG,KAAK,EAAU,EAAE,CAChE,KAAK;IACH,CAAC,CAAC,0BAA0B,IAAI,QAAQ,IAAI,4BAA4B,CAAC,CAAC,IAAI,CAAC,KAAK;IACpF,CAAC,CAAC,mBAAmB,IAAI,4BAA4B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAUtE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAkB,EAAY,EAAE;IACvD,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,OAAO;QACL,eAAe,CAAC,CAAC,IAAI,MAAM,KAAK,GAAG;QACnC,gBAAgB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,IAAI,UAAU,KAAK;KAC3E,CAAC;AACJ,CAAC,CAAC;AAgBF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAoB,EAAU,EAAE;IACzD,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,GAAG,IAAI,sBAAsB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;IACxI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,OAAO,gBAAgB,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC;AACvD,CAAC,CAAC;AA8BF,sDAAsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAwB,EAAU,EAAE,CACjE,gBAAgB,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,cAAc,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,IAChG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EACnC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AASpC,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAwB,EAAY,EAAE,CAAC;IACpE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG;CACzD,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAAc,EACd,UAA6B,EAC7B,SAAiB,EACT,EAAE,CACV,eAAe,MAAM,WAAW,CAAC,GAAG,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAE5E,yEAAyE;AACzE,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,MAAc,EACd,OAAsD,EAC9C,EAAE,CACV,MAAM;IACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACzE,IAAI,CAAC"}
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/codegen/emit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEhC,oFAAoF;AACpF,MAAM,CAAC,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAErC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAgB,EAAU,EAAE,CACtE,MAAM,CAAC,MAAM;IACX,CAAC,CAAC,oBAAoB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;IACvD,CAAC,CAAC,oBAAoB,IAAI,KAAK,CAAC;AAuBpC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAsB,EAAU,EAAE;IAC7D,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9D,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS;QACzB,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM;QACrC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU;QAC3B,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,GAAG;QAC9B,CAAC,CAAC,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;YAC3C,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,gBAAgB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,OAAO,GAAG,QAAQ,cAAc,IAAI,KAAK,CAAC;AAC9F,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,KAAK,GAAG,KAAK,EAAU,EAAE,CAChE,KAAK;IACH,CAAC,CAAC,0BAA0B,IAAI,QAAQ,IAAI,4BAA4B,CAAC,CAAC,IAAI,CAAC,KAAK;IACpF,CAAC,CAAC,mBAAmB,IAAI,4BAA4B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAUtE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAkB,EAAY,EAAE;IACvD,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,OAAO;QACL,eAAe,CAAC,CAAC,IAAI,MAAM,KAAK,GAAG;QACnC,gBAAgB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK;KAC9F,CAAC;AACJ,CAAC,CAAC;AAgBF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAoB,EAAU,EAAE;IACzD,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,GAAG,IAAI,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;IACnI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,OAAO,gBAAgB,CAAC,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC;AACvD,CAAC,CAAC;AA8BF,sDAAsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAwB,EAAU,EAAE,CACjE,gBAAgB,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,cAAc,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,IAChG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EACnC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AASpC,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAwB,EAAY,EAAE,CAAC;IACpE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG;CACzD,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAAc,EACd,UAA6B,EAC7B,SAAiB,EACT,EAAE,CACV,eAAe,MAAM,WAAW,CAAC,GAAG,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAE5E,yEAAyE;AACzE,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,MAAc,EACd,OAAsD,EAC9C,EAAE,CACV,MAAM;IACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACzE,IAAI,CAAC"}