@typespec/http-server-csharp 0.58.0-alpha.28-dev.4 → 0.58.0-alpha.29-dev.3

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 (279) hide show
  1. package/dist/src/cli/cli.js +118 -154
  2. package/dist/src/cli/cli.js.map +1 -1
  3. package/dist/src/components/controller-action/controller-action.d.ts +16 -0
  4. package/dist/src/components/controller-action/controller-action.d.ts.map +1 -0
  5. package/dist/src/components/controller-action/controller-action.js +251 -0
  6. package/dist/src/components/controller-action/controller-action.js.map +1 -0
  7. package/dist/src/components/controller-action/controller-action.test.d.ts +2 -0
  8. package/dist/src/components/controller-action/controller-action.test.d.ts.map +1 -0
  9. package/dist/src/components/controller-action/controller-action.test.js +106 -0
  10. package/dist/src/components/controller-action/controller-action.test.js.map +1 -0
  11. package/dist/src/components/controller-action/parameter-binding.d.ts +17 -0
  12. package/dist/src/components/controller-action/parameter-binding.d.ts.map +1 -0
  13. package/dist/src/components/controller-action/parameter-binding.js +77 -0
  14. package/dist/src/components/controller-action/parameter-binding.js.map +1 -0
  15. package/dist/src/components/controller-action/response-analysis.d.ts +10 -0
  16. package/dist/src/components/controller-action/response-analysis.d.ts.map +1 -0
  17. package/dist/src/components/controller-action/response-analysis.js +61 -0
  18. package/dist/src/components/controller-action/response-analysis.js.map +1 -0
  19. package/dist/src/components/controllers/controllers.d.ts +18 -0
  20. package/dist/src/components/controllers/controllers.d.ts.map +1 -0
  21. package/dist/src/components/controllers/controllers.js +64 -0
  22. package/dist/src/components/controllers/controllers.js.map +1 -0
  23. package/dist/src/components/controllers/controllers.test.d.ts +2 -0
  24. package/dist/src/components/controllers/controllers.test.d.ts.map +1 -0
  25. package/dist/src/components/controllers/controllers.test.js +84 -0
  26. package/dist/src/components/controllers/controllers.test.js.map +1 -0
  27. package/dist/src/components/csharp-file.d.ts +15 -0
  28. package/dist/src/components/csharp-file.d.ts.map +1 -0
  29. package/dist/src/components/csharp-file.js +28 -0
  30. package/dist/src/components/csharp-file.js.map +1 -0
  31. package/dist/src/components/enums/enums.d.ts +28 -0
  32. package/dist/src/components/enums/enums.d.ts.map +1 -0
  33. package/dist/src/components/enums/enums.js +158 -0
  34. package/dist/src/components/enums/enums.js.map +1 -0
  35. package/dist/src/components/enums/enums.test.d.ts +2 -0
  36. package/dist/src/components/enums/enums.test.d.ts.map +1 -0
  37. package/dist/src/components/enums/enums.test.js +112 -0
  38. package/dist/src/components/enums/enums.test.js.map +1 -0
  39. package/dist/src/components/interfaces/interfaces.d.ts +17 -0
  40. package/dist/src/components/interfaces/interfaces.d.ts.map +1 -0
  41. package/dist/src/components/interfaces/interfaces.js +153 -0
  42. package/dist/src/components/interfaces/interfaces.js.map +1 -0
  43. package/dist/src/components/interfaces/interfaces.test.d.ts +2 -0
  44. package/dist/src/components/interfaces/interfaces.test.d.ts.map +1 -0
  45. package/dist/src/components/interfaces/interfaces.test.js +76 -0
  46. package/dist/src/components/interfaces/interfaces.test.js.map +1 -0
  47. package/dist/src/components/models/anonymous-models.d.ts +9 -0
  48. package/dist/src/components/models/anonymous-models.d.ts.map +1 -0
  49. package/dist/src/components/models/anonymous-models.js +37 -0
  50. package/dist/src/components/models/anonymous-models.js.map +1 -0
  51. package/dist/src/components/models/error-models.d.ts +5 -0
  52. package/dist/src/components/models/error-models.d.ts.map +1 -0
  53. package/dist/src/components/models/error-models.js +84 -0
  54. package/dist/src/components/models/error-models.js.map +1 -0
  55. package/dist/src/components/models/model-helpers.d.ts +40 -0
  56. package/dist/src/components/models/model-helpers.d.ts.map +1 -0
  57. package/dist/src/components/models/model-helpers.js +239 -0
  58. package/dist/src/components/models/model-helpers.js.map +1 -0
  59. package/dist/src/components/models/models.d.ts +15 -0
  60. package/dist/src/components/models/models.d.ts.map +1 -0
  61. package/dist/src/components/models/models.js +234 -0
  62. package/dist/src/components/models/models.js.map +1 -0
  63. package/dist/src/components/models/models.test.d.ts +2 -0
  64. package/dist/src/components/models/models.test.d.ts.map +1 -0
  65. package/dist/src/components/models/models.test.js +151 -0
  66. package/dist/src/components/models/models.test.js.map +1 -0
  67. package/dist/src/components/project/csproj.d.ts +12 -0
  68. package/dist/src/components/project/csproj.d.ts.map +1 -0
  69. package/dist/src/components/project/csproj.js +35 -0
  70. package/dist/src/components/project/csproj.js.map +1 -0
  71. package/dist/src/components/project/csproj.test.d.ts +2 -0
  72. package/dist/src/components/project/csproj.test.d.ts.map +1 -0
  73. package/dist/src/components/project/csproj.test.js +42 -0
  74. package/dist/src/components/project/csproj.test.js.map +1 -0
  75. package/dist/src/components/project/launch-settings.d.ts +16 -0
  76. package/dist/src/components/project/launch-settings.d.ts.map +1 -0
  77. package/dist/src/components/project/launch-settings.js +73 -0
  78. package/dist/src/components/project/launch-settings.js.map +1 -0
  79. package/dist/src/components/project/launch-settings.test.d.ts +2 -0
  80. package/dist/src/components/project/launch-settings.test.d.ts.map +1 -0
  81. package/dist/src/components/project/launch-settings.test.js +48 -0
  82. package/dist/src/components/project/launch-settings.test.js.map +1 -0
  83. package/dist/src/components/project/program.d.ts +14 -0
  84. package/dist/src/components/project/program.d.ts.map +1 -0
  85. package/dist/src/components/project/program.js +75 -0
  86. package/dist/src/components/project/program.js.map +1 -0
  87. package/dist/src/components/project/program.test.d.ts +2 -0
  88. package/dist/src/components/project/program.test.d.ts.map +1 -0
  89. package/dist/src/components/project/program.test.js +50 -0
  90. package/dist/src/components/project/program.test.js.map +1 -0
  91. package/dist/src/components/render-root.d.ts +14 -0
  92. package/dist/src/components/render-root.d.ts.map +1 -0
  93. package/dist/src/components/render-root.js +122 -0
  94. package/dist/src/components/render-root.js.map +1 -0
  95. package/dist/src/components/request-models.d.ts +15 -0
  96. package/dist/src/components/request-models.d.ts.map +1 -0
  97. package/dist/src/components/request-models.js +97 -0
  98. package/dist/src/components/request-models.js.map +1 -0
  99. package/dist/src/components/scaffolding/documentation.d.ts +12 -0
  100. package/dist/src/components/scaffolding/documentation.d.ts.map +1 -0
  101. package/dist/src/{lib/doc.js → components/scaffolding/documentation.js} +56 -46
  102. package/dist/src/components/scaffolding/documentation.js.map +1 -0
  103. package/dist/src/components/scaffolding/mock-helpers.d.ts +10 -0
  104. package/dist/src/components/scaffolding/mock-helpers.d.ts.map +1 -0
  105. package/dist/src/components/scaffolding/mock-helpers.js +268 -0
  106. package/dist/src/components/scaffolding/mock-helpers.js.map +1 -0
  107. package/dist/src/components/scaffolding/mock-implementations.d.ts +14 -0
  108. package/dist/src/components/scaffolding/mock-implementations.d.ts.map +1 -0
  109. package/dist/src/components/scaffolding/mock-implementations.js +152 -0
  110. package/dist/src/components/scaffolding/mock-implementations.js.map +1 -0
  111. package/dist/src/components/scaffolding/mock-return-utils.d.ts +11 -0
  112. package/dist/src/components/scaffolding/mock-return-utils.d.ts.map +1 -0
  113. package/dist/src/components/scaffolding/mock-return-utils.js +62 -0
  114. package/dist/src/components/scaffolding/mock-return-utils.js.map +1 -0
  115. package/dist/src/components/scaffolding/mock-scaffolding.d.ts +6 -0
  116. package/dist/src/components/scaffolding/mock-scaffolding.d.ts.map +1 -0
  117. package/dist/src/components/scaffolding/mock-scaffolding.js +5 -0
  118. package/dist/src/components/scaffolding/mock-scaffolding.js.map +1 -0
  119. package/dist/src/components/scaffolding/mock-scaffolding.test.d.ts +2 -0
  120. package/dist/src/components/scaffolding/mock-scaffolding.test.d.ts.map +1 -0
  121. package/dist/src/components/scaffolding/mock-scaffolding.test.js +59 -0
  122. package/dist/src/components/scaffolding/mock-scaffolding.test.js.map +1 -0
  123. package/dist/src/components/serialization/base64-url-json-converter.d.ts +7 -0
  124. package/dist/src/components/serialization/base64-url-json-converter.d.ts.map +1 -0
  125. package/dist/src/components/serialization/base64-url-json-converter.js +58 -0
  126. package/dist/src/components/serialization/base64-url-json-converter.js.map +1 -0
  127. package/dist/src/components/serialization/constraint-attributes.d.ts +7 -0
  128. package/dist/src/components/serialization/constraint-attributes.d.ts.map +1 -0
  129. package/dist/src/components/serialization/constraint-attributes.js +556 -0
  130. package/dist/src/components/serialization/constraint-attributes.js.map +1 -0
  131. package/dist/src/components/serialization/http-service-exception-filter.d.ts +8 -0
  132. package/dist/src/components/serialization/http-service-exception-filter.d.ts.map +1 -0
  133. package/dist/src/components/serialization/http-service-exception-filter.js +71 -0
  134. package/dist/src/components/serialization/http-service-exception-filter.js.map +1 -0
  135. package/dist/src/components/serialization/json-converters.d.ts +7 -0
  136. package/dist/src/components/serialization/json-converters.d.ts.map +1 -0
  137. package/dist/src/components/serialization/json-converters.js +22 -0
  138. package/dist/src/components/serialization/json-converters.js.map +1 -0
  139. package/dist/src/components/serialization/json-converters.test.d.ts +2 -0
  140. package/dist/src/components/serialization/json-converters.test.d.ts.map +1 -0
  141. package/dist/src/components/serialization/json-converters.test.js +136 -0
  142. package/dist/src/components/serialization/json-converters.test.js.map +1 -0
  143. package/dist/src/components/serialization/json-serialization-provider.d.ts +7 -0
  144. package/dist/src/components/serialization/json-serialization-provider.d.ts.map +1 -0
  145. package/dist/src/components/serialization/json-serialization-provider.js +90 -0
  146. package/dist/src/components/serialization/json-serialization-provider.js.map +1 -0
  147. package/dist/src/components/serialization/time-span-duration-converter.d.ts +7 -0
  148. package/dist/src/components/serialization/time-span-duration-converter.d.ts.map +1 -0
  149. package/dist/src/components/serialization/time-span-duration-converter.js +44 -0
  150. package/dist/src/components/serialization/time-span-duration-converter.js.map +1 -0
  151. package/dist/src/components/serialization/unix-epoch-date-time-converter.d.ts +7 -0
  152. package/dist/src/components/serialization/unix-epoch-date-time-converter.d.ts.map +1 -0
  153. package/dist/src/components/serialization/unix-epoch-date-time-converter.js +71 -0
  154. package/dist/src/components/serialization/unix-epoch-date-time-converter.js.map +1 -0
  155. package/dist/src/components/type-expression/type-expression.d.ts +24 -0
  156. package/dist/src/components/type-expression/type-expression.d.ts.map +1 -0
  157. package/dist/src/components/type-expression/type-expression.js +223 -0
  158. package/dist/src/components/type-expression/type-expression.js.map +1 -0
  159. package/dist/src/components/type-expression/type-expression.test.d.ts +2 -0
  160. package/dist/src/components/type-expression/type-expression.test.d.ts.map +1 -0
  161. package/dist/src/components/type-expression/type-expression.test.js +207 -0
  162. package/dist/src/components/type-expression/type-expression.test.js.map +1 -0
  163. package/dist/src/context/emitter-options-context.d.ts +13 -0
  164. package/dist/src/context/emitter-options-context.d.ts.map +1 -0
  165. package/dist/src/context/emitter-options-context.js +15 -0
  166. package/dist/src/context/emitter-options-context.js.map +1 -0
  167. package/dist/src/diagnostics.d.ts +8 -0
  168. package/dist/src/diagnostics.d.ts.map +1 -0
  169. package/dist/src/diagnostics.js +164 -0
  170. package/dist/src/diagnostics.js.map +1 -0
  171. package/dist/src/emitter.d.ts +8 -0
  172. package/dist/src/emitter.d.ts.map +1 -0
  173. package/dist/src/emitter.js +180 -0
  174. package/dist/src/emitter.js.map +1 -0
  175. package/dist/src/{lib/index.d.ts → index.d.ts} +1 -1
  176. package/dist/src/index.d.ts.map +1 -0
  177. package/dist/src/{lib/index.js → index.js} +1 -1
  178. package/dist/src/index.js.map +1 -0
  179. package/dist/src/{lib/lib.d.ts → lib.d.ts} +4 -14
  180. package/dist/src/lib.d.ts.map +1 -0
  181. package/dist/src/lib.js +133 -0
  182. package/dist/src/lib.js.map +1 -0
  183. package/dist/src/output-writer.d.ts +11 -0
  184. package/dist/src/output-writer.d.ts.map +1 -0
  185. package/dist/src/output-writer.js +72 -0
  186. package/dist/src/output-writer.js.map +1 -0
  187. package/dist/src/service-discovery.d.ts +13 -0
  188. package/dist/src/service-discovery.d.ts.map +1 -0
  189. package/dist/src/service-discovery.js +93 -0
  190. package/dist/src/service-discovery.js.map +1 -0
  191. package/dist/src/service-resolution.d.ts +34 -0
  192. package/dist/src/service-resolution.d.ts.map +1 -0
  193. package/dist/src/service-resolution.js +244 -0
  194. package/dist/src/service-resolution.js.map +1 -0
  195. package/dist/src/testing/index.d.ts +2 -0
  196. package/dist/src/testing/index.d.ts.map +1 -0
  197. package/dist/src/testing/index.js +2 -0
  198. package/dist/src/testing/index.js.map +1 -0
  199. package/dist/src/utils/attributes.d.ts +8 -0
  200. package/dist/src/utils/attributes.d.ts.map +1 -0
  201. package/dist/src/utils/attributes.js +224 -0
  202. package/dist/src/utils/attributes.js.map +1 -0
  203. package/dist/src/utils/csharp-libs.d.ts +87 -0
  204. package/dist/src/utils/csharp-libs.d.ts.map +1 -0
  205. package/dist/src/utils/csharp-libs.js +90 -0
  206. package/dist/src/utils/csharp-libs.js.map +1 -0
  207. package/dist/src/utils/doc-comments.d.ts +2 -0
  208. package/dist/src/utils/doc-comments.d.ts.map +1 -0
  209. package/dist/src/utils/doc-comments.js +4 -0
  210. package/dist/src/utils/doc-comments.js.map +1 -0
  211. package/dist/src/utils/http-helpers.d.ts +19 -0
  212. package/dist/src/utils/http-helpers.d.ts.map +1 -0
  213. package/dist/src/utils/http-helpers.js +70 -0
  214. package/dist/src/utils/http-helpers.js.map +1 -0
  215. package/dist/src/utils/http-helpers.test.d.ts +2 -0
  216. package/dist/src/utils/http-helpers.test.d.ts.map +1 -0
  217. package/dist/src/utils/http-helpers.test.js +68 -0
  218. package/dist/src/utils/http-helpers.test.js.map +1 -0
  219. package/dist/src/utils/namespace-utils.d.ts +13 -0
  220. package/dist/src/utils/namespace-utils.d.ts.map +1 -0
  221. package/dist/src/utils/namespace-utils.js +55 -0
  222. package/dist/src/utils/namespace-utils.js.map +1 -0
  223. package/dist/src/utils/naming.d.ts +31 -0
  224. package/dist/src/utils/naming.d.ts.map +1 -0
  225. package/dist/src/utils/naming.js +87 -0
  226. package/dist/src/utils/naming.js.map +1 -0
  227. package/dist/src/utils/naming.test.d.ts +2 -0
  228. package/dist/src/utils/naming.test.d.ts.map +1 -0
  229. package/dist/src/utils/naming.test.js +86 -0
  230. package/dist/src/utils/naming.test.js.map +1 -0
  231. package/dist/src/utils/port.d.ts +5 -0
  232. package/dist/src/utils/port.d.ts.map +1 -0
  233. package/dist/src/utils/port.js +33 -0
  234. package/dist/src/utils/port.js.map +1 -0
  235. package/dist/src/utils/return-type-helpers.d.ts +8 -0
  236. package/dist/src/utils/return-type-helpers.d.ts.map +1 -0
  237. package/dist/src/utils/return-type-helpers.js +59 -0
  238. package/dist/src/utils/return-type-helpers.js.map +1 -0
  239. package/package.json +34 -26
  240. package/dist/src/lib/attributes.d.ts +0 -43
  241. package/dist/src/lib/attributes.d.ts.map +0 -1
  242. package/dist/src/lib/attributes.js +0 -422
  243. package/dist/src/lib/attributes.js.map +0 -1
  244. package/dist/src/lib/boilerplate.d.ts +0 -6
  245. package/dist/src/lib/boilerplate.d.ts.map +0 -1
  246. package/dist/src/lib/boilerplate.js +0 -792
  247. package/dist/src/lib/boilerplate.js.map +0 -1
  248. package/dist/src/lib/doc.d.ts +0 -5
  249. package/dist/src/lib/doc.d.ts.map +0 -1
  250. package/dist/src/lib/doc.js.map +0 -1
  251. package/dist/src/lib/index.d.ts.map +0 -1
  252. package/dist/src/lib/index.js.map +0 -1
  253. package/dist/src/lib/interfaces.d.ts +0 -183
  254. package/dist/src/lib/interfaces.d.ts.map +0 -1
  255. package/dist/src/lib/interfaces.js +0 -287
  256. package/dist/src/lib/interfaces.js.map +0 -1
  257. package/dist/src/lib/lib.d.ts.map +0 -1
  258. package/dist/src/lib/lib.js +0 -146
  259. package/dist/src/lib/lib.js.map +0 -1
  260. package/dist/src/lib/project.d.ts +0 -5
  261. package/dist/src/lib/project.d.ts.map +0 -1
  262. package/dist/src/lib/project.js +0 -101
  263. package/dist/src/lib/project.js.map +0 -1
  264. package/dist/src/lib/scaffolding.d.ts +0 -22
  265. package/dist/src/lib/scaffolding.d.ts.map +0 -1
  266. package/dist/src/lib/scaffolding.js +0 -461
  267. package/dist/src/lib/scaffolding.js.map +0 -1
  268. package/dist/src/lib/service.d.ts +0 -4
  269. package/dist/src/lib/service.d.ts.map +0 -1
  270. package/dist/src/lib/service.js +0 -1208
  271. package/dist/src/lib/service.js.map +0 -1
  272. package/dist/src/lib/type-helpers.d.ts +0 -44
  273. package/dist/src/lib/type-helpers.d.ts.map +0 -1
  274. package/dist/src/lib/type-helpers.js +0 -106
  275. package/dist/src/lib/type-helpers.js.map +0 -1
  276. package/dist/src/lib/utils.d.ts +0 -120
  277. package/dist/src/lib/utils.d.ts.map +0 -1
  278. package/dist/src/lib/utils.js +0 -1580
  279. package/dist/src/lib/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["code","For","cs","Attribute","isErrorModel","isVoidType","useTsp","isStatusCode","getUniqueItems","useEmitterOptions","getPropertyAttributes","JsonSerialization","getDocComments","getSubNamespaceParts","CSharpFile","efRefkey","TypeExpression","getErrorConstructor","getDefaultValueString","getEnumDefaultInitializer","getLiteralValue","getModelEmitName","getScalarForLiteral","getUnionVariantInitializer","hasNonIntegerValues","hasPropertyInChain","isDuplicateExceptionName","isValueType","modelNeedsJsonNodes","getAnonymousModelName","modelUsings","Models","props","$","_$createComponent","each","models","children","model","needsJsonNodes","usings","modelName","program","subNsParts","namespace","serviceNamespace","modelContent","ServerClassDeclaration","type","emitName","wrappedContent","reduceRight","content","nsPart","Namespace","name","path","using","namePolicy","useCSharpNamePolicy","className","getName","refkeys","isError","properties","Array","from","entries","filter","_","p","baseType","baseModel","errorConstructor","undefined","hasChildConstructor","derivedModels","length","ClassDeclaration","refkey","partial","doc","_$memo","_$createIntrinsic","Constructor","parameters","default","baseConstructor","doubleHardline","property","ServerProperty","errorClassName","propType","attrs","propName","csharpPropName","csharpName","unshift","JsonPropertyNameAttribute","args","isOverride","unionVariantInit","enumDefaultInit","isErrorProp","collectionType","literalInfo","defaultValue","initializer","isLiteralOnly","isFloatEnum","enum","is","resolveToScalar","resolvedType","needsNullable","optional","isUniqueItems","isArrayType","kind","array","typeExpr","indexer","value","Property","nullable","attributes","get","set"],"sources":["../../../../src/components/models/models.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=models.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.test.d.ts","sourceRoot":"","sources":["../../../../src/components/models/models.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,151 @@
1
+ import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { Tester } from "#test/tester.js";
3
+ import { createCSharpNamePolicy, SourceFile } from "@alloy-js/csharp";
4
+ import { t } from "@typespec/compiler/testing";
5
+ import { Output } from "@typespec/emitter-framework";
6
+ import { ClassDeclaration } from "@typespec/emitter-framework/csharp";
7
+ import { beforeEach, describe, expect, it } from "vitest";
8
+ let runner;
9
+ beforeEach(async () => {
10
+ runner = await Tester.createInstance();
11
+ });
12
+ function Wrapper(props) {
13
+ const policy = createCSharpNamePolicy();
14
+ return _$createComponent(Output, {
15
+ get program() {
16
+ return runner.program;
17
+ },
18
+ namePolicy: policy,
19
+ get children() {
20
+ return _$createComponent(SourceFile, {
21
+ path: "test.cs",
22
+ get children() {
23
+ return props.children;
24
+ }
25
+ });
26
+ }
27
+ });
28
+ }
29
+ describe("ClassDeclaration for models", () => {
30
+ it("renders a simple model with properties", async () => {
31
+ const {
32
+ Pet
33
+ } = await runner.compile(t.code`
34
+ model ${t.model("Pet")} {
35
+ name: string;
36
+ age: int32;
37
+ }
38
+ `);
39
+ expect(_$createComponent(Wrapper, {
40
+ get children() {
41
+ return _$createComponent(ClassDeclaration, {
42
+ type: Pet,
43
+ jsonAttributes: true
44
+ });
45
+ }
46
+ })).toRenderTo(`
47
+ using System.Text.Json.Serialization;
48
+
49
+ class Pet
50
+ {
51
+ [JsonPropertyName("name")]
52
+ public required string Name { get; set; }
53
+
54
+ [JsonPropertyName("age")]
55
+ public required int Age { get; set; }
56
+ }
57
+ `);
58
+ });
59
+ it("renders a model with optional property", async () => {
60
+ const {
61
+ Pet
62
+ } = await runner.compile(t.code`
63
+ model ${t.model("Pet")} {
64
+ name: string;
65
+ tag?: string;
66
+ }
67
+ `);
68
+ expect(_$createComponent(Wrapper, {
69
+ get children() {
70
+ return _$createComponent(ClassDeclaration, {
71
+ type: Pet,
72
+ jsonAttributes: true
73
+ });
74
+ }
75
+ })).toRenderTo(`
76
+ using System.Text.Json.Serialization;
77
+
78
+ class Pet
79
+ {
80
+ [JsonPropertyName("name")]
81
+ public required string Name { get; set; }
82
+
83
+ [JsonPropertyName("tag")]
84
+ public string? Tag { get; set; }
85
+ }
86
+ `);
87
+ });
88
+ it("renders a model with inheritance", async () => {
89
+ const {
90
+ Pet,
91
+ Dog
92
+ } = await runner.compile(t.code`
93
+ model ${t.model("Pet")} {
94
+ name: string;
95
+ }
96
+ model ${t.model("Dog")} extends Pet {
97
+ breed: string;
98
+ }
99
+ `);
100
+ expect(_$createComponent(Wrapper, {
101
+ get children() {
102
+ return [_$createComponent(ClassDeclaration, {
103
+ type: Pet,
104
+ jsonAttributes: true
105
+ }), _$createIntrinsic("hbr", {}), _$createComponent(ClassDeclaration, {
106
+ type: Dog,
107
+ jsonAttributes: true
108
+ })];
109
+ }
110
+ })).toRenderTo(`
111
+ using System.Text.Json.Serialization;
112
+
113
+ class Pet
114
+ {
115
+ [JsonPropertyName("name")]
116
+ public required string Name { get; set; }
117
+ }
118
+ class Dog : Pet
119
+ {
120
+ [JsonPropertyName("breed")]
121
+ public required string Breed { get; set; }
122
+ }
123
+ `);
124
+ });
125
+ it("renders a model with nullable union property", async () => {
126
+ const {
127
+ Pet
128
+ } = await runner.compile(t.code`
129
+ model ${t.model("Pet")} {
130
+ name: string | null;
131
+ }
132
+ `);
133
+ expect(_$createComponent(Wrapper, {
134
+ get children() {
135
+ return _$createComponent(ClassDeclaration, {
136
+ type: Pet,
137
+ jsonAttributes: true
138
+ });
139
+ }
140
+ })).toRenderTo(`
141
+ using System.Text.Json.Serialization;
142
+
143
+ class Pet
144
+ {
145
+ [JsonPropertyName("name")]
146
+ public required string? Name { get; set; }
147
+ }
148
+ `);
149
+ });
150
+ });
151
+ //# sourceMappingURL=models.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Tester","createCSharpNamePolicy","SourceFile","t","Output","ClassDeclaration","beforeEach","describe","expect","it","runner","createInstance","Wrapper","props","policy","_$createComponent","program","namePolicy","children","path","Pet","compile","code","model","type","jsonAttributes","toRenderTo","Dog","_$createIntrinsic"],"sources":["../../../../src/components/models/models.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { type Children } from "@alloy-js/core";
2
+ export interface CsprojProps {
3
+ /** The project name (without extension). */
4
+ projectName: string;
5
+ /** Whether to include SwaggerUI NuGet package. */
6
+ useSwaggerUI?: boolean;
7
+ }
8
+ /**
9
+ * Renders a .csproj file for the ASP.NET service project.
10
+ */
11
+ export declare function Csproj(props: CsprojProps): Children;
12
+ //# sourceMappingURL=csproj.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csproj.d.ts","sourceRoot":"","sources":["../../../../src/components/project/csproj.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAW/C,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,CAenD"}
@@ -0,0 +1,35 @@
1
+ import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
+ import { CsprojFile } from "@alloy-js/csharp";
3
+ import { ImplicitUsings, ItemGroup, Nullable, PackageReference, PropertyGroup, TargetFramework } from "@alloy-js/msbuild/components";
4
+ /**
5
+ * Renders a .csproj file for the ASP.NET service project.
6
+ */
7
+ export function Csproj(props) {
8
+ return _$createComponent(CsprojFile, {
9
+ get path() {
10
+ return `${props.projectName}.csproj`;
11
+ },
12
+ sdk: "Microsoft.NET.Sdk.Web",
13
+ get children() {
14
+ return [_$createComponent(PropertyGroup, {
15
+ get children() {
16
+ return [_$createComponent(TargetFramework, {
17
+ children: "net9.0"
18
+ }), _$createComponent(Nullable, {
19
+ children: "enable"
20
+ }), _$createComponent(ImplicitUsings, {
21
+ children: "enable"
22
+ })];
23
+ }
24
+ }), _$memo(() => _$memo(() => !!props.useSwaggerUI)() && _$createComponent(ItemGroup, {
25
+ get children() {
26
+ return _$createComponent(PackageReference, {
27
+ Include: "SwashBuckle.AspNetCore",
28
+ Version: "7.3.1"
29
+ });
30
+ }
31
+ }))];
32
+ }
33
+ });
34
+ }
35
+ //# sourceMappingURL=csproj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CsprojFile","ImplicitUsings","ItemGroup","Nullable","PackageReference","PropertyGroup","TargetFramework","Csproj","props","_$createComponent","path","projectName","sdk","children","_$memo","useSwaggerUI","Include","Version"],"sources":["../../../../src/components/project/csproj.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,cAAc,EACdC,SAAS,EACTC,QAAQ,EACRC,gBAAgB,EAChBC,aAAa,EACbC,eAAe,QACV,8BAA8B;AASrC;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAACC,KAAkB,EAAY;EACnD,OAAAC,iBAAA,CACGT,UAAU;IAAA,IAACU,IAAIA,CAAA;MAAA,OAAE,GAAGF,KAAK,CAACG,WAAW,SAAS;IAAA;IAAEC,GAAG;IAAA,IAAAC,SAAA;MAAA,QAAAJ,iBAAA,CACjDJ,aAAa;QAAA,IAAAQ,SAAA;UAAA,QAAAJ,iBAAA,CACXH,eAAe;YAAAO,QAAA;UAAA,IAAAJ,iBAAA,CACfN,QAAQ;YAAAU,QAAA;UAAA,IAAAJ,iBAAA,CACRR,cAAc;YAAAY,QAAA;UAAA;QAAA;MAAA,IAAAC,MAAA,OAEhBA,MAAA,SAAAN,KAAK,CAACO,YAAY,OAAAN,iBAAA,CAChBP,SAAS;QAAA,IAAAW,SAAA;UAAA,OAAAJ,iBAAA,CACPL,gBAAgB;YAACY,OAAO;YAA0BC,OAAO;UAAA;QAAA;MAAA,EAE7D;IAAA;EAAA;AAGP","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=csproj.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csproj.test.d.ts","sourceRoot":"","sources":["../../../../src/components/project/csproj.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { Output, render } from "@alloy-js/core";
3
+ import { describe, expect, it } from "vitest";
4
+ import { Csproj } from "./csproj.js";
5
+ function getFileContent(output, path) {
6
+ for (const item of output.contents) {
7
+ if ("contents" in item && typeof item.contents === "string" && item.path.endsWith(path)) {
8
+ return item.contents;
9
+ }
10
+ }
11
+ return undefined;
12
+ }
13
+ describe("Csproj", () => {
14
+ it("renders a basic .csproj file", () => {
15
+ const output = render(_$createComponent(Output, {
16
+ get children() {
17
+ return _$createComponent(Csproj, {
18
+ projectName: "TestProject"
19
+ });
20
+ }
21
+ }));
22
+ const content = getFileContent(output, "TestProject.csproj");
23
+ expect(content).toBeDefined();
24
+ expect(content).toContain("Microsoft.NET.Sdk.Web");
25
+ expect(content).toContain("<TargetFramework>net9.0</TargetFramework>");
26
+ expect(content).toContain("<Nullable>enable</Nullable>");
27
+ });
28
+ it("includes SwaggerUI package when enabled", () => {
29
+ const output = render(_$createComponent(Output, {
30
+ get children() {
31
+ return _$createComponent(Csproj, {
32
+ projectName: "TestProject",
33
+ useSwaggerUI: true
34
+ });
35
+ }
36
+ }));
37
+ const content = getFileContent(output, "TestProject.csproj");
38
+ expect(content).toBeDefined();
39
+ expect(content).toContain("SwashBuckle.AspNetCore");
40
+ });
41
+ });
42
+ //# sourceMappingURL=csproj.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Output","render","describe","expect","it","Csproj","getFileContent","output","path","item","contents","endsWith","undefined","_$createComponent","children","projectName","content","toBeDefined","toContain","useSwaggerUI"],"sources":["../../../../src/components/project/csproj.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,MAAM,QAAQ,gBAAgB;AAC/C,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,MAAM;AAEf,SAASC,cAAcA,CAACC,MAAW,EAAEC,IAAY,EAAsB;EACrE,KAAK,MAAMC,IAAI,IAAIF,MAAM,CAACG,QAAQ,EAAE;IAClC,IAAI,UAAU,IAAID,IAAI,IAAI,OAAOA,IAAI,CAACC,QAAQ,KAAK,QAAQ,IAAID,IAAI,CAACD,IAAI,CAACG,QAAQ,CAACH,IAAI,CAAC,EAAE;MACvF,OAAOC,IAAI,CAACC,QAAQ;IACtB;EACF;EACA,OAAOE,SAAS;AAClB;AAEAV,QAAQ,CAAC,QAAQ,EAAE,MAAM;EACvBE,EAAE,CAAC,8BAA8B,EAAE,MAAM;IACvC,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,MAAM;UAACU,WAAW;QAAA;MAAA;IAAA,EAEvB,CAAC;IACD,MAAMC,OAAO,GAAGV,cAAc,CAACC,MAAM,EAAE,oBAAoB,CAAC;IAC5DJ,MAAM,CAACa,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bd,MAAM,CAACa,OAAO,CAAC,CAACE,SAAS,CAAC,uBAAuB,CAAC;IAClDf,MAAM,CAACa,OAAO,CAAC,CAACE,SAAS,CAAC,2CAA2C,CAAC;IACtEf,MAAM,CAACa,OAAO,CAAC,CAACE,SAAS,CAAC,6BAA6B,CAAC;EAC1D,CAAC,CAAC;EAEFd,EAAE,CAAC,yCAAyC,EAAE,MAAM;IAClD,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,MAAM;UAACU,WAAW;UAAeI,YAAY;QAAA;MAAA;IAAA,EAElD,CAAC;IACD,MAAMH,OAAO,GAAGV,cAAc,CAACC,MAAM,EAAE,oBAAoB,CAAC;IAC5DJ,MAAM,CAACa,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bd,MAAM,CAACa,OAAO,CAAC,CAACE,SAAS,CAAC,wBAAwB,CAAC;EACrD,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import { type Children } from "@alloy-js/core";
2
+ export interface LaunchSettingsProps {
3
+ /** The HTTP port for local hosting. */
4
+ httpPort: number;
5
+ /** The HTTPS port for local hosting. */
6
+ httpsPort: number;
7
+ }
8
+ /**
9
+ * Renders launchSettings.json and appsettings files for the ASP.NET project.
10
+ */
11
+ export declare function LaunchSettings(props: LaunchSettingsProps): Children;
12
+ /**
13
+ * Renders appsettings.json for the ASP.NET project.
14
+ */
15
+ export declare function AppSettings(): Children;
16
+ //# sourceMappingURL=launch-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-settings.d.ts","sourceRoot":"","sources":["../../../../src/components/project/launch-settings.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,QAAQ,CAoCnE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAsCtC"}
@@ -0,0 +1,73 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { SourceDirectory, SourceFile } from "@alloy-js/core";
3
+ /**
4
+ * Renders launchSettings.json and appsettings files for the ASP.NET project.
5
+ */
6
+ export function LaunchSettings(props) {
7
+ const launchSettings = JSON.stringify({
8
+ $schema: "https://json.schemastore.org/launchsettings.json",
9
+ profiles: {
10
+ https: {
11
+ commandName: "Project",
12
+ dotnetRunMessages: true,
13
+ launchBrowser: true,
14
+ applicationUrl: `https://localhost:${props.httpsPort};http://localhost:${props.httpPort}`,
15
+ environmentVariables: {
16
+ ASPNETCORE_ENVIRONMENT: "Development"
17
+ }
18
+ },
19
+ http: {
20
+ commandName: "Project",
21
+ dotnetRunMessages: true,
22
+ launchBrowser: true,
23
+ applicationUrl: `http://localhost:${props.httpPort}`,
24
+ environmentVariables: {
25
+ ASPNETCORE_ENVIRONMENT: "Development"
26
+ }
27
+ }
28
+ }
29
+ }, null, 4);
30
+ return _$createComponent(SourceDirectory, {
31
+ path: "Properties",
32
+ get children() {
33
+ return _$createComponent(SourceFile, {
34
+ filetype: "json",
35
+ path: "launchSettings.json",
36
+ children: launchSettings
37
+ });
38
+ }
39
+ });
40
+ }
41
+
42
+ /**
43
+ * Renders appsettings.json for the ASP.NET project.
44
+ */
45
+ export function AppSettings() {
46
+ const appSettings = JSON.stringify({
47
+ Logging: {
48
+ LogLevel: {
49
+ Default: "Information",
50
+ "Microsoft.AspNetCore": "Warning"
51
+ }
52
+ },
53
+ AllowedHosts: "*"
54
+ }, null, 2);
55
+ const devAppSettings = JSON.stringify({
56
+ Logging: {
57
+ LogLevel: {
58
+ Default: "Information",
59
+ "Microsoft.AspNetCore": "Warning"
60
+ }
61
+ }
62
+ }, null, 2);
63
+ return [_$createComponent(SourceFile, {
64
+ filetype: "json",
65
+ path: "appsettings.json",
66
+ children: appSettings
67
+ }), _$createComponent(SourceFile, {
68
+ filetype: "json",
69
+ path: "appsettings.Development.json",
70
+ children: devAppSettings
71
+ })];
72
+ }
73
+ //# sourceMappingURL=launch-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SourceDirectory","SourceFile","LaunchSettings","props","launchSettings","JSON","stringify","$schema","profiles","https","commandName","dotnetRunMessages","launchBrowser","applicationUrl","httpsPort","httpPort","environmentVariables","ASPNETCORE_ENVIRONMENT","http","_$createComponent","path","children","filetype","AppSettings","appSettings","Logging","LogLevel","Default","AllowedHosts","devAppSettings"],"sources":["../../../../src/components/project/launch-settings.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,eAAe,EAAEC,UAAU,QAAuB,gBAAgB;AAS3E;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACC,KAA0B,EAAY;EACnE,MAAMC,cAAc,GAAGC,IAAI,CAACC,SAAS,CACnC;IACEC,OAAO,EAAE,kDAAkD;IAC3DC,QAAQ,EAAE;MACRC,KAAK,EAAE;QACLC,WAAW,EAAE,SAAS;QACtBC,iBAAiB,EAAE,IAAI;QACvBC,aAAa,EAAE,IAAI;QACnBC,cAAc,EAAE,qBAAqBV,KAAK,CAACW,SAAS,qBAAqBX,KAAK,CAACY,QAAQ,EAAE;QACzFC,oBAAoB,EAAE;UACpBC,sBAAsB,EAAE;QAC1B;MACF,CAAC;MACDC,IAAI,EAAE;QACJR,WAAW,EAAE,SAAS;QACtBC,iBAAiB,EAAE,IAAI;QACvBC,aAAa,EAAE,IAAI;QACnBC,cAAc,EAAE,oBAAoBV,KAAK,CAACY,QAAQ,EAAE;QACpDC,oBAAoB,EAAE;UACpBC,sBAAsB,EAAE;QAC1B;MACF;IACF;EACF,CAAC,EACD,IAAI,EACJ,CACF,CAAC;EAED,OAAAE,iBAAA,CACGnB,eAAe;IAACoB,IAAI;IAAA,IAAAC,SAAA;MAAA,OAAAF,iBAAA,CAClBlB,UAAU;QAACqB,QAAQ;QAAQF,IAAI;QAAAC,QAAA,EAC7BjB;MAAc;IAAA;EAAA;AAIvB;;AAEA;AACA;AACA;AACA,OAAO,SAASmB,WAAWA,CAAA,EAAa;EACtC,MAAMC,WAAW,GAAGnB,IAAI,CAACC,SAAS,CAChC;IACEmB,OAAO,EAAE;MACPC,QAAQ,EAAE;QACRC,OAAO,EAAE,aAAa;QACtB,sBAAsB,EAAE;MAC1B;IACF,CAAC;IACDC,YAAY,EAAE;EAChB,CAAC,EACD,IAAI,EACJ,CACF,CAAC;EAED,MAAMC,cAAc,GAAGxB,IAAI,CAACC,SAAS,CACnC;IACEmB,OAAO,EAAE;MACPC,QAAQ,EAAE;QACRC,OAAO,EAAE,aAAa;QACtB,sBAAsB,EAAE;MAC1B;IACF;EACF,CAAC,EACD,IAAI,EACJ,CACF,CAAC;EAED,QAAAR,iBAAA,CAEKlB,UAAU;IAACqB,QAAQ;IAAQF,IAAI;IAAAC,QAAA,EAC7BG;EAAW,IAAAL,iBAAA,CAEblB,UAAU;IAACqB,QAAQ;IAAQF,IAAI;IAAAC,QAAA,EAC7BQ;EAAc;AAIvB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=launch-settings.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch-settings.test.d.ts","sourceRoot":"","sources":["../../../../src/components/project/launch-settings.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { Output, render } from "@alloy-js/core";
3
+ import { describe, expect, it } from "vitest";
4
+ import { AppSettings, LaunchSettings } from "./launch-settings.js";
5
+ function findFileContent(output, pathSuffix) {
6
+ function search(dir) {
7
+ for (const item of dir.contents) {
8
+ if ("contents" in item && typeof item.contents === "string" && item.path.endsWith(pathSuffix)) {
9
+ return item.contents;
10
+ }
11
+ if ("contents" in item && Array.isArray(item.contents)) {
12
+ const found = search(item);
13
+ if (found) return found;
14
+ }
15
+ }
16
+ return undefined;
17
+ }
18
+ return search(output);
19
+ }
20
+ describe("LaunchSettings", () => {
21
+ it("renders launchSettings.json with correct ports", () => {
22
+ const output = render(_$createComponent(Output, {
23
+ get children() {
24
+ return _$createComponent(LaunchSettings, {
25
+ httpPort: 5000,
26
+ httpsPort: 5001
27
+ });
28
+ }
29
+ }));
30
+ const content = findFileContent(output, "launchSettings.json");
31
+ expect(content).toBeDefined();
32
+ expect(content).toContain("https://localhost:5001");
33
+ expect(content).toContain("http://localhost:5000");
34
+ });
35
+ });
36
+ describe("AppSettings", () => {
37
+ it("renders appsettings files", () => {
38
+ const output = render(_$createComponent(Output, {
39
+ get children() {
40
+ return _$createComponent(AppSettings, {});
41
+ }
42
+ }));
43
+ const content = findFileContent(output, "appsettings.json");
44
+ expect(content).toBeDefined();
45
+ expect(content).toContain("AllowedHosts");
46
+ });
47
+ });
48
+ //# sourceMappingURL=launch-settings.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Output","render","describe","expect","it","AppSettings","LaunchSettings","findFileContent","output","pathSuffix","search","dir","item","contents","path","endsWith","Array","isArray","found","undefined","_$createComponent","children","httpPort","httpsPort","content","toBeDefined","toContain"],"sources":["../../../../src/components/project/launch-settings.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,MAAM,QAAQ,gBAAgB;AAC/C,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,WAAW,EAAEC,cAAc;AAEpC,SAASC,eAAeA,CAACC,MAAW,EAAEC,UAAkB,EAAsB;EAC5E,SAASC,MAAMA,CAACC,GAAQ,EAAsB;IAC5C,KAAK,MAAMC,IAAI,IAAID,GAAG,CAACE,QAAQ,EAAE;MAC/B,IACE,UAAU,IAAID,IAAI,IAClB,OAAOA,IAAI,CAACC,QAAQ,KAAK,QAAQ,IACjCD,IAAI,CAACE,IAAI,CAACC,QAAQ,CAACN,UAAU,CAAC,EAC9B;QACA,OAAOG,IAAI,CAACC,QAAQ;MACtB;MACA,IAAI,UAAU,IAAID,IAAI,IAAII,KAAK,CAACC,OAAO,CAACL,IAAI,CAACC,QAAQ,CAAC,EAAE;QACtD,MAAMK,KAAK,GAAGR,MAAM,CAACE,IAAI,CAAC;QAC1B,IAAIM,KAAK,EAAE,OAAOA,KAAK;MACzB;IACF;IACA,OAAOC,SAAS;EAClB;EACA,OAAOT,MAAM,CAACF,MAAM,CAAC;AACvB;AAEAN,QAAQ,CAAC,gBAAgB,EAAE,MAAM;EAC/BE,EAAE,CAAC,gDAAgD,EAAE,MAAM;IACzD,MAAMI,MAAM,GAAGP,MAAM,CAAAmB,iBAAA,CAClBpB,MAAM;MAAA,IAAAqB,SAAA;QAAA,OAAAD,iBAAA,CACJd,cAAc;UAACgB,QAAQ,EAAE,IAAI;UAAEC,SAAS,EAAE;QAAI;MAAA;IAAA,EAEnD,CAAC;IACD,MAAMC,OAAO,GAAGjB,eAAe,CAACC,MAAM,EAAE,qBAAqB,CAAC;IAC9DL,MAAM,CAACqB,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7BtB,MAAM,CAACqB,OAAO,CAAC,CAACE,SAAS,CAAC,wBAAwB,CAAC;IACnDvB,MAAM,CAACqB,OAAO,CAAC,CAACE,SAAS,CAAC,uBAAuB,CAAC;EACpD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFxB,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC5BE,EAAE,CAAC,2BAA2B,EAAE,MAAM;IACpC,MAAMI,MAAM,GAAGP,MAAM,CAAAmB,iBAAA,CAClBpB,MAAM;MAAA,IAAAqB,SAAA;QAAA,OAAAD,iBAAA,CACJf,WAAW;MAAA;IAAA,EAEhB,CAAC;IACD,MAAMmB,OAAO,GAAGjB,eAAe,CAACC,MAAM,EAAE,kBAAkB,CAAC;IAC3DL,MAAM,CAACqB,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7BtB,MAAM,CAACqB,OAAO,CAAC,CAACE,SAAS,CAAC,cAAc,CAAC;EAC3C,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { type Children } from "@alloy-js/core";
2
+ export interface ProgramCsProps {
3
+ /** Whether to include Swagger UI middleware. */
4
+ useSwaggerUI?: boolean;
5
+ /** Path to the OpenAPI spec file. */
6
+ openApiPath?: string;
7
+ /** Whether mock registrations are included. */
8
+ hasMocks?: boolean;
9
+ }
10
+ /**
11
+ * Renders the Program.cs entry point for the ASP.NET service.
12
+ */
13
+ export declare function ProgramCs(props: ProgramCsProps): Children;
14
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../../src/components/project/program.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CA8EzD"}
@@ -0,0 +1,75 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { CSharpFile } from "../csharp-file.js";
3
+ /**
4
+ * Renders the Program.cs entry point for the ASP.NET service.
5
+ */
6
+ export function ProgramCs(props) {
7
+ const useSwagger = props.useSwaggerUI ?? false;
8
+ const openApiPath = props.openApiPath ?? "openapi/openapi.yaml";
9
+ const hasMocks = props.hasMocks ?? false;
10
+ const contents = `var builder = WebApplication.CreateBuilder(args);
11
+
12
+ // Add services to the container.
13
+ builder.Services.AddControllersWithViews(options =>
14
+ {
15
+ options.Filters.Add<HttpServiceExceptionFilter>();
16
+ });
17
+ builder.Services.AddEndpointsApiExplorer();
18
+ ${useSwagger ? "builder.Services.AddSwaggerGen();\n" : ""}${hasMocks ? "MockRegistration.Register(builder);\n" : ""}
19
+ var app = builder.Build();
20
+
21
+ // Configure the HTTP request pipeline.
22
+ if (!app.Environment.IsDevelopment())
23
+ {
24
+ app.UseExceptionHandler("/Home/Error");
25
+ app.UseHsts();
26
+ }
27
+ ${useSwagger ? `else
28
+ {
29
+ app.UseSwagger();
30
+ app.UseSwaggerUI(c => {
31
+ c.DocumentTitle = "TypeSpec Generated OpenAPI Viewer";
32
+ c.SwaggerEndpoint("/openapi.yaml", "TypeSpec Generated OpenAPI Docs");
33
+ c.RoutePrefix = "swagger";
34
+ });
35
+ }
36
+ ` : ""}
37
+ app.UseHttpsRedirection();
38
+ app.UseStaticFiles();
39
+ app.Use(async (context, next) =>
40
+ {
41
+ context.Request.EnableBuffering();
42
+ await next();
43
+ });
44
+ ${useSwagger ? `
45
+ app.MapGet("/openapi.yaml", async (HttpContext context) =>
46
+ {
47
+ var externalFilePath = "${openApiPath}"; // Full path to the file outside the project
48
+ if (!File.Exists(externalFilePath))
49
+ {
50
+ context.Response.StatusCode = StatusCodes.Status404NotFound;
51
+ await context.Response.WriteAsync("OpenAPI spec not found.");
52
+ return;
53
+ }
54
+ context.Response.ContentType = "application/yaml";
55
+ await context.Response.SendFileAsync(externalFilePath);
56
+ });
57
+ ` : ""}
58
+ app.UseRouting();
59
+
60
+ app.UseAuthorization();
61
+
62
+
63
+ app.MapControllerRoute(
64
+ name: "default",
65
+ pattern: "{controller=Home}/{action=Index}/{id?}");
66
+
67
+
68
+ app.Run();`;
69
+ return _$createComponent(CSharpFile, {
70
+ path: "Program.cs",
71
+ using: ["TypeSpec.Helpers"],
72
+ children: contents
73
+ });
74
+ }
75
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CSharpFile","ProgramCs","props","useSwagger","useSwaggerUI","openApiPath","hasMocks","contents","_$createComponent","path","using","children"],"sources":["../../../../src/components/project/program.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,UAAU;AAWnB;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAACC,KAAqB,EAAY;EACzD,MAAMC,UAAU,GAAGD,KAAK,CAACE,YAAY,IAAI,KAAK;EAC9C,MAAMC,WAAW,GAAGH,KAAK,CAACG,WAAW,IAAI,sBAAsB;EAC/D,MAAMC,QAAQ,GAAGJ,KAAK,CAACI,QAAQ,IAAI,KAAK;EAExC,MAAMC,QAAQ,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEJ,UAAU,GAAG,qCAAqC,GAAG,EAAE,GAAGG,QAAQ,GAAG,uCAAuC,GAAG,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EACEH,UAAU,GACN;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GACK,EAAE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAEEA,UAAU,GACN;AACN;AACA;AACA,8BAA8BE,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GACK,EAAE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WACW;EAET,OAAAG,iBAAA,CACGR,UAAU;IAACS,IAAI;IAAcC,KAAK,EAAE,CAAC,kBAAkB,CAAC;IAAAC,QAAA,EACtDJ;EAAQ;AAGf","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=program.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.test.d.ts","sourceRoot":"","sources":["../../../../src/components/project/program.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { Output, render } from "@alloy-js/core";
3
+ import { describe, expect, it } from "vitest";
4
+ import { ProgramCs } from "./program.js";
5
+ function getFileContent(output, path) {
6
+ for (const item of output.contents) {
7
+ if ("contents" in item && typeof item.contents === "string" && item.path.endsWith(path)) {
8
+ return item.contents;
9
+ }
10
+ }
11
+ return undefined;
12
+ }
13
+ describe("ProgramCs", () => {
14
+ it("renders Program.cs without swagger", () => {
15
+ const output = render(_$createComponent(Output, {
16
+ get children() {
17
+ return _$createComponent(ProgramCs, {});
18
+ }
19
+ }));
20
+ const content = getFileContent(output, "Program.cs");
21
+ expect(content).toBeDefined();
22
+ expect(content).toContain("var builder = WebApplication.CreateBuilder(args);");
23
+ });
24
+ it("renders Program.cs with swagger", () => {
25
+ const output = render(_$createComponent(Output, {
26
+ get children() {
27
+ return _$createComponent(ProgramCs, {
28
+ useSwaggerUI: true,
29
+ openApiPath: "openapi/spec.yaml"
30
+ });
31
+ }
32
+ }));
33
+ const content = getFileContent(output, "Program.cs");
34
+ expect(content).toBeDefined();
35
+ expect(content).toContain("builder.Services.AddSwaggerGen()");
36
+ });
37
+ it("renders Program.cs with mocks", () => {
38
+ const output = render(_$createComponent(Output, {
39
+ get children() {
40
+ return _$createComponent(ProgramCs, {
41
+ hasMocks: true
42
+ });
43
+ }
44
+ }));
45
+ const content = getFileContent(output, "Program.cs");
46
+ expect(content).toBeDefined();
47
+ expect(content).toContain("MockRegistration.Register(builder)");
48
+ });
49
+ });
50
+ //# sourceMappingURL=program.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Output","render","describe","expect","it","ProgramCs","getFileContent","output","path","item","contents","endsWith","undefined","_$createComponent","children","content","toBeDefined","toContain","useSwaggerUI","openApiPath","hasMocks"],"sources":["../../../../src/components/project/program.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,MAAM,QAAQ,gBAAgB;AAC/C,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,SAAS;AAElB,SAASC,cAAcA,CAACC,MAAW,EAAEC,IAAY,EAAsB;EACrE,KAAK,MAAMC,IAAI,IAAIF,MAAM,CAACG,QAAQ,EAAE;IAClC,IAAI,UAAU,IAAID,IAAI,IAAI,OAAOA,IAAI,CAACC,QAAQ,KAAK,QAAQ,IAAID,IAAI,CAACD,IAAI,CAACG,QAAQ,CAACH,IAAI,CAAC,EAAE;MACvF,OAAOC,IAAI,CAACC,QAAQ;IACtB;EACF;EACA,OAAOE,SAAS;AAClB;AAEAV,QAAQ,CAAC,WAAW,EAAE,MAAM;EAC1BE,EAAE,CAAC,oCAAoC,EAAE,MAAM;IAC7C,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,SAAS;MAAA;IAAA,EAEd,CAAC;IACD,MAAMU,OAAO,GAAGT,cAAc,CAACC,MAAM,EAAE,YAAY,CAAC;IACpDJ,MAAM,CAACY,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bb,MAAM,CAACY,OAAO,CAAC,CAACE,SAAS,CAAC,mDAAmD,CAAC;EAChF,CAAC,CAAC;EAEFb,EAAE,CAAC,iCAAiC,EAAE,MAAM;IAC1C,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,SAAS;UAACa,YAAY;UAACC,WAAW;QAAA;MAAA;IAAA,EAEvC,CAAC;IACD,MAAMJ,OAAO,GAAGT,cAAc,CAACC,MAAM,EAAE,YAAY,CAAC;IACpDJ,MAAM,CAACY,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bb,MAAM,CAACY,OAAO,CAAC,CAACE,SAAS,CAAC,kCAAkC,CAAC;EAC/D,CAAC,CAAC;EAEFb,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACxC,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,SAAS;UAACe,QAAQ;QAAA;MAAA;IAAA,EAEvB,CAAC;IACD,MAAML,OAAO,GAAGT,cAAc,CAACC,MAAM,EAAE,YAAY,CAAC;IACpDJ,MAAM,CAACY,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bb,MAAM,CAACY,OAAO,CAAC,CAACE,SAAS,CAAC,oCAAoC,CAAC;EACjE,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { type Children } from "@alloy-js/core";
2
+ import type { Interface } from "@typespec/compiler";
3
+ import type { OperationHttpCanonicalization } from "@typespec/http-canonicalization";
4
+ export interface ControllersAndInterfacesProps {
5
+ /** Pre-resolved service interfaces (including synthetic ones for namespace-level ops). */
6
+ interfaces: Interface[];
7
+ /** Pre-computed canonical HTTP operations per interface. */
8
+ canonicalOpsMap: Map<string, OperationHttpCanonicalization[]>;
9
+ }
10
+ /**
11
+ * Component that renders controllers and their corresponding business logic interfaces.
12
+ */
13
+ export declare function ControllersAndInterfaces(props: ControllersAndInterfacesProps): Children;
14
+ //# sourceMappingURL=render-root.d.ts.map