@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 @@
1
+ {"version":3,"names":[],"sources":["../../../src/scopes/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,cAAc,aAAa;AAC3B,cAAc,iBAAiB;AAC/B,cAAc,cAAc;AAC5B,cAAc,kBAAkB","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import { type OutputSpace } from "@alloy-js/core";
2
+ import { GoScope } from "./go.js";
3
+ export declare class GoLexicalScope extends GoScope {
4
+ static readonly declarationSpaces: string[];
5
+ get values(): OutputSpace;
6
+ get types(): OutputSpace;
7
+ }
8
+ //# sourceMappingURL=lexical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexical.d.ts","sourceRoot":"","sources":["../../../src/scopes/lexical.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,cAAe,SAAQ,OAAO;IACzC,gBAAuB,iBAAiB,WAAuB;IAE/D,IAAI,MAAM,IAAI,WAAW,CAExB;IAED,IAAI,KAAK,IAAI,WAAW,CAEvB;CACF"}
@@ -0,0 +1,11 @@
1
+ import { GoScope } from "./go.js";
2
+ export class GoLexicalScope extends GoScope {
3
+ static declarationSpaces = ["values", "types"];
4
+ get values() {
5
+ return this.spaceFor("values");
6
+ }
7
+ get types() {
8
+ return this.spaceFor("types");
9
+ }
10
+ }
11
+ //# sourceMappingURL=lexical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GoScope","GoLexicalScope","declarationSpaces","values","spaceFor","types"],"sources":["../../../src/scopes/lexical.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,OAAO,QAAQ,SAAS;AAEjC,OAAO,MAAMC,cAAc,SAASD,OAAO,CAAC;EAC1C,OAAuBE,iBAAiB,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;EAE9D,IAAIC,MAAMA,CAAA,EAAgB;IACxB,OAAO,IAAI,CAACC,QAAQ,CAAC,QAAQ,CAAC;EAChC;EAEA,IAAIC,KAAKA,CAAA,EAAgB;IACvB,OAAO,IAAI,CAACD,QAAQ,CAAC,OAAO,CAAC;EAC/B;AACF","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import { GoScope } from "./go.js";
2
+ export declare class GoModuleScope extends GoScope {
3
+ #private;
4
+ constructor(name: string, builtin?: boolean);
5
+ get builtin(): boolean;
6
+ }
7
+ export declare function createGoModuleScope(name: string): GoModuleScope;
8
+ export declare function useModule(): GoModuleScope;
9
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/scopes/module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,aAAc,SAAQ,OAAO;;gBAC5B,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ;IAMzC,IAAI,OAAO,YAEV;CACF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,iBAO/C;AAED,wBAAgB,SAAS,kBAUxB"}
@@ -0,0 +1,31 @@
1
+ import { useScope } from "@alloy-js/core";
2
+ import { GoScope } from "./go.js";
3
+ export class GoModuleScope extends GoScope {
4
+ constructor(name, builtin = false) {
5
+ super(name, undefined);
6
+ this.#builtin = builtin;
7
+ }
8
+ #builtin;
9
+ get builtin() {
10
+ return this.#builtin;
11
+ }
12
+ }
13
+ export function createGoModuleScope(name) {
14
+ const parentScope = useScope();
15
+ if (parentScope) {
16
+ throw new Error("Modules can only be created at the top level");
17
+ }
18
+ const scope = new GoModuleScope(name);
19
+ return scope;
20
+ }
21
+ export function useModule() {
22
+ let scope = useScope();
23
+ while (scope) {
24
+ if (scope instanceof GoModuleScope) {
25
+ return scope;
26
+ }
27
+ scope = scope.parent;
28
+ }
29
+ throw new Error("A module is not in scope");
30
+ }
31
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useScope","GoScope","GoModuleScope","constructor","name","builtin","undefined","createGoModuleScope","parentScope","Error","scope","useModule","parent"],"sources":["../../../src/scopes/module.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAsBA,QAAQ,QAAQ,gBAAgB;AACtD,SAASC,OAAO,QAAQ,SAAS;AAEjC,OAAO,MAAMC,aAAa,SAASD,OAAO,CAAC;EACzCE,WAAWA,CAACC,IAAY,EAAEC,OAAO,GAAG,KAAK,EAAE;IACzC,KAAK,CAACD,IAAI,EAAEE,SAAS,CAAC;IACtB,IAAI,CAAC,CAACD,OAAO,GAAGA,OAAO;EACzB;EAEA,CAACA,OAAO;EACR,IAAIA,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAC,CAACA,OAAO;EACtB;AACF;AAEA,OAAO,SAASE,mBAAmBA,CAACH,IAAY,EAAE;EAChD,MAAMI,WAAW,GAAGR,QAAQ,CAAC,CAAC;EAC9B,IAAIQ,WAAW,EAAE;IACf,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;EACjE;EACA,MAAMC,KAAK,GAAG,IAAIR,aAAa,CAACE,IAAI,CAAC;EACrC,OAAOM,KAAK;AACd;AAEA,OAAO,SAASC,SAASA,CAAA,EAAG;EAC1B,IAAID,KAA8B,GAAGV,QAAQ,CAAC,CAAC;EAC/C,OAAOU,KAAK,EAAE;IACZ,IAAIA,KAAK,YAAYR,aAAa,EAAE;MAClC,OAAOQ,KAAK;IACd;IACAA,KAAK,GAAGA,KAAK,CAACE,MAAM;EACtB;EAEA,MAAM,IAAIH,KAAK,CAAC,0BAA0B,CAAC;AAC7C","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import { type OutputScopeOptions } from "@alloy-js/core";
2
+ import { NamedTypeSymbol } from "../symbols/named-type.js";
3
+ import { GoScope } from "./go.js";
4
+ import { GoModuleScope } from "./module.js";
5
+ import { GoSourceFileScope } from "./source-file.js";
6
+ /**
7
+ * This scope contains NamedTypeSymbols for types that are declared in
8
+ * containers like packages. This scope is a member scope which whose
9
+ * member symbol is a NamedTypeSymbol.
10
+ */
11
+ export declare class GoNamedTypeScope extends GoScope {
12
+ static readonly declarationSpaces: never[];
13
+ constructor(ownerSymbol: NamedTypeSymbol, parentScope: GoNamedTypeScope | GoSourceFileScope | GoModuleScope | undefined, options?: OutputScopeOptions);
14
+ get ownerSymbol(): NamedTypeSymbol;
15
+ get enclosingPackage(): import("../index.js").PackageSymbol | undefined;
16
+ get members(): import("@alloy-js/core").OutputMemberSpace;
17
+ /**
18
+ * For now, we stuff type parameters into the member scope. This is to ensure
19
+ * name conflicts are handled correctly.
20
+ */
21
+ get typeParameters(): import("@alloy-js/core").OutputMemberSpace;
22
+ }
23
+ //# sourceMappingURL=named-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named-type.d.ts","sourceRoot":"","sources":["../../../src/scopes/named-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,OAAO;IAC3C,gBAAuB,iBAAiB,UAAM;gBAG5C,WAAW,EAAE,eAAe,EAC5B,WAAW,EACP,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,GACb,SAAS,EACb,OAAO,GAAE,kBAAuB;IAQlC,IAAI,WAAW,IAAI,eAAe,CAEjC;IAED,IAAI,gBAAgB,oDAEnB;IAED,IAAI,OAAO,+CAEV;IAED;;;OAGG;IACH,IAAI,cAAc,+CAEjB;CACF"}
@@ -0,0 +1,33 @@
1
+ import { GoScope } from "./go.js";
2
+ /**
3
+ * This scope contains NamedTypeSymbols for types that are declared in
4
+ * containers like packages. This scope is a member scope which whose
5
+ * member symbol is a NamedTypeSymbol.
6
+ */
7
+ export class GoNamedTypeScope extends GoScope {
8
+ static declarationSpaces = [];
9
+ constructor(ownerSymbol, parentScope, options = {}) {
10
+ super(`${ownerSymbol.name} scope`, parentScope, {
11
+ ownerSymbol,
12
+ ...options
13
+ });
14
+ }
15
+ get ownerSymbol() {
16
+ return super.ownerSymbol;
17
+ }
18
+ get enclosingPackage() {
19
+ return this.ownerSymbol.enclosingPackage;
20
+ }
21
+ get members() {
22
+ return this.ownerSymbol.members;
23
+ }
24
+
25
+ /**
26
+ * For now, we stuff type parameters into the member scope. This is to ensure
27
+ * name conflicts are handled correctly.
28
+ */
29
+ get typeParameters() {
30
+ return this.ownerSymbol.members;
31
+ }
32
+ }
33
+ //# sourceMappingURL=named-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GoScope","GoNamedTypeScope","declarationSpaces","constructor","ownerSymbol","parentScope","options","name","enclosingPackage","members","typeParameters"],"sources":["../../../src/scopes/named-type.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,OAAO,QAAQ,SAAS;AAIjC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,SAASD,OAAO,CAAC;EAC5C,OAAuBE,iBAAiB,GAAG,EAAE;EAE7CC,WAAWA,CACTC,WAA4B,EAC5BC,WAIa,EACbC,OAA2B,GAAG,CAAC,CAAC,EAChC;IACA,KAAK,CAAC,GAAGF,WAAW,CAACG,IAAI,QAAQ,EAAEF,WAAW,EAAE;MAC9CD,WAAW;MACX,GAAGE;IACL,CAAC,CAAC;EACJ;EAEA,IAAIF,WAAWA,CAAA,EAAoB;IACjC,OAAO,KAAK,CAACA,WAAW;EAC1B;EAEA,IAAII,gBAAgBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACJ,WAAW,CAACI,gBAAgB;EAC1C;EAEA,IAAIC,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACL,WAAW,CAACK,OAAO;EACjC;;EAEA;AACF;AACA;AACA;EACE,IAAIC,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACN,WAAW,CAACK,OAAO;EACjC;AACF","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import type { PackageSymbol } from "../symbols/package.js";
2
+ import { GoModuleScope } from "./module.js";
3
+ import { GoNamedTypeScope } from "./named-type.js";
4
+ export declare class GoPackageScope extends GoNamedTypeScope {
5
+ constructor(packageSymbol: PackageSymbol, parentScope?: GoPackageScope | GoModuleScope);
6
+ get ownerSymbol(): PackageSymbol;
7
+ }
8
+ export declare function createGoPackageScope(packageSymbol: PackageSymbol): GoPackageScope;
9
+ export declare function useEnclosingPackageScope(): GoPackageScope | undefined;
10
+ export declare function usePackage(): GoPackageScope;
11
+ //# sourceMappingURL=package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/scopes/package.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,qBAAa,cAAe,SAAQ,gBAAgB;gBAEhD,aAAa,EAAE,aAAa,EAC5B,WAAW,CAAC,EAAE,cAAc,GAAG,aAAa;IAK9C,IAAI,WAAW,IACe,aAAa,CAC1C;CACF;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,kBAehE;AAED,wBAAgB,wBAAwB,IAAI,cAAc,GAAG,SAAS,CAOrE;AAED,wBAAgB,UAAU,mBAUzB"}
@@ -0,0 +1,39 @@
1
+ import { useScope } from "@alloy-js/core";
2
+ import { GoModuleScope } from "./module.js";
3
+ import { GoNamedTypeScope } from "./named-type.js";
4
+ export class GoPackageScope extends GoNamedTypeScope {
5
+ constructor(packageSymbol, parentScope) {
6
+ super(packageSymbol, parentScope, {
7
+ binder: packageSymbol.binder
8
+ });
9
+ }
10
+ get ownerSymbol() {
11
+ return super.ownerSymbol;
12
+ }
13
+ }
14
+ export function createGoPackageScope(packageSymbol) {
15
+ const parentScope = useScope();
16
+ if (parentScope && !(parentScope instanceof GoPackageScope || parentScope instanceof GoModuleScope)) {
17
+ throw new Error("Packages can only be created within a package or module");
18
+ }
19
+ const scope = new GoPackageScope(packageSymbol, parentScope);
20
+ return scope;
21
+ }
22
+ export function useEnclosingPackageScope() {
23
+ const currentScope = useScope();
24
+ if (!(currentScope instanceof GoPackageScope)) {
25
+ return undefined;
26
+ }
27
+ return currentScope;
28
+ }
29
+ export function usePackage() {
30
+ let scope = useScope();
31
+ while (scope) {
32
+ if (scope instanceof GoPackageScope) {
33
+ return scope;
34
+ }
35
+ scope = scope.parent;
36
+ }
37
+ throw new Error("A package is not in scope");
38
+ }
39
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useScope","GoModuleScope","GoNamedTypeScope","GoPackageScope","constructor","packageSymbol","parentScope","binder","ownerSymbol","createGoPackageScope","Error","scope","useEnclosingPackageScope","currentScope","undefined","usePackage","parent"],"sources":["../../../src/scopes/package.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAsBA,QAAQ,QAAQ,gBAAgB;AAEtD,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,gBAAgB,QAAQ,iBAAiB;AAElD,OAAO,MAAMC,cAAc,SAASD,gBAAgB,CAAC;EACnDE,WAAWA,CACTC,aAA4B,EAC5BC,WAA4C,EAC5C;IACA,KAAK,CAACD,aAAa,EAAEC,WAAW,EAAE;MAAEC,MAAM,EAAEF,aAAa,CAACE;IAAO,CAAC,CAAC;EACrE;EAEA,IAAIC,WAAWA,CAAA,EAAG;IAChB,OAAO,KAAK,CAACA,WAAW;EAC1B;AACF;AAEA,OAAO,SAASC,oBAAoBA,CAACJ,aAA4B,EAAE;EACjE,MAAMC,WAAW,GAAGN,QAAQ,CAAC,CAAC;EAC9B,IACEM,WAAW,IACX,EACEA,WAAW,YAAYH,cAAc,IACrCG,WAAW,YAAYL,aAAa,CACrC,EACD;IACA,MAAM,IAAIS,KAAK,CAAC,yDAAyD,CAAC;EAC5E;EAEA,MAAMC,KAAK,GAAG,IAAIR,cAAc,CAACE,aAAa,EAAEC,WAAW,CAAC;EAE5D,OAAOK,KAAK;AACd;AAEA,OAAO,SAASC,wBAAwBA,CAAA,EAA+B;EACrE,MAAMC,YAAY,GAAGb,QAAQ,CAAC,CAAC;EAC/B,IAAI,EAAEa,YAAY,YAAYV,cAAc,CAAC,EAAE;IAC7C,OAAOW,SAAS;EAClB;EAEA,OAAOD,YAAY;AACrB;AAEA,OAAO,SAASE,UAAUA,CAAA,EAAG;EAC3B,IAAIJ,KAA8B,GAAGX,QAAQ,CAAC,CAAC;EAC/C,OAAOW,KAAK,EAAE;IACZ,IAAIA,KAAK,YAAYR,cAAc,EAAE;MACnC,OAAOQ,KAAK;IACd;IACAA,KAAK,GAAGA,KAAK,CAACK,MAAM;EACtB;EAEA,MAAM,IAAIN,KAAK,CAAC,2BAA2B,CAAC;AAC9C","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { OutputScopeOptions } from "@alloy-js/core";
2
+ import { GoSymbol } from "../symbols/go.js";
3
+ import { PackageSymbol } from "../symbols/package.js";
4
+ import { GoLexicalScope } from "./lexical.js";
5
+ import { GoPackageScope } from "./package.js";
6
+ export type ImportRecords = Map<PackageSymbol, GoSymbol>;
7
+ export declare class GoSourceFileScope extends GoLexicalScope {
8
+ #private;
9
+ constructor(name: string, parent?: GoPackageScope, options?: OutputScopeOptions);
10
+ get imports(): import("@vue/reactivity").ShallowReactive<ImportRecords>;
11
+ get parent(): GoPackageScope;
12
+ set parent(v: GoPackageScope);
13
+ addImport(import_: PackageSymbol): GoSymbol;
14
+ get enclosingPackage(): PackageSymbol | undefined;
15
+ }
16
+ export declare function useSourceFileScope(): GoSourceFileScope | undefined;
17
+ //# sourceMappingURL=source-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-file.d.ts","sourceRoot":"","sources":["../../../src/scopes/source-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAEzD,qBAAa,iBAAkB,SAAQ,cAAc;;gBAIjD,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,kBAAkB;IAK9B,IAAI,OAAO,6DAEV;IAED,IAAI,MAAM,IAII,cAAc,CAF3B;IAED,IAAI,MAAM,CAAC,CAAC,EAAE,cAAc,EAE3B;IAED,SAAS,CAAC,OAAO,EAAE,aAAa;IAchC,IAAI,gBAAgB,IAAI,aAAa,GAAG,SAAS,CAEhD;CACF;AAED,wBAAgB,kBAAkB,kCAUjC"}
@@ -0,0 +1,42 @@
1
+ import { shallowReactive, useScope } from "@alloy-js/core";
2
+ import { GoSymbol } from "../symbols/go.js";
3
+ import { GoLexicalScope } from "./lexical.js";
4
+ export class GoSourceFileScope extends GoLexicalScope {
5
+ #imports = shallowReactive(new Map());
6
+ constructor(name, parent, options) {
7
+ super(name, parent, options);
8
+ }
9
+ get imports() {
10
+ return this.#imports;
11
+ }
12
+ get parent() {
13
+ return super.parent;
14
+ }
15
+ set parent(v) {
16
+ super.parent = v;
17
+ }
18
+ addImport(import_) {
19
+ if (this.#imports.has(import_)) {
20
+ return this.#imports.get(import_);
21
+ }
22
+ const localSymbol = new GoSymbol(import_.name, this.values, {
23
+ aliasTarget: import_
24
+ });
25
+ this.#imports.set(import_, localSymbol);
26
+ return localSymbol;
27
+ }
28
+ get enclosingPackage() {
29
+ return this.parent?.ownerSymbol;
30
+ }
31
+ }
32
+ export function useSourceFileScope() {
33
+ let scope = useScope();
34
+ while (scope) {
35
+ if (scope instanceof GoSourceFileScope) {
36
+ return scope;
37
+ }
38
+ scope = scope.parent;
39
+ }
40
+ return undefined;
41
+ }
42
+ //# sourceMappingURL=source-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["shallowReactive","useScope","GoSymbol","GoLexicalScope","GoSourceFileScope","imports","Map","constructor","name","parent","options","v","addImport","import_","has","get","localSymbol","values","aliasTarget","set","enclosingPackage","ownerSymbol","useSourceFileScope","scope","undefined"],"sources":["../../../src/scopes/source-file.ts"],"sourcesContent":[null],"mappings":"AAAA,SAGEA,eAAe,EACfC,QAAQ,QACH,gBAAgB;AACvB,SAASC,QAAQ,QAAQ,kBAAkB;AAE3C,SAASC,cAAc,QAAQ,cAAc;AAK7C,OAAO,MAAMC,iBAAiB,SAASD,cAAc,CAAC;EACpD,CAACE,OAAO,GAAGL,eAAe,CAAgB,IAAIM,GAAG,CAAC,CAAC,CAAC;EAEpDC,WAAWA,CACTC,IAAY,EACZC,MAAuB,EACvBC,OAA4B,EAC5B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC9B;EAEA,IAAIL,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAC,CAACA,OAAO;EACtB;EAEA,IAAII,MAAMA,CAAA,EAAG;IACX,OAAO,KAAK,CAACA,MAAM;EACrB;EAEA,IAAIA,MAAMA,CAACE,CAAiB,EAAE;IAC5B,KAAK,CAACF,MAAM,GAAGE,CAAC;EAClB;EAEAC,SAASA,CAACC,OAAsB,EAAE;IAChC,IAAI,IAAI,CAAC,CAACR,OAAO,CAACS,GAAG,CAACD,OAAO,CAAC,EAAE;MAC9B,OAAO,IAAI,CAAC,CAACR,OAAO,CAACU,GAAG,CAACF,OAAO,CAAC;IACnC;IAEA,MAAMG,WAAW,GAAG,IAAId,QAAQ,CAACW,OAAO,CAACL,IAAI,EAAE,IAAI,CAACS,MAAM,EAAE;MAC1DC,WAAW,EAAEL;IACf,CAAC,CAAC;IAEF,IAAI,CAAC,CAACR,OAAO,CAACc,GAAG,CAACN,OAAO,EAAEG,WAAW,CAAC;IAEvC,OAAOA,WAAW;EACpB;EAEA,IAAII,gBAAgBA,CAAA,EAA8B;IAChD,OAAO,IAAI,CAACX,MAAM,EAAEY,WAAW;EACjC;AACF;AAEA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,IAAIC,KAA8B,GAAGtB,QAAQ,CAAC,CAAC;EAC/C,OAAOsB,KAAK,EAAE;IACZ,IAAIA,KAAK,YAAYnB,iBAAiB,EAAE;MACtC,OAAOmB,KAAK;IACd;IACAA,KAAK,GAAGA,KAAK,CAACd,MAAM;EACtB;EAEA,OAAOe,SAAS;AAClB","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { Namekey } from "@alloy-js/core";
2
+ import { GoFunctionScope } from "../scopes/function.js";
3
+ import { GoNamedTypeScope } from "../scopes/named-type.js";
4
+ import { FunctionSymbol } from "./function.js";
5
+ import { GoSymbol, GoSymbolOptions } from "./go.js";
6
+ import { NamedTypeSymbol, NamedTypeSymbolOptions, NamedTypeTypeKind } from "./named-type.js";
7
+ import { PackageSymbol } from "./package.js";
8
+ /**
9
+ * Create a symbol for a parameter in the current func scope.
10
+ */
11
+ export declare function createParameterSymbol(originalName: string | Namekey, options?: GoSymbolOptions): GoSymbol;
12
+ export interface CreateTypeParameterSymbolOptions extends GoSymbolOptions {
13
+ scope?: GoFunctionScope | GoNamedTypeScope;
14
+ }
15
+ export declare function createTypeParameterSymbol(originalName: string | Namekey, options?: CreateTypeParameterSymbolOptions): GoSymbol;
16
+ export declare function createStructMemberSymbol(originalName: string | Namekey, options?: NamedTypeSymbolOptions): NamedTypeSymbol;
17
+ export declare function createInterfaceMemberSymbol(originalName: string | Namekey, options?: NamedTypeSymbolOptions): NamedTypeSymbol;
18
+ export declare function createPackageSymbol(name: string, path?: string): PackageSymbol;
19
+ export declare function createFunctionSymbol(originalName: string | Namekey, isMethod: boolean, options?: GoSymbolOptions): FunctionSymbol;
20
+ export declare function createPropertySymbol(originalName: string | Namekey, options: GoSymbolOptions): GoSymbol;
21
+ export declare function createVariableSymbol(originalName: string | Namekey, options?: GoSymbolOptions): GoSymbol;
22
+ export declare function createTypeSymbol(originalName: string | Namekey, kind: NamedTypeTypeKind, options?: NamedTypeSymbolOptions): NamedTypeSymbol;
23
+ export declare function createNestedStructSymbol(originalName: string | Namekey, kind: NamedTypeTypeKind, options?: NamedTypeSymbolOptions): NamedTypeSymbol;
24
+ export declare function createAnonymousTypeSymbol(kind: NamedTypeTypeKind, options?: NamedTypeSymbolOptions): NamedTypeSymbol;
25
+ //# sourceMappingURL=factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/symbols/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoB,MAAM,gBAAgB,CAAC;AAI3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,eAAoB,YAW9B;AAED,MAAM,WAAW,gCAAiC,SAAQ,eAAe;IACvE,KAAK,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAAC;CAC5C;AACD,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,gCAAqC,YAiB/C;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,sBAA2B,mBAmBrC;AAED,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,sBAA2B,mBAgBrC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,iBAc9D;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,eAAoB,kBAe9B;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,EAAE,eAAe,YAQzB;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,eAAoB,YAa9B;AAED,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,sBAA2B,mBAcrC;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,sBAA2B,mBAcrC;AAID,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,sBAA2B,mBAarC"}
@@ -0,0 +1,114 @@
1
+ import { join } from "pathe";
2
+ import { useGoNamePolicy } from "../name-policy.js";
3
+ import { useGoScope, useNamedTypeScope } from "../scopes/contexts.js";
4
+ import { GoFunctionScope } from "../scopes/function.js";
5
+ import { GoLexicalScope } from "../scopes/lexical.js";
6
+ import { useModule } from "../scopes/module.js";
7
+ import { GoNamedTypeScope } from "../scopes/named-type.js";
8
+ import { useEnclosingPackageScope } from "../scopes/package.js";
9
+ import { FunctionSymbol } from "./function.js";
10
+ import { GoSymbol } from "./go.js";
11
+ import { NamedTypeSymbol } from "./named-type.js";
12
+ import { PackageSymbol } from "./package.js";
13
+
14
+ /**
15
+ * Create a symbol for a parameter in the current func scope.
16
+ */
17
+ export function createParameterSymbol(originalName, options = {}) {
18
+ const scope = useGoScope();
19
+ if (!(scope instanceof GoFunctionScope)) {
20
+ throw new Error(`Can't create parameter symbol outside of a func scope.`);
21
+ }
22
+ return new GoSymbol(originalName, scope.parameters, withNamePolicy(options, "parameter"));
23
+ }
24
+ export function createTypeParameterSymbol(originalName, options = {}) {
25
+ const scope = options.scope ?? useGoScope();
26
+ if (!(scope instanceof GoFunctionScope) && !(scope instanceof GoNamedTypeScope)) {
27
+ throw new Error("Can't create a type parameter symbol outside of a func or named type scope.");
28
+ }
29
+ return new GoSymbol(originalName, scope.typeParameters, withNamePolicy(options, "type-parameter"));
30
+ }
31
+ export function createStructMemberSymbol(originalName, options = {}) {
32
+ const scope = useNamedTypeScope();
33
+ if (scope.ownerSymbol.typeKind !== "struct" && scope.ownerSymbol.typeKind !== "struct-member") {
34
+ throw new Error(`Can't define a field outside of a struct, kind ${scope.ownerSymbol.typeKind}.`);
35
+ }
36
+ return new NamedTypeSymbol(originalName, scope.members, "struct-member", withNamePolicy(options, "struct-member"));
37
+ }
38
+ export function createInterfaceMemberSymbol(originalName, options = {}) {
39
+ const scope = useNamedTypeScope();
40
+ if (scope.ownerSymbol.typeKind !== "interface") {
41
+ throw new Error(`Can't define a field outside of an interface, kind ${scope.ownerSymbol.typeKind}.`);
42
+ }
43
+ return new NamedTypeSymbol(originalName, scope.members, "interface-member", withNamePolicy(options, "interface-member"));
44
+ }
45
+ export function createPackageSymbol(name, path) {
46
+ const scope = useEnclosingPackageScope();
47
+ const pkgSymbol = scope?.ownerSymbol;
48
+ if (!pkgSymbol) {
49
+ const mod = useModule();
50
+ const modName = mod.name;
51
+ const builtin = mod.builtin;
52
+ const pkgPath = path ? join(modName, path) : modName;
53
+ return new PackageSymbol(name, undefined, {
54
+ path: pkgPath,
55
+ builtin
56
+ });
57
+ }
58
+ if (pkgSymbol.members.symbolNames.has(name)) {
59
+ return pkgSymbol.members.symbolNames.get(name);
60
+ }
61
+ return new PackageSymbol(name, pkgSymbol, {
62
+ path
63
+ });
64
+ }
65
+ export function createFunctionSymbol(originalName, isMethod, options = {}) {
66
+ const scope = useGoScope();
67
+ if (!isMethod && scope instanceof GoLexicalScope) {
68
+ return new FunctionSymbol(originalName, scope.types, withNamePolicy(options, "function"));
69
+ }
70
+ return new FunctionSymbol(originalName, undefined, withNamePolicy(options, "function"));
71
+ }
72
+ export function createPropertySymbol(originalName, options) {
73
+ const scope = useNamedTypeScope();
74
+ return new GoSymbol(originalName, scope.members, withNamePolicy(options, "struct-member"));
75
+ }
76
+ export function createVariableSymbol(originalName, options = {}) {
77
+ const scope = useGoScope();
78
+ if (!(scope instanceof GoLexicalScope)) {
79
+ throw new Error(`Can't create variable symbol outside of a lexical scope, got a ${scope.constructor.name}.`);
80
+ }
81
+ return new GoSymbol(originalName, scope.values, withNamePolicy(options, "variable"));
82
+ }
83
+ export function createTypeSymbol(originalName, kind, options = {}) {
84
+ const scope = useGoScope();
85
+ if (scope instanceof GoLexicalScope) {
86
+ return new NamedTypeSymbol(originalName, scope.types, kind, withNamePolicy(options, "type"));
87
+ }
88
+ throw new Error(`Can't create type symbol outside of a lexical scope, got a ${scope.constructor.name}.`);
89
+ }
90
+ export function createNestedStructSymbol(originalName, kind, options = {}) {
91
+ const scope = useGoScope();
92
+ if (scope instanceof GoNamedTypeScope) {
93
+ return new NamedTypeSymbol(originalName, scope.ownerSymbol.members, kind, withNamePolicy(options, "struct-member"));
94
+ }
95
+ throw new Error(`Can't create named anonymous type symbol outside of a NamedType scope, got a ${scope.constructor.name}.`);
96
+ }
97
+ let anonymousTypeID = 0;
98
+ export function createAnonymousTypeSymbol(kind, options = {}) {
99
+ const name = "anonymous_" + anonymousTypeID++ + "_this_should_not_appear_in_output";
100
+ const scope = useGoScope();
101
+ if (scope instanceof GoLexicalScope) {
102
+ return new NamedTypeSymbol(name, scope.types, kind, options);
103
+ } else if (scope instanceof GoNamedTypeScope) {
104
+ return new NamedTypeSymbol(name, scope.ownerSymbol.members, kind, options);
105
+ }
106
+ throw new Error(`Can't create anonymous type symbol outside of a lexical or NamedType scope, got a ${scope.constructor.name}.`);
107
+ }
108
+ function withNamePolicy(options, elementType) {
109
+ return {
110
+ ...options,
111
+ namePolicy: options.namePolicy ?? useGoNamePolicy().for(elementType)
112
+ };
113
+ }
114
+ //# sourceMappingURL=factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["join","useGoNamePolicy","useGoScope","useNamedTypeScope","GoFunctionScope","GoLexicalScope","useModule","GoNamedTypeScope","useEnclosingPackageScope","FunctionSymbol","GoSymbol","NamedTypeSymbol","PackageSymbol","createParameterSymbol","originalName","options","scope","Error","parameters","withNamePolicy","createTypeParameterSymbol","typeParameters","createStructMemberSymbol","ownerSymbol","typeKind","members","createInterfaceMemberSymbol","createPackageSymbol","name","path","pkgSymbol","mod","modName","builtin","pkgPath","undefined","symbolNames","has","get","createFunctionSymbol","isMethod","types","createPropertySymbol","createVariableSymbol","constructor","values","createTypeSymbol","kind","createNestedStructSymbol","anonymousTypeID","createAnonymousTypeSymbol","elementType","namePolicy","for"],"sources":["../../../src/symbols/factories.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { Namekey, OutputSpace } from "@alloy-js/core";
2
+ import { GoSymbol, GoSymbolOptions } from "./go.js";
3
+ /**
4
+ * A symbol for a function in Go, including receivers.
5
+ */
6
+ export declare class FunctionSymbol extends GoSymbol {
7
+ readonly symbolKind = "function";
8
+ constructor(name: string | Namekey, spaces: OutputSpace | undefined, options?: GoSymbolOptions);
9
+ }
10
+ //# sourceMappingURL=function.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/symbols/function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,SAAgB,UAAU,cAAc;gBAGtC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,GAAE,eAAoB;CAIhC"}
@@ -0,0 +1,12 @@
1
+ import { GoSymbol } from "./go.js";
2
+
3
+ /**
4
+ * A symbol for a function in Go, including receivers.
5
+ */
6
+ export class FunctionSymbol extends GoSymbol {
7
+ symbolKind = "function";
8
+ constructor(name, spaces, options = {}) {
9
+ super(name, spaces, options);
10
+ }
11
+ }
12
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GoSymbol","FunctionSymbol","symbolKind","constructor","name","spaces","options"],"sources":["../../../src/symbols/function.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,QAAQ,QAAyB,SAAS;;AAEnD;AACA;AACA;AACA,OAAO,MAAMC,cAAc,SAASD,QAAQ,CAAC;EAC3BE,UAAU,GAAG,UAAU;EAEvCC,WAAWA,CACTC,IAAsB,EACtBC,MAA+B,EAC/BC,OAAwB,GAAG,CAAC,CAAC,EAC7B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC9B;AACF","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ import { Namekey, OutputSpace, OutputSymbol, OutputSymbolOptions } from "@alloy-js/core";
2
+ import { PackageSymbol } from "./package.js";
3
+ /**
4
+ * Options for creating a Go symbol.
5
+ */
6
+ export interface GoSymbolOptions extends OutputSymbolOptions {
7
+ }
8
+ export type GoSymbolKinds = "symbol" | "named-type" | "function" | "field" | "package";
9
+ /**
10
+ * This is the base type for all symbols in Go.
11
+ *
12
+ * Many subtypes of this symbol exist for specific purposes. However, this symbol
13
+ * may be used in cases where a more specific symbol is not required.
14
+ */
15
+ export declare class GoSymbol extends OutputSymbol {
16
+ constructor(name: string | Namekey, spaces: OutputSpace[] | OutputSpace | undefined, options?: GoSymbolOptions);
17
+ get enclosingPackage(): PackageSymbol | undefined;
18
+ protected getGoCopyOptions(): GoSymbolOptions;
19
+ protected initializeGoCopy(copy: GoSymbol): void;
20
+ copy(): OutputSymbol;
21
+ }
22
+ //# sourceMappingURL=go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/symbols/go.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,WAAW,EACX,YAAY,EACZ,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;CAAG;AAE/D,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,OAAO,GACP,SAAS,CAAC;AAEd;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,YAAY;gBAEtC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,OAAO,GAAE,eAAoB;IAK/B,IAAI,gBAAgB,IAAI,aAAa,GAAG,SAAS,CAyBhD;IAED,SAAS,CAAC,gBAAgB,IAAI,eAAe;IAM7C,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ;IAIzC,IAAI,IAAI,YAAY;CAMrB"}
@@ -0,0 +1,56 @@
1
+ import { OutputDeclarationSpace, OutputMemberSpace, OutputSymbol } from "@alloy-js/core";
2
+
3
+ /**
4
+ * Options for creating a Go symbol.
5
+ */
6
+
7
+ /**
8
+ * This is the base type for all symbols in Go.
9
+ *
10
+ * Many subtypes of this symbol exist for specific purposes. However, this symbol
11
+ * may be used in cases where a more specific symbol is not required.
12
+ */
13
+ export class GoSymbol extends OutputSymbol {
14
+ constructor(name, spaces, options = {}) {
15
+ super(name, spaces, options);
16
+ }
17
+ get enclosingPackage() {
18
+ if (this.spaces.length === 0) {
19
+ return undefined;
20
+ }
21
+
22
+ // todo: probably need to validate that a symbol can't belong to spaces in
23
+ // multiple packages.
24
+ const firstSpace = this.spaces[0];
25
+ if (firstSpace instanceof OutputMemberSpace) {
26
+ // this symbol is a member of something, so get the enclosing package from
27
+ // the symbol.
28
+
29
+ if (firstSpace.symbol.constructor.name === "PackageSymbol") {
30
+ // this is a package symbol, so return the package symbol itself.
31
+ // can't use instanceof here due to circular reference issues.
32
+ return firstSpace.symbol;
33
+ }
34
+ return firstSpace.symbol.enclosingPackage;
35
+ } else if (firstSpace instanceof OutputDeclarationSpace) {
36
+ // this symbol is in a lexical scope, so get the package symbol from the scope.
37
+ return firstSpace.scope.enclosingPackage;
38
+ }
39
+ throw new Error("No place to get package symbol from");
40
+ }
41
+ getGoCopyOptions() {
42
+ return {
43
+ ...this.getCopyOptions()
44
+ };
45
+ }
46
+ initializeGoCopy(copy) {
47
+ this.initializeCopy(copy);
48
+ }
49
+ copy() {
50
+ const options = this.getGoCopyOptions();
51
+ const copy = new GoSymbol(this.name, undefined, options);
52
+ this.initializeGoCopy(copy);
53
+ return copy;
54
+ }
55
+ }
56
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OutputDeclarationSpace","OutputMemberSpace","OutputSymbol","GoSymbol","constructor","name","spaces","options","enclosingPackage","length","undefined","firstSpace","symbol","scope","Error","getGoCopyOptions","getCopyOptions","initializeGoCopy","copy","initializeCopy"],"sources":["../../../src/symbols/go.ts"],"sourcesContent":[null],"mappings":"AAAA,SAEEA,sBAAsB,EACtBC,iBAAiB,EAEjBC,YAAY,QAEP,gBAAgB;;AAIvB;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,QAAQ,SAASD,YAAY,CAAC;EACzCE,WAAWA,CACTC,IAAsB,EACtBC,MAA+C,EAC/CC,OAAwB,GAAG,CAAC,CAAC,EAC7B;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAC9B;EAEA,IAAIC,gBAAgBA,CAAA,EAA8B;IAChD,IAAI,IAAI,CAACF,MAAM,CAACG,MAAM,KAAK,CAAC,EAAE;MAC5B,OAAOC,SAAS;IAClB;;IAEA;IACA;IACA,MAAMC,UAAU,GAAG,IAAI,CAACL,MAAM,CAAC,CAAC,CAAC;IAEjC,IAAIK,UAAU,YAAYV,iBAAiB,EAAE;MAC3C;MACA;;MAEA,IAAIU,UAAU,CAACC,MAAM,CAACR,WAAW,CAACC,IAAI,KAAK,eAAe,EAAE;QAC1D;QACA;QACA,OAAOM,UAAU,CAACC,MAAM;MAC1B;MAEA,OAAQD,UAAU,CAACC,MAAM,CAAcJ,gBAAgB;IACzD,CAAC,MAAM,IAAIG,UAAU,YAAYX,sBAAsB,EAAE;MACvD;MACA,OAAQW,UAAU,CAACE,KAAK,CAAaL,gBAAgB;IACvD;IACA,MAAM,IAAIM,KAAK,CAAC,qCAAqC,CAAC;EACxD;EAEUC,gBAAgBA,CAAA,EAAoB;IAC5C,OAAO;MACL,GAAG,IAAI,CAACC,cAAc,CAAC;IACzB,CAAC;EACH;EAEUC,gBAAgBA,CAACC,IAAc,EAAE;IACzC,IAAI,CAACC,cAAc,CAACD,IAAI,CAAC;EAC3B;EAEAA,IAAIA,CAAA,EAAiB;IACnB,MAAMX,OAAO,GAAG,IAAI,CAACQ,gBAAgB,CAAC,CAAC;IACvC,MAAMG,IAAI,GAAG,IAAIf,QAAQ,CAAC,IAAI,CAACE,IAAI,EAAEK,SAAS,EAAEH,OAAO,CAAC;IACxD,IAAI,CAACU,gBAAgB,CAACC,IAAI,CAAC;IAC3B,OAAOA,IAAI;EACb;AACF","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ export * from "./factories.js";
2
+ export * from "./function.js";
3
+ export * from "./go.js";
4
+ export * from "./named-type.js";
5
+ export * from "./package.js";
6
+ export * from "./reference.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/symbols/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./factories.js";
2
+ export * from "./function.js";
3
+ export * from "./go.js";
4
+ export * from "./named-type.js";
5
+ export * from "./package.js";
6
+ export * from "./reference.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/symbols/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B,cAAc,SAAS;AACvB,cAAc,iBAAiB;AAC/B,cAAc,cAAc;AAC5B,cAAc,gBAAgB","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import { Namekey, OutputSpace } from "@alloy-js/core";
2
+ import { TypeParameterProps } from "../components/parameters/typeparameters.jsx";
3
+ import { GoSymbol, GoSymbolOptions } from "./go.js";
4
+ export type NamedTypeTypeKind = "import" | "function" | "var" | "type" | "struct" | "struct-member" | "interface" | "interface-member" | "package";
5
+ export type NamedTypeSymbolKind = "named-type" | "package";
6
+ export interface NamedTypeSymbolOptions extends GoSymbolOptions {
7
+ typeParameters?: TypeParameterProps[];
8
+ }
9
+ /**
10
+ * A symbol for a named type in Go such as a struct, interface, and so forth.
11
+ */
12
+ export declare class NamedTypeSymbol extends GoSymbol {
13
+ #private;
14
+ readonly symbolKind: NamedTypeSymbolKind;
15
+ static readonly memberSpaces: string[];
16
+ constructor(name: string | Namekey, spaces: OutputSpace[] | OutputSpace | undefined, kind: NamedTypeTypeKind, options?: NamedTypeSymbolOptions);
17
+ get typeKind(): NamedTypeTypeKind;
18
+ set typeKind(value: NamedTypeTypeKind);
19
+ get typeParameters(): TypeParameterProps[] | undefined;
20
+ set typeParameters(value: TypeParameterProps[] | undefined);
21
+ copy(): NamedTypeSymbol;
22
+ get members(): import("@alloy-js/core").OutputMemberSpace;
23
+ }
24
+ //# sourceMappingURL=named-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named-type.d.ts","sourceRoot":"","sources":["../../../src/symbols/named-type.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,WAAW,EAKZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAGpD,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,UAAU,GACV,KAAK,GACL,MAAM,GACN,QAAQ,GACR,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,SAAS,CAAC;AACd,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,SAAS,CAAC;AAE3D,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;;IAC3C,SAAgB,UAAU,EAAE,mBAAmB,CAAgB;IAC/D,gBAAuB,YAAY,WAAe;gBAGhD,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,SAAS,EAC/C,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,sBAAsB;IAQlC,IAAI,QAAQ,IAIQ,iBAAiB,CADpC;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAOpC;IAGD,IAAI,cAAc,IAIQ,kBAAkB,EAAE,GAAG,SAAS,CADzD;IACD,IAAI,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,SAAS,EAOzD;IAED,IAAI;IAYJ,IAAI,OAAO,+CAEV;CACF"}