@alloy-js/go 0.0.1

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 (264) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE +7 -0
  3. package/api-extractor.json +4 -0
  4. package/dist/src/builtins/fmt/fmt.d.ts +147 -0
  5. package/dist/src/builtins/fmt/fmt.d.ts.map +1 -0
  6. package/dist/src/builtins/fmt/fmt.js +148 -0
  7. package/dist/src/builtins/fmt/fmt.js.map +1 -0
  8. package/dist/src/builtins/index.d.ts +2004 -0
  9. package/dist/src/builtins/index.d.ts.map +1 -0
  10. package/dist/src/builtins/index.js +9 -0
  11. package/dist/src/builtins/index.js.map +1 -0
  12. package/dist/src/builtins/io/io.d.ts +648 -0
  13. package/dist/src/builtins/io/io.d.ts.map +1 -0
  14. package/dist/src/builtins/io/io.js +650 -0
  15. package/dist/src/builtins/io/io.js.map +1 -0
  16. package/dist/src/builtins/net/net.d.ts +1210 -0
  17. package/dist/src/builtins/net/net.d.ts.map +1 -0
  18. package/dist/src/builtins/net/net.js +1212 -0
  19. package/dist/src/builtins/net/net.js.map +1 -0
  20. package/dist/src/components/ImportStatement.d.ts +15 -0
  21. package/dist/src/components/ImportStatement.d.ts.map +1 -0
  22. package/dist/src/components/ImportStatement.js +90 -0
  23. package/dist/src/components/ImportStatement.js.map +1 -0
  24. package/dist/src/components/ModuleDirectory.d.ts +8 -0
  25. package/dist/src/components/ModuleDirectory.d.ts.map +1 -0
  26. package/dist/src/components/ModuleDirectory.js +20 -0
  27. package/dist/src/components/ModuleDirectory.js.map +1 -0
  28. package/dist/src/components/Name.d.ts +2 -0
  29. package/dist/src/components/Name.d.ts.map +1 -0
  30. package/dist/src/components/Name.js +12 -0
  31. package/dist/src/components/Name.js.map +1 -0
  32. package/dist/src/components/Reference.d.ts +6 -0
  33. package/dist/src/components/Reference.d.ts.map +1 -0
  34. package/dist/src/components/Reference.js +15 -0
  35. package/dist/src/components/Reference.js.map +1 -0
  36. package/dist/src/components/SourceDirectory.d.ts +6 -0
  37. package/dist/src/components/SourceDirectory.d.ts.map +1 -0
  38. package/dist/src/components/SourceDirectory.js +30 -0
  39. package/dist/src/components/SourceDirectory.js.map +1 -0
  40. package/dist/src/components/SourceFile.d.ts +16 -0
  41. package/dist/src/components/SourceFile.d.ts.map +1 -0
  42. package/dist/src/components/SourceFile.js +75 -0
  43. package/dist/src/components/SourceFile.js.map +1 -0
  44. package/dist/src/components/doc/comment.d.ts +21 -0
  45. package/dist/src/components/doc/comment.d.ts.map +1 -0
  46. package/dist/src/components/doc/comment.js +30 -0
  47. package/dist/src/components/doc/comment.js.map +1 -0
  48. package/dist/src/components/doc/comment.test.d.ts +2 -0
  49. package/dist/src/components/doc/comment.test.d.ts.map +1 -0
  50. package/dist/src/components/doc/comment.test.js +215 -0
  51. package/dist/src/components/doc/comment.test.js.map +1 -0
  52. package/dist/src/components/function/function.d.ts +31 -0
  53. package/dist/src/components/function/function.d.ts.map +1 -0
  54. package/dist/src/components/function/function.js +134 -0
  55. package/dist/src/components/function/function.js.map +1 -0
  56. package/dist/src/components/function/function.test.d.ts +2 -0
  57. package/dist/src/components/function/function.test.d.ts.map +1 -0
  58. package/dist/src/components/function/function.test.js +410 -0
  59. package/dist/src/components/function/function.test.js.map +1 -0
  60. package/dist/src/components/index.d.ts +16 -0
  61. package/dist/src/components/index.d.ts.map +1 -0
  62. package/dist/src/components/index.js +16 -0
  63. package/dist/src/components/index.js.map +1 -0
  64. package/dist/src/components/interface/declaration.d.ts +68 -0
  65. package/dist/src/components/interface/declaration.d.ts.map +1 -0
  66. package/dist/src/components/interface/declaration.js +181 -0
  67. package/dist/src/components/interface/declaration.js.map +1 -0
  68. package/dist/src/components/interface/interface.test.d.ts +2 -0
  69. package/dist/src/components/interface/interface.test.d.ts.map +1 -0
  70. package/dist/src/components/interface/interface.test.js +517 -0
  71. package/dist/src/components/interface/interface.test.js.map +1 -0
  72. package/dist/src/components/package.test.d.ts +2 -0
  73. package/dist/src/components/package.test.d.ts.map +1 -0
  74. package/dist/src/components/package.test.js +89 -0
  75. package/dist/src/components/package.test.js.map +1 -0
  76. package/dist/src/components/parameters/parameters.d.ts +15 -0
  77. package/dist/src/components/parameters/parameters.d.ts.map +1 -0
  78. package/dist/src/components/parameters/parameters.js +58 -0
  79. package/dist/src/components/parameters/parameters.js.map +1 -0
  80. package/dist/src/components/parameters/typeparameters.d.ts +25 -0
  81. package/dist/src/components/parameters/typeparameters.d.ts.map +1 -0
  82. package/dist/src/components/parameters/typeparameters.js +53 -0
  83. package/dist/src/components/parameters/typeparameters.js.map +1 -0
  84. package/dist/src/components/pointer/pointer.d.ts +9 -0
  85. package/dist/src/components/pointer/pointer.d.ts.map +1 -0
  86. package/dist/src/components/pointer/pointer.js +8 -0
  87. package/dist/src/components/pointer/pointer.js.map +1 -0
  88. package/dist/src/components/stc/index.d.ts +27 -0
  89. package/dist/src/components/stc/index.d.ts.map +1 -0
  90. package/dist/src/components/stc/index.js +27 -0
  91. package/dist/src/components/stc/index.js.map +1 -0
  92. package/dist/src/components/struct/declaration.d.ts +62 -0
  93. package/dist/src/components/struct/declaration.d.ts.map +1 -0
  94. package/dist/src/components/struct/declaration.js +161 -0
  95. package/dist/src/components/struct/declaration.js.map +1 -0
  96. package/dist/src/components/struct/struct.test.d.ts +2 -0
  97. package/dist/src/components/struct/struct.test.d.ts.map +1 -0
  98. package/dist/src/components/struct/struct.test.js +741 -0
  99. package/dist/src/components/struct/struct.test.js.map +1 -0
  100. package/dist/src/components/type/declaration.d.ts +29 -0
  101. package/dist/src/components/type/declaration.d.ts.map +1 -0
  102. package/dist/src/components/type/declaration.js +63 -0
  103. package/dist/src/components/type/declaration.js.map +1 -0
  104. package/dist/src/components/var/declaration.d.ts +27 -0
  105. package/dist/src/components/var/declaration.d.ts.map +1 -0
  106. package/dist/src/components/var/declaration.js +84 -0
  107. package/dist/src/components/var/declaration.js.map +1 -0
  108. package/dist/src/components/var/var-declaration.test.d.ts +2 -0
  109. package/dist/src/components/var/var-declaration.test.d.ts.map +1 -0
  110. package/dist/src/components/var/var-declaration.test.js +340 -0
  111. package/dist/src/components/var/var-declaration.test.js.map +1 -0
  112. package/dist/src/context/package.d.ts +9 -0
  113. package/dist/src/context/package.d.ts.map +1 -0
  114. package/dist/src/context/package.js +6 -0
  115. package/dist/src/context/package.js.map +1 -0
  116. package/dist/src/create-module.d.ts +47 -0
  117. package/dist/src/create-module.d.ts.map +1 -0
  118. package/dist/src/create-module.js +158 -0
  119. package/dist/src/create-module.js.map +1 -0
  120. package/dist/src/create-module.test.d.ts +2 -0
  121. package/dist/src/create-module.test.d.ts.map +1 -0
  122. package/dist/src/create-module.test.js +147 -0
  123. package/dist/src/create-module.test.js.map +1 -0
  124. package/dist/src/index.d.ts +6 -0
  125. package/dist/src/index.d.ts.map +1 -0
  126. package/dist/src/index.js +6 -0
  127. package/dist/src/index.js.map +1 -0
  128. package/dist/src/name-policy.d.ts +5 -0
  129. package/dist/src/name-policy.d.ts.map +1 -0
  130. package/dist/src/name-policy.js +27 -0
  131. package/dist/src/name-policy.js.map +1 -0
  132. package/dist/src/scopes/contexts.d.ts +9 -0
  133. package/dist/src/scopes/contexts.d.ts.map +1 -0
  134. package/dist/src/scopes/contexts.js +34 -0
  135. package/dist/src/scopes/contexts.js.map +1 -0
  136. package/dist/src/scopes/factories.d.ts +7 -0
  137. package/dist/src/scopes/factories.d.ts.map +1 -0
  138. package/dist/src/scopes/factories.js +16 -0
  139. package/dist/src/scopes/factories.js.map +1 -0
  140. package/dist/src/scopes/function.d.ts +9 -0
  141. package/dist/src/scopes/function.d.ts.map +1 -0
  142. package/dist/src/scopes/function.js +14 -0
  143. package/dist/src/scopes/function.js.map +1 -0
  144. package/dist/src/scopes/go.d.ts +8 -0
  145. package/dist/src/scopes/go.d.ts.map +1 -0
  146. package/dist/src/scopes/go.js +12 -0
  147. package/dist/src/scopes/go.js.map +1 -0
  148. package/dist/src/scopes/index.d.ts +10 -0
  149. package/dist/src/scopes/index.d.ts.map +1 -0
  150. package/dist/src/scopes/index.js +10 -0
  151. package/dist/src/scopes/index.js.map +1 -0
  152. package/dist/src/scopes/lexical.d.ts +8 -0
  153. package/dist/src/scopes/lexical.d.ts.map +1 -0
  154. package/dist/src/scopes/lexical.js +11 -0
  155. package/dist/src/scopes/lexical.js.map +1 -0
  156. package/dist/src/scopes/module.d.ts +9 -0
  157. package/dist/src/scopes/module.d.ts.map +1 -0
  158. package/dist/src/scopes/module.js +31 -0
  159. package/dist/src/scopes/module.js.map +1 -0
  160. package/dist/src/scopes/named-type.d.ts +23 -0
  161. package/dist/src/scopes/named-type.d.ts.map +1 -0
  162. package/dist/src/scopes/named-type.js +33 -0
  163. package/dist/src/scopes/named-type.js.map +1 -0
  164. package/dist/src/scopes/package.d.ts +11 -0
  165. package/dist/src/scopes/package.d.ts.map +1 -0
  166. package/dist/src/scopes/package.js +39 -0
  167. package/dist/src/scopes/package.js.map +1 -0
  168. package/dist/src/scopes/source-file.d.ts +17 -0
  169. package/dist/src/scopes/source-file.d.ts.map +1 -0
  170. package/dist/src/scopes/source-file.js +42 -0
  171. package/dist/src/scopes/source-file.js.map +1 -0
  172. package/dist/src/symbols/factories.d.ts +25 -0
  173. package/dist/src/symbols/factories.d.ts.map +1 -0
  174. package/dist/src/symbols/factories.js +114 -0
  175. package/dist/src/symbols/factories.js.map +1 -0
  176. package/dist/src/symbols/function.d.ts +10 -0
  177. package/dist/src/symbols/function.d.ts.map +1 -0
  178. package/dist/src/symbols/function.js +12 -0
  179. package/dist/src/symbols/function.js.map +1 -0
  180. package/dist/src/symbols/go.d.ts +22 -0
  181. package/dist/src/symbols/go.d.ts.map +1 -0
  182. package/dist/src/symbols/go.js +56 -0
  183. package/dist/src/symbols/go.js.map +1 -0
  184. package/dist/src/symbols/index.d.ts +7 -0
  185. package/dist/src/symbols/index.d.ts.map +1 -0
  186. package/dist/src/symbols/index.js +7 -0
  187. package/dist/src/symbols/index.js.map +1 -0
  188. package/dist/src/symbols/named-type.d.ts +24 -0
  189. package/dist/src/symbols/named-type.d.ts.map +1 -0
  190. package/dist/src/symbols/named-type.js +53 -0
  191. package/dist/src/symbols/named-type.js.map +1 -0
  192. package/dist/src/symbols/package.d.ts +18 -0
  193. package/dist/src/symbols/package.d.ts.map +1 -0
  194. package/dist/src/symbols/package.js +38 -0
  195. package/dist/src/symbols/package.js.map +1 -0
  196. package/dist/src/symbols/reference.d.ts +3 -0
  197. package/dist/src/symbols/reference.d.ts.map +1 -0
  198. package/dist/src/symbols/reference.js +76 -0
  199. package/dist/src/symbols/reference.js.map +1 -0
  200. package/dist/test/utils.d.ts +8 -0
  201. package/dist/test/utils.d.ts.map +1 -0
  202. package/dist/test/utils.js +68 -0
  203. package/dist/test/utils.js.map +1 -0
  204. package/dist/test/vitest.setup.d.ts +2 -0
  205. package/dist/test/vitest.setup.d.ts.map +1 -0
  206. package/dist/test/vitest.setup.js +2 -0
  207. package/dist/test/vitest.setup.js.map +1 -0
  208. package/dist/tsconfig.tsbuildinfo +1 -0
  209. package/package.json +45 -0
  210. package/src/builtins/fmt/fmt.ts +78 -0
  211. package/src/builtins/index.ts +9 -0
  212. package/src/builtins/io/io.ts +355 -0
  213. package/src/builtins/net/net.ts +502 -0
  214. package/src/components/ImportStatement.tsx +115 -0
  215. package/src/components/ModuleDirectory.tsx +18 -0
  216. package/src/components/Name.tsx +11 -0
  217. package/src/components/Reference.tsx +18 -0
  218. package/src/components/SourceDirectory.tsx +32 -0
  219. package/src/components/SourceFile.tsx +74 -0
  220. package/src/components/doc/comment.test.tsx +278 -0
  221. package/src/components/doc/comment.tsx +40 -0
  222. package/src/components/function/function.test.tsx +387 -0
  223. package/src/components/function/function.tsx +194 -0
  224. package/src/components/index.ts +15 -0
  225. package/src/components/interface/declaration.tsx +250 -0
  226. package/src/components/interface/interface.test.tsx +390 -0
  227. package/src/components/package.test.tsx +63 -0
  228. package/src/components/parameters/parameters.tsx +74 -0
  229. package/src/components/parameters/typeparameters.tsx +78 -0
  230. package/src/components/pointer/pointer.tsx +12 -0
  231. package/src/components/stc/index.ts +27 -0
  232. package/src/components/struct/declaration.tsx +228 -0
  233. package/src/components/struct/struct.test.tsx +558 -0
  234. package/src/components/type/declaration.tsx +93 -0
  235. package/src/components/var/declaration.tsx +138 -0
  236. package/src/components/var/var-declaration.test.tsx +236 -0
  237. package/src/context/package.ts +13 -0
  238. package/src/create-module.test.tsx +128 -0
  239. package/src/create-module.ts +347 -0
  240. package/src/index.ts +5 -0
  241. package/src/name-policy.ts +65 -0
  242. package/src/scopes/contexts.ts +45 -0
  243. package/src/scopes/factories.ts +29 -0
  244. package/src/scopes/function.ts +22 -0
  245. package/src/scopes/go.ts +18 -0
  246. package/src/scopes/index.ts +9 -0
  247. package/src/scopes/lexical.ts +14 -0
  248. package/src/scopes/module.ts +35 -0
  249. package/src/scopes/named-type.ts +49 -0
  250. package/src/scopes/package.ts +55 -0
  251. package/src/scopes/source-file.ts +66 -0
  252. package/src/symbols/factories.ts +234 -0
  253. package/src/symbols/function.ts +17 -0
  254. package/src/symbols/go.ts +82 -0
  255. package/src/symbols/index.ts +6 -0
  256. package/src/symbols/named-type.ts +90 -0
  257. package/src/symbols/package.ts +54 -0
  258. package/src/symbols/reference.ts +87 -0
  259. package/temp/api.json +8753 -0
  260. package/test/utils.tsx +77 -0
  261. package/test/vitest.setup.ts +1 -0
  262. package/tsconfig.json +15 -0
  263. package/tsdoc-metadata.json +11 -0
  264. package/vitest.config.ts +13 -0
@@ -0,0 +1,502 @@
1
+ import { createModule, StrictDescriptor } from "../../create-module.js";
2
+ import { ioRef } from "../io/io.js";
3
+
4
+ export const net = createModule(
5
+ "net",
6
+ {
7
+ kind: "package",
8
+ members: {
9
+ http: {
10
+ kind: "package",
11
+ members: {
12
+ MethodGet: { kind: "var" },
13
+ MethodHead: { kind: "var" },
14
+ MethodPost: { kind: "var" },
15
+ MethodPut: { kind: "var" },
16
+ MethodPatch: { kind: "var" },
17
+ MethodDelete: { kind: "var" },
18
+ MethodConnect: { kind: "var" },
19
+ MethodOptions: { kind: "var" },
20
+ MethodTrace: { kind: "var" },
21
+ StatusContinue: { kind: "var" },
22
+ StatusSwitchingProtocols: { kind: "var" },
23
+ StatusProcessing: { kind: "var" },
24
+ StatusEarlyHints: { kind: "var" },
25
+ StatusOK: { kind: "var" },
26
+ StatusCreated: { kind: "var" },
27
+ StatusAccepted: { kind: "var" },
28
+ StatusNonAuthoritativeInfo: { kind: "var" },
29
+ StatusNoContent: { kind: "var" },
30
+ StatusResetContent: { kind: "var" },
31
+ StatusPartialContent: { kind: "var" },
32
+ StatusMultiStatus: { kind: "var" },
33
+ StatusAlreadyReported: { kind: "var" },
34
+ StatusIMUsed: { kind: "var" },
35
+ StatusMultipleChoices: { kind: "var" },
36
+ StatusMovedPermanently: { kind: "var" },
37
+ StatusFound: { kind: "var" },
38
+ StatusSeeOther: { kind: "var" },
39
+ StatusNotModified: { kind: "var" },
40
+ StatusUseProxy: { kind: "var" },
41
+ StatusTemporaryRedirect: { kind: "var" },
42
+ StatusPermanentRedirect: { kind: "var" },
43
+ StatusBadRequest: { kind: "var" },
44
+ StatusUnauthorized: { kind: "var" },
45
+ StatusPaymentRequired: { kind: "var" },
46
+ StatusForbidden: { kind: "var" },
47
+ StatusNotFound: { kind: "var" },
48
+ StatusMethodNotAllowed: { kind: "var" },
49
+ StatusNotAcceptable: { kind: "var" },
50
+ StatusProxyAuthRequired: { kind: "var" },
51
+ StatusRequestTimeout: { kind: "var" },
52
+ StatusConflict: { kind: "var" },
53
+ StatusGone: { kind: "var" },
54
+ StatusLengthRequired: { kind: "var" },
55
+ StatusPreconditionFailed: { kind: "var" },
56
+ StatusRequestEntityTooLarge: { kind: "var" },
57
+ StatusRequestURITooLong: { kind: "var" },
58
+ StatusUnsupportedMediaType: { kind: "var" },
59
+ StatusRequestedRangeNotSatisfiable: { kind: "var" },
60
+ StatusExpectationFailed: { kind: "var" },
61
+ StatusTeapot: { kind: "var" },
62
+ StatusMisdirectedRequest: { kind: "var" },
63
+ StatusUnprocessableEntity: { kind: "var" },
64
+ StatusLocked: { kind: "var" },
65
+ StatusFailedDependency: { kind: "var" },
66
+ StatusTooEarly: { kind: "var" },
67
+ StatusUpgradeRequired: { kind: "var" },
68
+ StatusPreconditionRequired: { kind: "var" },
69
+ StatusTooManyRequests: { kind: "var" },
70
+ StatusRequestHeaderFieldsTooLarge: { kind: "var" },
71
+ StatusUnavailableForLegalReasons: { kind: "var" },
72
+ StatusInternalServerError: { kind: "var" },
73
+ StatusNotImplemented: { kind: "var" },
74
+ StatusBadGateway: { kind: "var" },
75
+ StatusServiceUnavailable: { kind: "var" },
76
+ StatusGatewayTimeout: { kind: "var" },
77
+ StatusHTTPVersionNotSupported: { kind: "var" },
78
+ StatusVariantAlsoNegotiates: { kind: "var" },
79
+ StatusInsufficientStorage: { kind: "var" },
80
+ StatusLoopDetected: { kind: "var" },
81
+ StatusNotExtended: { kind: "var" },
82
+ StatusNetworkAuthenticationRequired: { kind: "var" },
83
+ DefaultMaxHeaderBytes: { kind: "var" },
84
+ DefaultMaxIdleConnsPerHost: { kind: "var" },
85
+ TimeFormat: { kind: "var" },
86
+ TrailerPrefix: { kind: "var" },
87
+ ErrNotSupported: { kind: "var" },
88
+ ErrMissingBoundary: { kind: "var" },
89
+ ErrNotMultipart: { kind: "var" },
90
+ ErrBodyNotAllowed: { kind: "var" },
91
+ ErrHijacked: { kind: "var" },
92
+ ErrContentLength: { kind: "var" },
93
+ ServerContextKey: { kind: "var" },
94
+ LocalAddrContextKey: { kind: "var" },
95
+ DefaultClient: { kind: "var" },
96
+ DefaultServeMux: { kind: "var" },
97
+ ErrAbortHandler: { kind: "var" },
98
+ ErrBodyReadAfterClose: { kind: "var" },
99
+ ErrHandlerTimeout: { kind: "var" },
100
+ ErrLineTooLong: { kind: "var" },
101
+ ErrMissingFile: { kind: "var" },
102
+ ErrNoCookie: { kind: "var" },
103
+ ErrNoLocation: { kind: "var" },
104
+ ErrSchemeMismatch: { kind: "var" },
105
+ ErrServerClosed: { kind: "var" },
106
+ ErrSkipAltProtocol: { kind: "var" },
107
+ ErrUseLastResponse: { kind: "var" },
108
+ NoBody: { kind: "var" },
109
+ CanonicalHeaderKey: { kind: "function" },
110
+ DetectContentType: { kind: "function" },
111
+ Error: { kind: "function" },
112
+ Handle: { kind: "function" },
113
+ HandleFunc: { kind: "function" },
114
+ ListenAndServe: { kind: "function" },
115
+ ListenAndServeTLS: { kind: "function" },
116
+ MaxBytesReader: { kind: "function" },
117
+ NotFound: { kind: "function" },
118
+ ParseHTTPVersion: { kind: "function" },
119
+ ParseTime: { kind: "function" },
120
+ ProxyFromEnvironment: { kind: "function" },
121
+ ProxyURL: { kind: "function" },
122
+ Redirect: { kind: "function" },
123
+ Serve: { kind: "function" },
124
+ ServeContent: { kind: "function" },
125
+ ServeFile: { kind: "function" },
126
+ ServeFileFS: { kind: "function" },
127
+ ServeTLS: { kind: "function" },
128
+ SetCookie: { kind: "function" },
129
+ StatusText: { kind: "function" },
130
+ Client: {
131
+ kind: "struct",
132
+ members: {
133
+ Transport: { kind: "field" },
134
+ CheckRedirect: { kind: "field" },
135
+ Jar: { kind: "field" },
136
+ Timeout: { kind: "field" },
137
+ CloseIdleConnections: { kind: "method" },
138
+ Do: { kind: "method" },
139
+ Get: { kind: "method" },
140
+ Head: { kind: "method" },
141
+ Post: { kind: "method" },
142
+ PostForm: { kind: "method" },
143
+ },
144
+ },
145
+ ConnState: {
146
+ kind: "type",
147
+ members: {
148
+ String: { kind: "method" },
149
+ },
150
+ },
151
+ StateNew: { kind: "var" },
152
+ StateActive: { kind: "var" },
153
+ StateIdle: { kind: "var" },
154
+ StateHijacked: { kind: "var" },
155
+ StateClosed: { kind: "var" },
156
+ Cookie: {
157
+ kind: "struct",
158
+ members: {
159
+ Name: { kind: "field" },
160
+ Value: { kind: "field" },
161
+ Quoted: { kind: "field" },
162
+ Path: { kind: "field" },
163
+ Domain: { kind: "field" },
164
+ Expires: { kind: "field" },
165
+ RawExpires: { kind: "field" },
166
+ MaxAge: { kind: "field" },
167
+ Secure: { kind: "field" },
168
+ HttpOnly: { kind: "field" },
169
+ SameSite: { kind: "field" },
170
+ Partitioned: { kind: "field" },
171
+ Raw: { kind: "field" },
172
+ Unparsed: { kind: "field" },
173
+ String: { kind: "method" },
174
+ Valid: { kind: "method" },
175
+ },
176
+ },
177
+ ParseCookie: { kind: "function" },
178
+ ParseSetCookie: { kind: "function" },
179
+ CookieJar: {
180
+ kind: "interface",
181
+ members: {
182
+ SetCookies: { kind: "field" },
183
+ Cookies: { kind: "field" },
184
+ },
185
+ },
186
+ CrossOriginProtection: {
187
+ kind: "struct",
188
+ members: {
189
+ AddInsecureBypassPattern: { kind: "method" },
190
+ AddTrustedOrigin: { kind: "method" },
191
+ Check: { kind: "method" },
192
+ Handler: { kind: "method" },
193
+ SetDenyHandler: { kind: "method" },
194
+ },
195
+ },
196
+ NewCrossOriginProtection: { kind: "function" },
197
+ Dir: {
198
+ kind: "type",
199
+ members: {
200
+ Open: { kind: "method" },
201
+ },
202
+ },
203
+ File: {
204
+ kind: "interface",
205
+ members: {
206
+ Closer: { kind: "embed", type: () => ioRef.Closer },
207
+ Reader: { kind: "embed", type: () => ioRef.Reader },
208
+ Seeker: { kind: "embed", type: () => ioRef.Seeker },
209
+ Readdir: { kind: "field" },
210
+ Stat: { kind: "field" },
211
+ },
212
+ },
213
+ FileSystem: {
214
+ kind: "interface",
215
+ members: {
216
+ Open: { kind: "field" },
217
+ },
218
+ },
219
+ FS: { kind: "function" },
220
+ Flusher: {
221
+ kind: "interface",
222
+ members: {
223
+ Flush: { kind: "field" },
224
+ },
225
+ },
226
+ HTTP2Config: {
227
+ kind: "struct",
228
+ members: {
229
+ MaxConcurrentStreams: { kind: "field" },
230
+ MaxDecoderHeaderTableSize: { kind: "field" },
231
+ MaxEncoderHeaderTableSize: { kind: "field" },
232
+ MaxReadFrameSize: { kind: "field" },
233
+ MaxReceiveBufferPerConnection: { kind: "field" },
234
+ MaxReceiveBufferPerStream: { kind: "field" },
235
+ SendPingTimeout: { kind: "field" },
236
+ PingTimeout: { kind: "field" },
237
+ WriteByteTimeout: { kind: "field" },
238
+ CountError: { kind: "field" },
239
+ },
240
+ },
241
+ Handler: {
242
+ kind: "interface",
243
+ members: {
244
+ ServeHTTP: { kind: "field" },
245
+ },
246
+ },
247
+ AllowQuerySemicolons: { kind: "function" },
248
+ FileServer: { kind: "function" },
249
+ FileServerFS: { kind: "function" },
250
+ MaxBytesHandler: { kind: "function" },
251
+ NotFoundHandler: { kind: "function" },
252
+ RedirectHandler: { kind: "function" },
253
+ StripPrefix: { kind: "function" },
254
+ TimeoutHandler: { kind: "function" },
255
+ HandlerFunc: {
256
+ kind: "type",
257
+ members: {
258
+ ServeHTTP: { kind: "method" },
259
+ },
260
+ },
261
+ Header: {
262
+ kind: "type",
263
+ members: {
264
+ Add: { kind: "method" },
265
+ Clone: { kind: "method" },
266
+ Del: { kind: "method" },
267
+ Get: { kind: "method" },
268
+ Set: { kind: "method" },
269
+ Values: { kind: "method" },
270
+ Write: { kind: "method" },
271
+ WriteSubset: { kind: "method" },
272
+ },
273
+ },
274
+ Hijacker: {
275
+ kind: "interface",
276
+ members: {
277
+ Hijack: { kind: "field" },
278
+ },
279
+ },
280
+ MaxBytesError: {
281
+ kind: "struct",
282
+ members: {
283
+ Error: { kind: "method" },
284
+ },
285
+ },
286
+ Protocols: {
287
+ kind: "struct",
288
+ members: {
289
+ HTTP1: { kind: "method" },
290
+ HTTP2: { kind: "method" },
291
+ SetHTTP1: { kind: "method" },
292
+ SetHTTP2: { kind: "method" },
293
+ SetUnencryptedHTTP2: { kind: "method" },
294
+ String: { kind: "method" },
295
+ UnencryptedHTTP2: { kind: "method" },
296
+ },
297
+ },
298
+ PushOptions: {
299
+ kind: "struct",
300
+ members: {
301
+ Method: { kind: "field" },
302
+ Header: { kind: "field" },
303
+ },
304
+ },
305
+ Pusher: {
306
+ kind: "interface",
307
+ members: {
308
+ Push: { kind: "field" },
309
+ },
310
+ },
311
+ Request: {
312
+ kind: "struct",
313
+ members: {
314
+ Method: { kind: "field" },
315
+ URL: { kind: "field" },
316
+ Proto: { kind: "field" },
317
+ ProtoMajor: { kind: "field" },
318
+ ProtoMinor: { kind: "field" },
319
+ Header: { kind: "field" },
320
+ Body: { kind: "field" },
321
+ GetBody: { kind: "field" },
322
+ ContentLength: { kind: "field" },
323
+ TransferEncoding: { kind: "field" },
324
+ Close: { kind: "field" },
325
+ Host: { kind: "field" },
326
+ Form: { kind: "field" },
327
+ PostForm: { kind: "field" },
328
+ MultipartForm: { kind: "field" },
329
+ Trailer: { kind: "field" },
330
+ RemoteAddr: { kind: "field" },
331
+ RequestURI: { kind: "field" },
332
+ TLS: { kind: "field" },
333
+ Cancel: { kind: "field" },
334
+ Response: { kind: "field" },
335
+ Pattern: { kind: "field" },
336
+ AddCookie: { kind: "method" },
337
+ BasicAuth: { kind: "method" },
338
+ Clone: { kind: "method" },
339
+ Context: { kind: "method" },
340
+ Cookie: { kind: "method" },
341
+ Cookies: { kind: "method" },
342
+ CookiesNamed: { kind: "method" },
343
+ FormFile: { kind: "method" },
344
+ FormValue: { kind: "method" },
345
+ MultipartReader: { kind: "method" },
346
+ ParseForm: { kind: "method" },
347
+ ParseMultipartForm: { kind: "method" },
348
+ PathValue: { kind: "method" },
349
+ PostFormValue: { kind: "method" },
350
+ ProtoAtLeast: { kind: "method" },
351
+ Referer: { kind: "method" },
352
+ SetBasicAuth: { kind: "method" },
353
+ SetPathValue: { kind: "method" },
354
+ UserAgent: { kind: "method" },
355
+ WithContext: { kind: "method" },
356
+ Write: { kind: "method" },
357
+ WriteProxy: { kind: "method" },
358
+ },
359
+ },
360
+ NewRequest: { kind: "function" },
361
+ NewRequestWithContext: { kind: "function" },
362
+ ReadRequest: { kind: "function" },
363
+ Response: {
364
+ kind: "struct",
365
+ members: {
366
+ Status: { kind: "field" },
367
+ StatusCode: { kind: "field" },
368
+ Proto: { kind: "field" },
369
+ ProtoMajor: { kind: "field" },
370
+ ProtoMinor: { kind: "field" },
371
+ Header: { kind: "field" },
372
+ Body: { kind: "field" },
373
+ ContentLength: { kind: "field" },
374
+ TransferEncoding: { kind: "field" },
375
+ Close: { kind: "field" },
376
+ Uncompressed: { kind: "field" },
377
+ Trailer: { kind: "field" },
378
+ Request: { kind: "field" },
379
+ TLS: { kind: "field" },
380
+ Cookies: { kind: "method" },
381
+ Location: { kind: "method" },
382
+ ProtoAtLeast: { kind: "method" },
383
+ Write: { kind: "method" },
384
+ },
385
+ },
386
+ Get: { kind: "function" },
387
+ Head: { kind: "function" },
388
+ Post: { kind: "function" },
389
+ PostForm: { kind: "function" },
390
+ ReadResponse: { kind: "function" },
391
+ ResponseController: {
392
+ kind: "struct",
393
+ members: {
394
+ EnableFullDuplex: { kind: "method" },
395
+ Flush: { kind: "method" },
396
+ Hijack: { kind: "method" },
397
+ SetReadDeadline: { kind: "method" },
398
+ SetWriteDeadline: { kind: "method" },
399
+ },
400
+ },
401
+ NewResponseController: { kind: "function" },
402
+ ResponseWriter: {
403
+ kind: "interface",
404
+ members: {
405
+ Header: { kind: "field" },
406
+ Write: { kind: "field" },
407
+ WriteHeader: { kind: "field" },
408
+ },
409
+ },
410
+ RoundTripper: {
411
+ kind: "interface",
412
+ members: {
413
+ RoundTrip: { kind: "field" },
414
+ },
415
+ },
416
+ DefaultTransport: { kind: "var" },
417
+ NewFileTransport: { kind: "function" },
418
+ SameSite: { kind: "type", members: {} },
419
+ SameSiteDefaultMode: { kind: "var" },
420
+ SameSiteLaxMode: { kind: "var" },
421
+ SameSiteStrictMode: { kind: "var" },
422
+ SameSiteNoneMode: { kind: "var" },
423
+ ServeMux: {
424
+ kind: "struct",
425
+ members: {
426
+ Handle: { kind: "method" },
427
+ HandleFunc: { kind: "method" },
428
+ Handler: { kind: "method" },
429
+ ServeHTTP: { kind: "method" },
430
+ },
431
+ },
432
+ NewServeMux: { kind: "function" },
433
+ Server: {
434
+ kind: "struct",
435
+ members: {
436
+ Addr: { kind: "field" },
437
+ Handler: { kind: "field" },
438
+ DisableGeneralOptionsHandler: { kind: "field" },
439
+ TLSConfig: { kind: "field" },
440
+ ReadTimeout: { kind: "field" },
441
+ ReadHeaderTimeout: { kind: "field" },
442
+ WriteTimeout: { kind: "field" },
443
+ IdleTimeout: { kind: "field" },
444
+ MaxHeaderBytes: { kind: "field" },
445
+ TLSNextProto: { kind: "field" },
446
+ ConnState: { kind: "field" },
447
+ ErrorLog: { kind: "field" },
448
+ BaseContext: { kind: "field" },
449
+ ConnContext: { kind: "field" },
450
+ HTTP2: { kind: "field" },
451
+ Protocols: { kind: "field" },
452
+ Close: { kind: "method" },
453
+ ListenAndServe: { kind: "method" },
454
+ ListenAndServeTLS: { kind: "method" },
455
+ RegisterOnShutdown: { kind: "method" },
456
+ Serve: { kind: "method" },
457
+ ServeTLS: { kind: "method" },
458
+ SetKeepAlivesEnabled: { kind: "method" },
459
+ Shutdown: { kind: "method" },
460
+ },
461
+ },
462
+ Transport: {
463
+ kind: "struct",
464
+ members: {
465
+ Proxy: { kind: "field" },
466
+ OnProxyConnectResponse: { kind: "field" },
467
+ DialContext: { kind: "field" },
468
+ Dial: { kind: "field" },
469
+ DialTLSContext: { kind: "field" },
470
+ DialTLS: { kind: "field" },
471
+ TLSClientConfig: { kind: "field" },
472
+ TLSHandshakeTimeout: { kind: "field" },
473
+ DisableKeepAlives: { kind: "field" },
474
+ DisableCompression: { kind: "field" },
475
+ MaxIdleConns: { kind: "field" },
476
+ MaxIdleConnsPerHost: { kind: "field" },
477
+ MaxConnsPerHost: { kind: "field" },
478
+ IdleConnTimeout: { kind: "field" },
479
+ ResponseHeaderTimeout: { kind: "field" },
480
+ ExpectContinueTimeout: { kind: "field" },
481
+ TLSNextProto: { kind: "field" },
482
+ ProxyConnectHeader: { kind: "field" },
483
+ GetProxyConnectHeader: { kind: "field" },
484
+ MaxResponseHeaderBytes: { kind: "field" },
485
+ WriteBufferSize: { kind: "field" },
486
+ ReadBufferSize: { kind: "field" },
487
+ ForceAttemptHTTP2: { kind: "field" },
488
+ HTTP2: { kind: "field" },
489
+ Protocols: { kind: "field" },
490
+ CancelRequest: { kind: "method" },
491
+ Clone: { kind: "method" },
492
+ CloseIdleConnections: { kind: "method" },
493
+ RegisterProtocol: { kind: "method" },
494
+ RoundTrip: { kind: "method" },
495
+ },
496
+ },
497
+ },
498
+ },
499
+ },
500
+ } satisfies StrictDescriptor,
501
+ true,
502
+ );
@@ -0,0 +1,115 @@
1
+ import { computed, For, Indent, memo } from "@alloy-js/core";
2
+ import { basename, join, sep } from "pathe";
3
+ import { useModule } from "../scopes/module.js";
4
+ import { ImportRecords } from "../scopes/source-file.js";
5
+ import { GoSymbol } from "../symbols/go.js";
6
+
7
+ export interface ImportStatementProps {
8
+ path: string;
9
+ local?: boolean;
10
+ package?: GoSymbol;
11
+ dot?: boolean;
12
+ blank?: boolean;
13
+ }
14
+
15
+ export interface ImportStatementsProps {
16
+ records: ImportRecords;
17
+ }
18
+
19
+ export function ImportStatements(props: ImportStatementsProps) {
20
+ // TODO: allow for manual imports and . imports
21
+ const imports = computed(() => {
22
+ const module = useModule();
23
+ const moduleName = module?.name;
24
+ const builtins: ImportStatementProps[] = [];
25
+ const thirdParty: ImportStatementProps[] = [];
26
+ const local: ImportStatementProps[] = [];
27
+ for (const [pkg, sym] of props.records) {
28
+ const importPath = pkg.fullyQualifiedName;
29
+ if (moduleName && importPath.startsWith(moduleName + sep)) {
30
+ local.push({
31
+ path: importPath,
32
+ package: sym,
33
+ });
34
+ } else if (pkg.builtin) {
35
+ builtins.push({
36
+ path: importPath,
37
+ package: sym,
38
+ });
39
+ } else {
40
+ thirdParty.push({
41
+ path: importPath,
42
+ package: sym,
43
+ });
44
+ }
45
+ }
46
+ local.sort((a, b) => a.path.localeCompare(b.path));
47
+ thirdParty.sort((a, b) => a.path.localeCompare(b.path));
48
+ builtins.sort((a, b) => a.path.localeCompare(b.path));
49
+ const result: (ImportStatementProps | null)[] = [];
50
+ result.push(...builtins);
51
+ if (result.length > 0 && thirdParty.length > 0) {
52
+ result.push(null);
53
+ }
54
+ result.push(...thirdParty);
55
+ if (result.length > 0 && local.length > 0) {
56
+ result.push(null);
57
+ }
58
+ result.push(...local);
59
+ return result;
60
+ });
61
+
62
+ const rendered = memo(() => {
63
+ if (imports.value.length > 1) {
64
+ return (
65
+ <>
66
+ import (
67
+ <Indent hardline>
68
+ <For each={imports}>
69
+ {(imp) => (imp === null ? <></> : <ImportStatement {...imp} />)}
70
+ </For>
71
+ </Indent>
72
+ <hbr />)
73
+ </>
74
+ );
75
+ } else if (imports.value.length === 1 && imports.value[0] !== null) {
76
+ return <SingleImportStatement {...imports.value[0]} />;
77
+ } else {
78
+ return null;
79
+ }
80
+ });
81
+
82
+ return <>{rendered}</>;
83
+ }
84
+
85
+ function ImportStatement(props: ImportStatementProps) {
86
+ return memo(() => {
87
+ const module = useModule();
88
+ if (props.local) {
89
+ if (!module)
90
+ throw new Error("cannot import local package without module defined");
91
+ props.path = join(module.name, props.path);
92
+ }
93
+
94
+ const parts: string[] = [];
95
+ if (props.blank) {
96
+ parts.push("_ ");
97
+ } else if (props.dot) {
98
+ parts.push(". ");
99
+ } else if (props.package) {
100
+ if (props.package.name !== basename(props.path)) {
101
+ parts.push(props.package.name + " ");
102
+ }
103
+ }
104
+ parts.push(`"${props.path}"`);
105
+ return parts;
106
+ });
107
+ }
108
+
109
+ export function SingleImportStatement(props: ImportStatementProps) {
110
+ return (
111
+ <>
112
+ import <ImportStatement {...props} />
113
+ </>
114
+ );
115
+ }
@@ -0,0 +1,18 @@
1
+ import { Children, Scope, SourceDirectory } from "@alloy-js/core";
2
+ import { createGoModuleScope } from "../scopes/module.js";
3
+
4
+ export interface ModuleDirectoryProps {
5
+ children?: Children;
6
+ name: string;
7
+ path?: string;
8
+ }
9
+
10
+ export function ModuleDirectory(props: ModuleDirectoryProps) {
11
+ const moduleScope = createGoModuleScope(props.name);
12
+
13
+ return (
14
+ <SourceDirectory path={props.path ?? "."}>
15
+ <Scope value={moduleScope}>{props.children}</Scope>
16
+ </SourceDirectory>
17
+ );
18
+ }
@@ -0,0 +1,11 @@
1
+ import { DeclarationContext, useContext } from "@alloy-js/core";
2
+
3
+ // the name within the current declaration
4
+ export function Name() {
5
+ const declSymbol = useContext(DeclarationContext);
6
+ if (!declSymbol) {
7
+ throw new Error("missing declaration context");
8
+ }
9
+
10
+ return <>{declSymbol.name}</>;
11
+ }
@@ -0,0 +1,18 @@
1
+ import { computed, emitSymbol, Refkey } from "@alloy-js/core";
2
+ import { ref } from "../symbols/index.js";
3
+
4
+ export interface ReferenceProps {
5
+ refkey: Refkey;
6
+ }
7
+
8
+ // used to resolve refkey references within source files
9
+ export function Reference({ refkey }: ReferenceProps) {
10
+ const reference = ref(refkey);
11
+
12
+ const computedRef = computed(() => reference());
13
+ if (computedRef.value[1]) {
14
+ emitSymbol(computedRef.value[1]);
15
+ }
16
+
17
+ return <>{computedRef.value[0]}</>;
18
+ }