semantifold 0.3.0 → 0.4.0

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 (297) hide show
  1. package/README.md +58 -15
  2. package/build/index.d.ts +48 -2
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +57 -8
  5. package/build/src/artifact-path.d.ts +23 -1
  6. package/build/src/artifact-path.d.ts.map +1 -1
  7. package/build/src/artifact-path.js +45 -3
  8. package/build/src/artifacts.d.ts.map +1 -1
  9. package/build/src/artifacts.js +66 -1
  10. package/build/src/backends/c-validation.d.ts.map +1 -1
  11. package/build/src/backends/c-validation.js +7 -3
  12. package/build/src/backends/cpp-validation.d.ts.map +1 -1
  13. package/build/src/backends/cpp-validation.js +7 -3
  14. package/build/src/backends/csharp.js +7 -1
  15. package/build/src/backends/dart-runtime.d.ts +2 -0
  16. package/build/src/backends/dart-runtime.d.ts.map +1 -0
  17. package/build/src/backends/dart-runtime.js +41 -0
  18. package/build/src/backends/dart.d.ts +20 -0
  19. package/build/src/backends/dart.d.ts.map +1 -0
  20. package/build/src/backends/dart.js +321 -0
  21. package/build/src/backends/effects.d.ts +60 -0
  22. package/build/src/backends/effects.d.ts.map +1 -0
  23. package/build/src/backends/effects.js +746 -0
  24. package/build/src/backends/go.js +18 -4
  25. package/build/src/backends/identifiers.d.ts +36 -4
  26. package/build/src/backends/identifiers.d.ts.map +1 -1
  27. package/build/src/backends/identifiers.js +154 -10
  28. package/build/src/backends/index.d.ts.map +1 -1
  29. package/build/src/backends/index.js +27 -4
  30. package/build/src/backends/ios.d.ts +68 -0
  31. package/build/src/backends/ios.d.ts.map +1 -0
  32. package/build/src/backends/ios.js +1503 -0
  33. package/build/src/backends/java.d.ts.map +1 -1
  34. package/build/src/backends/java.js +429 -36
  35. package/build/src/backends/javascript.d.ts +6 -0
  36. package/build/src/backends/javascript.d.ts.map +1 -1
  37. package/build/src/backends/javascript.js +380 -24
  38. package/build/src/backends/kotlin-runtime.d.ts +3 -0
  39. package/build/src/backends/kotlin-runtime.d.ts.map +1 -0
  40. package/build/src/backends/kotlin-runtime.js +29 -0
  41. package/build/src/backends/kotlin.d.ts +23 -0
  42. package/build/src/backends/kotlin.d.ts.map +1 -0
  43. package/build/src/backends/kotlin.js +136 -0
  44. package/build/src/backends/native-validation.d.ts +2 -2
  45. package/build/src/backends/native-validation.d.ts.map +1 -1
  46. package/build/src/backends/native-validation.js +2 -2
  47. package/build/src/backends/ordered-expressions.d.ts.map +1 -1
  48. package/build/src/backends/ordered-expressions.js +39 -7
  49. package/build/src/backends/php-stdlib-support.d.ts +19 -0
  50. package/build/src/backends/php-stdlib-support.d.ts.map +1 -0
  51. package/build/src/backends/php-stdlib-support.js +227 -0
  52. package/build/src/backends/php.d.ts.map +1 -1
  53. package/build/src/backends/php.js +448 -33
  54. package/build/src/backends/program.d.ts +81 -0
  55. package/build/src/backends/program.d.ts.map +1 -0
  56. package/build/src/backends/program.js +1308 -0
  57. package/build/src/backends/python.js +7 -1
  58. package/build/src/backends/ruby.d.ts.map +1 -1
  59. package/build/src/backends/ruby.js +310 -24
  60. package/build/src/backends/rust-runtime.d.ts +7 -0
  61. package/build/src/backends/rust-runtime.d.ts.map +1 -0
  62. package/build/src/backends/rust-runtime.js +32 -0
  63. package/build/src/backends/rust-validation.d.ts +9 -0
  64. package/build/src/backends/rust-validation.d.ts.map +1 -0
  65. package/build/src/backends/rust-validation.js +78 -0
  66. package/build/src/backends/rust.d.ts +24 -0
  67. package/build/src/backends/rust.d.ts.map +1 -0
  68. package/build/src/backends/rust.js +344 -0
  69. package/build/src/backends/scalars.d.ts +14 -6
  70. package/build/src/backends/scalars.d.ts.map +1 -1
  71. package/build/src/backends/scalars.js +167 -17
  72. package/build/src/backends/shared.d.ts +23 -4
  73. package/build/src/backends/shared.d.ts.map +1 -1
  74. package/build/src/backends/shared.js +2158 -62
  75. package/build/src/backends/stdlib-support.d.ts +14 -0
  76. package/build/src/backends/stdlib-support.d.ts.map +1 -0
  77. package/build/src/backends/stdlib-support.js +237 -0
  78. package/build/src/backends/swift-runtime.d.ts +3 -0
  79. package/build/src/backends/swift-runtime.d.ts.map +1 -0
  80. package/build/src/backends/swift-runtime.js +14 -0
  81. package/build/src/backends/swift.d.ts +8 -0
  82. package/build/src/backends/swift.d.ts.map +1 -0
  83. package/build/src/backends/swift.js +127 -0
  84. package/build/src/backends/typescript.d.ts.map +1 -1
  85. package/build/src/backends/typescript.js +344 -24
  86. package/build/src/backends/wasm.d.ts +43 -0
  87. package/build/src/backends/wasm.d.ts.map +1 -0
  88. package/build/src/backends/wasm.js +2164 -0
  89. package/build/src/backends/writer.d.ts +235 -4
  90. package/build/src/backends/writer.d.ts.map +1 -1
  91. package/build/src/backends/writer.js +468 -3
  92. package/build/src/diagnostic.d.ts +4 -3
  93. package/build/src/diagnostic.d.ts.map +1 -1
  94. package/build/src/diagnostic.js +5 -3
  95. package/build/src/frontends/c.d.ts.map +1 -1
  96. package/build/src/frontends/c.js +5 -3
  97. package/build/src/frontends/cpp.d.ts.map +1 -1
  98. package/build/src/frontends/cpp.js +5 -3
  99. package/build/src/frontends/csharp.d.ts.map +1 -1
  100. package/build/src/frontends/csharp.js +7 -3
  101. package/build/src/frontends/dart.d.ts +10 -0
  102. package/build/src/frontends/dart.d.ts.map +1 -0
  103. package/build/src/frontends/dart.js +913 -0
  104. package/build/src/frontends/index.d.ts +3 -1
  105. package/build/src/frontends/index.d.ts.map +1 -1
  106. package/build/src/frontends/index.js +15 -5
  107. package/build/src/frontends/java.d.ts +110 -1
  108. package/build/src/frontends/java.d.ts.map +1 -1
  109. package/build/src/frontends/java.js +1725 -70
  110. package/build/src/frontends/javascript-typescript.d.ts +69 -1
  111. package/build/src/frontends/javascript-typescript.d.ts.map +1 -1
  112. package/build/src/frontends/javascript-typescript.js +1825 -93
  113. package/build/src/frontends/kotlin.d.ts +10 -0
  114. package/build/src/frontends/kotlin.d.ts.map +1 -0
  115. package/build/src/frontends/kotlin.js +685 -0
  116. package/build/src/frontends/php.d.ts +118 -1
  117. package/build/src/frontends/php.d.ts.map +1 -1
  118. package/build/src/frontends/php.js +1583 -76
  119. package/build/src/frontends/program.d.ts +74 -0
  120. package/build/src/frontends/program.d.ts.map +1 -0
  121. package/build/src/frontends/program.js +989 -0
  122. package/build/src/frontends/ruby.d.ts +68 -1
  123. package/build/src/frontends/ruby.d.ts.map +1 -1
  124. package/build/src/frontends/ruby.js +1446 -101
  125. package/build/src/frontends/rust-parser.d.ts +11 -0
  126. package/build/src/frontends/rust-parser.d.ts.map +1 -0
  127. package/build/src/frontends/rust-parser.js +15 -0
  128. package/build/src/frontends/rust.d.ts +14 -0
  129. package/build/src/frontends/rust.d.ts.map +1 -0
  130. package/build/src/frontends/rust.js +715 -0
  131. package/build/src/frontends/scalars.d.ts +10 -0
  132. package/build/src/frontends/scalars.d.ts.map +1 -1
  133. package/build/src/frontends/scalars.js +28 -2
  134. package/build/src/frontends/swift.d.ts +10 -0
  135. package/build/src/frontends/swift.d.ts.map +1 -0
  136. package/build/src/frontends/swift.js +860 -0
  137. package/build/src/frontends/types.d.ts +186 -0
  138. package/build/src/frontends/types.d.ts.map +1 -0
  139. package/build/src/frontends/types.js +634 -0
  140. package/build/src/language-registry.d.ts +46 -4
  141. package/build/src/language-registry.d.ts.map +1 -1
  142. package/build/src/language-registry.js +167 -13
  143. package/build/src/mapping.d.ts +2 -2
  144. package/build/src/mapping.d.ts.map +1 -1
  145. package/build/src/mapping.js +31 -10
  146. package/build/src/semantic/capabilities.d.ts +66 -0
  147. package/build/src/semantic/capabilities.d.ts.map +1 -0
  148. package/build/src/semantic/capabilities.js +649 -0
  149. package/build/src/semantic/effects.d.ts +26 -0
  150. package/build/src/semantic/effects.d.ts.map +1 -0
  151. package/build/src/semantic/effects.js +764 -0
  152. package/build/src/semantic/generics.d.ts +23 -0
  153. package/build/src/semantic/generics.d.ts.map +1 -0
  154. package/build/src/semantic/generics.js +61 -0
  155. package/build/src/semantic/lifetime.d.ts +37 -0
  156. package/build/src/semantic/lifetime.d.ts.map +1 -0
  157. package/build/src/semantic/lifetime.js +527 -0
  158. package/build/src/semantic/provenance.d.ts +9 -2
  159. package/build/src/semantic/provenance.d.ts.map +1 -1
  160. package/build/src/semantic/provenance.js +462 -20
  161. package/build/src/semantic/scalars.d.ts +11 -0
  162. package/build/src/semantic/scalars.d.ts.map +1 -1
  163. package/build/src/semantic/scalars.js +16 -1
  164. package/build/src/semantic/stdlib.d.ts +254 -0
  165. package/build/src/semantic/stdlib.d.ts.map +1 -0
  166. package/build/src/semantic/stdlib.js +880 -0
  167. package/build/src/semantic/types.d.ts +2952 -202
  168. package/build/src/semantic/types.d.ts.map +1 -1
  169. package/build/src/semantic/types.js +688 -15
  170. package/build/src/semantic/validate.d.ts +85 -5
  171. package/build/src/semantic/validate.d.ts.map +1 -1
  172. package/build/src/semantic/validate.js +2576 -98
  173. package/build/src/stdlib-facades.d.ts +304 -0
  174. package/build/src/stdlib-facades.d.ts.map +1 -0
  175. package/build/src/stdlib-facades.js +1167 -0
  176. package/build/src/stdlib-negotiation.d.ts +69 -0
  177. package/build/src/stdlib-negotiation.d.ts.map +1 -0
  178. package/build/src/stdlib-negotiation.js +403 -0
  179. package/build/src/stdlib-providers.d.ts +72 -0
  180. package/build/src/stdlib-providers.d.ts.map +1 -0
  181. package/build/src/stdlib-providers.js +339 -0
  182. package/build/src/toolchains.d.ts +55 -1
  183. package/build/src/toolchains.d.ts.map +1 -1
  184. package/build/src/toolchains.js +15 -4
  185. package/docs/architecture.md +45 -13
  186. package/docs/dart.md +60 -0
  187. package/docs/goals.md +3 -3
  188. package/docs/ios.md +121 -0
  189. package/docs/kotlin.md +42 -0
  190. package/docs/language-support.md +231 -26
  191. package/docs/multi-file-modules.md +52 -0
  192. package/docs/parser-qualification.md +121 -8
  193. package/docs/plans/2026-09-05-standard-library-portability.md +10 -10
  194. package/docs/rust.md +88 -0
  195. package/docs/source-maps.md +15 -7
  196. package/docs/standard-library-portability.md +39 -8
  197. package/docs/swift.md +44 -0
  198. package/docs/testing.md +366 -4
  199. package/docs/webassembly.md +52 -0
  200. package/index.js +63 -8
  201. package/node_modules/semantifold-tree-sitter-legacy-internal/README.md +2 -2
  202. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/LICENSE +21 -0
  203. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/README.md +45 -0
  204. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/binding.gyp +30 -0
  205. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/bindings/node/binding.cc +20 -0
  206. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/bindings/node/binding_test.js +9 -0
  207. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/bindings/node/index.d.ts +28 -0
  208. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/bindings/node/index.js +11 -0
  209. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/grammar.js +1630 -0
  210. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/package.json +64 -0
  211. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/prebuilds/darwin-arm64/tree-sitter-rust.node +0 -0
  212. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/prebuilds/darwin-x64/tree-sitter-rust.node +0 -0
  213. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/prebuilds/linux-arm64/tree-sitter-rust.node +0 -0
  214. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/prebuilds/linux-x64/tree-sitter-rust.node +0 -0
  215. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/prebuilds/win32-arm64/tree-sitter-rust.node +0 -0
  216. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/prebuilds/win32-x64/tree-sitter-rust.node +0 -0
  217. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/queries/highlights.scm +159 -0
  218. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/queries/injections.scm +9 -0
  219. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/queries/tags.scm +60 -0
  220. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/src/grammar.json +9405 -0
  221. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/src/node-types.json +5399 -0
  222. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/src/parser.c +192569 -0
  223. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/src/scanner.c +393 -0
  224. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/src/tree_sitter/alloc.h +54 -0
  225. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/src/tree_sitter/array.h +290 -0
  226. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/src/tree_sitter/parser.h +266 -0
  227. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/tree-sitter-rust.wasm +0 -0
  228. package/node_modules/semantifold-tree-sitter-legacy-internal/node_modules/tree-sitter-rust/tree-sitter.json +53 -0
  229. package/node_modules/semantifold-tree-sitter-legacy-internal/package.json +3 -2
  230. package/node_modules/semantifold-tree-sitter-legacy-internal/src/c.js +5 -4
  231. package/package.json +5 -2
  232. package/src/artifact-path.js +47 -2
  233. package/src/artifacts.js +67 -0
  234. package/src/backends/c-validation.js +6 -1
  235. package/src/backends/cpp-validation.js +6 -1
  236. package/src/backends/csharp.js +3 -0
  237. package/src/backends/dart-runtime.js +41 -0
  238. package/src/backends/dart.js +326 -0
  239. package/src/backends/effects.js +705 -0
  240. package/src/backends/go.js +14 -2
  241. package/src/backends/identifiers.js +160 -9
  242. package/src/backends/index.js +27 -2
  243. package/src/backends/ios.js +1612 -0
  244. package/src/backends/java.js +454 -36
  245. package/src/backends/javascript.js +389 -23
  246. package/src/backends/kotlin-runtime.js +29 -0
  247. package/src/backends/kotlin.js +141 -0
  248. package/src/backends/native-validation.js +1 -1
  249. package/src/backends/ordered-expressions.js +40 -6
  250. package/src/backends/php-stdlib-support.js +239 -0
  251. package/src/backends/php.js +469 -32
  252. package/src/backends/program.js +1407 -0
  253. package/src/backends/python.js +3 -0
  254. package/src/backends/ruby.js +326 -23
  255. package/src/backends/rust-runtime.js +34 -0
  256. package/src/backends/rust-validation.js +75 -0
  257. package/src/backends/rust.js +335 -0
  258. package/src/backends/scalars.js +141 -16
  259. package/src/backends/shared.js +2304 -124
  260. package/src/backends/stdlib-support.js +234 -0
  261. package/src/backends/swift-runtime.js +14 -0
  262. package/src/backends/swift.js +132 -0
  263. package/src/backends/typescript.js +349 -23
  264. package/src/backends/wasm.js +2208 -0
  265. package/src/backends/writer.js +520 -2
  266. package/src/diagnostic.js +4 -2
  267. package/src/frontends/c.js +4 -2
  268. package/src/frontends/cpp.js +4 -2
  269. package/src/frontends/csharp.js +4 -2
  270. package/src/frontends/dart.js +963 -0
  271. package/src/frontends/index.js +14 -4
  272. package/src/frontends/java.js +1977 -69
  273. package/src/frontends/javascript-typescript.js +2046 -102
  274. package/src/frontends/kotlin.js +713 -0
  275. package/src/frontends/php.js +1725 -79
  276. package/src/frontends/program.js +1062 -0
  277. package/src/frontends/ruby.js +1624 -98
  278. package/src/frontends/rust-parser.js +18 -0
  279. package/src/frontends/rust.js +714 -0
  280. package/src/frontends/scalars.js +31 -1
  281. package/src/frontends/swift.js +893 -0
  282. package/src/frontends/types.js +750 -0
  283. package/src/language-registry.js +172 -12
  284. package/src/mapping.js +33 -9
  285. package/src/semantic/capabilities.js +671 -0
  286. package/src/semantic/effects.js +737 -0
  287. package/src/semantic/generics.js +58 -0
  288. package/src/semantic/lifetime.js +517 -0
  289. package/src/semantic/provenance.js +412 -19
  290. package/src/semantic/scalars.js +17 -0
  291. package/src/semantic/stdlib.js +921 -0
  292. package/src/semantic/types.js +765 -14
  293. package/src/semantic/validate.js +2934 -209
  294. package/src/stdlib-facades.js +1211 -0
  295. package/src/stdlib-negotiation.js +446 -0
  296. package/src/stdlib-providers.js +377 -0
  297. package/src/toolchains.js +16 -3
@@ -16,4 +16,14 @@ export declare function sourceScalarType(language: import("../semantic/types.js"
16
16
  * @returns {import("../semantic/types.js").TypeReference} Semantic scalar type.
17
17
  */
18
18
  export declare function requireSourceScalarType(language: import("../semantic/types.js").SemanticLanguage, sourceType: string | undefined, subject: string, location: import("../semantic/types.js").SourceLocation, typeLocation?: import("../semantic/types.js").SourceLocation): import("../semantic/types.js").TypeReference;
19
+ /**
20
+ * Requires an exact scalar or Task-005 void function-return spelling.
21
+ * @param {import("../semantic/types.js").SemanticLanguage} language - Source language.
22
+ * @param {string | undefined} sourceType - Exact source return type spelling.
23
+ * @param {string} subject - Typed function return.
24
+ * @param {import("../semantic/types.js").SourceLocation} location - Owning function location.
25
+ * @param {import("../semantic/types.js").SourceLocation} [typeLocation] - Exact parser-owned type spelling.
26
+ * @returns {import("../semantic/types.js").SemanticFunctionReturnType} Semantic return type.
27
+ */
28
+ export declare function requireSourceReturnType(language: import("../semantic/types.js").SemanticLanguage, sourceType: string | undefined, subject: string, location: import("../semantic/types.js").SourceLocation, typeLocation?: import("../semantic/types.js").SourceLocation): import("../semantic/types.js").SemanticFunctionReturnType;
19
29
  //# sourceMappingURL=scalars.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../../../src/frontends/scalars.js"],"names":[],"mappings":"AAiEA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAL9B,OAAO,sBAAsB,EAAE,gBAKD,EAAE,UAAU,EAJ1C,MAI0C,EAAE,QAAQ,AAH5D,CACA,EADQ,OAAO,sBAAsB,EAAE,cAGqB,GAFlD,OAAO,sBAAsB,EAAE,aAAa,GAAG,SAAS,CASpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAPrC,OAAO,sBAAsB,EAAE,gBAOM,EAAE,UAAU,EANjD,MAAM,GAAG,SAMwC,EAAE,OAAO,EAL1D,MAK0D,EAAE,QAAQ,EAJpE,OAAO,sBAAsB,EAAE,cAIqC,EAAE,YAAY,AAH1F,CACA,EADQ,OAAO,sBAAsB,EAAE,cAG8D,GAF3F,OAAO,sBAAsB,EAAE,aAAa,CAQxD"}
1
+ {"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../../../src/frontends/scalars.js"],"names":[],"mappings":"AAyEA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAL9B,OAAO,sBAAsB,EAAE,gBAKD,EAAE,UAAU,EAJ1C,MAI0C,EAAE,QAAQ,AAH5D,CACA,EADQ,OAAO,sBAAsB,EAAE,cAGqB,GAFlD,OAAO,sBAAsB,EAAE,aAAa,GAAG,SAAS,CASpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAPrC,OAAO,sBAAsB,EAAE,gBAOM,EAAE,UAAU,EANjD,MAAM,GAAG,SAMwC,EAAE,OAAO,EAL1D,MAK0D,EAAE,QAAQ,EAJpE,OAAO,sBAAsB,EAAE,cAIqC,EAAE,YAAY,AAH1F,CACA,EADQ,OAAO,sBAAsB,EAAE,cAG8D,GAF3F,OAAO,sBAAsB,EAAE,aAAa,CAQxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAPrC,OAAO,sBAAsB,EAAE,gBAOM,EAAE,UAAU,EANjD,MAAM,GAAG,SAMwC,EAAE,OAAO,EAL1D,MAK0D,EAAE,QAAQ,EAJpE,OAAO,sBAAsB,EAAE,cAIqC,EAAE,YAAY,AAH1F,CACA,EADQ,OAAO,sBAAsB,EAAE,cAG8D,GAF3F,OAAO,sBAAsB,EAAE,0BAA0B,CAarE"}
@@ -1,7 +1,7 @@
1
1
  // @ts-check
2
2
  import { missingType } from "../diagnostic.js";
3
3
  import { setParserRanges } from "../semantic/provenance.js";
4
- import { scalarType } from "../semantic/scalars.js";
4
+ import { scalarType, voidType } from "../semantic/scalars.js";
5
5
  /**
6
6
  * Builds a source-spelling map with exact semantic scalar values.
7
7
  * @param {readonly (readonly [string, import("../semantic/types.js").SemanticTypeName])[]} entries - Source mappings.
@@ -12,6 +12,9 @@ function sourceTypeMap(entries) {
12
12
  }
13
13
  /** @type {Readonly<Record<import("../semantic/types.js").SemanticLanguage, Map<string, import("../semantic/types.js").SemanticTypeName>>>} */
14
14
  const sourceScalarTypes = Object.freeze({
15
+ dart: sourceTypeMap([["int", "integer"], ["bool", "boolean"], ["String", "string"]]),
16
+ swift: sourceTypeMap([["Int64", "integer"], ["Bool", "boolean"], ["String", "string"]]),
17
+ rust: sourceTypeMap([["i64", "integer"], ["bool", "boolean"], ["String", "string"]]),
15
18
  cpp: sourceTypeMap([["std::int64_t", "integer"], ["bool", "boolean"], ["std::string", "string"]]),
16
19
  c: sourceTypeMap([["int64_t", "integer"], ["bool", "boolean"], ["SemantifoldString", "string"]]),
17
20
  csharp: sourceTypeMap([
@@ -33,6 +36,11 @@ const sourceScalarTypes = Object.freeze({
33
36
  ["String", "string"],
34
37
  ["java.lang.String", "string"]
35
38
  ]),
39
+ kotlin: sourceTypeMap([
40
+ ["Long", "integer"],
41
+ ["Boolean", "boolean"],
42
+ ["String", "string"]
43
+ ]),
36
44
  javascript: sourceTypeMap([
37
45
  ["number", "integer"],
38
46
  ["boolean", "boolean"],
@@ -88,4 +96,22 @@ export function requireSourceScalarType(language, sourceType, subject, location,
88
96
  return missingType(language, subject, location);
89
97
  return type;
90
98
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mcm9udGVuZHMvc2NhbGFycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBQzVDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQTtBQUN6RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUE7QUFFakQ7Ozs7R0FJRztBQUNILFNBQVMsYUFBYSxDQUFDLE9BQU87SUFDNUIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUN6QixDQUFDO0FBRUQsOElBQThJO0FBQzlJLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN0QyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDcEIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQ25CLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQztRQUMzQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7UUFDbkIsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUM7UUFDN0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO1FBQ3BCLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQztLQUM1QixDQUFDO0lBQ0YsRUFBRSxFQUFFLGFBQWEsQ0FBQztRQUNoQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7UUFDcEIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQ25CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztLQUNyQixDQUFDO0lBQ0YsSUFBSSxFQUFFLGFBQWEsQ0FBQztRQUNsQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7UUFDbEIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1FBQ3RCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztRQUNwQixDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQztLQUMvQixDQUFDO0lBQ0YsVUFBVSxFQUFFLGFBQWEsQ0FBQztRQUN4QixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDckIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1FBQ3RCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztLQUNyQixDQUFDO0lBQ0YsR0FBRyxFQUFFLGFBQWEsQ0FBQztRQUNqQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7UUFDbEIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQ25CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztLQUNyQixDQUFDO0lBQ0YsTUFBTSxFQUFFLGFBQWEsQ0FBQztRQUNwQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7UUFDbEIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQ25CLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztLQUNsQixDQUFDO0lBQ0YsSUFBSSxFQUFFLGFBQWEsQ0FBQztRQUNsQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7UUFDeEIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1FBQ3JCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztLQUN2QixDQUFDO0lBQ0YsVUFBVSxFQUFFLGFBQWEsQ0FBQztRQUN4QixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDckIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1FBQ3RCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztLQUNyQixDQUFDO0NBQ0gsQ0FBQyxDQUFBO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUTtJQUM3RCxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUVoRCxJQUFJLElBQUksSUFBSSxRQUFRO1FBQUUsZUFBZSxDQUFDLElBQUksRUFBRSxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFBO0lBRTdELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEdBQUcsUUFBUTtJQUN0RyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUUxRixJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sV0FBVyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFFMUQsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7bWlzc2luZ1R5cGV9IGZyb20gXCIuLi9kaWFnbm9zdGljLmpzXCJcbmltcG9ydCB7c2V0UGFyc2VyUmFuZ2VzfSBmcm9tIFwiLi4vc2VtYW50aWMvcHJvdmVuYW5jZS5qc1wiXG5pbXBvcnQge3NjYWxhclR5cGV9IGZyb20gXCIuLi9zZW1hbnRpYy9zY2FsYXJzLmpzXCJcblxuLyoqXG4gKiBCdWlsZHMgYSBzb3VyY2Utc3BlbGxpbmcgbWFwIHdpdGggZXhhY3Qgc2VtYW50aWMgc2NhbGFyIHZhbHVlcy5cbiAqIEBwYXJhbSB7cmVhZG9ubHkgKHJlYWRvbmx5IFtzdHJpbmcsIGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljVHlwZU5hbWVdKVtdfSBlbnRyaWVzIC0gU291cmNlIG1hcHBpbmdzLlxuICogQHJldHVybnMge01hcDxzdHJpbmcsIGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljVHlwZU5hbWU+fSBTb3VyY2UgdHlwZSBtYXAuXG4gKi9cbmZ1bmN0aW9uIHNvdXJjZVR5cGVNYXAoZW50cmllcykge1xuICByZXR1cm4gbmV3IE1hcChlbnRyaWVzKVxufVxuXG4vKiogQHR5cGUge1JlYWRvbmx5PFJlY29yZDxpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlLCBNYXA8c3RyaW5nLCBpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY1R5cGVOYW1lPj4+fSAqL1xuY29uc3Qgc291cmNlU2NhbGFyVHlwZXMgPSBPYmplY3QuZnJlZXplKHtcbiAgY3BwOiBzb3VyY2VUeXBlTWFwKFtbXCJzdGQ6OmludDY0X3RcIiwgXCJpbnRlZ2VyXCJdLCBbXCJib29sXCIsIFwiYm9vbGVhblwiXSwgW1wic3RkOjpzdHJpbmdcIiwgXCJzdHJpbmdcIl1dKSxcbiAgYzogc291cmNlVHlwZU1hcChbW1wiaW50NjRfdFwiLCBcImludGVnZXJcIl0sIFtcImJvb2xcIiwgXCJib29sZWFuXCJdLCBbXCJTZW1hbnRpZm9sZFN0cmluZ1wiLCBcInN0cmluZ1wiXV0pLFxuICBjc2hhcnA6IHNvdXJjZVR5cGVNYXAoW1xuICAgIFtcImxvbmdcIiwgXCJpbnRlZ2VyXCJdLFxuICAgIFtcIlN5c3RlbS5JbnQ2NFwiLCBcImludGVnZXJcIl0sXG4gICAgW1wiYm9vbFwiLCBcImJvb2xlYW5cIl0sXG4gICAgW1wiU3lzdGVtLkJvb2xlYW5cIiwgXCJib29sZWFuXCJdLFxuICAgIFtcInN0cmluZ1wiLCBcInN0cmluZ1wiXSxcbiAgICBbXCJTeXN0ZW0uU3RyaW5nXCIsIFwic3RyaW5nXCJdXG4gIF0pLFxuICBnbzogc291cmNlVHlwZU1hcChbXG4gICAgW1wiaW50NjRcIiwgXCJpbnRlZ2VyXCJdLFxuICAgIFtcImJvb2xcIiwgXCJib29sZWFuXCJdLFxuICAgIFtcInN0cmluZ1wiLCBcInN0cmluZ1wiXVxuICBdKSxcbiAgamF2YTogc291cmNlVHlwZU1hcChbXG4gICAgW1wiaW50XCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sZWFuXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJTdHJpbmdcIiwgXCJzdHJpbmdcIl0sXG4gICAgW1wiamF2YS5sYW5nLlN0cmluZ1wiLCBcInN0cmluZ1wiXVxuICBdKSxcbiAgamF2YXNjcmlwdDogc291cmNlVHlwZU1hcChbXG4gICAgW1wibnVtYmVyXCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sZWFuXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJzdHJpbmdcIiwgXCJzdHJpbmdcIl1cbiAgXSksXG4gIHBocDogc291cmNlVHlwZU1hcChbXG4gICAgW1wiaW50XCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJzdHJpbmdcIiwgXCJzdHJpbmdcIl1cbiAgXSksXG4gIHB5dGhvbjogc291cmNlVHlwZU1hcChbXG4gICAgW1wiaW50XCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJzdHJcIiwgXCJzdHJpbmdcIl1cbiAgXSksXG4gIHJ1Ynk6IHNvdXJjZVR5cGVNYXAoW1xuICAgIFtcIltJbnRlZ2VyXVwiLCBcImludGVnZXJcIl0sXG4gICAgW1wiW2Jvb2xdXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJbU3RyaW5nXVwiLCBcInN0cmluZ1wiXVxuICBdKSxcbiAgdHlwZXNjcmlwdDogc291cmNlVHlwZU1hcChbXG4gICAgW1wibnVtYmVyXCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sZWFuXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJzdHJpbmdcIiwgXCJzdHJpbmdcIl1cbiAgXSlcbn0pXG5cbi8qKlxuICogTG9va3MgdXAgYW4gZXhhY3Qgc291cmNlIHNjYWxhciBzcGVsbGluZyB3aXRob3V0IGluc3BlY3RpbmcgcGFyc2VyIG5vZGVzLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIFNvdXJjZSBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2VUeXBlIC0gRXhhY3Qgc291cmNlIHR5cGUgc3BlbGxpbmcuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNvdXJjZUxvY2F0aW9ufSBbbG9jYXRpb25dIC0gRXhhY3QgcGFyc2VyLW93bmVkIHR5cGUgc3BlbGxpbmcuXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuVHlwZVJlZmVyZW5jZSB8IHVuZGVmaW5lZH0gU2VtYW50aWMgdHlwZSB3aGVuIHN1cHBvcnRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvdXJjZVNjYWxhclR5cGUobGFuZ3VhZ2UsIHNvdXJjZVR5cGUsIGxvY2F0aW9uKSB7XG4gIGNvbnN0IG5hbWUgPSBzb3VyY2VTY2FsYXJUeXBlc1tsYW5ndWFnZV0uZ2V0KHNvdXJjZVR5cGUpXG4gIGNvbnN0IHR5cGUgPSBuYW1lID8gc2NhbGFyVHlwZShuYW1lKSA6IHVuZGVmaW5lZFxuXG4gIGlmICh0eXBlICYmIGxvY2F0aW9uKSBzZXRQYXJzZXJSYW5nZXModHlwZSwge3R5cGU6IGxvY2F0aW9ufSlcblxuICByZXR1cm4gdHlwZVxufVxuXG4vKipcbiAqIFJlcXVpcmVzIGFuIGV4YWN0IHN1cHBvcnRlZCBzb3VyY2Ugc2NhbGFyIHNwZWxsaW5nLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIFNvdXJjZSBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBzb3VyY2VUeXBlIC0gRXhhY3Qgc291cmNlIHR5cGUgc3BlbGxpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gc3ViamVjdCAtIFR5cGVkIHNvdXJjZSBzdWJqZWN0LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbn0gbG9jYXRpb24gLSBPd25pbmcgc291cmNlIGxvY2F0aW9uLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbn0gW3R5cGVMb2NhdGlvbl0gLSBFeGFjdCBwYXJzZXItb3duZWQgdHlwZSBzcGVsbGluZy5cbiAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UeXBlUmVmZXJlbmNlfSBTZW1hbnRpYyBzY2FsYXIgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVTb3VyY2VTY2FsYXJUeXBlKGxhbmd1YWdlLCBzb3VyY2VUeXBlLCBzdWJqZWN0LCBsb2NhdGlvbiwgdHlwZUxvY2F0aW9uID0gbG9jYXRpb24pIHtcbiAgY29uc3QgdHlwZSA9IHNvdXJjZVR5cGUgPyBzb3VyY2VTY2FsYXJUeXBlKGxhbmd1YWdlLCBzb3VyY2VUeXBlLCB0eXBlTG9jYXRpb24pIDogdW5kZWZpbmVkXG5cbiAgaWYgKCF0eXBlKSByZXR1cm4gbWlzc2luZ1R5cGUobGFuZ3VhZ2UsIHN1YmplY3QsIGxvY2F0aW9uKVxuXG4gIHJldHVybiB0eXBlXG59XG4iXX0=
99
+ /**
100
+ * Requires an exact scalar or Task-005 void function-return spelling.
101
+ * @param {import("../semantic/types.js").SemanticLanguage} language - Source language.
102
+ * @param {string | undefined} sourceType - Exact source return type spelling.
103
+ * @param {string} subject - Typed function return.
104
+ * @param {import("../semantic/types.js").SourceLocation} location - Owning function location.
105
+ * @param {import("../semantic/types.js").SourceLocation} [typeLocation] - Exact parser-owned type spelling.
106
+ * @returns {import("../semantic/types.js").SemanticFunctionReturnType} Semantic return type.
107
+ */
108
+ export function requireSourceReturnType(language, sourceType, subject, location, typeLocation = location) {
109
+ const voidSpelling = language == "ruby" ? "[void]" : "void";
110
+ if (sourceType == voidSpelling) {
111
+ const type = voidType();
112
+ setParserRanges(type, { type: typeLocation });
113
+ return type;
114
+ }
115
+ return requireSourceScalarType(language, sourceType, subject, location, typeLocation);
116
+ }
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mcm9udGVuZHMvc2NhbGFycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFBO0FBQzVDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQTtBQUN6RCxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLHdCQUF3QixDQUFBO0FBRTNEOzs7O0dBSUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxPQUFPO0lBQzVCLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDekIsQ0FBQztBQUVELDhJQUE4STtBQUM5SSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdEMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDcEYsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdkYsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDcEYsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNoRyxNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ3BCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztRQUNuQixDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUM7UUFDM0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQ25CLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDO1FBQzdCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztRQUNwQixDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUM7S0FDNUIsQ0FBQztJQUNGLEVBQUUsRUFBRSxhQUFhLENBQUM7UUFDaEIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDO1FBQ3BCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztRQUNuQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7S0FDckIsQ0FBQztJQUNGLElBQUksRUFBRSxhQUFhLENBQUM7UUFDbEIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBQ2xCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN0QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7UUFDcEIsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUM7S0FDL0IsQ0FBQztJQUNGLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDcEIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQ25CLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN0QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7S0FDckIsQ0FBQztJQUNGLFVBQVUsRUFBRSxhQUFhLENBQUM7UUFDeEIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1FBQ3JCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN0QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7S0FDckIsQ0FBQztJQUNGLEdBQUcsRUFBRSxhQUFhLENBQUM7UUFDakIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBQ2xCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztRQUNuQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7S0FDckIsQ0FBQztJQUNGLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDcEIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBQ2xCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztRQUNuQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7S0FDbEIsQ0FBQztJQUNGLElBQUksRUFBRSxhQUFhLENBQUM7UUFDbEIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO1FBQ3hCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztRQUNyQixDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7S0FDdkIsQ0FBQztJQUNGLFVBQVUsRUFBRSxhQUFhLENBQUM7UUFDeEIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1FBQ3JCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUN0QixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7S0FDckIsQ0FBQztDQUNILENBQUMsQ0FBQTtBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVE7SUFDN0QsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFFaEQsSUFBSSxJQUFJLElBQUksUUFBUTtRQUFFLGVBQWUsQ0FBQyxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQTtJQUU3RCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxHQUFHLFFBQVE7SUFDdEcsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFFMUYsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLFdBQVcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBRTFELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEdBQUcsUUFBUTtJQUN0RyxNQUFNLFlBQVksR0FBRyxRQUFRLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUUzRCxJQUFJLFVBQVUsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixNQUFNLElBQUksR0FBRyxRQUFRLEVBQUUsQ0FBQTtRQUV2QixlQUFlLENBQUMsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUE7UUFDM0MsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsT0FBTyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUE7QUFDdkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge21pc3NpbmdUeXBlfSBmcm9tIFwiLi4vZGlhZ25vc3RpYy5qc1wiXG5pbXBvcnQge3NldFBhcnNlclJhbmdlc30gZnJvbSBcIi4uL3NlbWFudGljL3Byb3ZlbmFuY2UuanNcIlxuaW1wb3J0IHtzY2FsYXJUeXBlLCB2b2lkVHlwZX0gZnJvbSBcIi4uL3NlbWFudGljL3NjYWxhcnMuanNcIlxuXG4vKipcbiAqIEJ1aWxkcyBhIHNvdXJjZS1zcGVsbGluZyBtYXAgd2l0aCBleGFjdCBzZW1hbnRpYyBzY2FsYXIgdmFsdWVzLlxuICogQHBhcmFtIHtyZWFkb25seSAocmVhZG9ubHkgW3N0cmluZywgaW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNUeXBlTmFtZV0pW119IGVudHJpZXMgLSBTb3VyY2UgbWFwcGluZ3MuXG4gKiBAcmV0dXJucyB7TWFwPHN0cmluZywgaW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNUeXBlTmFtZT59IFNvdXJjZSB0eXBlIG1hcC5cbiAqL1xuZnVuY3Rpb24gc291cmNlVHlwZU1hcChlbnRyaWVzKSB7XG4gIHJldHVybiBuZXcgTWFwKGVudHJpZXMpXG59XG5cbi8qKiBAdHlwZSB7UmVhZG9ubHk8UmVjb3JkPGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljTGFuZ3VhZ2UsIE1hcDxzdHJpbmcsIGltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNlbWFudGljVHlwZU5hbWU+Pj59ICovXG5jb25zdCBzb3VyY2VTY2FsYXJUeXBlcyA9IE9iamVjdC5mcmVlemUoe1xuICBkYXJ0OiBzb3VyY2VUeXBlTWFwKFtbXCJpbnRcIiwgXCJpbnRlZ2VyXCJdLCBbXCJib29sXCIsIFwiYm9vbGVhblwiXSwgW1wiU3RyaW5nXCIsIFwic3RyaW5nXCJdXSksXG4gIHN3aWZ0OiBzb3VyY2VUeXBlTWFwKFtbXCJJbnQ2NFwiLCBcImludGVnZXJcIl0sIFtcIkJvb2xcIiwgXCJib29sZWFuXCJdLCBbXCJTdHJpbmdcIiwgXCJzdHJpbmdcIl1dKSxcbiAgcnVzdDogc291cmNlVHlwZU1hcChbW1wiaTY0XCIsIFwiaW50ZWdlclwiXSwgW1wiYm9vbFwiLCBcImJvb2xlYW5cIl0sIFtcIlN0cmluZ1wiLCBcInN0cmluZ1wiXV0pLFxuICBjcHA6IHNvdXJjZVR5cGVNYXAoW1tcInN0ZDo6aW50NjRfdFwiLCBcImludGVnZXJcIl0sIFtcImJvb2xcIiwgXCJib29sZWFuXCJdLCBbXCJzdGQ6OnN0cmluZ1wiLCBcInN0cmluZ1wiXV0pLFxuICBjOiBzb3VyY2VUeXBlTWFwKFtbXCJpbnQ2NF90XCIsIFwiaW50ZWdlclwiXSwgW1wiYm9vbFwiLCBcImJvb2xlYW5cIl0sIFtcIlNlbWFudGlmb2xkU3RyaW5nXCIsIFwic3RyaW5nXCJdXSksXG4gIGNzaGFycDogc291cmNlVHlwZU1hcChbXG4gICAgW1wibG9uZ1wiLCBcImludGVnZXJcIl0sXG4gICAgW1wiU3lzdGVtLkludDY0XCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJTeXN0ZW0uQm9vbGVhblwiLCBcImJvb2xlYW5cIl0sXG4gICAgW1wic3RyaW5nXCIsIFwic3RyaW5nXCJdLFxuICAgIFtcIlN5c3RlbS5TdHJpbmdcIiwgXCJzdHJpbmdcIl1cbiAgXSksXG4gIGdvOiBzb3VyY2VUeXBlTWFwKFtcbiAgICBbXCJpbnQ2NFwiLCBcImludGVnZXJcIl0sXG4gICAgW1wiYm9vbFwiLCBcImJvb2xlYW5cIl0sXG4gICAgW1wic3RyaW5nXCIsIFwic3RyaW5nXCJdXG4gIF0pLFxuICBqYXZhOiBzb3VyY2VUeXBlTWFwKFtcbiAgICBbXCJpbnRcIiwgXCJpbnRlZ2VyXCJdLFxuICAgIFtcImJvb2xlYW5cIiwgXCJib29sZWFuXCJdLFxuICAgIFtcIlN0cmluZ1wiLCBcInN0cmluZ1wiXSxcbiAgICBbXCJqYXZhLmxhbmcuU3RyaW5nXCIsIFwic3RyaW5nXCJdXG4gIF0pLFxuICBrb3RsaW46IHNvdXJjZVR5cGVNYXAoW1xuICAgIFtcIkxvbmdcIiwgXCJpbnRlZ2VyXCJdLFxuICAgIFtcIkJvb2xlYW5cIiwgXCJib29sZWFuXCJdLFxuICAgIFtcIlN0cmluZ1wiLCBcInN0cmluZ1wiXVxuICBdKSxcbiAgamF2YXNjcmlwdDogc291cmNlVHlwZU1hcChbXG4gICAgW1wibnVtYmVyXCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sZWFuXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJzdHJpbmdcIiwgXCJzdHJpbmdcIl1cbiAgXSksXG4gIHBocDogc291cmNlVHlwZU1hcChbXG4gICAgW1wiaW50XCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJzdHJpbmdcIiwgXCJzdHJpbmdcIl1cbiAgXSksXG4gIHB5dGhvbjogc291cmNlVHlwZU1hcChbXG4gICAgW1wiaW50XCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJzdHJcIiwgXCJzdHJpbmdcIl1cbiAgXSksXG4gIHJ1Ynk6IHNvdXJjZVR5cGVNYXAoW1xuICAgIFtcIltJbnRlZ2VyXVwiLCBcImludGVnZXJcIl0sXG4gICAgW1wiW2Jvb2xdXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJbU3RyaW5nXVwiLCBcInN0cmluZ1wiXVxuICBdKSxcbiAgdHlwZXNjcmlwdDogc291cmNlVHlwZU1hcChbXG4gICAgW1wibnVtYmVyXCIsIFwiaW50ZWdlclwiXSxcbiAgICBbXCJib29sZWFuXCIsIFwiYm9vbGVhblwiXSxcbiAgICBbXCJzdHJpbmdcIiwgXCJzdHJpbmdcIl1cbiAgXSlcbn0pXG5cbi8qKlxuICogTG9va3MgdXAgYW4gZXhhY3Qgc291cmNlIHNjYWxhciBzcGVsbGluZyB3aXRob3V0IGluc3BlY3RpbmcgcGFyc2VyIG5vZGVzLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIFNvdXJjZSBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2VUeXBlIC0gRXhhY3Qgc291cmNlIHR5cGUgc3BlbGxpbmcuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNvdXJjZUxvY2F0aW9ufSBbbG9jYXRpb25dIC0gRXhhY3QgcGFyc2VyLW93bmVkIHR5cGUgc3BlbGxpbmcuXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuVHlwZVJlZmVyZW5jZSB8IHVuZGVmaW5lZH0gU2VtYW50aWMgdHlwZSB3aGVuIHN1cHBvcnRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvdXJjZVNjYWxhclR5cGUobGFuZ3VhZ2UsIHNvdXJjZVR5cGUsIGxvY2F0aW9uKSB7XG4gIGNvbnN0IG5hbWUgPSBzb3VyY2VTY2FsYXJUeXBlc1tsYW5ndWFnZV0uZ2V0KHNvdXJjZVR5cGUpXG4gIGNvbnN0IHR5cGUgPSBuYW1lID8gc2NhbGFyVHlwZShuYW1lKSA6IHVuZGVmaW5lZFxuXG4gIGlmICh0eXBlICYmIGxvY2F0aW9uKSBzZXRQYXJzZXJSYW5nZXModHlwZSwge3R5cGU6IGxvY2F0aW9ufSlcblxuICByZXR1cm4gdHlwZVxufVxuXG4vKipcbiAqIFJlcXVpcmVzIGFuIGV4YWN0IHN1cHBvcnRlZCBzb3VyY2Ugc2NhbGFyIHNwZWxsaW5nLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIFNvdXJjZSBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBzb3VyY2VUeXBlIC0gRXhhY3Qgc291cmNlIHR5cGUgc3BlbGxpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gc3ViamVjdCAtIFR5cGVkIHNvdXJjZSBzdWJqZWN0LlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbn0gbG9jYXRpb24gLSBPd25pbmcgc291cmNlIGxvY2F0aW9uLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5Tb3VyY2VMb2NhdGlvbn0gW3R5cGVMb2NhdGlvbl0gLSBFeGFjdCBwYXJzZXItb3duZWQgdHlwZSBzcGVsbGluZy5cbiAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5UeXBlUmVmZXJlbmNlfSBTZW1hbnRpYyBzY2FsYXIgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVTb3VyY2VTY2FsYXJUeXBlKGxhbmd1YWdlLCBzb3VyY2VUeXBlLCBzdWJqZWN0LCBsb2NhdGlvbiwgdHlwZUxvY2F0aW9uID0gbG9jYXRpb24pIHtcbiAgY29uc3QgdHlwZSA9IHNvdXJjZVR5cGUgPyBzb3VyY2VTY2FsYXJUeXBlKGxhbmd1YWdlLCBzb3VyY2VUeXBlLCB0eXBlTG9jYXRpb24pIDogdW5kZWZpbmVkXG5cbiAgaWYgKCF0eXBlKSByZXR1cm4gbWlzc2luZ1R5cGUobGFuZ3VhZ2UsIHN1YmplY3QsIGxvY2F0aW9uKVxuXG4gIHJldHVybiB0eXBlXG59XG5cbi8qKlxuICogUmVxdWlyZXMgYW4gZXhhY3Qgc2NhbGFyIG9yIFRhc2stMDA1IHZvaWQgZnVuY3Rpb24tcmV0dXJuIHNwZWxsaW5nLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9zZW1hbnRpYy90eXBlcy5qc1wiKS5TZW1hbnRpY0xhbmd1YWdlfSBsYW5ndWFnZSAtIFNvdXJjZSBsYW5ndWFnZS5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBzb3VyY2VUeXBlIC0gRXhhY3Qgc291cmNlIHJldHVybiB0eXBlIHNwZWxsaW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IHN1YmplY3QgLSBUeXBlZCBmdW5jdGlvbiByZXR1cm4uXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL3NlbWFudGljL3R5cGVzLmpzXCIpLlNvdXJjZUxvY2F0aW9ufSBsb2NhdGlvbiAtIE93bmluZyBmdW5jdGlvbiBsb2NhdGlvbi5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU291cmNlTG9jYXRpb259IFt0eXBlTG9jYXRpb25dIC0gRXhhY3QgcGFyc2VyLW93bmVkIHR5cGUgc3BlbGxpbmcuXG4gKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vc2VtYW50aWMvdHlwZXMuanNcIikuU2VtYW50aWNGdW5jdGlvblJldHVyblR5cGV9IFNlbWFudGljIHJldHVybiB0eXBlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZVNvdXJjZVJldHVyblR5cGUobGFuZ3VhZ2UsIHNvdXJjZVR5cGUsIHN1YmplY3QsIGxvY2F0aW9uLCB0eXBlTG9jYXRpb24gPSBsb2NhdGlvbikge1xuICBjb25zdCB2b2lkU3BlbGxpbmcgPSBsYW5ndWFnZSA9PSBcInJ1YnlcIiA/IFwiW3ZvaWRdXCIgOiBcInZvaWRcIlxuXG4gIGlmIChzb3VyY2VUeXBlID09IHZvaWRTcGVsbGluZykge1xuICAgIGNvbnN0IHR5cGUgPSB2b2lkVHlwZSgpXG5cbiAgICBzZXRQYXJzZXJSYW5nZXModHlwZSwge3R5cGU6IHR5cGVMb2NhdGlvbn0pXG4gICAgcmV0dXJuIHR5cGVcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlU291cmNlU2NhbGFyVHlwZShsYW5ndWFnZSwgc291cmNlVHlwZSwgc3ViamVjdCwgbG9jYXRpb24sIHR5cGVMb2NhdGlvbilcbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Parses the strict Task 022 Swift profile through the qualified grammar.
3
+ * @param {{filename: string, source: string}} input - Exact source request.
4
+ * @returns {import("../semantic/types.js").SemanticModule} Semantic module.
5
+ */
6
+ export declare function parseSwift({ filename, source }: {
7
+ filename: string;
8
+ source: string;
9
+ }): import("../semantic/types.js").SemanticModule;
10
+ //# sourceMappingURL=swift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../src/frontends/swift.js"],"names":[],"mappings":"AA81BA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAC,EAHlC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAGC,GAFhC,OAAO,sBAAsB,EAAE,cAAc,CA2BzD"}