@aster-cloud/aster-lang-ts 0.0.31 → 0.1.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 (174) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +4 -4
  3. package/dist/peg/headers-parser.js +233 -468
  4. package/dist/scripts/cleanup-examples.js +1 -1
  5. package/dist/scripts/cleanup-examples.js.map +1 -1
  6. package/dist/scripts/emit-classfiles.js +0 -49
  7. package/dist/scripts/emit-classfiles.js.map +1 -1
  8. package/dist/scripts/golden.js +0 -3
  9. package/dist/scripts/golden.js.map +1 -1
  10. package/dist/scripts/lsp-capmanifest-codeaction-smoke.js +2 -2
  11. package/dist/scripts/lsp-capmanifest-codeaction-smoke.js.map +1 -1
  12. package/dist/scripts/lsp-codeaction-smoke.js +2 -2
  13. package/dist/scripts/lsp-codeaction-smoke.js.map +1 -1
  14. package/dist/scripts/lsp-health-smoke.js +1 -1
  15. package/dist/scripts/lsp-health-smoke.js.map +1 -1
  16. package/dist/scripts/lsp-missing-header-codeaction-smoke.js +1 -1
  17. package/dist/scripts/lsp-missing-header-codeaction-smoke.js.map +1 -1
  18. package/dist/scripts/lsp-multi-rename.test.js +1 -1
  19. package/dist/scripts/lsp-multi-rename.test.js.map +1 -1
  20. package/dist/scripts/lsp-punct-codeaction-smoke.js +1 -1
  21. package/dist/scripts/lsp-punct-codeaction-smoke.js.map +1 -1
  22. package/dist/scripts/lsp-streaming-progress-smoke.js +2 -2
  23. package/dist/scripts/lsp-streaming-progress-smoke.js.map +1 -1
  24. package/dist/src/ast/ast.js +1 -1
  25. package/dist/src/ast/ast.js.map +1 -1
  26. package/dist/src/browser.d.ts +6 -18
  27. package/dist/src/browser.d.ts.map +1 -1
  28. package/dist/src/browser.js +14 -24
  29. package/dist/src/browser.js.map +1 -1
  30. package/dist/src/config/lexicons/diagnostic-messages.d.ts +23 -0
  31. package/dist/src/config/lexicons/diagnostic-messages.d.ts.map +1 -0
  32. package/dist/src/config/lexicons/diagnostic-messages.js +130 -0
  33. package/dist/src/config/lexicons/diagnostic-messages.js.map +1 -0
  34. package/dist/src/config/lexicons/input-generation-rules.d.ts +22 -0
  35. package/dist/src/config/lexicons/input-generation-rules.d.ts.map +1 -0
  36. package/dist/src/config/lexicons/input-generation-rules.js +142 -0
  37. package/dist/src/config/lexicons/input-generation-rules.js.map +1 -0
  38. package/dist/src/config/lexicons/lsp-ui-texts.d.ts +42 -0
  39. package/dist/src/config/lexicons/lsp-ui-texts.d.ts.map +1 -0
  40. package/dist/src/config/lexicons/lsp-ui-texts.js +75 -0
  41. package/dist/src/config/lexicons/lsp-ui-texts.js.map +1 -0
  42. package/dist/src/config/lexicons/overlay-loader.d.ts +55 -0
  43. package/dist/src/config/lexicons/overlay-loader.d.ts.map +1 -0
  44. package/dist/src/config/lexicons/overlay-loader.js +30 -0
  45. package/dist/src/config/lexicons/overlay-loader.js.map +1 -0
  46. package/dist/src/config/lexicons/type-inference-rules.d.ts +19 -0
  47. package/dist/src/config/lexicons/type-inference-rules.d.ts.map +1 -0
  48. package/dist/src/config/lexicons/type-inference-rules.js +56 -0
  49. package/dist/src/config/lexicons/type-inference-rules.js.map +1 -0
  50. package/dist/src/config/lexicons/types.d.ts +10 -0
  51. package/dist/src/config/lexicons/types.d.ts.map +1 -1
  52. package/dist/src/config/lexicons/types.js.map +1 -1
  53. package/dist/src/config/semantic.d.ts +0 -8
  54. package/dist/src/config/semantic.d.ts.map +1 -1
  55. package/dist/src/config/semantic.js +0 -16
  56. package/dist/src/config/semantic.js.map +1 -1
  57. package/dist/src/diagnostics/diagnostics.d.ts +1 -7
  58. package/dist/src/diagnostics/diagnostics.d.ts.map +1 -1
  59. package/dist/src/diagnostics/diagnostics.js +2 -9
  60. package/dist/src/diagnostics/diagnostics.js.map +1 -1
  61. package/dist/src/diagnostics/error_codes.d.ts +2 -1
  62. package/dist/src/diagnostics/error_codes.d.ts.map +1 -1
  63. package/dist/src/diagnostics/error_codes.js +85 -480
  64. package/dist/src/diagnostics/error_codes.js.map +1 -1
  65. package/dist/src/formatter.js +8 -23
  66. package/dist/src/formatter.js.map +1 -1
  67. package/dist/src/frontend/lexer.d.ts +1 -1
  68. package/dist/src/frontend/lexer.js +1 -1
  69. package/dist/src/index.d.ts +3 -3
  70. package/dist/src/index.js +3 -3
  71. package/dist/src/lower_to_core.d.ts +3 -3
  72. package/dist/src/lower_to_core.js +3 -3
  73. package/dist/src/lsp/codeaction.d.ts +2 -1
  74. package/dist/src/lsp/codeaction.d.ts.map +1 -1
  75. package/dist/src/lsp/codeaction.js +17 -14
  76. package/dist/src/lsp/codeaction.js.map +1 -1
  77. package/dist/src/lsp/completion.d.ts +4 -51
  78. package/dist/src/lsp/completion.d.ts.map +1 -1
  79. package/dist/src/lsp/completion.js +15 -83
  80. package/dist/src/lsp/completion.js.map +1 -1
  81. package/dist/src/lsp/diagnostics.d.ts +3 -2
  82. package/dist/src/lsp/diagnostics.d.ts.map +1 -1
  83. package/dist/src/lsp/diagnostics.js +14 -7
  84. package/dist/src/lsp/diagnostics.js.map +1 -1
  85. package/dist/src/lsp/navigation/hover.d.ts +2 -1
  86. package/dist/src/lsp/navigation/hover.d.ts.map +1 -1
  87. package/dist/src/lsp/navigation/hover.js +22 -35
  88. package/dist/src/lsp/navigation/hover.js.map +1 -1
  89. package/dist/src/lsp/navigation.d.ts +1 -1
  90. package/dist/src/lsp/navigation.d.ts.map +1 -1
  91. package/dist/src/lsp/navigation.js +2 -2
  92. package/dist/src/lsp/navigation.js.map +1 -1
  93. package/dist/src/lsp/pii_diagnostics.js +3 -13
  94. package/dist/src/lsp/pii_diagnostics.js.map +1 -1
  95. package/dist/src/lsp/server.js +35 -8
  96. package/dist/src/lsp/server.js.map +1 -1
  97. package/dist/src/lsp/workspace/document-indexer.js +1 -1
  98. package/dist/src/lsp/workspace/document-indexer.js.map +1 -1
  99. package/dist/src/package/resolver.js +6 -6
  100. package/dist/src/package/resolver.js.map +1 -1
  101. package/dist/src/parser/constraint-parser.d.ts +1 -10
  102. package/dist/src/parser/constraint-parser.d.ts.map +1 -1
  103. package/dist/src/parser/constraint-parser.js +0 -30
  104. package/dist/src/parser/constraint-parser.js.map +1 -1
  105. package/dist/src/parser/context.d.ts +3 -1
  106. package/dist/src/parser/context.d.ts.map +1 -1
  107. package/dist/src/parser/context.js +2 -1
  108. package/dist/src/parser/context.js.map +1 -1
  109. package/dist/src/parser/decl-parser.d.ts +1 -1
  110. package/dist/src/parser/decl-parser.js +3 -3
  111. package/dist/src/parser/decl-parser.js.map +1 -1
  112. package/dist/src/parser/expr-stmt-parser.js +3 -3
  113. package/dist/src/parser/expr-stmt-parser.js.map +1 -1
  114. package/dist/src/parser/field-variant-parser.js +1 -1
  115. package/dist/src/parser/field-variant-parser.js.map +1 -1
  116. package/dist/src/parser/import-parser.d.ts +1 -1
  117. package/dist/src/parser/import-parser.js +2 -2
  118. package/dist/src/parser/import-parser.js.map +1 -1
  119. package/dist/src/parser/input-generator.d.ts +20 -6
  120. package/dist/src/parser/input-generator.d.ts.map +1 -1
  121. package/dist/src/parser/input-generator.js +20 -403
  122. package/dist/src/parser/input-generator.js.map +1 -1
  123. package/dist/src/parser/type-inference.d.ts +10 -16
  124. package/dist/src/parser/type-inference.d.ts.map +1 -1
  125. package/dist/src/parser/type-inference.js +36 -127
  126. package/dist/src/parser/type-inference.js.map +1 -1
  127. package/dist/src/parser.d.ts +1 -1
  128. package/dist/src/parser.d.ts.map +1 -1
  129. package/dist/src/parser.js +6 -3
  130. package/dist/src/parser.js.map +1 -1
  131. package/dist/src/typecheck/context.d.ts +2 -0
  132. package/dist/src/typecheck/context.d.ts.map +1 -1
  133. package/dist/src/typecheck/context.js.map +1 -1
  134. package/dist/src/typecheck/diagnostics.d.ts +6 -0
  135. package/dist/src/typecheck/diagnostics.d.ts.map +1 -1
  136. package/dist/src/typecheck/diagnostics.js +11 -3
  137. package/dist/src/typecheck/diagnostics.js.map +1 -1
  138. package/dist/src/typecheck/module.d.ts.map +1 -1
  139. package/dist/src/typecheck/module.js +8 -2
  140. package/dist/src/typecheck/module.js.map +1 -1
  141. package/dist/src/typecheck/workflow.js +10 -10
  142. package/dist/src/typecheck/workflow.js.map +1 -1
  143. package/dist/src/types/type-inference.d.ts +20 -0
  144. package/dist/src/types/type-inference.d.ts.map +1 -0
  145. package/dist/src/types/type-inference.js +8 -0
  146. package/dist/src/types/type-inference.js.map +1 -0
  147. package/dist/src/types.d.ts +0 -21
  148. package/dist/src/types.d.ts.map +1 -1
  149. package/dist/src/types.js.map +1 -1
  150. package/dist/test/fuzz/formatter-fuzz.test.js +5 -1
  151. package/dist/test/fuzz/formatter-fuzz.test.js.map +1 -1
  152. package/dist/test/integration/compliance/compliance-smoke.test.js +4 -1
  153. package/dist/test/integration/compliance/compliance-smoke.test.js.map +1 -1
  154. package/dist/test/type-checker/pii-propagation.test.js +1 -2
  155. package/dist/test/type-checker/pii-propagation.test.js.map +1 -1
  156. package/dist/test/unit/browser/extract-schema.test.d.ts +2 -0
  157. package/dist/test/unit/browser/extract-schema.test.d.ts.map +1 -0
  158. package/dist/test/unit/browser/extract-schema.test.js +117 -0
  159. package/dist/test/unit/browser/extract-schema.test.js.map +1 -0
  160. package/dist/test/unit/emitter/emitter.test.js +30 -35
  161. package/dist/test/unit/emitter/emitter.test.js.map +1 -1
  162. package/dist/test/unit/lowering/lowering.test.js +1 -1
  163. package/dist/test/unit/lowering/lowering.test.js.map +1 -1
  164. package/dist/test/unit/lsp/pii-diagnostics.test.js +5 -5
  165. package/dist/test/unit/lsp/pii-diagnostics.test.js.map +1 -1
  166. package/dist/test/unit/parser/type-inference.test.js +50 -32
  167. package/dist/test/unit/parser/type-inference.test.js.map +1 -1
  168. package/dist/test/unit/typecheck/regression-fixes.test.js +12 -12
  169. package/dist/test/unit/typecheck/regression-fixes.test.js.map +1 -1
  170. package/dist/test/unit/typecheck/type-system.test.js +2 -2
  171. package/dist/test/unit/typecheck/type-system.test.js.map +1 -1
  172. package/dist/test/unit/typecheck/typecheck-advanced.test.js +2 -2
  173. package/dist/test/unit/typecheck/typecheck-advanced.test.js.map +1 -1
  174. package/package.json +1 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,46 @@
1
+ # Changelog
2
+
3
+ ## [0.1.0] - 2026-02-24
4
+
5
+ ### BREAKING CHANGES
6
+
7
+ - **PEG headers 语法**:移除 `FuncHeaderLegacy`(旧 `To` 语法)、`ParamPart`(旧 `with` 参数)、legacy `Data`(旧 `Define with`)、`this module is` 回退分支。类型标注从 `:` 改为 `as`。
8
+ - **公开 API**:移除 `validateSyntax()`(零消费者)。
9
+ - **废弃符号**:移除 `NAMING_RULES` 别名、`annotationToConstraint()` 函数、3 个旧 `DiagnosticCode` 枚举成员(`DEPENDENCY_RESOLUTION_TIMEOUT`、`VERSION_CONFLICT_UNRESOLVABLE`、`PACKAGE_NOT_FOUND`)。
10
+ - **Annotation 类型**:移除已废弃的 `Annotation` 接口及 `Field`/`Parameter`/`TypeName` 上的 `annotations` 字段(使用 `Constraint` 替代)。
11
+ - **KW 常量**:移除 8 个未使用的 KW 常量(`FOR_EACH`、`IS`、`MORE_THAN`、`OVER`、`RESULT_IS`、`UNDER`、`FALSE`、`TRUE`)及对应 `KW_TO_SEMANTIC` 映射。
12
+ - **Formatter 输出**:类型标注从 `:` 改为 `as`(与解析器对齐)。
13
+
14
+ ### 迁移指南
15
+
16
+ **语法变更**(Phase 1 + Phase 2a):
17
+
18
+ | 旧语法 | 新语法 |
19
+ |--------|--------|
20
+ | `This module is X.` | `Module X.` |
21
+ | `To func with params` | `Rule func given params` |
22
+ | `Define X with fields` | `Define X has fields` |
23
+ | `name: Text` (类型标注) | `name as Text` |
24
+
25
+ **API 变更**:
26
+
27
+ - `validateSyntax()` → 使用 `compile()` + 检查 `diagnostics`
28
+ - `NAMING_RULES` → 使用 `BASE_NAMING_RULES`
29
+ - `annotationToConstraint()` → 已由解析器内置约束解析替代
30
+ - `DiagnosticCode.PACKAGE_NOT_FOUND` → `DiagnosticCode.V003_PackageNotFound`
31
+ - `DiagnosticCode.DEPENDENCY_RESOLUTION_TIMEOUT` → `DiagnosticCode.V001_DependencyResolutionTimeout`
32
+ - `DiagnosticCode.VERSION_CONFLICT_UNRESOLVABLE` → `DiagnosticCode.V002_VersionConflictUnresolvable`
33
+ - `Annotation` 接口 → 使用 `Constraint` 类型
34
+ - `Field.annotations` / `Parameter.annotations` → 使用 `.constraints`
35
+
36
+ ### 新增
37
+
38
+ - `extractSchema` 测试套件(7 个用例)
39
+ - AI 训练数据重新生成(适配新语法)
40
+
41
+ ### 修复
42
+
43
+ - 训练数据无效操作符语法 `>(a,b)` → `a greater than b`
44
+ - Formatter fuzz 测试路径修复 + `existsSync` 保护
45
+ - `test_loan.aster` 补充显式类型确保格式化幂等
46
+ - 全部文档/脚本/注释从旧语法迁移到新规范语法
package/README.md CHANGED
@@ -26,9 +26,9 @@ import { canonicalize, lex, parse, lowerModule } from '@aster-cloud/aster-lang-t
26
26
 
27
27
  // Compile pipeline
28
28
  const source = `
29
- This module is greeting.
29
+ Module greeting.
30
30
 
31
- To greet with name, produce:
31
+ Rule greet given name, produce:
32
32
  Return Text.concat("Hello, ", name).
33
33
  `;
34
34
 
@@ -47,9 +47,9 @@ import { canonicalize, lex, parse } from '@aster-cloud/aster-lang-ts';
47
47
  import { ZH_CN } from '@aster-cloud/aster-lang-ts/lexicons/zh-CN';
48
48
 
49
49
  const zhSource = `
50
- 【模块】问候。
50
+ 模块 问候。
51
51
 
52
- 问候 入参 姓名,产出:
52
+ 规则 问候 给定 姓名,产出:
53
53
  返回「你好,」 加 姓名。
54
54
  `;
55
55