@aster-cloud/aster-lang-ts 1.6.0 → 3.0.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 (424) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/scripts/aster.js +5 -12
  3. package/dist/scripts/aster.js.map +1 -1
  4. package/dist/scripts/emit-classfiles.js +3 -1
  5. package/dist/scripts/emit-classfiles.js.map +1 -1
  6. package/dist/scripts/generate-core-ir-types.d.ts +16 -0
  7. package/dist/scripts/generate-core-ir-types.d.ts.map +1 -0
  8. package/dist/scripts/generate-core-ir-types.js +116 -0
  9. package/dist/scripts/generate-core-ir-types.js.map +1 -0
  10. package/dist/scripts/generate-naming-rules.d.ts +5 -0
  11. package/dist/scripts/generate-naming-rules.d.ts.map +1 -0
  12. package/dist/scripts/generate-naming-rules.js +35 -0
  13. package/dist/scripts/generate-naming-rules.js.map +1 -0
  14. package/dist/scripts/golden.js +1 -1
  15. package/dist/scripts/golden.js.map +1 -1
  16. package/dist/src/ast/ast_visitor.d.ts +27 -27
  17. package/dist/src/ast/ast_visitor.d.ts.map +1 -1
  18. package/dist/src/ast/ast_visitor.js.map +1 -1
  19. package/dist/src/browser/schema.d.ts.map +1 -1
  20. package/dist/src/browser/schema.js +1 -3
  21. package/dist/src/browser/schema.js.map +1 -1
  22. package/dist/src/browser.d.ts +7 -0
  23. package/dist/src/browser.d.ts.map +1 -1
  24. package/dist/src/browser.js +7 -4
  25. package/dist/src/browser.js.map +1 -1
  26. package/dist/src/cli/policy-converter.js +6 -10
  27. package/dist/src/cli/policy-converter.js.map +1 -1
  28. package/dist/src/cli/utils/core-ir-file.d.ts +8 -0
  29. package/dist/src/cli/utils/core-ir-file.d.ts.map +1 -0
  30. package/dist/src/cli/utils/core-ir-file.js +29 -0
  31. package/dist/src/cli/utils/core-ir-file.js.map +1 -0
  32. package/dist/src/cnl-printer.d.ts.map +1 -1
  33. package/dist/src/cnl-printer.js +13 -3
  34. package/dist/src/cnl-printer.js.map +1 -1
  35. package/dist/src/compile-pipeline.d.ts.map +1 -1
  36. package/dist/src/compile-pipeline.js +2 -3
  37. package/dist/src/compile-pipeline.js.map +1 -1
  38. package/dist/src/config/lexicons/diagnostic-overlays.generated.d.ts.map +1 -1
  39. package/dist/src/config/lexicons/diagnostic-overlays.generated.js +18 -6
  40. package/dist/src/config/lexicons/diagnostic-overlays.generated.js.map +1 -1
  41. package/dist/src/config/lexicons/fallback-lexicon.d.ts +1 -1
  42. package/dist/src/config/lexicons/fallback-lexicon.d.ts.map +1 -1
  43. package/dist/src/config/lexicons/fallback-lexicon.js +1 -4
  44. package/dist/src/config/lexicons/fallback-lexicon.js.map +1 -1
  45. package/dist/src/config/lexicons/overlay-loader.d.ts +0 -13
  46. package/dist/src/config/lexicons/overlay-loader.d.ts.map +1 -1
  47. package/dist/src/config/lexicons/overlay-loader.js +0 -18
  48. package/dist/src/config/lexicons/overlay-loader.js.map +1 -1
  49. package/dist/src/config/lexicons/types.d.ts +0 -3
  50. package/dist/src/config/lexicons/types.d.ts.map +1 -1
  51. package/dist/src/config/lexicons/types.js.map +1 -1
  52. package/dist/src/core/canonical-decimal.d.ts +3 -0
  53. package/dist/src/core/canonical-decimal.d.ts.map +1 -0
  54. package/dist/src/core/canonical-decimal.js +19 -0
  55. package/dist/src/core/canonical-decimal.js.map +1 -0
  56. package/dist/src/core/canonical-json.d.ts +59 -0
  57. package/dist/src/core/canonical-json.d.ts.map +1 -0
  58. package/dist/src/core/canonical-json.js +250 -0
  59. package/dist/src/core/canonical-json.js.map +1 -0
  60. package/dist/src/core/core-ir-v2.generated.d.ts +807 -0
  61. package/dist/src/core/core-ir-v2.generated.d.ts.map +1 -0
  62. package/dist/src/core/core-ir-v2.generated.js +6 -0
  63. package/dist/src/core/core-ir-v2.generated.js.map +1 -0
  64. package/dist/src/core/core-ir-v2.schema.generated.d.ts +6 -0
  65. package/dist/src/core/core-ir-v2.schema.generated.d.ts.map +1 -0
  66. package/dist/src/core/core-ir-v2.schema.generated.js +2636 -0
  67. package/dist/src/core/core-ir-v2.schema.generated.js.map +1 -0
  68. package/dist/src/core/core_ir.d.ts +27 -11
  69. package/dist/src/core/core_ir.d.ts.map +1 -1
  70. package/dist/src/core/core_ir.js +118 -63
  71. package/dist/src/core/core_ir.js.map +1 -1
  72. package/dist/src/core/index.d.ts +4 -3
  73. package/dist/src/core/index.d.ts.map +1 -1
  74. package/dist/src/core/index.js +3 -2
  75. package/dist/src/core/index.js.map +1 -1
  76. package/dist/src/core/inferred_fields.d.ts +9 -11
  77. package/dist/src/core/inferred_fields.d.ts.map +1 -1
  78. package/dist/src/core/inferred_fields.js +7 -28
  79. package/dist/src/core/inferred_fields.js.map +1 -1
  80. package/dist/src/core/interpreter.js +16 -35
  81. package/dist/src/core/interpreter.js.map +1 -1
  82. package/dist/src/core/lambda-captures.d.ts +14 -0
  83. package/dist/src/core/lambda-captures.d.ts.map +1 -0
  84. package/dist/src/core/lambda-captures.js +128 -0
  85. package/dist/src/core/lambda-captures.js.map +1 -0
  86. package/dist/src/core/pretty_core.d.ts.map +1 -1
  87. package/dist/src/core/pretty_core.js +6 -10
  88. package/dist/src/core/pretty_core.js.map +1 -1
  89. package/dist/src/core/read-core-ir.d.ts +15 -0
  90. package/dist/src/core/read-core-ir.d.ts.map +1 -0
  91. package/dist/src/core/read-core-ir.js +69 -0
  92. package/dist/src/core/read-core-ir.js.map +1 -0
  93. package/dist/src/core/resolution-mark.d.ts +3 -4
  94. package/dist/src/core/resolution-mark.d.ts.map +1 -1
  95. package/dist/src/core/resolution-mark.js +2 -3
  96. package/dist/src/core/resolution-mark.js.map +1 -1
  97. package/dist/src/core/resolve-typed-references.d.ts.map +1 -1
  98. package/dist/src/core/resolve-typed-references.js +11 -27
  99. package/dist/src/core/resolve-typed-references.js.map +1 -1
  100. package/dist/src/core/serialize-core-ir.d.ts +13 -0
  101. package/dist/src/core/serialize-core-ir.d.ts.map +1 -0
  102. package/dist/src/core/serialize-core-ir.js +125 -0
  103. package/dist/src/core/serialize-core-ir.js.map +1 -0
  104. package/dist/src/core/visitor.d.ts.map +1 -1
  105. package/dist/src/core/visitor.js +4 -1
  106. package/dist/src/core/visitor.js.map +1 -1
  107. package/dist/src/diagnostics/error_codes.d.ts +2 -0
  108. package/dist/src/diagnostics/error_codes.d.ts.map +1 -1
  109. package/dist/src/diagnostics/error_codes.js +16 -0
  110. package/dist/src/diagnostics/error_codes.js.map +1 -1
  111. package/dist/src/effects/declared-effects.d.ts +17 -0
  112. package/dist/src/effects/declared-effects.d.ts.map +1 -0
  113. package/dist/src/effects/declared-effects.js +27 -0
  114. package/dist/src/effects/declared-effects.js.map +1 -0
  115. package/dist/src/effects/effect_inference.d.ts.map +1 -1
  116. package/dist/src/effects/effect_inference.js +14 -10
  117. package/dist/src/effects/effect_inference.js.map +1 -1
  118. package/dist/src/effects/effect_inference_browser.d.ts.map +1 -1
  119. package/dist/src/effects/effect_inference_browser.js +14 -9
  120. package/dist/src/effects/effect_inference_browser.js.map +1 -1
  121. package/dist/src/frontend/keyword-translator.d.ts.map +1 -1
  122. package/dist/src/frontend/keyword-translator.js +3 -0
  123. package/dist/src/frontend/keyword-translator.js.map +1 -1
  124. package/dist/src/frontend/lexer.d.ts.map +1 -1
  125. package/dist/src/frontend/lexer.js +7 -3
  126. package/dist/src/frontend/lexer.js.map +1 -1
  127. package/dist/src/frontend/resolve-declarations.d.ts.map +1 -1
  128. package/dist/src/frontend/resolve-declarations.js +3 -23
  129. package/dist/src/frontend/resolve-declarations.js.map +1 -1
  130. package/dist/src/governance/input-refs.js +5 -8
  131. package/dist/src/governance/input-refs.js.map +1 -1
  132. package/dist/src/index.d.ts +5 -0
  133. package/dist/src/index.d.ts.map +1 -1
  134. package/dist/src/index.js +4 -0
  135. package/dist/src/index.js.map +1 -1
  136. package/dist/src/jvm/emitter.d.ts.map +1 -1
  137. package/dist/src/jvm/emitter.js +20 -29
  138. package/dist/src/jvm/emitter.js.map +1 -1
  139. package/dist/src/lower_to_core.d.ts +2 -19
  140. package/dist/src/lower_to_core.d.ts.map +1 -1
  141. package/dist/src/lower_to_core.js +194 -384
  142. package/dist/src/lower_to_core.js.map +1 -1
  143. package/dist/src/lsp/pii_diagnostics.d.ts.map +1 -1
  144. package/dist/src/lsp/pii_diagnostics.js +3 -8
  145. package/dist/src/lsp/pii_diagnostics.js.map +1 -1
  146. package/dist/src/mapping/mapping-ir.d.ts +3 -3
  147. package/dist/src/mapping/mapping-ir.js +3 -3
  148. package/dist/src/nodeid/node-id-map.d.ts +6 -15
  149. package/dist/src/nodeid/node-id-map.d.ts.map +1 -1
  150. package/dist/src/nodeid/node-id-map.js +6 -15
  151. package/dist/src/nodeid/node-id-map.js.map +1 -1
  152. package/dist/src/parser/constraint-parser.js +25 -6
  153. package/dist/src/parser/constraint-parser.js.map +1 -1
  154. package/dist/src/parser/decl-parser.d.ts.map +1 -1
  155. package/dist/src/parser/decl-parser.js +30 -59
  156. package/dist/src/parser/decl-parser.js.map +1 -1
  157. package/dist/src/parser/expr-stmt-parser.d.ts.map +1 -1
  158. package/dist/src/parser/expr-stmt-parser.js +17 -10
  159. package/dist/src/parser/expr-stmt-parser.js.map +1 -1
  160. package/dist/src/parser/field-variant-parser.d.ts.map +1 -1
  161. package/dist/src/parser/field-variant-parser.js +9 -3
  162. package/dist/src/parser/field-variant-parser.js.map +1 -1
  163. package/dist/src/parser/naming-rules.d.ts +19 -0
  164. package/dist/src/parser/naming-rules.d.ts.map +1 -0
  165. package/dist/src/parser/naming-rules.generated.d.ts +7 -0
  166. package/dist/src/parser/naming-rules.generated.d.ts.map +1 -0
  167. package/dist/src/parser/naming-rules.generated.js +392 -0
  168. package/dist/src/parser/naming-rules.generated.js.map +1 -0
  169. package/dist/src/parser/naming-rules.js +2 -0
  170. package/dist/src/parser/naming-rules.js.map +1 -0
  171. package/dist/src/parser/parse-issue.d.ts +2 -0
  172. package/dist/src/parser/parse-issue.d.ts.map +1 -1
  173. package/dist/src/parser/parse-issue.js +2 -0
  174. package/dist/src/parser/parse-issue.js.map +1 -1
  175. package/dist/src/parser/type-inference.d.ts +29 -70
  176. package/dist/src/parser/type-inference.d.ts.map +1 -1
  177. package/dist/src/parser/type-inference.js +82 -212
  178. package/dist/src/parser/type-inference.js.map +1 -1
  179. package/dist/src/parser/type-parser.d.ts +1 -1
  180. package/dist/src/parser/type-parser.d.ts.map +1 -1
  181. package/dist/src/parser/type-parser.js +31 -21
  182. package/dist/src/parser/type-parser.js.map +1 -1
  183. package/dist/src/parser.d.ts.map +1 -1
  184. package/dist/src/parser.js +2 -5
  185. package/dist/src/parser.js.map +1 -1
  186. package/dist/src/stability/stability_gate.d.ts +1 -1
  187. package/dist/src/stability/stability_gate.d.ts.map +1 -1
  188. package/dist/src/stability/stability_gate.js +2 -26
  189. package/dist/src/stability/stability_gate.js.map +1 -1
  190. package/dist/src/typecheck/async.d.ts.map +1 -1
  191. package/dist/src/typecheck/async.js +4 -1
  192. package/dist/src/typecheck/async.js.map +1 -1
  193. package/dist/src/typecheck/browser.d.ts.map +1 -1
  194. package/dist/src/typecheck/browser.js +4 -3
  195. package/dist/src/typecheck/browser.js.map +1 -1
  196. package/dist/src/typecheck/capabilities.d.ts.map +1 -1
  197. package/dist/src/typecheck/capabilities.js +3 -2
  198. package/dist/src/typecheck/capabilities.js.map +1 -1
  199. package/dist/src/typecheck/context.d.ts +5 -5
  200. package/dist/src/typecheck/context.d.ts.map +1 -1
  201. package/dist/src/typecheck/context.js.map +1 -1
  202. package/dist/src/typecheck/diagnostics.d.ts +2 -2
  203. package/dist/src/typecheck/diagnostics.d.ts.map +1 -1
  204. package/dist/src/typecheck/diagnostics.js.map +1 -1
  205. package/dist/src/typecheck/effects.js +18 -11
  206. package/dist/src/typecheck/effects.js.map +1 -1
  207. package/dist/src/typecheck/expression.d.ts +4 -4
  208. package/dist/src/typecheck/expression.d.ts.map +1 -1
  209. package/dist/src/typecheck/expression.js +1 -1
  210. package/dist/src/typecheck/expression.js.map +1 -1
  211. package/dist/src/typecheck/generics.d.ts +2 -2
  212. package/dist/src/typecheck/generics.d.ts.map +1 -1
  213. package/dist/src/typecheck/generics.js +23 -12
  214. package/dist/src/typecheck/generics.js.map +1 -1
  215. package/dist/src/typecheck/governance.d.ts +1 -1
  216. package/dist/src/typecheck/governance.d.ts.map +1 -1
  217. package/dist/src/typecheck/governance.js +1 -1
  218. package/dist/src/typecheck/governance.js.map +1 -1
  219. package/dist/src/typecheck/module.d.ts.map +1 -1
  220. package/dist/src/typecheck/module.js +7 -6
  221. package/dist/src/typecheck/module.js.map +1 -1
  222. package/dist/src/typecheck/pattern.d.ts +2 -2
  223. package/dist/src/typecheck/pattern.d.ts.map +1 -1
  224. package/dist/src/typecheck/pattern.js +12 -46
  225. package/dist/src/typecheck/pattern.js.map +1 -1
  226. package/dist/src/typecheck/pure.d.ts +19 -19
  227. package/dist/src/typecheck/pure.d.ts.map +1 -1
  228. package/dist/src/typecheck/pure.js.map +1 -1
  229. package/dist/src/typecheck/statement.d.ts +6 -6
  230. package/dist/src/typecheck/statement.d.ts.map +1 -1
  231. package/dist/src/typecheck/statement.js +17 -20
  232. package/dist/src/typecheck/statement.js.map +1 -1
  233. package/dist/src/typecheck/symbol_table.d.ts +2 -2
  234. package/dist/src/typecheck/symbol_table.d.ts.map +1 -1
  235. package/dist/src/typecheck/symbol_table.js.map +1 -1
  236. package/dist/src/typecheck/type_system.d.ts +4 -4
  237. package/dist/src/typecheck/type_system.d.ts.map +1 -1
  238. package/dist/src/typecheck/type_system.js +1 -1
  239. package/dist/src/typecheck/type_system.js.map +1 -1
  240. package/dist/src/typecheck/workflow.d.ts +3 -3
  241. package/dist/src/typecheck/workflow.d.ts.map +1 -1
  242. package/dist/src/typecheck/workflow.js.map +1 -1
  243. package/dist/src/typecheck-pii.d.ts.map +1 -1
  244. package/dist/src/typecheck-pii.js +2 -13
  245. package/dist/src/typecheck-pii.js.map +1 -1
  246. package/dist/src/types/type-inference.d.ts +1 -13
  247. package/dist/src/types/type-inference.d.ts.map +1 -1
  248. package/dist/src/types/type-inference.js +1 -2
  249. package/dist/src/types/type-inference.js.map +1 -1
  250. package/dist/src/types.d.ts +160 -172
  251. package/dist/src/types.d.ts.map +1 -1
  252. package/dist/src/types.js.map +1 -1
  253. package/dist/src/version.d.ts +3 -3
  254. package/dist/src/version.js +3 -3
  255. package/dist/test/helpers/core-ir-v2.d.ts +5 -0
  256. package/dist/test/helpers/core-ir-v2.d.ts.map +1 -0
  257. package/dist/test/helpers/core-ir-v2.js +123 -0
  258. package/dist/test/helpers/core-ir-v2.js.map +1 -0
  259. package/dist/test/helpers/locales-core-ir.d.ts +7 -0
  260. package/dist/test/helpers/locales-core-ir.d.ts.map +1 -0
  261. package/dist/test/helpers/locales-core-ir.js +15 -0
  262. package/dist/test/helpers/locales-core-ir.js.map +1 -0
  263. package/dist/test/helpers/locales-type-inference.d.ts +6 -0
  264. package/dist/test/helpers/locales-type-inference.d.ts.map +1 -0
  265. package/dist/test/helpers/locales-type-inference.js +14 -0
  266. package/dist/test/helpers/locales-type-inference.js.map +1 -0
  267. package/dist/test/helpers/test-factories.d.ts +5 -5
  268. package/dist/test/helpers/test-factories.d.ts.map +1 -1
  269. package/dist/test/helpers/test-factories.js +9 -8
  270. package/dist/test/helpers/test-factories.js.map +1 -1
  271. package/dist/test/integration/compliance/compliance-smoke.test.js +1 -2
  272. package/dist/test/integration/compliance/compliance-smoke.test.js.map +1 -1
  273. package/dist/test/integration/pipeline/pipeline.test.js +1 -1
  274. package/dist/test/integration/pipeline/pipeline.test.js.map +1 -1
  275. package/dist/test/integration/vocabulary-resolution.test.js +1 -1
  276. package/dist/test/integration/vocabulary-resolution.test.js.map +1 -1
  277. package/dist/test/regression/type-checker-golden.test.js +1 -1
  278. package/dist/test/regression/type-checker-golden.test.js.map +1 -1
  279. package/dist/test/type-checker/pii-propagation.test.js +7 -6
  280. package/dist/test/type-checker/pii-propagation.test.js.map +1 -1
  281. package/dist/test/types/core-ir-v2.test-d.d.ts +28 -0
  282. package/dist/test/types/core-ir-v2.test-d.d.ts.map +1 -0
  283. package/dist/test/types/core-ir-v2.test-d.js +5 -0
  284. package/dist/test/types/core-ir-v2.test-d.js.map +1 -0
  285. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js +4 -3
  286. package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js.map +1 -1
  287. package/dist/test/unit/canonicalizer/article-declaration-names.test.js +1 -1
  288. package/dist/test/unit/canonicalizer/article-declaration-names.test.js.map +1 -1
  289. package/dist/test/unit/canonicalizer/chinese-function-syntax.test.js +2 -1
  290. package/dist/test/unit/canonicalizer/chinese-function-syntax.test.js.map +1 -1
  291. package/dist/test/unit/core/canonical-json.test.d.ts +2 -0
  292. package/dist/test/unit/core/canonical-json.test.d.ts.map +1 -0
  293. package/dist/test/unit/core/canonical-json.test.js +38 -0
  294. package/dist/test/unit/core/canonical-json.test.js.map +1 -0
  295. package/dist/test/unit/core/caseless-pattern-name.test.js +6 -8
  296. package/dist/test/unit/core/caseless-pattern-name.test.js.map +1 -1
  297. package/dist/test/unit/core/core-ir-conformance.test.d.ts +2 -0
  298. package/dist/test/unit/core/core-ir-conformance.test.d.ts.map +1 -0
  299. package/dist/test/unit/core/core-ir-conformance.test.js +39 -0
  300. package/dist/test/unit/core/core-ir-conformance.test.js.map +1 -0
  301. package/dist/test/unit/core/core-ir-schema-parity.test.d.ts +2 -0
  302. package/dist/test/unit/core/core-ir-schema-parity.test.d.ts.map +1 -0
  303. package/dist/test/unit/core/core-ir-schema-parity.test.js +25 -0
  304. package/dist/test/unit/core/core-ir-schema-parity.test.js.map +1 -0
  305. package/dist/test/unit/core/core-ir-v2-outputs.test.d.ts +2 -0
  306. package/dist/test/unit/core/core-ir-v2-outputs.test.d.ts.map +1 -0
  307. package/dist/test/unit/core/core-ir-v2-outputs.test.js +128 -0
  308. package/dist/test/unit/core/core-ir-v2-outputs.test.js.map +1 -0
  309. package/dist/test/unit/core/read-core-ir.test.d.ts +2 -0
  310. package/dist/test/unit/core/read-core-ir.test.d.ts.map +1 -0
  311. package/dist/test/unit/core/read-core-ir.test.js +129 -0
  312. package/dist/test/unit/core/read-core-ir.test.js.map +1 -0
  313. package/dist/test/unit/core/resolve-typed-references.test.js +22 -18
  314. package/dist/test/unit/core/resolve-typed-references.test.js.map +1 -1
  315. package/dist/test/unit/diagnostics/lowering-diagnostics-parity.test.js +5 -5
  316. package/dist/test/unit/diagnostics/lowering-diagnostics-parity.test.js.map +1 -1
  317. package/dist/test/unit/diagnostics/parse-diagnostics-parity.test.js +3 -2
  318. package/dist/test/unit/diagnostics/parse-diagnostics-parity.test.js.map +1 -1
  319. package/dist/test/unit/effect/effect-caps-explicit-only.test.d.ts +2 -0
  320. package/dist/test/unit/effect/effect-caps-explicit-only.test.d.ts.map +1 -0
  321. package/dist/test/unit/effect/effect-caps-explicit-only.test.js +73 -0
  322. package/dist/test/unit/effect/effect-caps-explicit-only.test.js.map +1 -0
  323. package/dist/test/unit/effect/effect-inference.test.js +17 -13
  324. package/dist/test/unit/effect/effect-inference.test.js.map +1 -1
  325. package/dist/test/unit/emitter/emitter.test.js +47 -46
  326. package/dist/test/unit/emitter/emitter.test.js.map +1 -1
  327. package/dist/test/unit/formatter-corpus-roundtrip.test.js +5 -1
  328. package/dist/test/unit/formatter-corpus-roundtrip.test.js.map +1 -1
  329. package/dist/test/unit/formatter-roundtrip.test.js +5 -4
  330. package/dist/test/unit/formatter-roundtrip.test.js.map +1 -1
  331. package/dist/test/unit/frontend/resolve-declarations.test.js +13 -14
  332. package/dist/test/unit/frontend/resolve-declarations.test.js.map +1 -1
  333. package/dist/test/unit/governance/governance-check.test.js +1 -1
  334. package/dist/test/unit/governance/governance-check.test.js.map +1 -1
  335. package/dist/test/unit/governance/input-refs-parity.test.js +1 -1
  336. package/dist/test/unit/governance/input-refs-parity.test.js.map +1 -1
  337. package/dist/test/unit/governance/input-refs.test.js +2 -2
  338. package/dist/test/unit/governance/input-refs.test.js.map +1 -1
  339. package/dist/test/unit/governance/no-profile-ir-unchanged.test.js +6 -6
  340. package/dist/test/unit/governance/no-profile-ir-unchanged.test.js.map +1 -1
  341. package/dist/test/unit/interpreter/interpreter.test.js +23 -21
  342. package/dist/test/unit/interpreter/interpreter.test.js.map +1 -1
  343. package/dist/test/unit/interpreter/scope-writeback.test.js +28 -27
  344. package/dist/test/unit/interpreter/scope-writeback.test.js.map +1 -1
  345. package/dist/test/unit/keyword-aliases.test.js +1 -1
  346. package/dist/test/unit/lambda-capture-parity.test.js +43 -14
  347. package/dist/test/unit/lambda-capture-parity.test.js.map +1 -1
  348. package/dist/test/unit/lexicons/fallback-lexicon.test.d.ts +1 -1
  349. package/dist/test/unit/lexicons/fallback-lexicon.test.js +2 -4
  350. package/dist/test/unit/lexicons/fallback-lexicon.test.js.map +1 -1
  351. package/dist/test/unit/lowering/core-ir-v2.test.d.ts +2 -0
  352. package/dist/test/unit/lowering/core-ir-v2.test.d.ts.map +1 -0
  353. package/dist/test/unit/lowering/core-ir-v2.test.js +253 -0
  354. package/dist/test/unit/lowering/core-ir-v2.test.js.map +1 -0
  355. package/dist/test/unit/lowering/lowering.test.js +19 -14
  356. package/dist/test/unit/lowering/lowering.test.js.map +1 -1
  357. package/dist/test/unit/lsp/pii-diagnostics.test.js +33 -30
  358. package/dist/test/unit/lsp/pii-diagnostics.test.js.map +1 -1
  359. package/dist/test/unit/lsp/utils.test.js +5 -4
  360. package/dist/test/unit/lsp/utils.test.js.map +1 -1
  361. package/dist/test/unit/parser/effect-unknown-name.test.js +7 -7
  362. package/dist/test/unit/parser/effect-unknown-name.test.js.map +1 -1
  363. package/dist/test/unit/parser/entry-annotations.test.js +2 -1
  364. package/dist/test/unit/parser/entry-annotations.test.js.map +1 -1
  365. package/dist/test/unit/parser/func-type.test.js +3 -3
  366. package/dist/test/unit/parser/func-type.test.js.map +1 -1
  367. package/dist/test/unit/parser/governance-sugar.test.js +4 -4
  368. package/dist/test/unit/parser/governance-sugar.test.js.map +1 -1
  369. package/dist/test/unit/parser/inferred-type-anchor.test.d.ts +2 -0
  370. package/dist/test/unit/parser/inferred-type-anchor.test.d.ts.map +1 -0
  371. package/dist/test/unit/parser/inferred-type-anchor.test.js +83 -0
  372. package/dist/test/unit/parser/inferred-type-anchor.test.js.map +1 -0
  373. package/dist/test/unit/parser/naming-rules-parity.test.d.ts +2 -0
  374. package/dist/test/unit/parser/naming-rules-parity.test.d.ts.map +1 -0
  375. package/dist/test/unit/parser/naming-rules-parity.test.js +26 -0
  376. package/dist/test/unit/parser/naming-rules-parity.test.js.map +1 -0
  377. package/dist/test/unit/parser/parser.test.js +11 -32
  378. package/dist/test/unit/parser/parser.test.js.map +1 -1
  379. package/dist/test/unit/parser/type-inference-vectors.test.d.ts +2 -0
  380. package/dist/test/unit/parser/type-inference-vectors.test.d.ts.map +1 -0
  381. package/dist/test/unit/parser/type-inference-vectors.test.js +40 -0
  382. package/dist/test/unit/parser/type-inference-vectors.test.js.map +1 -0
  383. package/dist/test/unit/parser/type-inference.test.d.ts +2 -1
  384. package/dist/test/unit/parser/type-inference.test.d.ts.map +1 -1
  385. package/dist/test/unit/parser/type-inference.test.js +93 -159
  386. package/dist/test/unit/parser/type-inference.test.js.map +1 -1
  387. package/dist/test/unit/regex-guard.test.js +6 -6
  388. package/dist/test/unit/regex-guard.test.js.map +1 -1
  389. package/dist/test/unit/rule-call-checks.test.js +2 -1
  390. package/dist/test/unit/rule-call-checks.test.js.map +1 -1
  391. package/dist/test/unit/typecheck/async-discipline-extended.test.js +11 -10
  392. package/dist/test/unit/typecheck/async-discipline-extended.test.js.map +1 -1
  393. package/dist/test/unit/typecheck/effect-prefix-injection.test.js +3 -2
  394. package/dist/test/unit/typecheck/effect-prefix-injection.test.js.map +1 -1
  395. package/dist/test/unit/typecheck/function-return-inference.test.js +33 -32
  396. package/dist/test/unit/typecheck/function-return-inference.test.js.map +1 -1
  397. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js +5 -4
  398. package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js.map +1 -1
  399. package/dist/test/unit/typecheck/regression-fixes.test.js +110 -112
  400. package/dist/test/unit/typecheck/regression-fixes.test.js.map +1 -1
  401. package/dist/test/unit/typecheck/symbol-table.test.js +3 -2
  402. package/dist/test/unit/typecheck/symbol-table.test.js.map +1 -1
  403. package/dist/test/unit/typecheck/type-system-extended.test.js +6 -5
  404. package/dist/test/unit/typecheck/type-system-extended.test.js.map +1 -1
  405. package/dist/test/unit/typecheck/type-system.test.js +20 -19
  406. package/dist/test/unit/typecheck/type-system.test.js.map +1 -1
  407. package/dist/test/unit/typecheck/typecheck-advanced.test.js +19 -18
  408. package/dist/test/unit/typecheck/typecheck-advanced.test.js.map +1 -1
  409. package/dist/test/unit/typecheck/untyped-field-dynamic.test.js +6 -4
  410. package/dist/test/unit/typecheck/untyped-field-dynamic.test.js.map +1 -1
  411. package/dist/test/unit/version.test.js +3 -3
  412. package/package.json +4 -3
  413. package/dist/src/config/lexicons/type-inference-rules.d.ts +0 -19
  414. package/dist/src/config/lexicons/type-inference-rules.d.ts.map +0 -1
  415. package/dist/src/config/lexicons/type-inference-rules.js +0 -63
  416. package/dist/src/config/lexicons/type-inference-rules.js.map +0 -1
  417. package/dist/src/core/core_ir_json.d.ts +0 -62
  418. package/dist/src/core/core_ir_json.d.ts.map +0 -1
  419. package/dist/src/core/core_ir_json.js +0 -81
  420. package/dist/src/core/core_ir_json.js.map +0 -1
  421. package/dist/test/unit/core_ir_json/core_ir_json.test.d.ts +0 -2
  422. package/dist/test/unit/core_ir_json/core_ir_json.test.d.ts.map +0 -1
  423. package/dist/test/unit/core_ir_json/core_ir_json.test.js +0 -218
  424. package/dist/test/unit/core_ir_json/core_ir_json.test.js.map +0 -1
@@ -0,0 +1,392 @@
1
+ export const NAMING_RULES = {
2
+ "version": 1,
3
+ "default": "Text",
4
+ "rules": [
5
+ {
6
+ "type": "Text",
7
+ "priority": 11,
8
+ "match": "lastWord",
9
+ "words": [
10
+ "message",
11
+ "dosage"
12
+ ]
13
+ },
14
+ {
15
+ "type": "Text",
16
+ "priority": 10,
17
+ "match": "lastWordMulti",
18
+ "words": [
19
+ "id",
20
+ "identifier"
21
+ ]
22
+ },
23
+ {
24
+ "type": "Text",
25
+ "priority": 8,
26
+ "match": "lastWord",
27
+ "words": [
28
+ "code",
29
+ "key",
30
+ "token",
31
+ "uuid",
32
+ "guid",
33
+ "vin"
34
+ ]
35
+ },
36
+ {
37
+ "type": "Float",
38
+ "priority": 10,
39
+ "match": "lastWord",
40
+ "words": [
41
+ "amount",
42
+ "price",
43
+ "cost",
44
+ "fee",
45
+ "total",
46
+ "balance",
47
+ "salary",
48
+ "income",
49
+ "payment",
50
+ "percentage",
51
+ "ratio"
52
+ ]
53
+ },
54
+ {
55
+ "type": "Float",
56
+ "priority": 9,
57
+ "match": "lastWord",
58
+ "words": [
59
+ "rate",
60
+ "interest"
61
+ ]
62
+ },
63
+ {
64
+ "type": "Int",
65
+ "priority": 10,
66
+ "match": "lastWord",
67
+ "words": [
68
+ "count",
69
+ "number",
70
+ "qty",
71
+ "quantity",
72
+ "score",
73
+ "level",
74
+ "rank",
75
+ "index",
76
+ "size",
77
+ "length",
78
+ "width",
79
+ "height",
80
+ "age"
81
+ ]
82
+ },
83
+ {
84
+ "type": "Int",
85
+ "priority": 9,
86
+ "match": "anyWord",
87
+ "words": [
88
+ "year",
89
+ "years",
90
+ "month",
91
+ "months",
92
+ "week",
93
+ "weeks",
94
+ "day",
95
+ "days",
96
+ "hour",
97
+ "hours",
98
+ "minute",
99
+ "minutes",
100
+ "second",
101
+ "seconds"
102
+ ]
103
+ },
104
+ {
105
+ "type": "Bool",
106
+ "priority": 11,
107
+ "match": "firstWord",
108
+ "words": [
109
+ "is",
110
+ "iss",
111
+ "ises",
112
+ "isd",
113
+ "ised",
114
+ "has",
115
+ "hass",
116
+ "hases",
117
+ "hasd",
118
+ "hased",
119
+ "can",
120
+ "cans",
121
+ "canes",
122
+ "cand",
123
+ "caned",
124
+ "should",
125
+ "shoulds",
126
+ "shouldes",
127
+ "shouldd",
128
+ "shoulded",
129
+ "was",
130
+ "wass",
131
+ "wases",
132
+ "wasd",
133
+ "wased",
134
+ "will",
135
+ "wills",
136
+ "willes",
137
+ "willd",
138
+ "willed",
139
+ "did",
140
+ "dids",
141
+ "dides",
142
+ "didd",
143
+ "dided",
144
+ "does",
145
+ "doess",
146
+ "doeses",
147
+ "doesd",
148
+ "doesed",
149
+ "allow",
150
+ "allows",
151
+ "allowes",
152
+ "allowd",
153
+ "allowed",
154
+ "enable",
155
+ "enables",
156
+ "enablees",
157
+ "enabled",
158
+ "enableed",
159
+ "disable",
160
+ "disables",
161
+ "disablees",
162
+ "disabled",
163
+ "disableed",
164
+ "active",
165
+ "actives",
166
+ "activees",
167
+ "actived",
168
+ "activeed",
169
+ "valid",
170
+ "valids",
171
+ "valides",
172
+ "validd",
173
+ "valided",
174
+ "require",
175
+ "requires",
176
+ "requirees",
177
+ "required",
178
+ "requireed"
179
+ ]
180
+ },
181
+ {
182
+ "type": "Bool",
183
+ "priority": 8,
184
+ "match": "lastWord",
185
+ "words": [
186
+ "flag",
187
+ "enabled",
188
+ "disabled",
189
+ "active",
190
+ "valid",
191
+ "approved",
192
+ "rejected",
193
+ "completed",
194
+ "confirmed",
195
+ "sufficient",
196
+ "success",
197
+ "passed",
198
+ "verified"
199
+ ]
200
+ },
201
+ {
202
+ "type": "DateTime",
203
+ "priority": 10,
204
+ "match": "lastWord",
205
+ "words": [
206
+ "date",
207
+ "time",
208
+ "at",
209
+ "timestamp",
210
+ "created",
211
+ "updated",
212
+ "modified",
213
+ "expired",
214
+ "birthday",
215
+ "anniversary"
216
+ ]
217
+ },
218
+ {
219
+ "type": "Text",
220
+ "priority": 8,
221
+ "match": "lastWord",
222
+ "words": [
223
+ "type",
224
+ "status",
225
+ "category",
226
+ "kind",
227
+ "mode"
228
+ ]
229
+ },
230
+ {
231
+ "type": "Text",
232
+ "priority": 7,
233
+ "match": "lastWord",
234
+ "words": [
235
+ "make",
236
+ "model",
237
+ "brand",
238
+ "manufacturer"
239
+ ]
240
+ },
241
+ {
242
+ "type": "Text",
243
+ "priority": 7,
244
+ "match": "lastWord",
245
+ "words": [
246
+ "name",
247
+ "title",
248
+ "description",
249
+ "comment",
250
+ "note",
251
+ "remark",
252
+ "address",
253
+ "email",
254
+ "phone",
255
+ "url",
256
+ "path",
257
+ "reason",
258
+ "recommendation",
259
+ "factors",
260
+ "purpose"
261
+ ]
262
+ },
263
+ {
264
+ "type": "Int",
265
+ "priority": 9,
266
+ "match": "lastWord",
267
+ "words": [
268
+ "rating",
269
+ "limit",
270
+ "premium",
271
+ "deductible",
272
+ "multiplier",
273
+ "deposit",
274
+ "line",
275
+ "utilization",
276
+ "inquiries",
277
+ "rent",
278
+ "debt",
279
+ "cards",
280
+ "value",
281
+ "payments"
282
+ ]
283
+ },
284
+ {
285
+ "type": "Int",
286
+ "priority": 8,
287
+ "match": "lastWord",
288
+ "words": [
289
+ "licensed",
290
+ "employed",
291
+ "job",
292
+ "experience"
293
+ ]
294
+ },
295
+ {
296
+ "type": "Int",
297
+ "priority": 9,
298
+ "match": "lastWord",
299
+ "words": [
300
+ "bps",
301
+ "apr",
302
+ "apy"
303
+ ]
304
+ },
305
+ {
306
+ "type": "Int",
307
+ "priority": 8,
308
+ "match": "lastWord",
309
+ "words": [
310
+ "checked"
311
+ ]
312
+ },
313
+ {
314
+ "type": "Bool",
315
+ "priority": 11,
316
+ "match": "textPrefix",
317
+ "strings": [
318
+ "是否",
319
+ "有无",
320
+ "能否",
321
+ "可否",
322
+ "允许",
323
+ "启用",
324
+ "禁用"
325
+ ]
326
+ },
327
+ {
328
+ "type": "Bool",
329
+ "priority": 8,
330
+ "match": "textSuffix",
331
+ "strings": [
332
+ "批准",
333
+ "通过",
334
+ "有效",
335
+ "合格",
336
+ "可疑",
337
+ "确认",
338
+ "验证"
339
+ ]
340
+ },
341
+ {
342
+ "type": "Int",
343
+ "priority": 10,
344
+ "match": "textSuffix",
345
+ "strings": [
346
+ "评分",
347
+ "年龄",
348
+ "数量",
349
+ "次数",
350
+ "额度",
351
+ "金额",
352
+ "保费",
353
+ "免赔额",
354
+ "账龄",
355
+ "卡数"
356
+ ]
357
+ },
358
+ {
359
+ "type": "Float",
360
+ "priority": 9,
361
+ "match": "textSuffix",
362
+ "strings": [
363
+ "利率",
364
+ "费率",
365
+ "比率",
366
+ "百分比"
367
+ ]
368
+ },
369
+ {
370
+ "type": "Bool",
371
+ "priority": 8,
372
+ "match": "textSuffix",
373
+ "strings": [
374
+ "genehmigt",
375
+ "berechtigt",
376
+ "verdaechtig",
377
+ "aktiviert",
378
+ "deaktiviert",
379
+ "aktiv",
380
+ "gueltig",
381
+ "erfolgreich",
382
+ "bestanden",
383
+ "bestaetigt",
384
+ "verifiziert",
385
+ "abgelehnt",
386
+ "abgeschlossen",
387
+ "erforderlich"
388
+ ]
389
+ }
390
+ ]
391
+ };
392
+ //# sourceMappingURL=naming-rules.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-rules.generated.js","sourceRoot":"","sources":["../../../src/parser/naming-rules.generated.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE;QACP;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,SAAS;gBACT,QAAQ;aACT;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE;gBACP,IAAI;gBACJ,YAAY;aACb;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,MAAM;gBACN,KAAK;gBACL,OAAO;gBACP,MAAM;gBACN,MAAM;gBACN,KAAK;aACN;SACF;QACD;YACE,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,QAAQ;gBACR,OAAO;gBACP,MAAM;gBACN,KAAK;gBACL,OAAO;gBACP,SAAS;gBACT,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,YAAY;gBACZ,OAAO;aACR;SACF;QACD;YACE,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,MAAM;gBACN,UAAU;aACX;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,OAAO;gBACP,QAAQ;gBACR,KAAK;gBACL,UAAU;gBACV,OAAO;gBACP,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,QAAQ;gBACR,OAAO;gBACP,QAAQ;gBACR,KAAK;aACN;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE;gBACP,MAAM;gBACN,OAAO;gBACP,OAAO;gBACP,QAAQ;gBACR,MAAM;gBACN,OAAO;gBACP,KAAK;gBACL,MAAM;gBACN,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,SAAS;aACV;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE;gBACP,IAAI;gBACJ,KAAK;gBACL,MAAM;gBACN,KAAK;gBACL,MAAM;gBACN,KAAK;gBACL,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,KAAK;gBACL,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,SAAS;gBACT,UAAU;gBACV,SAAS;gBACT,UAAU;gBACV,KAAK;gBACL,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,OAAO;gBACP,QAAQ;gBACR,KAAK;gBACL,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,QAAQ;gBACR,OAAO;gBACP,QAAQ;gBACR,OAAO;gBACP,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,UAAU;gBACV,SAAS;gBACT,UAAU;gBACV,SAAS;gBACT,UAAU;gBACV,WAAW;gBACX,UAAU;gBACV,WAAW;gBACX,QAAQ;gBACR,SAAS;gBACT,UAAU;gBACV,SAAS;gBACT,UAAU;gBACV,OAAO;gBACP,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,UAAU;gBACV,WAAW;gBACX,UAAU;gBACV,WAAW;aACZ;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,MAAM;gBACN,SAAS;gBACT,UAAU;gBACV,QAAQ;gBACR,OAAO;gBACP,UAAU;gBACV,UAAU;gBACV,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,SAAS;gBACT,QAAQ;gBACR,UAAU;aACX;SACF;QACD;YACE,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,MAAM;gBACN,MAAM;gBACN,IAAI;gBACJ,WAAW;gBACX,SAAS;gBACT,SAAS;gBACT,UAAU;gBACV,SAAS;gBACT,UAAU;gBACV,aAAa;aACd;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,MAAM;gBACN,QAAQ;gBACR,UAAU;gBACV,MAAM;gBACN,MAAM;aACP;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,MAAM;gBACN,OAAO;gBACP,OAAO;gBACP,cAAc;aACf;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,MAAM;gBACN,OAAO;gBACP,aAAa;gBACb,SAAS;gBACT,MAAM;gBACN,QAAQ;gBACR,SAAS;gBACT,OAAO;gBACP,OAAO;gBACP,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,gBAAgB;gBAChB,SAAS;gBACT,SAAS;aACV;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,QAAQ;gBACR,OAAO;gBACP,SAAS;gBACT,YAAY;gBACZ,YAAY;gBACZ,SAAS;gBACT,MAAM;gBACN,aAAa;gBACb,WAAW;gBACX,MAAM;gBACN,MAAM;gBACN,OAAO;gBACP,OAAO;gBACP,UAAU;aACX;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,UAAU;gBACV,UAAU;gBACV,KAAK;gBACL,YAAY;aACb;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,KAAK;gBACL,KAAK;gBACL,KAAK;aACN;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,SAAS;aACV;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;aACL;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;aACL;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,KAAK;gBACL,IAAI;gBACJ,IAAI;aACL;SACF;QACD;YACE,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,KAAK;aACN;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,YAAY;YACrB,SAAS,EAAE;gBACT,WAAW;gBACX,YAAY;gBACZ,aAAa;gBACb,WAAW;gBACX,aAAa;gBACb,OAAO;gBACP,SAAS;gBACT,aAAa;gBACb,WAAW;gBACX,YAAY;gBACZ,aAAa;gBACb,WAAW;gBACX,eAAe;gBACf,cAAc;aACf;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=naming-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-rules.js","sourceRoot":"","sources":["../../../src/parser/naming-rules.ts"],"names":[],"mappings":""}
@@ -38,6 +38,8 @@ export declare const Issue: {
38
38
  readonly invalidValue: (construct: string, value: string | number, allowed: string, message: string) => ParseIssue;
39
39
  readonly callArity: (callee: string, expected: number, actual: number, message: string) => ParseIssue;
40
40
  readonly unknownName: (kind: string, name: string, message: string) => ParseIssue;
41
+ /** E900(ADR 0055 #3):同一注解内参数名重复;解析码段 E050–E069 用满后的续段。 */
42
+ readonly duplicateAnnotationArg: (annotation: string, name: string) => ParseIssue;
41
43
  };
42
44
  /** 源码 token 作为字面片段参数(取其文本;无文本时取词法种类)。 */
43
45
  export declare const tokenLit: (tok: Token) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"parse-issue.d.ts","sourceRoot":"","sources":["../../../src/parser/parse-issue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,2CAA2C;AAC3C,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;AAMrE,eAAe;AACf,eAAO,MAAM,OAAO,GAAI,WAAW,MAAM,KAAG,MAAyC,CAAC;AACtF,yBAAyB;AACzB,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAyB,CAAC;AACnE,oBAAoB;AACpB,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,KAAG,MAAqB,CAAC;AAEzD,qDAAqD;AACrD,eAAO,MAAM,KAAK;+BACE,MAAM,WAAW,MAAM,KAAG,UAAU;oCAE/B,MAAM,SAAS,MAAM,WAAW,MAAM,KAAG,UAAU;iCAEtD,MAAM,WAAW,MAAM,WAAW,MAAM,KAAG,UAAU;sCAEhD,MAAM,SAAS,MAAM,WAAW,MAAM,WAAW,MAAM,KAAG,UAAU;2CAE/D,MAAM,WAAW,MAAM,KAAG,UAAU;iCAE9C,MAAM,WAAW,MAAM,KAAG,UAAU;8CAEvB,MAAM,WAAW,MAAM,KAAG,UAAU;oCAE9C,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,UAAU;iCAEzD,MAAM,QAAQ,MAAM,WAAW,MAAM,KAAG,UAAU;uCAE5C,MAAM,SAAS,MAAM,GAAG,MAAM,WAAW,MAAM,WAAW,MAAM,KAAG,UAAU;iCAEnF,MAAM,YAAY,MAAM,UAAU,MAAM,WAAW,MAAM,KAAG,UAAU;iCAEtE,MAAM,QAAQ,MAAM,WAAW,MAAM,KAAG,UAAU;CAE9D,CAAC;AAEX,yCAAyC;AACzC,eAAO,MAAM,QAAQ,GAAI,KAAK,KAAK,KAAG,MAA4C,CAAC"}
1
+ {"version":3,"file":"parse-issue.d.ts","sourceRoot":"","sources":["../../../src/parser/parse-issue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,2CAA2C;AAC3C,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;AAMrE,eAAe;AACf,eAAO,MAAM,OAAO,GAAI,WAAW,MAAM,KAAG,MAAyC,CAAC;AACtF,yBAAyB;AACzB,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAyB,CAAC;AACnE,oBAAoB;AACpB,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,KAAG,MAAqB,CAAC;AAEzD,qDAAqD;AACrD,eAAO,MAAM,KAAK;+BACE,MAAM,WAAW,MAAM,KAAG,UAAU;oCAE/B,MAAM,SAAS,MAAM,WAAW,MAAM,KAAG,UAAU;iCAEtD,MAAM,WAAW,MAAM,WAAW,MAAM,KAAG,UAAU;sCAEhD,MAAM,SAAS,MAAM,WAAW,MAAM,WAAW,MAAM,KAAG,UAAU;2CAE/D,MAAM,WAAW,MAAM,KAAG,UAAU;iCAE9C,MAAM,WAAW,MAAM,KAAG,UAAU;8CAEvB,MAAM,WAAW,MAAM,KAAG,UAAU;oCAE9C,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,UAAU;iCAEzD,MAAM,QAAQ,MAAM,WAAW,MAAM,KAAG,UAAU;uCAE5C,MAAM,SAAS,MAAM,GAAG,MAAM,WAAW,MAAM,WAAW,MAAM,KAAG,UAAU;iCAEnF,MAAM,YAAY,MAAM,UAAU,MAAM,WAAW,MAAM,KAAG,UAAU;iCAEtE,MAAM,QAAQ,MAAM,WAAW,MAAM,KAAG,UAAU;IAEtE,0DAA0D;kDACrB,MAAM,QAAQ,MAAM,KAAG,UAAU;CAE9D,CAAC;AAEX,yCAAyC;AACzC,eAAO,MAAM,QAAQ,GAAI,KAAK,KAAK,KAAG,MAA4C,CAAC"}
@@ -31,6 +31,8 @@ export const Issue = {
31
31
  invalidValue: (construct, value, allowed, message) => issue("E067" /* ErrorCode.PARSE_INVALID_VALUE */, { construct, value, allowed }, message),
32
32
  callArity: (callee, expected, actual, message) => issue("E068" /* ErrorCode.PARSE_CALL_ARITY */, { callee, expected, actual }, message),
33
33
  unknownName: (kind, name, message) => issue("E069" /* ErrorCode.PARSE_UNKNOWN_NAME */, { kind, name }, message),
34
+ /** E900(ADR 0055 #3):同一注解内参数名重复;解析码段 E050–E069 用满后的续段。 */
35
+ duplicateAnnotationArg: (annotation, name) => issue("E900" /* ErrorCode.PARSE_DUPLICATE_ANNOTATION_ARG */, { annotation, name }, `Annotation @${annotation} repeats the argument ${name}`),
34
36
  };
35
37
  /** 源码 token 作为字面片段参数(取其文本;无文本时取词法种类)。 */
36
38
  export const tokenLit = (tok) => lit(String(tok.value ?? tok.kind));
@@ -1 +1 @@
1
- {"version":3,"file":"parse-issue.js","sourceRoot":"","sources":["../../../src/parser/parse-issue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH,SAAS,KAAK,CAAC,IAAe,EAAE,MAA6B,EAAE,OAAe;IAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC;AAED,eAAe;AACf,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAU,EAAE,CAAC,MAAM,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;AACtF,yBAAyB;AACzB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;AACnE,oBAAoB;AACpB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC;AAEzD,qDAAqD;AACrD,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,QAAQ,EAAE,CAAC,KAAa,EAAE,OAAe,EAAc,EAAE,CACvD,KAAK,wCAA2B,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC;IACrD,aAAa,EAAE,CAAC,KAAa,EAAE,KAAa,EAAE,OAAe,EAAc,EAAE,CAC3E,KAAK,8CAAiC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC;IAClE,UAAU,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,OAAe,EAAc,EAAE,CAC1E,KAAK,2CAA8B,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC;IACjE,eAAe,EAAE,CAAC,KAAa,EAAE,KAAa,EAAE,OAAe,EAAE,OAAe,EAAc,EAAE,CAC9F,KAAK,iDAAoC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC;IAC9E,oBAAoB,EAAE,CAAC,KAAa,EAAE,OAAe,EAAc,EAAE,CACnE,KAAK,sDAAyC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC;IACnE,UAAU,EAAE,CAAC,KAAa,EAAE,OAAe,EAAc,EAAE,CACzD,KAAK,gDAAmC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC;IAC7D,mBAAmB,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAc,EAAE,CACtE,KAAK,oDAAuC,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC;IACrE,SAAS,EAAE,CAAC,SAAiB,EAAE,QAAgB,EAAE,OAAe,EAAc,EAAE,CAC9E,KAAK,yCAA4B,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC;IACpE,UAAU,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,OAAe,EAAc,EAAE,CACvE,KAAK,2CAA8B,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC;IAC9D,YAAY,EAAE,CAAC,SAAiB,EAAE,KAAsB,EAAE,OAAe,EAAE,OAAe,EAAc,EAAE,CACxG,KAAK,6CAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC;IAC9E,SAAS,EAAE,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAc,EAAE,OAAe,EAAc,EAAE,CAC3F,KAAK,0CAA6B,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;IAC1E,WAAW,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,OAAe,EAAc,EAAE,CACvE,KAAK,4CAA+B,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC;CACtD,CAAC;AAEX,yCAAyC;AACzC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAU,EAAU,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"parse-issue.js","sourceRoot":"","sources":["../../../src/parser/parse-issue.ts"],"names":[],"mappings":"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"}
@@ -1,84 +1,43 @@
1
1
  /**
2
- * CNL 字段类型推断引擎
2
+ * 未标注形参 / 字段的类型推断(ADR 0056 §3.2)。
3
3
  *
4
- * 实现基于命名约定和约束信号的类型推断,使字段定义更接近自然语言。
5
- *
6
- * 推断优先级(从高到低):
7
- * 1. 显式类型声明(由调用方处理,不在本模块)
8
- * 2. 约束驱动推断(Range → 数值类型,Pattern → Text)
9
- * 3. 命名约定推断(*Id → Text, *Amount → Float 等)
10
- * 4. 默认类型(Text)
4
+ * 规则表是 aster-lang-locales type-inference/naming-rules.json 的内置副本(naming-rules.generated.ts,
5
+ * 由 shared/type-inference-naming-rules.json 生成并由 sibling parity 测试守护),与词法表无关:全部规则对所有
6
+ * 模块生效。算法与 aster-lang-core TypeInference 逐步相同,两侧用 locales 的共用测试向量对照:
7
+ * 1. 分词:名字只含 ASCII 字母、数字与 `_` 时按 `_` 切段,每段按 WORD 切词并做 ASCII 小写;否则词列表为空;
8
+ * 2. 逐条判定规则是否命中(首词 / 末词 / 任一词 / 整名前缀后缀);
9
+ * 3. 命中规则中 priority 最大者胜,同优先级取表中靠前者,都不命中取缺省类型;
10
+ * 4. 按约束修正(与约束书写顺序无关)。
11
11
  *
12
12
  * @example
13
13
  * ```typescript
14
- * // 命名推断
15
- * inferFieldType('applicantId') // → Text (匹配 *Id)
16
- * inferFieldType('loanAmount') // → Float (匹配 *Amount)
17
- * inferFieldType('termMonths') // → Int (匹配 *Months)
18
- * inferFieldType('isApproved') // → Bool (匹配 is*)
19
- *
20
- * // 约束驱动推断
21
- * inferFieldType('score', [{ kind: 'Range', min: 0, max: 100 }]) // → Int
22
- * inferFieldType('rate', [{ kind: 'Range', min: 0.0, max: 1.0 }]) // → Float
14
+ * inferFieldType('applicantId') // → Text(末词 id,且词数 ≥ 2)
15
+ * inferFieldType('loanAmount') // → Float
16
+ * inferFieldType('termMonths') // → Int
17
+ * inferFieldType('isApproved') // → Bool
18
+ * inferFieldType('score', [{ kind: 'Range', min: 0, max: 100, ... }]) // → Int
23
19
  * ```
24
20
  */
25
21
  import type { Constraint, Type } from '../types.js';
26
- import type { TypeInferenceRule, PrimitiveTypeName } from '../types/type-inference.js';
27
- import type { Lexicon } from '../config/lexicons/types.js';
28
- export type { TypeInferenceRule, PrimitiveTypeName };
29
- /**
30
- * 默认的字段命名类型推断规则
31
- *
32
- * 规则按照常见业务领域设计,覆盖:
33
- * - 标识符类型(ID、Identifier、Vin)
34
- * - 金融类型(Amount、Price、Cost)
35
- * - 计数类型(Count、Number、Age)
36
- * - 业务指标(Rating、Limit、Premium)
37
- * - 布尔类型(isXxx、hasXxx、Flag、Sufficient)
38
- * - 时间类型(Date、Time、At)
39
- * - 分类类型(Type、Status、Category)
40
- * - 产品属性(Make、Model)
41
- */
42
- /**
43
- * 语言无关的通用基线命名规则。
44
- * 语言特定规则(英文布尔前缀、中文前缀、德语后缀等)
45
- * 已拆分至 config/lexicons/type-inference-rules.ts(overlay 模式)。
46
- */
47
- export declare const BASE_NAMING_RULES: readonly TypeInferenceRule[];
22
+ import type { PrimitiveTypeName } from '../types/type-inference.js';
23
+ export type { PrimitiveTypeName };
24
+ /** 第 1 步:分词。名字含 ASCII 字母、数字、`_` 以外的字符时返回空列表。 */
25
+ export declare function tokenize(name: string): string[];
26
+ /** 第 1–3 步:只按名字推断类型名。 */
27
+ export declare function inferTypeNameFromName(name: string): PrimitiveTypeName;
48
28
  /**
49
- * 从约束列表推断类型
50
- *
51
- * 推断规则:
52
- * - Range 约束 → 数值类型(Int 或 Float)
53
- * - Pattern 约束 → Text
54
- * - Required 约束 → 不影响类型推断
55
- *
56
- * @param constraints 约束列表
57
- * @returns 推断的类型名,如果无法从约束推断则返回 null
29
+ * 第 5 步的约束类型:存在 Range 时,任一端点的规范十进制串(ADR 0055 §5)含 `.` 得 Float,否则 Int;
30
+ * 不存在 Range 而存在 Pattern 时得 Text;其余为 null。
58
31
  */
59
- export declare function inferTypeFromConstraints(constraints: readonly Constraint[]): PrimitiveTypeName | null;
32
+ export declare function constraintType(constraints: readonly Constraint[]): PrimitiveTypeName | null;
33
+ /** 第 5 步:名字推断结果 n 与约束类型 c 合并。 */
34
+ export declare function refine(n: PrimitiveTypeName, c: PrimitiveTypeName | null): PrimitiveTypeName;
60
35
  /**
61
- * 推断字段类型
62
- *
63
- * 按优先级尝试推断:
64
- * 1. 约束驱动推断
65
- * 2. 命名约定推断
66
- * 3. 默认类型(Text)
67
- *
68
- * @param fieldName 字段名称
69
- * @param constraints 可选的约束列表
70
- * @returns 推断的类型 AST 节点
71
- */
72
- export declare function inferFieldType(fieldName: string, constraints?: readonly Constraint[], lexicon?: Lexicon): Type;
73
- /**
74
- * 根据约束修正已推断的类型
75
- *
76
- * 当字段使用推断类型后又解析到约束时,可能需要修正类型。
77
- * 例如:字段名 `value` 默认推断为 Text,但如果有 Range 约束则应为数值类型。
36
+ * 推断未标注形参 / 字段的类型:按名字推断,再按约束修正。
78
37
  *
79
- * @param currentType 当前推断的类型
80
- * @param constraints 约束列表
81
- * @returns 修正后的类型
38
+ * @param fieldName 字段 / 形参名
39
+ * @param constraints 源码写下的约束
40
+ * @returns 推断的类型 AST 节点(span 由调用方锚定在名字 token,ADR 0056 §3.3)
82
41
  */
83
- export declare function refineInferredType(currentType: Type, constraints: readonly Constraint[]): Type;
42
+ export declare function inferFieldType(fieldName: string, constraints?: readonly Constraint[]): Type;
84
43
  //# sourceMappingURL=type-inference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-inference.d.ts","sourceRoot":"","sources":["../../../src/parser/type-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAmB,IAAI,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAE3D,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,iBAAiB,EAyBzD,CAAC;AAMF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAqBrG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,SAAS,UAAU,EAAO,EACvC,OAAO,CAAC,EAAE,OAAO,GAChB,IAAI,CAQN;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI,CA8B9F"}
1
+ {"version":3,"file":"type-inference.d.ts","sourceRoot":"","sources":["../../../src/parser/type-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAmB,IAAI,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAWlC,gDAAgD;AAChD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/C;AAqBD,yBAAyB;AACzB,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAOrE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAI3F;AAWD,iCAAiC;AACjC,wBAAgB,MAAM,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG,iBAAiB,CAK3F;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,SAAS,UAAU,EAAO,GAAG,IAAI,CAE/F"}