@alloy-js/python 0.4.0-dev.3 → 0.4.0-dev.6

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 (355) hide show
  1. package/dist/dev/src/builtins/python.js +30 -0
  2. package/dist/dev/src/builtins/python.js.map +1 -0
  3. package/dist/dev/src/components/Atom.js +122 -0
  4. package/dist/dev/src/components/Atom.js.map +1 -0
  5. package/dist/dev/src/components/CallSignature.js +195 -0
  6. package/dist/dev/src/components/CallSignature.js.map +1 -0
  7. package/dist/dev/src/components/ClassDeclaration.js +112 -0
  8. package/dist/dev/src/components/ClassDeclaration.js.map +1 -0
  9. package/dist/dev/src/components/ClassInstantiation.js +40 -0
  10. package/dist/dev/src/components/ClassInstantiation.js.map +1 -0
  11. package/dist/dev/src/components/ClassMethodDeclaration.js +40 -0
  12. package/dist/dev/src/components/ClassMethodDeclaration.js.map +1 -0
  13. package/dist/dev/src/components/ConstructorDeclaration.js +39 -0
  14. package/dist/dev/src/components/ConstructorDeclaration.js.map +1 -0
  15. package/dist/dev/src/components/DataclassDeclaration.js +177 -0
  16. package/dist/dev/src/components/DataclassDeclaration.js.map +1 -0
  17. package/dist/dev/src/components/Declaration.js +31 -0
  18. package/dist/dev/src/components/Declaration.js.map +1 -0
  19. package/dist/dev/src/components/DunderMethodDeclaration.js +33 -0
  20. package/dist/dev/src/components/DunderMethodDeclaration.js.map +1 -0
  21. package/dist/dev/src/components/EnumDeclaration.js +259 -0
  22. package/dist/dev/src/components/EnumDeclaration.js.map +1 -0
  23. package/dist/dev/src/components/EnumMember.js +95 -0
  24. package/dist/dev/src/components/EnumMember.js.map +1 -0
  25. package/dist/dev/src/components/FunctionBase.js +130 -0
  26. package/dist/dev/src/components/FunctionBase.js.map +1 -0
  27. package/dist/dev/src/components/FunctionCallExpression.js +53 -0
  28. package/dist/dev/src/components/FunctionCallExpression.js.map +1 -0
  29. package/dist/dev/src/components/FunctionDeclaration.js +45 -0
  30. package/dist/dev/src/components/FunctionDeclaration.js.map +1 -0
  31. package/dist/dev/src/components/FutureStatement.js +31 -0
  32. package/dist/dev/src/components/FutureStatement.js.map +1 -0
  33. package/dist/dev/src/components/ImportStatement.js +167 -0
  34. package/dist/dev/src/components/ImportStatement.js.map +1 -0
  35. package/dist/dev/src/components/LexicalScope.js +26 -0
  36. package/dist/dev/src/components/LexicalScope.js.map +1 -0
  37. package/dist/dev/src/components/MemberExpression.js +290 -0
  38. package/dist/dev/src/components/MemberExpression.js.map +1 -0
  39. package/dist/dev/src/components/MemberScope.js +23 -0
  40. package/dist/dev/src/components/MemberScope.js.map +1 -0
  41. package/dist/dev/src/components/MethodBase.js +40 -0
  42. package/dist/dev/src/components/MethodBase.js.map +1 -0
  43. package/dist/dev/src/components/MethodDeclaration.js +38 -0
  44. package/dist/dev/src/components/MethodDeclaration.js.map +1 -0
  45. package/dist/dev/src/components/PropertyDeclaration.js +287 -0
  46. package/dist/dev/src/components/PropertyDeclaration.js.map +1 -0
  47. package/dist/dev/src/components/PyDoc.js +1478 -0
  48. package/dist/dev/src/components/PyDoc.js.map +1 -0
  49. package/dist/dev/src/components/PythonBlock.js +35 -0
  50. package/dist/dev/src/components/PythonBlock.js.map +1 -0
  51. package/dist/dev/src/components/Reference.js +23 -0
  52. package/dist/dev/src/components/Reference.js.map +1 -0
  53. package/dist/dev/src/components/SourceFile.js +385 -0
  54. package/dist/dev/src/components/SourceFile.js.map +1 -0
  55. package/dist/dev/src/components/StatementList.js +34 -0
  56. package/dist/dev/src/components/StatementList.js.map +1 -0
  57. package/dist/dev/src/components/StaticMethodDeclaration.js +40 -0
  58. package/dist/dev/src/components/StaticMethodDeclaration.js.map +1 -0
  59. package/dist/dev/src/components/TypeArguments.js +22 -0
  60. package/dist/dev/src/components/TypeArguments.js.map +1 -0
  61. package/dist/dev/src/components/TypeRefContext.js +33 -0
  62. package/dist/dev/src/components/TypeRefContext.js.map +1 -0
  63. package/dist/dev/src/components/TypeReference.js +67 -0
  64. package/dist/dev/src/components/TypeReference.js.map +1 -0
  65. package/dist/dev/src/components/UnionTypeExpression.js +57 -0
  66. package/dist/dev/src/components/UnionTypeExpression.js.map +1 -0
  67. package/dist/dev/src/components/VariableDeclaration.js +150 -0
  68. package/dist/dev/src/components/VariableDeclaration.js.map +1 -0
  69. package/dist/dev/src/components/index.js +32 -0
  70. package/dist/dev/src/components/index.js.map +1 -0
  71. package/dist/dev/src/context/index.js +2 -0
  72. package/dist/dev/src/context/index.js.map +1 -0
  73. package/dist/dev/src/context/type-ref-context.js +17 -0
  74. package/dist/dev/src/context/type-ref-context.js.map +1 -0
  75. package/dist/dev/src/create-module.js +64 -0
  76. package/dist/dev/src/create-module.js.map +1 -0
  77. package/dist/dev/src/index.js +8 -0
  78. package/dist/dev/src/index.js.map +1 -0
  79. package/dist/dev/src/name-conflict-resolver.js +8 -0
  80. package/dist/dev/src/name-conflict-resolver.js.map +1 -0
  81. package/dist/dev/src/name-policy.js +48 -0
  82. package/dist/dev/src/name-policy.js.map +1 -0
  83. package/dist/dev/src/parameter-descriptor.js +8 -0
  84. package/dist/dev/src/parameter-descriptor.js.map +1 -0
  85. package/dist/dev/src/symbol-creation.js +58 -0
  86. package/dist/dev/src/symbol-creation.js.map +1 -0
  87. package/dist/dev/src/symbols/factories.js +28 -0
  88. package/dist/dev/src/symbols/factories.js.map +1 -0
  89. package/dist/dev/src/symbols/index.js +8 -0
  90. package/dist/dev/src/symbols/index.js.map +1 -0
  91. package/dist/dev/src/symbols/python-lexical-scope.js +15 -0
  92. package/dist/dev/src/symbols/python-lexical-scope.js.map +1 -0
  93. package/dist/dev/src/symbols/python-member-scope.js +7 -0
  94. package/dist/dev/src/symbols/python-member-scope.js.map +1 -0
  95. package/dist/dev/src/symbols/python-module-scope.js +86 -0
  96. package/dist/dev/src/symbols/python-module-scope.js.map +1 -0
  97. package/dist/dev/src/symbols/python-output-symbol.js +73 -0
  98. package/dist/dev/src/symbols/python-output-symbol.js.map +1 -0
  99. package/dist/dev/src/symbols/reference.js +87 -0
  100. package/dist/dev/src/symbols/reference.js.map +1 -0
  101. package/dist/dev/src/symbols/scopes.js +13 -0
  102. package/dist/dev/src/symbols/scopes.js.map +1 -0
  103. package/dist/dev/src/utils.js +13 -0
  104. package/dist/dev/src/utils.js.map +1 -0
  105. package/dist/dev/test/callsignatures.test.js +482 -0
  106. package/dist/dev/test/callsignatures.test.js.map +1 -0
  107. package/dist/dev/test/class-method-declaration.test.js +85 -0
  108. package/dist/dev/test/class-method-declaration.test.js.map +1 -0
  109. package/dist/dev/test/classdeclarations.test.js +654 -0
  110. package/dist/dev/test/classdeclarations.test.js.map +1 -0
  111. package/dist/dev/test/classinstantiations.test.js +281 -0
  112. package/dist/dev/test/classinstantiations.test.js.map +1 -0
  113. package/dist/dev/test/constructordeclaration.test.js +86 -0
  114. package/dist/dev/test/constructordeclaration.test.js.map +1 -0
  115. package/dist/dev/test/dataclassdeclarations.test.js +1068 -0
  116. package/dist/dev/test/dataclassdeclarations.test.js.map +1 -0
  117. package/dist/dev/test/dundermethoddeclaration.test.js +93 -0
  118. package/dist/dev/test/dundermethoddeclaration.test.js.map +1 -0
  119. package/dist/dev/test/enums.test.js +263 -0
  120. package/dist/dev/test/enums.test.js.map +1 -0
  121. package/dist/dev/test/externals.test.js +307 -0
  122. package/dist/dev/test/externals.test.js.map +1 -0
  123. package/dist/dev/test/factories.test.js +122 -0
  124. package/dist/dev/test/factories.test.js.map +1 -0
  125. package/dist/dev/test/functioncallexpressions.test.js +257 -0
  126. package/dist/dev/test/functioncallexpressions.test.js.map +1 -0
  127. package/dist/dev/test/functiondeclaration.test.js +817 -0
  128. package/dist/dev/test/functiondeclaration.test.js.map +1 -0
  129. package/dist/dev/test/imports.test.js +372 -0
  130. package/dist/dev/test/imports.test.js.map +1 -0
  131. package/dist/dev/test/memberexpressions.test.js +1668 -0
  132. package/dist/dev/test/memberexpressions.test.js.map +1 -0
  133. package/dist/dev/test/methoddeclaration.test.js +344 -0
  134. package/dist/dev/test/methoddeclaration.test.js.map +1 -0
  135. package/dist/dev/test/namepolicies.test.js +154 -0
  136. package/dist/dev/test/namepolicies.test.js.map +1 -0
  137. package/dist/dev/test/propertydeclaration.test.js +354 -0
  138. package/dist/dev/test/propertydeclaration.test.js.map +1 -0
  139. package/dist/dev/test/pydocs.test.js +1675 -0
  140. package/dist/dev/test/pydocs.test.js.map +1 -0
  141. package/dist/dev/test/references.test.js +66 -0
  142. package/dist/dev/test/references.test.js.map +1 -0
  143. package/dist/dev/test/sourcefiles.test.js +1802 -0
  144. package/dist/dev/test/sourcefiles.test.js.map +1 -0
  145. package/dist/dev/test/staticmethoddeclaration.test.js +85 -0
  146. package/dist/dev/test/staticmethoddeclaration.test.js.map +1 -0
  147. package/dist/dev/test/type-checking-imports.test.js +617 -0
  148. package/dist/dev/test/type-checking-imports.test.js.map +1 -0
  149. package/dist/dev/test/typereference.test.js +79 -0
  150. package/dist/dev/test/typereference.test.js.map +1 -0
  151. package/dist/dev/test/uniontypeexpression.test.js +307 -0
  152. package/dist/dev/test/uniontypeexpression.test.js.map +1 -0
  153. package/dist/dev/test/utils.js +100 -0
  154. package/dist/dev/test/utils.js.map +1 -0
  155. package/dist/dev/test/values.test.js +182 -0
  156. package/dist/dev/test/values.test.js.map +1 -0
  157. package/dist/dev/test/variables.test.js +363 -0
  158. package/dist/dev/test/variables.test.js.map +1 -0
  159. package/dist/src/components/CallSignature.d.ts.map +1 -1
  160. package/dist/src/components/CallSignature.js +12 -3
  161. package/dist/src/components/CallSignature.js.map +1 -1
  162. package/dist/src/components/ImportStatement.d.ts +12 -0
  163. package/dist/src/components/ImportStatement.d.ts.map +1 -1
  164. package/dist/src/components/ImportStatement.js +45 -3
  165. package/dist/src/components/ImportStatement.js.map +1 -1
  166. package/dist/src/components/Reference.d.ts.map +1 -1
  167. package/dist/src/components/Reference.js +5 -1
  168. package/dist/src/components/Reference.js.map +1 -1
  169. package/dist/src/components/SourceFile.d.ts +1 -1
  170. package/dist/src/components/SourceFile.d.ts.map +1 -1
  171. package/dist/src/components/SourceFile.js +46 -7
  172. package/dist/src/components/SourceFile.js.map +1 -1
  173. package/dist/src/components/TypeRefContext.d.ts +26 -0
  174. package/dist/src/components/TypeRefContext.d.ts.map +1 -0
  175. package/dist/src/components/TypeRefContext.js +29 -0
  176. package/dist/src/components/TypeRefContext.js.map +1 -0
  177. package/dist/src/components/TypeReference.d.ts +5 -0
  178. package/dist/src/components/TypeReference.d.ts.map +1 -1
  179. package/dist/src/components/TypeReference.js +19 -9
  180. package/dist/src/components/TypeReference.js.map +1 -1
  181. package/dist/src/components/VariableDeclaration.d.ts.map +1 -1
  182. package/dist/src/components/VariableDeclaration.js +7 -2
  183. package/dist/src/components/VariableDeclaration.js.map +1 -1
  184. package/dist/src/components/index.d.ts +1 -1
  185. package/dist/src/components/index.d.ts.map +1 -1
  186. package/dist/src/components/index.js +1 -1
  187. package/dist/src/components/index.js.map +1 -1
  188. package/dist/src/context/index.d.ts +2 -0
  189. package/dist/src/context/index.d.ts.map +1 -0
  190. package/dist/src/context/index.js +2 -0
  191. package/dist/src/context/index.js.map +1 -0
  192. package/dist/src/context/type-ref-context.d.ts +13 -0
  193. package/dist/src/context/type-ref-context.d.ts.map +1 -0
  194. package/dist/src/context/type-ref-context.js +17 -0
  195. package/dist/src/context/type-ref-context.js.map +1 -0
  196. package/dist/src/name-conflict-resolver.d.ts +2 -2
  197. package/dist/src/name-conflict-resolver.d.ts.map +1 -1
  198. package/dist/src/name-conflict-resolver.js +2 -2
  199. package/dist/src/name-conflict-resolver.js.map +1 -1
  200. package/dist/src/symbols/python-module-scope.d.ts +13 -1
  201. package/dist/src/symbols/python-module-scope.d.ts.map +1 -1
  202. package/dist/src/symbols/python-module-scope.js +36 -2
  203. package/dist/src/symbols/python-module-scope.js.map +1 -1
  204. package/dist/src/symbols/python-output-symbol.d.ts +11 -0
  205. package/dist/src/symbols/python-output-symbol.d.ts.map +1 -1
  206. package/dist/src/symbols/python-output-symbol.js +26 -2
  207. package/dist/src/symbols/python-output-symbol.js.map +1 -1
  208. package/dist/src/symbols/reference.d.ts +8 -1
  209. package/dist/src/symbols/reference.d.ts.map +1 -1
  210. package/dist/src/symbols/reference.js +4 -2
  211. package/dist/src/symbols/reference.js.map +1 -1
  212. package/dist/test/dataclassdeclarations.test.js +5 -2
  213. package/dist/test/dataclassdeclarations.test.js.map +1 -1
  214. package/dist/test/externals.test.js +8 -2
  215. package/dist/test/externals.test.js.map +1 -1
  216. package/dist/test/functiondeclaration.test.js +6 -3
  217. package/dist/test/functiondeclaration.test.js.map +1 -1
  218. package/dist/test/imports.test.js +3 -3
  219. package/dist/test/imports.test.js.map +1 -1
  220. package/dist/test/references.test.js +1 -1
  221. package/dist/test/references.test.js.map +1 -1
  222. package/dist/test/sourcefiles.test.js +26 -26
  223. package/dist/test/sourcefiles.test.js.map +1 -1
  224. package/dist/test/type-checking-imports.test.d.ts +2 -0
  225. package/dist/test/type-checking-imports.test.d.ts.map +1 -0
  226. package/dist/test/type-checking-imports.test.js +437 -0
  227. package/dist/test/type-checking-imports.test.js.map +1 -0
  228. package/dist/test/uniontypeexpression.test.js +4 -1
  229. package/dist/test/uniontypeexpression.test.js.map +1 -1
  230. package/dist/test/variables.test.js +4 -1
  231. package/dist/test/variables.test.js.map +1 -1
  232. package/dist/tsconfig.tsbuildinfo +1 -1
  233. package/docs/api/components/AttributeDoc.md +36 -0
  234. package/docs/api/components/CallSignature.md +62 -0
  235. package/docs/api/components/CallSignatureParameters.md +49 -0
  236. package/docs/api/components/ClassDeclaration.md +67 -0
  237. package/docs/api/components/ClassDoc.md +55 -0
  238. package/docs/api/components/ClassEnumDeclaration.md +111 -0
  239. package/docs/api/components/ClassInstantiation.md +44 -0
  240. package/docs/api/components/ClassMethodDeclaration.md +31 -0
  241. package/docs/api/components/ConstructorDeclaration.md +27 -0
  242. package/docs/api/components/DataclassDeclaration.md +55 -0
  243. package/docs/api/components/Declaration.md +41 -0
  244. package/docs/api/components/DunderMethodDeclaration.md +31 -0
  245. package/docs/api/components/EnumMember.md +61 -0
  246. package/docs/api/components/ExceptionDoc.md +55 -0
  247. package/docs/api/components/FunctionCallExpression.md +43 -0
  248. package/docs/api/components/FunctionDeclaration.md +50 -0
  249. package/docs/api/components/FunctionDoc.md +61 -0
  250. package/docs/api/components/FunctionalEnumDeclaration.md +79 -0
  251. package/docs/api/components/FutureStatement.md +51 -0
  252. package/docs/api/components/GeneratorDoc.md +58 -0
  253. package/docs/api/components/InlineDoc.md +29 -0
  254. package/docs/api/components/LexicalScope.md +65 -0
  255. package/docs/api/components/MemberExpression.md +53 -0
  256. package/docs/api/components/MemberScope.md +28 -0
  257. package/docs/api/components/MethodDeclaration.md +49 -0
  258. package/docs/api/components/MethodDoc.md +61 -0
  259. package/docs/api/components/ModuleDoc.md +52 -0
  260. package/docs/api/components/PropertyDeclaration.md +46 -0
  261. package/docs/api/components/PropertyDoc.md +52 -0
  262. package/docs/api/components/PyDoc.md +29 -0
  263. package/docs/api/components/PyDocExample.md +29 -0
  264. package/docs/api/components/PythonBlock.md +47 -0
  265. package/docs/api/components/Reference.md +31 -0
  266. package/docs/api/components/SimpleCommentBlock.md +27 -0
  267. package/docs/api/components/SimpleInlineComment.md +27 -0
  268. package/docs/api/components/SourceFile.md +83 -0
  269. package/docs/api/components/StatementList.md +47 -0
  270. package/docs/api/components/StaticMethodDeclaration.md +31 -0
  271. package/docs/api/components/TypeArguments.md +27 -0
  272. package/docs/api/components/TypeRefContext.md +41 -0
  273. package/docs/api/components/TypeReference.md +37 -0
  274. package/docs/api/components/UnionTypeExpression.md +27 -0
  275. package/docs/api/components/VariableDeclaration.md +87 -0
  276. package/docs/api/components/index.md +46 -0
  277. package/docs/api/components/useSourceFile.md +19 -0
  278. package/docs/api/contexts/PythonSourceFile-context.md +18 -0
  279. package/docs/api/contexts/index.md +3 -0
  280. package/docs/api/functions/createFunctionSymbol.md +23 -0
  281. package/docs/api/functions/createMethodSymbol.md +23 -0
  282. package/docs/api/functions/createModule.md +18 -0
  283. package/docs/api/functions/createPythonNamePolicy.md +17 -0
  284. package/docs/api/functions/getCallSignatureProps.md +21 -0
  285. package/docs/api/functions/index.md +13 -0
  286. package/docs/api/functions/isParameterDescriptor.md +18 -0
  287. package/docs/api/functions/isTypeRefContext.md +17 -0
  288. package/docs/api/functions/ref.md +25 -0
  289. package/docs/api/functions/usePythonLexicalScope.md +17 -0
  290. package/docs/api/functions/usePythonNamePolicy.md +17 -0
  291. package/docs/api/functions/usePythonScope.md +17 -0
  292. package/docs/api/index.md +7 -0
  293. package/docs/api/types/AddImportOptions.md +7 -0
  294. package/docs/api/types/BaseDeclarationProps.md +10 -0
  295. package/docs/api/types/CommonFunctionProps.md +15 -0
  296. package/docs/api/types/CreateModuleProps.md +8 -0
  297. package/docs/api/types/CreatePythonSymbolFunctionOptions.md +9 -0
  298. package/docs/api/types/DataclassDecoratorKey.md +5 -0
  299. package/docs/api/types/DataclassDecoratorKwargs.md +5 -0
  300. package/docs/api/types/EnumPropsBase.md +11 -0
  301. package/docs/api/types/GoogleStyleDocAttributeProps.md +9 -0
  302. package/docs/api/types/ImportRecordProps.md +7 -0
  303. package/docs/api/types/ImportRecords.md +8 -0
  304. package/docs/api/types/ImportedSymbol.md +10 -0
  305. package/docs/api/types/LexicalScopeProps.md +5 -0
  306. package/docs/api/types/MemberExpressionPartProps.md +13 -0
  307. package/docs/api/types/ModuleDescriptor.md +7 -0
  308. package/docs/api/types/ModuleRefkeys.md +7 -0
  309. package/docs/api/types/NamedMap.md +7 -0
  310. package/docs/api/types/ParameterDescriptor.md +13 -0
  311. package/docs/api/types/ParameterMarker.md +5 -0
  312. package/docs/api/types/PropertyMethodDeclarationProps.md +9 -0
  313. package/docs/api/types/PythonElements.md +5 -0
  314. package/docs/api/types/PythonLexicalScope.md +11 -0
  315. package/docs/api/types/PythonMemberScope.md +9 -0
  316. package/docs/api/types/PythonModuleScope.md +13 -0
  317. package/docs/api/types/PythonOutputScope.md +5 -0
  318. package/docs/api/types/PythonOutputSymbol.md +21 -0
  319. package/docs/api/types/PythonOutputSymbolOptions.md +10 -0
  320. package/docs/api/types/RefOptions.md +7 -0
  321. package/docs/api/types/SubscriptionProps.md +9 -0
  322. package/docs/api/types/index.md +31 -0
  323. package/docs/api/variables/abcModule.md +7 -0
  324. package/docs/api/variables/dataclassDecoratorKeySet.md +5 -0
  325. package/docs/api/variables/dataclassDecoratorKeys.md +7 -0
  326. package/docs/api/variables/dataclassesModule.md +7 -0
  327. package/docs/api/variables/enumModule.md +7 -0
  328. package/docs/api/variables/index.md +8 -0
  329. package/docs/api/variables/requestsModule.md +8 -0
  330. package/package.json +7 -5
  331. package/src/components/CallSignature.tsx +6 -2
  332. package/src/components/ImportStatement.tsx +51 -4
  333. package/src/components/Reference.tsx +3 -1
  334. package/src/components/SourceFile.tsx +44 -8
  335. package/src/components/TypeRefContext.tsx +36 -0
  336. package/src/components/TypeReference.tsx +15 -7
  337. package/src/components/VariableDeclaration.tsx +5 -1
  338. package/src/components/index.ts +1 -1
  339. package/src/context/index.ts +1 -0
  340. package/src/context/type-ref-context.tsx +16 -0
  341. package/src/name-conflict-resolver.ts +4 -10
  342. package/src/symbols/python-module-scope.ts +55 -2
  343. package/src/symbols/python-output-symbol.ts +32 -1
  344. package/src/symbols/reference.tsx +10 -0
  345. package/temp/api.json +441 -336
  346. package/test/dataclassdeclarations.test.tsx +8 -2
  347. package/test/externals.test.tsx +8 -2
  348. package/test/functiondeclaration.test.tsx +6 -3
  349. package/test/imports.test.tsx +6 -6
  350. package/test/references.test.tsx +1 -1
  351. package/test/sourcefiles.test.tsx +13 -13
  352. package/test/type-checking-imports.test.tsx +363 -0
  353. package/test/uniontypeexpression.test.tsx +4 -1
  354. package/test/variables.test.tsx +4 -1
  355. package/vitest.config.ts +8 -0
@@ -0,0 +1,28 @@
1
+ import { createPythonSymbol } from "../symbol-creation.js";
2
+ import { usePythonScope } from "./scopes.js";
3
+
4
+ /**
5
+ * Creates a function symbol in the current scope.
6
+ */
7
+ export function createFunctionSymbol(name, options = {}) {
8
+ return createPythonSymbol(name, {
9
+ instance: false,
10
+ refkeys: options.refkeys
11
+ }, "function");
12
+ }
13
+
14
+ /**
15
+ * Creates a method symbol in a class. Validates that the current scope is a member scope.
16
+ */
17
+ export function createMethodSymbol(name, options = {}) {
18
+ const scope = usePythonScope();
19
+ if (!scope?.isMemberScope) {
20
+ const displayName = typeof name === "string" ? name : name.name;
21
+ throw new Error(`Method "${displayName}" must be declared inside a class (member scope)`);
22
+ }
23
+ return createPythonSymbol(name, {
24
+ instance: true,
25
+ refkeys: options.refkeys
26
+ }, "function");
27
+ }
28
+ //# sourceMappingURL=factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPythonSymbol","usePythonScope","createFunctionSymbol","name","options","instance","refkeys","createMethodSymbol","scope","isMemberScope","displayName","Error"],"sources":["../../../../src/symbols/factories.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,kBAAkB,QAAQ,uBAAuB;AAE1D,SAASC,cAAc,QAAQ,aAAa;;AAE5C;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,IAAsB,EACtBC,OAA0B,GAAG,CAAC,CAAC,EACX;EACpB,OAAOJ,kBAAkB,CACvBG,IAAI,EACJ;IAAEE,QAAQ,EAAE,KAAK;IAAEC,OAAO,EAAEF,OAAO,CAACE;EAAQ,CAAC,EAC7C,UACF,CAAC;AACH;;AAEA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCJ,IAAsB,EACtBC,OAA0B,GAAG,CAAC,CAAC,EACX;EACpB,MAAMI,KAAK,GAAGP,cAAc,CAAC,CAAC;EAC9B,IAAI,CAACO,KAAK,EAAEC,aAAa,EAAE;IACzB,MAAMC,WAAW,GAAG,OAAOP,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGA,IAAI,CAACA,IAAI;IAC/D,MAAM,IAAIQ,KAAK,CACb,WAAWD,WAAW,kDACxB,CAAC;EACH;EACA,OAAOV,kBAAkB,CACvBG,IAAI,EACJ;IAAEE,QAAQ,EAAE,IAAI;IAAEC,OAAO,EAAEF,OAAO,CAACE;EAAQ,CAAC,EAC5C,UACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ export * from "./factories.js";
2
+ export * from "./python-lexical-scope.js";
3
+ export * from "./python-member-scope.js";
4
+ export * from "./python-module-scope.js";
5
+ export * from "./python-output-symbol.js";
6
+ export * from "./reference.js";
7
+ export * from "./scopes.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/symbols/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,2BAA2B;AACzC,cAAc,0BAA0B;AACxC,cAAc,0BAA0B;AACxC,cAAc,2BAA2B;AACzC,cAAc,gBAAgB;AAC9B,cAAc,aAAa","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { OutputScope } from "@alloy-js/core";
2
+ export class PythonLexicalScope extends OutputScope {
3
+ static declarationSpaces = ["symbols"];
4
+ get symbols() {
5
+ return this.spaceFor("symbols");
6
+ }
7
+
8
+ // Lexical scopes do not have an owner symbol. This ensures that we get the
9
+ // correct type when using `usePythonScope` (i.e. we don't get the
10
+ // OutputScope's `OutputSymbol | undefined` type).
11
+ get ownerSymbol() {
12
+ return undefined;
13
+ }
14
+ }
15
+ //# sourceMappingURL=python-lexical-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OutputScope","PythonLexicalScope","declarationSpaces","symbols","spaceFor","ownerSymbol","undefined"],"sources":["../../../../src/symbols/python-lexical-scope.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAAQ,gBAAgB;AAE5C,OAAO,MAAMC,kBAAkB,SAASD,WAAW,CAAC;EAClD,OAAuBE,iBAAiB,GAAsB,CAAC,SAAS,CAAC;EAEzE,IAAIC,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACC,QAAQ,CAAC,SAAS,CAAC;EACjC;;EAEA;EACA;EACA;EACA,IAAIC,WAAWA,CAAA,EAAc;IAC3B,OAAOC,SAAS;EAClB;AACF","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import { OutputScope } from "@alloy-js/core";
2
+ export class PythonMemberScope extends OutputScope {
3
+ get ownerSymbol() {
4
+ return super.ownerSymbol;
5
+ }
6
+ }
7
+ //# sourceMappingURL=python-member-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OutputScope","PythonMemberScope","ownerSymbol"],"sources":["../../../../src/symbols/python-member-scope.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAAQ,gBAAgB;AAG5C,OAAO,MAAMC,iBAAiB,SAASD,WAAW,CAAC;EACjD,IAAIE,WAAWA,CAAA,EAAG;IAChB,OAAO,KAAK,CAACA,WAAW;EAC1B;AACF","ignoreList":[]}
@@ -0,0 +1,86 @@
1
+ import { createSymbol, reactive, shallowReactive } from "@alloy-js/core";
2
+ import { PythonLexicalScope } from "./python-lexical-scope.js";
3
+ import { PythonOutputSymbol } from "./python-output-symbol.js";
4
+
5
+ // Internal typing module for TYPE_CHECKING imports
6
+ let _typingModuleScope;
7
+ let _typeCheckingSymbol;
8
+
9
+ /**
10
+ * Get the internal typing module scope and TYPE_CHECKING symbol.
11
+ * Used by addTypeImport() to add TYPE_CHECKING imports without
12
+ * going through the binder's refkey resolution.
13
+ */
14
+ function getTypingModuleInternal() {
15
+ if (!_typingModuleScope) {
16
+ _typingModuleScope = new PythonModuleScope("typing", undefined);
17
+ _typeCheckingSymbol = new PythonOutputSymbol("TYPE_CHECKING", _typingModuleScope.symbols, {});
18
+ }
19
+ return {
20
+ scope: _typingModuleScope,
21
+ TYPE_CHECKING: _typeCheckingSymbol
22
+ };
23
+ }
24
+ export class ImportedSymbol {
25
+ constructor(target, local) {
26
+ this.target = target;
27
+ this.local = local;
28
+ }
29
+ static from(target, local) {
30
+ return new ImportedSymbol(target, local);
31
+ }
32
+ }
33
+ export class ImportRecords extends Map {}
34
+ export class PythonModuleScope extends PythonLexicalScope {
35
+ #importedSymbols = shallowReactive(new Map());
36
+ get importedSymbols() {
37
+ return this.#importedSymbols;
38
+ }
39
+ #importedModules = reactive(new Map());
40
+ get importedModules() {
41
+ return this.#importedModules;
42
+ }
43
+ addImport(targetSymbol, targetModule, options) {
44
+ const existing = this.importedSymbols.get(targetSymbol);
45
+ if (existing) {
46
+ // If existing is type-only but now used as value, upgrade it
47
+ if (!options?.type && existing.isTypeOnly) {
48
+ existing.markAsValue();
49
+ }
50
+ return existing;
51
+ }
52
+ if (!this.importedModules.has(targetModule)) {
53
+ this.importedModules.set(targetModule, {
54
+ symbols: new Set()
55
+ });
56
+ }
57
+ const localSymbol = createSymbol(PythonOutputSymbol, targetSymbol.name, this.symbols, {
58
+ binder: this.binder,
59
+ aliasTarget: targetSymbol,
60
+ typeOnly: options?.type
61
+ });
62
+ this.importedSymbols.set(targetSymbol, localSymbol);
63
+ this.importedModules.get(targetModule).symbols?.add({
64
+ local: localSymbol,
65
+ target: targetSymbol
66
+ });
67
+ return localSymbol;
68
+ }
69
+
70
+ /**
71
+ * Add TYPE_CHECKING import from the typing module.
72
+ * Returns the local symbol for use in the if block opener.
73
+ */
74
+ addTypeImport() {
75
+ const typing = getTypingModuleInternal();
76
+ return this.addImport(typing.TYPE_CHECKING, typing.scope);
77
+ }
78
+ get debugInfo() {
79
+ return {
80
+ ...super.debugInfo,
81
+ importedSymbolCount: this.#importedSymbols.size,
82
+ importedModuleCount: this.#importedModules.size
83
+ };
84
+ }
85
+ }
86
+ //# sourceMappingURL=python-module-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSymbol","reactive","shallowReactive","PythonLexicalScope","PythonOutputSymbol","_typingModuleScope","_typeCheckingSymbol","getTypingModuleInternal","PythonModuleScope","undefined","symbols","scope","TYPE_CHECKING","ImportedSymbol","constructor","target","local","from","ImportRecords","Map","importedSymbols","importedModules","addImport","targetSymbol","targetModule","options","existing","get","type","isTypeOnly","markAsValue","has","set","Set","localSymbol","name","binder","aliasTarget","typeOnly","add","addTypeImport","typing","debugInfo","importedSymbolCount","size","importedModuleCount"],"sources":["../../../../src/symbols/python-module-scope.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ import { createSymbol, OutputSymbol, track, TrackOpTypes, trigger, TriggerOpTypes } from "@alloy-js/core";
2
+ /**
3
+ * Represents an 'exported' symbol from a .py file. Class, enum, interface etc.
4
+ */
5
+ export class PythonOutputSymbol extends OutputSymbol {
6
+ static memberSpaces = ["static", "instance"];
7
+ constructor(name, spaces, options) {
8
+ super(name, spaces, options);
9
+ this.#module = options.module ?? undefined;
10
+ this.#typeOnly = options.typeOnly ?? false;
11
+ }
12
+
13
+ // The module in which the symbol is defined
14
+ #module;
15
+ get module() {
16
+ return this.#module;
17
+ }
18
+ #typeOnly;
19
+
20
+ /**
21
+ * Returns true if this symbol is only used in type annotation contexts.
22
+ * Such symbols can be imported inside a TYPE_CHECKING block.
23
+ */
24
+ get isTypeOnly() {
25
+ track(this, TrackOpTypes.GET, "typeOnly");
26
+ return this.#typeOnly;
27
+ }
28
+
29
+ /**
30
+ * Mark this symbol as also being used as a value (not just a type).
31
+ */
32
+ markAsValue() {
33
+ if (!this.#typeOnly) {
34
+ return;
35
+ }
36
+ const oldValue = this.#typeOnly;
37
+ this.#typeOnly = false;
38
+ trigger(this, TriggerOpTypes.SET, "typeOnly", false, oldValue);
39
+ }
40
+ get staticMembers() {
41
+ return this.memberSpaceFor("static");
42
+ }
43
+ get instanceMembers() {
44
+ return this.memberSpaceFor("instance");
45
+ }
46
+ get isStaticMemberSymbol() {
47
+ return !this.isInstanceMemberSymbol;
48
+ }
49
+ get isInstanceMemberSymbol() {
50
+ return this.spaces.some(s => s.key === "instance");
51
+ }
52
+ get debugInfo() {
53
+ return {
54
+ ...super.debugInfo,
55
+ module: this.#module,
56
+ isStaticMemberSymbol: this.isStaticMemberSymbol,
57
+ isInstanceMemberSymbol: this.isInstanceMemberSymbol
58
+ };
59
+ }
60
+ copy() {
61
+ const binder = this.binder;
62
+ const copy = createSymbol(PythonOutputSymbol, this.name, undefined, {
63
+ binder,
64
+ aliasTarget: this.aliasTarget,
65
+ module: this.module,
66
+ metadata: this.metadata,
67
+ typeOnly: this.isTypeOnly
68
+ });
69
+ this.initializeCopy(copy);
70
+ return copy;
71
+ }
72
+ }
73
+ //# sourceMappingURL=python-output-symbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSymbol","OutputSymbol","track","TrackOpTypes","trigger","TriggerOpTypes","PythonOutputSymbol","memberSpaces","constructor","name","spaces","options","module","undefined","typeOnly","isTypeOnly","GET","markAsValue","oldValue","SET","staticMembers","memberSpaceFor","instanceMembers","isStaticMemberSymbol","isInstanceMemberSymbol","some","s","key","debugInfo","copy","binder","aliasTarget","metadata","initializeCopy"],"sources":["../../../../src/symbols/python-output-symbol.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,YAAY,EAGZC,YAAY,EAEZC,KAAK,EACLC,YAAY,EACZC,OAAO,EACPC,cAAc,QACT,gBAAgB;AAavB;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,SAASL,YAAY,CAAC;EACnD,OAAgBM,YAAY,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;EAErDC,WAAWA,CACTC,IAAsB,EACtBC,MAA+C,EAC/CC,OAAkC,EAClC;IACA,KAAK,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC5B,IAAI,CAAC,CAACC,MAAM,GAAGD,OAAO,CAACC,MAAM,IAAIC,SAAS;IAC1C,IAAI,CAAC,CAACC,QAAQ,GAAGH,OAAO,CAACG,QAAQ,IAAI,KAAK;EAC5C;;EAEA;EACA,CAACF,MAAM;EAEP,IAAIA,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC,CAACA,MAAM;EACrB;EAEA,CAACE,QAAQ;;EAET;AACF;AACA;AACA;EACE,IAAIC,UAAUA,CAAA,EAAG;IACfb,KAAK,CAAC,IAAI,EAAEC,YAAY,CAACa,GAAG,EAAE,UAAU,CAAC;IACzC,OAAO,IAAI,CAAC,CAACF,QAAQ;EACvB;;EAEA;AACF;AACA;EACEG,WAAWA,CAAA,EAAG;IACZ,IAAI,CAAC,IAAI,CAAC,CAACH,QAAQ,EAAE;MACnB;IACF;IACA,MAAMI,QAAQ,GAAG,IAAI,CAAC,CAACJ,QAAQ;IAC/B,IAAI,CAAC,CAACA,QAAQ,GAAG,KAAK;IACtBV,OAAO,CAAC,IAAI,EAAEC,cAAc,CAACc,GAAG,EAAE,UAAU,EAAE,KAAK,EAAED,QAAQ,CAAC;EAChE;EAEA,IAAIE,aAAaA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACC,cAAc,CAAC,QAAQ,CAAC;EACtC;EAEA,IAAIC,eAAeA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACD,cAAc,CAAC,UAAU,CAAC;EACxC;EAEA,IAAIE,oBAAoBA,CAAA,EAAG;IACzB,OAAO,CAAC,IAAI,CAACC,sBAAsB;EACrC;EAEA,IAAIA,sBAAsBA,CAAA,EAAG;IAC3B,OAAO,IAAI,CAACd,MAAM,CAACe,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAK,UAAU,CAAC;EACtD;EAEA,IAAaC,SAASA,CAAA,EAA4B;IAChD,OAAO;MACL,GAAG,KAAK,CAACA,SAAS;MAClBhB,MAAM,EAAE,IAAI,CAAC,CAACA,MAAM;MACpBW,oBAAoB,EAAE,IAAI,CAACA,oBAAoB;MAC/CC,sBAAsB,EAAE,IAAI,CAACA;IAC/B,CAAC;EACH;EAEAK,IAAIA,CAAA,EAAG;IACL,MAAMC,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,MAAMD,IAAI,GAAG7B,YAAY,CAACM,kBAAkB,EAAE,IAAI,CAACG,IAAI,EAAEI,SAAS,EAAE;MAClEiB,MAAM;MACNC,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BnB,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBoB,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBlB,QAAQ,EAAE,IAAI,CAACC;IACjB,CAAC,CAAC;IAEF,IAAI,CAACkB,cAAc,CAACJ,IAAI,CAAC;IAEzB,OAAOA,IAAI;EACb;AACF","ignoreList":[]}
@@ -0,0 +1,87 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { memo, resolve, unresolvedRefkey, untrack, useContext } from "@alloy-js/core";
3
+ import { MemberExpression } from "../components/MemberExpression.js";
4
+ import { PythonSourceFileContext } from "../components/SourceFile.js";
5
+ import { PythonModuleScope } from "./python-module-scope.js";
6
+ export function ref(refkey, options) {
7
+ const sourceFile = useContext(PythonSourceFileContext);
8
+ const resolveResult = resolve(refkey);
9
+ return memo(() => {
10
+ if (resolveResult.value === undefined) {
11
+ return [unresolvedRefkey(refkey), undefined];
12
+ }
13
+ const {
14
+ commonScope,
15
+ lexicalDeclaration,
16
+ symbol,
17
+ pathDown,
18
+ memberPath
19
+ } = resolveResult.value;
20
+
21
+ // Where the target declaration is relative to the referencing scope.
22
+ // * module: target symbol is in a different module
23
+ // * local: target symbol is within the current module
24
+ const targetLocation = pathDown[0] instanceof PythonModuleScope ? "module" : "local";
25
+ let localSymbol;
26
+ if (targetLocation === "module") {
27
+ localSymbol = untrack(() => sourceFile.scope.addImport(lexicalDeclaration, pathDown[0], {
28
+ type: options?.type
29
+ }));
30
+ }
31
+ const parts = [];
32
+ if (commonScope && commonScope.isMemberScope) {
33
+ // we are referencing a member of a type we are inside
34
+ if (lexicalDeclaration.isInstanceMemberSymbol) {
35
+ parts.push(_$createComponent(MemberExpression.Part, {
36
+ id: "self"
37
+ }, {
38
+ fileName: import.meta.url,
39
+ lineNumber: 63,
40
+ columnNumber: 20
41
+ }));
42
+ } else {
43
+ parts.push(_$createComponent(MemberExpression.Part, {
44
+ get symbol() {
45
+ return commonScope.ownerSymbol;
46
+ }
47
+ }, {
48
+ fileName: import.meta.url,
49
+ lineNumber: 65,
50
+ columnNumber: 20
51
+ }));
52
+ }
53
+ parts.push(_$createComponent(MemberExpression.Part, {
54
+ symbol: lexicalDeclaration
55
+ }, {
56
+ fileName: import.meta.url,
57
+ lineNumber: 67,
58
+ columnNumber: 18
59
+ }));
60
+ } else {
61
+ parts.push(_$createComponent(MemberExpression.Part, {
62
+ symbol: localSymbol ?? lexicalDeclaration
63
+ }, {
64
+ fileName: import.meta.url,
65
+ lineNumber: 70,
66
+ columnNumber: 9
67
+ }));
68
+ }
69
+ for (const part of memberPath) {
70
+ parts.push(_$createComponent(MemberExpression.Part, {
71
+ symbol: part
72
+ }, {
73
+ fileName: import.meta.url,
74
+ lineNumber: 74,
75
+ columnNumber: 18
76
+ }));
77
+ }
78
+ return [_$createComponent(MemberExpression, {
79
+ children: parts
80
+ }, {
81
+ fileName: import.meta.url,
82
+ lineNumber: 77,
83
+ columnNumber: 13
84
+ }), localSymbol ?? symbol];
85
+ });
86
+ }
87
+ //# sourceMappingURL=reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","resolve","unresolvedRefkey","untrack","useContext","MemberExpression","PythonSourceFileContext","PythonModuleScope","ref","refkey","options","sourceFile","resolveResult","value","undefined","commonScope","lexicalDeclaration","symbol","pathDown","memberPath","targetLocation","localSymbol","scope","addImport","type","parts","isMemberScope","isInstanceMemberSymbol","push","_$createComponent","Part","id","fileName","import","meta","url","lineNumber","columnNumber","ownerSymbol","part","children"],"sources":["../../../../src/symbols/reference.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { useScope } from "@alloy-js/core";
2
+ import { PythonLexicalScope } from "./python-lexical-scope.js";
3
+ export function usePythonScope() {
4
+ return useScope();
5
+ }
6
+ export function usePythonLexicalScope() {
7
+ const scope = usePythonScope();
8
+ if (!(scope instanceof PythonLexicalScope)) {
9
+ throw new Error("Expected a PythonLexicalScope, but got " + scope.constructor.name);
10
+ }
11
+ return scope;
12
+ }
13
+ //# sourceMappingURL=scopes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useScope","PythonLexicalScope","usePythonScope","usePythonLexicalScope","scope","Error","constructor","name"],"sources":["../../../../src/symbols/scopes.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,kBAAkB,QAAQ,2BAA2B;AAS9D,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,OAAOF,QAAQ,CAAC,CAAC;AACnB;AAEA,OAAO,SAASG,qBAAqBA,CAAA,EAAG;EACtC,MAAMC,KAAK,GAAGF,cAAc,CAAC,CAAC;EAC9B,IAAI,EAAEE,KAAK,YAAYH,kBAAkB,CAAC,EAAE;IAC1C,MAAM,IAAII,KAAK,CACb,yCAAyC,GAAGD,KAAK,CAACE,WAAW,CAACC,IAChE,CAAC;EACH;EACA,OAAOH,KAAK;AACd","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { defaultProps, splitProps } from "@alloy-js/core";
2
+ /**
3
+ * Extract only the call signature props from a props object which extends
4
+ * `CallSignatureProps`. You can provide default values for the props.
5
+ */
6
+ export function getCallSignatureProps(props, defaults) {
7
+ const [callSignatureProps] = splitProps(props, ["parameters", "typeParameters", "args", "kwargs", "returnType"]);
8
+ if (!defaults) {
9
+ return callSignatureProps;
10
+ }
11
+ return defaultProps(callSignatureProps, defaults);
12
+ }
13
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["defaultProps","splitProps","getCallSignatureProps","props","defaults","callSignatureProps"],"sources":["../../../src/utils.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAY,EAAEC,UAAU,QAAQ,gBAAgB;AAGzD;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CACnCC,KAAyB,EACzBC,QAAsC,EACtC;EACA,MAAM,CAACC,kBAAkB,CAAC,GAAGJ,UAAU,CAACE,KAAK,EAAE,CAC7C,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,CACb,CAAC;EAEF,IAAI,CAACC,QAAQ,EAAE;IACb,OAAOC,kBAAkB;EAC3B;EAEA,OAAOL,YAAY,CAACK,kBAAkB,EAAED,QAAQ,CAAC;AACnD","ignoreList":[]}