@aster-cloud/aster-lang-ts 0.0.32 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -0
- package/README.md +4 -4
- package/dist/peg/headers-parser.js +233 -468
- package/dist/scripts/aster.js +5 -5
- package/dist/scripts/aster.js.map +1 -1
- package/dist/scripts/cleanup-examples.js +1 -1
- package/dist/scripts/cleanup-examples.js.map +1 -1
- package/dist/scripts/emit-classfiles.js +1 -50
- package/dist/scripts/emit-classfiles.js.map +1 -1
- package/dist/scripts/emit-core.js +1 -1
- package/dist/scripts/emit-core.js.map +1 -1
- package/dist/scripts/golden.js +5 -8
- package/dist/scripts/golden.js.map +1 -1
- package/dist/scripts/lsp-build-index.js +1 -1
- package/dist/scripts/lsp-build-index.js.map +1 -1
- package/dist/scripts/lsp-capmanifest-codeaction-smoke.js +2 -2
- package/dist/scripts/lsp-capmanifest-codeaction-smoke.js.map +1 -1
- package/dist/scripts/lsp-codeaction-smoke.js +2 -2
- package/dist/scripts/lsp-codeaction-smoke.js.map +1 -1
- package/dist/scripts/lsp-health-smoke.js +1 -1
- package/dist/scripts/lsp-health-smoke.js.map +1 -1
- package/dist/scripts/lsp-missing-header-codeaction-smoke.js +1 -1
- package/dist/scripts/lsp-missing-header-codeaction-smoke.js.map +1 -1
- package/dist/scripts/lsp-multi-rename.test.js +1 -1
- package/dist/scripts/lsp-multi-rename.test.js.map +1 -1
- package/dist/scripts/lsp-punct-codeaction-smoke.js +1 -1
- package/dist/scripts/lsp-punct-codeaction-smoke.js.map +1 -1
- package/dist/scripts/lsp-streaming-progress-smoke.js +2 -2
- package/dist/scripts/lsp-streaming-progress-smoke.js.map +1 -1
- package/dist/scripts/perf-benchmark.js +1 -1
- package/dist/scripts/perf-benchmark.js.map +1 -1
- package/dist/scripts/perf-diagnostics.js +1 -1
- package/dist/scripts/perf-diagnostics.js.map +1 -1
- package/dist/scripts/profile-medium-project.js +1 -1
- package/dist/scripts/profile-medium-project.js.map +1 -1
- package/dist/scripts/repl.js +1 -1
- package/dist/scripts/repl.js.map +1 -1
- package/dist/scripts/typecheck-cli.js +1 -1
- package/dist/scripts/typecheck-cli.js.map +1 -1
- package/dist/scripts/update-eff-violation-expected.js +1 -1
- package/dist/scripts/update-eff-violation-expected.js.map +1 -1
- package/dist/scripts/verify-capabilities.js +1 -1
- package/dist/scripts/verify-capabilities.js.map +1 -1
- package/dist/src/ai/validator.d.ts.map +1 -1
- package/dist/src/ai/validator.js +13 -1
- package/dist/src/ai/validator.js.map +1 -1
- package/dist/src/ast/ast.js +1 -1
- package/dist/src/ast/ast.js.map +1 -1
- package/dist/src/browser.d.ts +10 -18
- package/dist/src/browser.d.ts.map +1 -1
- package/dist/src/browser.js +36 -33
- package/dist/src/browser.js.map +1 -1
- package/dist/src/cli/policy-converter.js +1 -1
- package/dist/src/cli/policy-converter.js.map +1 -1
- package/dist/src/config/lexicons/diagnostic-messages.d.ts +23 -0
- package/dist/src/config/lexicons/diagnostic-messages.d.ts.map +1 -0
- package/dist/src/config/lexicons/diagnostic-messages.js +130 -0
- package/dist/src/config/lexicons/diagnostic-messages.js.map +1 -0
- package/dist/src/config/lexicons/input-generation-rules.d.ts +22 -0
- package/dist/src/config/lexicons/input-generation-rules.d.ts.map +1 -0
- package/dist/src/config/lexicons/input-generation-rules.js +142 -0
- package/dist/src/config/lexicons/input-generation-rules.js.map +1 -0
- package/dist/src/config/lexicons/lsp-ui-texts.d.ts +42 -0
- package/dist/src/config/lexicons/lsp-ui-texts.d.ts.map +1 -0
- package/dist/src/config/lexicons/lsp-ui-texts.js +75 -0
- package/dist/src/config/lexicons/lsp-ui-texts.js.map +1 -0
- package/dist/src/config/lexicons/overlay-loader.d.ts +55 -0
- package/dist/src/config/lexicons/overlay-loader.d.ts.map +1 -0
- package/dist/src/config/lexicons/overlay-loader.js +30 -0
- package/dist/src/config/lexicons/overlay-loader.js.map +1 -0
- package/dist/src/config/lexicons/type-inference-rules.d.ts +19 -0
- package/dist/src/config/lexicons/type-inference-rules.d.ts.map +1 -0
- package/dist/src/config/lexicons/type-inference-rules.js +56 -0
- package/dist/src/config/lexicons/type-inference-rules.js.map +1 -0
- package/dist/src/config/lexicons/types.d.ts +10 -0
- package/dist/src/config/lexicons/types.d.ts.map +1 -1
- package/dist/src/config/lexicons/types.js.map +1 -1
- package/dist/src/config/semantic.d.ts +0 -8
- package/dist/src/config/semantic.d.ts.map +1 -1
- package/dist/src/config/semantic.js +0 -16
- package/dist/src/config/semantic.js.map +1 -1
- package/dist/src/core/index.d.ts +2 -0
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +1 -0
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/interpreter.d.ts +37 -0
- package/dist/src/core/interpreter.d.ts.map +1 -0
- package/dist/src/core/interpreter.js +454 -0
- package/dist/src/core/interpreter.js.map +1 -0
- package/dist/src/diagnostics/diagnostics.d.ts +6 -7
- package/dist/src/diagnostics/diagnostics.d.ts.map +1 -1
- package/dist/src/diagnostics/diagnostics.js +15 -9
- package/dist/src/diagnostics/diagnostics.js.map +1 -1
- package/dist/src/diagnostics/error_codes.d.ts +2 -1
- package/dist/src/diagnostics/error_codes.d.ts.map +1 -1
- package/dist/src/diagnostics/error_codes.js +85 -480
- package/dist/src/diagnostics/error_codes.js.map +1 -1
- package/dist/src/formatter.js +9 -24
- package/dist/src/formatter.js.map +1 -1
- package/dist/src/frontend/lexer.d.ts +1 -1
- package/dist/src/frontend/lexer.js +1 -1
- package/dist/src/index.d.ts +4 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/jvm/emitter.js +3 -3
- package/dist/src/jvm/emitter.js.map +1 -1
- package/dist/src/lower_to_core.d.ts +3 -3
- package/dist/src/lower_to_core.js +3 -3
- package/dist/src/lsp/codeaction.d.ts +2 -1
- package/dist/src/lsp/codeaction.d.ts.map +1 -1
- package/dist/src/lsp/codeaction.js +17 -14
- package/dist/src/lsp/codeaction.js.map +1 -1
- package/dist/src/lsp/completion.d.ts +4 -51
- package/dist/src/lsp/completion.d.ts.map +1 -1
- package/dist/src/lsp/completion.js +16 -84
- package/dist/src/lsp/completion.js.map +1 -1
- package/dist/src/lsp/diagnostics.d.ts +3 -2
- package/dist/src/lsp/diagnostics.d.ts.map +1 -1
- package/dist/src/lsp/diagnostics.js +14 -7
- package/dist/src/lsp/diagnostics.js.map +1 -1
- package/dist/src/lsp/navigation/definition.js +1 -1
- package/dist/src/lsp/navigation/definition.js.map +1 -1
- package/dist/src/lsp/navigation/document-symbol.js +1 -1
- package/dist/src/lsp/navigation/document-symbol.js.map +1 -1
- package/dist/src/lsp/navigation/hover.d.ts +2 -1
- package/dist/src/lsp/navigation/hover.d.ts.map +1 -1
- package/dist/src/lsp/navigation/hover.js +23 -36
- package/dist/src/lsp/navigation/hover.js.map +1 -1
- package/dist/src/lsp/navigation.d.ts +1 -1
- package/dist/src/lsp/navigation.d.ts.map +1 -1
- package/dist/src/lsp/navigation.js +2 -2
- package/dist/src/lsp/navigation.js.map +1 -1
- package/dist/src/lsp/pii_diagnostics.js +3 -13
- package/dist/src/lsp/pii_diagnostics.js.map +1 -1
- package/dist/src/lsp/server.js +35 -8
- package/dist/src/lsp/server.js.map +1 -1
- package/dist/src/lsp/tokens.js +2 -2
- package/dist/src/lsp/tokens.js.map +1 -1
- package/dist/src/lsp/workspace/document-indexer.js +2 -2
- package/dist/src/lsp/workspace/document-indexer.js.map +1 -1
- package/dist/src/package/resolver.js +6 -6
- package/dist/src/package/resolver.js.map +1 -1
- package/dist/src/parser/constraint-parser.d.ts +1 -10
- package/dist/src/parser/constraint-parser.d.ts.map +1 -1
- package/dist/src/parser/constraint-parser.js +0 -30
- package/dist/src/parser/constraint-parser.js.map +1 -1
- package/dist/src/parser/context.d.ts +3 -1
- package/dist/src/parser/context.d.ts.map +1 -1
- package/dist/src/parser/context.js +2 -1
- package/dist/src/parser/context.js.map +1 -1
- package/dist/src/parser/decl-parser.d.ts +6 -10
- package/dist/src/parser/decl-parser.d.ts.map +1 -1
- package/dist/src/parser/decl-parser.js +86 -58
- package/dist/src/parser/decl-parser.js.map +1 -1
- package/dist/src/parser/expr-stmt-parser.js +3 -3
- package/dist/src/parser/expr-stmt-parser.js.map +1 -1
- package/dist/src/parser/field-variant-parser.js +1 -1
- package/dist/src/parser/field-variant-parser.js.map +1 -1
- package/dist/src/parser/import-parser.d.ts +1 -1
- package/dist/src/parser/import-parser.js +2 -2
- package/dist/src/parser/import-parser.js.map +1 -1
- package/dist/src/parser/input-generator.d.ts +20 -6
- package/dist/src/parser/input-generator.d.ts.map +1 -1
- package/dist/src/parser/input-generator.js +20 -403
- package/dist/src/parser/input-generator.js.map +1 -1
- package/dist/src/parser/type-inference.d.ts +10 -16
- package/dist/src/parser/type-inference.d.ts.map +1 -1
- package/dist/src/parser/type-inference.js +36 -127
- package/dist/src/parser/type-inference.js.map +1 -1
- package/dist/src/parser.d.ts +18 -5
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +11 -8
- package/dist/src/parser.js.map +1 -1
- package/dist/src/typecheck/context.d.ts +2 -0
- package/dist/src/typecheck/context.d.ts.map +1 -1
- package/dist/src/typecheck/context.js.map +1 -1
- package/dist/src/typecheck/diagnostics.d.ts +6 -0
- package/dist/src/typecheck/diagnostics.d.ts.map +1 -1
- package/dist/src/typecheck/diagnostics.js +11 -3
- package/dist/src/typecheck/diagnostics.js.map +1 -1
- package/dist/src/typecheck/module.d.ts.map +1 -1
- package/dist/src/typecheck/module.js +8 -2
- package/dist/src/typecheck/module.js.map +1 -1
- package/dist/src/typecheck/workflow.js +10 -10
- package/dist/src/typecheck/workflow.js.map +1 -1
- package/dist/src/types/type-inference.d.ts +20 -0
- package/dist/src/types/type-inference.d.ts.map +1 -0
- package/dist/src/types/type-inference.js +8 -0
- package/dist/src/types/type-inference.js.map +1 -0
- package/dist/src/types.d.ts +0 -21
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/test/benchmark.js +8 -8
- package/dist/test/benchmark.js.map +1 -1
- package/dist/test/compiler/depends-on.test.js +1 -1
- package/dist/test/compiler/depends-on.test.js.map +1 -1
- package/dist/test/compiler/workflow-emitter-helpers.js +1 -1
- package/dist/test/compiler/workflow-emitter-helpers.js.map +1 -1
- package/dist/test/e2e/runner/golden-runner.js +3 -3
- package/dist/test/e2e/runner/golden-runner.js.map +1 -1
- package/dist/test/fuzz/formatter-fuzz.test.js +5 -1
- package/dist/test/fuzz/formatter-fuzz.test.js.map +1 -1
- package/dist/test/integration/compliance/compliance-smoke.test.js +4 -1
- package/dist/test/integration/compliance/compliance-smoke.test.js.map +1 -1
- package/dist/test/integration/lsp/lsp-completion.test.js +1 -1
- package/dist/test/integration/lsp/lsp-completion.test.js.map +1 -1
- package/dist/test/integration/lsp/lsp-diagnostics.test.js +1 -1
- package/dist/test/integration/lsp/lsp-diagnostics.test.js.map +1 -1
- package/dist/test/integration/lsp/lsp-modules.test.js +1 -1
- package/dist/test/integration/lsp/lsp-modules.test.js.map +1 -1
- package/dist/test/integration/lsp/lsp-navigation.test.js +1 -1
- package/dist/test/integration/lsp/lsp-navigation.test.js.map +1 -1
- package/dist/test/integration/pipeline/pipeline.test.js +4 -4
- package/dist/test/integration/pipeline/pipeline.test.js.map +1 -1
- package/dist/test/property/lsp-props.test.js +2 -2
- package/dist/test/property/lsp-props.test.js.map +1 -1
- package/dist/test/property/property.test.js +15 -15
- package/dist/test/property/property.test.js.map +1 -1
- package/dist/test/regression/type-checker-golden.test.js +1 -1
- package/dist/test/regression/type-checker-golden.test.js.map +1 -1
- package/dist/test/type-checker/cross-module-packages.test.js +1 -1
- package/dist/test/type-checker/cross-module-packages.test.js.map +1 -1
- package/dist/test/type-checker/pii-propagation.test.js +1 -2
- package/dist/test/type-checker/pii-propagation.test.js.map +1 -1
- package/dist/test/unit/async/async-discipline.test.js +1 -1
- package/dist/test/unit/async/async-discipline.test.js.map +1 -1
- package/dist/test/unit/async/async-schedule.test.js +1 -1
- package/dist/test/unit/async/async-schedule.test.js.map +1 -1
- package/dist/test/unit/browser/extract-schema.test.d.ts +2 -0
- package/dist/test/unit/browser/extract-schema.test.d.ts.map +1 -0
- package/dist/test/unit/browser/extract-schema.test.js +117 -0
- package/dist/test/unit/browser/extract-schema.test.js.map +1 -0
- package/dist/test/unit/emitter/emitter.test.js +30 -35
- package/dist/test/unit/emitter/emitter.test.js.map +1 -1
- package/dist/test/unit/interpreter/interpreter.test.d.ts +2 -0
- package/dist/test/unit/interpreter/interpreter.test.d.ts.map +1 -0
- package/dist/test/unit/interpreter/interpreter.test.js +507 -0
- package/dist/test/unit/interpreter/interpreter.test.js.map +1 -0
- package/dist/test/unit/keyword-translator.test.js +4 -4
- package/dist/test/unit/keyword-translator.test.js.map +1 -1
- package/dist/test/unit/lowering/lowering.test.js +2 -2
- package/dist/test/unit/lowering/lowering.test.js.map +1 -1
- package/dist/test/unit/lsp/pii-diagnostics.test.js +5 -5
- package/dist/test/unit/lsp/pii-diagnostics.test.js.map +1 -1
- package/dist/test/unit/parser/parser.test.js +39 -37
- package/dist/test/unit/parser/parser.test.js.map +1 -1
- package/dist/test/unit/parser/type-inference.test.js +50 -32
- package/dist/test/unit/parser/type-inference.test.js.map +1 -1
- package/dist/test/unit/typecheck/async-discipline-extended.test.js +1 -1
- package/dist/test/unit/typecheck/async-discipline-extended.test.js.map +1 -1
- package/dist/test/unit/typecheck/effects-and-capabilities.test.js +4 -4
- package/dist/test/unit/typecheck/effects-and-capabilities.test.js.map +1 -1
- package/dist/test/unit/typecheck/regression-fixes.test.js +12 -12
- package/dist/test/unit/typecheck/regression-fixes.test.js.map +1 -1
- package/dist/test/unit/typecheck/type-inference.test.js +1 -1
- package/dist/test/unit/typecheck/type-inference.test.js.map +1 -1
- package/dist/test/unit/typecheck/type-system.test.js +2 -2
- package/dist/test/unit/typecheck/type-system.test.js.map +1 -1
- package/dist/test/unit/typecheck/typecheck-advanced.test.js +3 -3
- package/dist/test/unit/typecheck/typecheck-advanced.test.js.map +1 -1
- package/package.json +6 -3
package/dist/src/browser.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* ```typescript
|
|
17
17
|
* import { compile, compileWithDiagnostics } from '@aster-cloud/aster-lang-ts/browser';
|
|
18
18
|
*
|
|
19
|
-
* const source = `
|
|
19
|
+
* const source = `Module app. Rule greet given name as Text, produce Text: Return "Hello, " + name.`;
|
|
20
20
|
* const result = compile(source);
|
|
21
21
|
*
|
|
22
22
|
* if (result.success) {
|
|
@@ -37,11 +37,15 @@ export { createKeywordTranslator, buildKeywordTranslationIndex, buildFullTransla
|
|
|
37
37
|
export { Core, Effect } from './core/core_ir.js';
|
|
38
38
|
export { TokenKind, KW } from './frontend/tokens.js';
|
|
39
39
|
export { Node } from './ast/ast.js';
|
|
40
|
+
// Core IR interpreter (evaluate policies in the browser)
|
|
41
|
+
export { evaluate } from './core/interpreter.js';
|
|
40
42
|
// Input value generation (for policy execution)
|
|
41
43
|
export { generateFieldValue, generateInputValues, getFieldValueHint, } from './parser/input-generator.js';
|
|
42
44
|
// Lexicons for multi-language support
|
|
43
45
|
import { LexiconRegistry, initializeDefaultLexicons } from './config/lexicons/index.js';
|
|
44
46
|
export { EN_US, ZH_CN, DE_DE, LexiconRegistry, initializeDefaultLexicons } from './config/lexicons/index.js';
|
|
47
|
+
// LSP UI texts (localized labels for hover, completion, etc.)
|
|
48
|
+
export { getLspUiTexts } from './config/lexicons/lsp-ui-texts.js';
|
|
45
49
|
// ============================================================================
|
|
46
50
|
// High-level compilation API (browser-friendly)
|
|
47
51
|
// ============================================================================
|
|
@@ -51,6 +55,7 @@ import { parse } from './parser.js';
|
|
|
51
55
|
import { lowerModule } from './lower_to_core.js';
|
|
52
56
|
import { typecheckBrowser as _typecheckBrowser } from './typecheck/browser.js';
|
|
53
57
|
import { createKeywordTranslator, needsKeywordTranslation } from './frontend/keyword-translator.js';
|
|
58
|
+
import { attachTypeInferenceRules } from './config/lexicons/type-inference-rules.js';
|
|
54
59
|
import { DiagnosticError } from './diagnostics/diagnostics.js';
|
|
55
60
|
/**
|
|
56
61
|
* Compile CNL source code to Core IR
|
|
@@ -66,8 +71,8 @@ import { DiagnosticError } from './diagnostics/diagnostics.js';
|
|
|
66
71
|
* @example
|
|
67
72
|
* ```typescript
|
|
68
73
|
* const result = compile(`
|
|
69
|
-
*
|
|
70
|
-
*
|
|
74
|
+
* Module pricing.
|
|
75
|
+
* Rule calculate_discount given amount as Number, produce Number:
|
|
71
76
|
* If amount > 100 then Return amount * 0.1
|
|
72
77
|
* Otherwise Return 0.
|
|
73
78
|
* `);
|
|
@@ -102,26 +107,32 @@ export function compile(source, options) {
|
|
|
102
107
|
tokens = translator.translateTokens(tokens);
|
|
103
108
|
}
|
|
104
109
|
// Step 4: Parse to AST (now with English tokens)
|
|
105
|
-
const
|
|
110
|
+
const effectiveLex = lexicon ? attachTypeInferenceRules(lexicon) : undefined;
|
|
111
|
+
const parseResult = parse(tokens, effectiveLex);
|
|
106
112
|
// Check for parse errors
|
|
107
|
-
if (
|
|
113
|
+
if (parseResult.diagnostics.length > 0 && parseResult.ast.decls.length === 0) {
|
|
108
114
|
const result = {
|
|
109
115
|
success: false,
|
|
110
|
-
parseErrors:
|
|
111
|
-
|
|
112
|
-
|
|
116
|
+
parseErrors: parseResult.diagnostics.map(d => ({
|
|
117
|
+
message: d.message,
|
|
118
|
+
span: d.span,
|
|
119
|
+
})),
|
|
113
120
|
};
|
|
114
121
|
if (options?.includeIntermediates) {
|
|
115
122
|
result.tokens = tokens;
|
|
116
123
|
}
|
|
117
124
|
return result;
|
|
118
125
|
}
|
|
119
|
-
|
|
126
|
+
const ast = parseResult.ast;
|
|
127
|
+
// Step 5: Lower to Core IR
|
|
120
128
|
const core = lowerModule(ast);
|
|
121
129
|
const result = {
|
|
122
130
|
success: true,
|
|
123
131
|
core,
|
|
124
132
|
};
|
|
133
|
+
if (parseResult.diagnostics.length > 0) {
|
|
134
|
+
result.parseErrors = parseResult.diagnostics.map(d => ({ message: d.message, span: d.span }));
|
|
135
|
+
}
|
|
125
136
|
if (options?.includeIntermediates) {
|
|
126
137
|
result.tokens = tokens;
|
|
127
138
|
result.ast = ast;
|
|
@@ -166,9 +177,14 @@ export function validateSyntaxWithSpan(source, lexicon) {
|
|
|
166
177
|
const translator = createKeywordTranslator(lexicon);
|
|
167
178
|
tokens = translator.translateTokens(tokens);
|
|
168
179
|
}
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
|
|
180
|
+
const effectiveLexForValidation = lexicon ? attachTypeInferenceRules(lexicon) : undefined;
|
|
181
|
+
const result = parse(tokens, effectiveLexForValidation);
|
|
182
|
+
// 错误恢复模式:直接返回收集到的诊断
|
|
183
|
+
if (result.diagnostics.length > 0) {
|
|
184
|
+
return result.diagnostics.map(d => ({
|
|
185
|
+
message: d.message,
|
|
186
|
+
span: d.span,
|
|
187
|
+
}));
|
|
172
188
|
}
|
|
173
189
|
return [];
|
|
174
190
|
}
|
|
@@ -184,20 +200,6 @@ export function validateSyntaxWithSpan(source, lexicon) {
|
|
|
184
200
|
return [{ message: error instanceof Error ? error.message : String(error) }];
|
|
185
201
|
}
|
|
186
202
|
}
|
|
187
|
-
/**
|
|
188
|
-
* Validate CNL source code syntax without full compilation
|
|
189
|
-
*
|
|
190
|
-
* This is a lightweight validation that only runs lexer and parser,
|
|
191
|
-
* useful for real-time editor validation.
|
|
192
|
-
*
|
|
193
|
-
* @param source - CNL source code
|
|
194
|
-
* @param lexicon - CNL lexicon (optional, defaults to EN_US)
|
|
195
|
-
* @returns Array of error messages (empty if valid)
|
|
196
|
-
* @deprecated Use validateSyntaxWithSpan for position information
|
|
197
|
-
*/
|
|
198
|
-
export function validateSyntax(source, lexicon) {
|
|
199
|
-
return validateSyntaxWithSpan(source, lexicon).map(e => e.message);
|
|
200
|
-
}
|
|
201
203
|
/**
|
|
202
204
|
* Get tokens from CNL source (for syntax highlighting)
|
|
203
205
|
*
|
|
@@ -278,9 +280,9 @@ function typeToString(type) {
|
|
|
278
280
|
* @example
|
|
279
281
|
* ```typescript
|
|
280
282
|
* const result = extractSchema(`
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
*
|
|
283
|
+
* Module loan.
|
|
284
|
+
* Define LoanApplication has creditScore as Int, amount as Float, term as Int.
|
|
285
|
+
* Rule evaluate given application as LoanApplication, produce Bool:
|
|
284
286
|
* If application.creditScore >= 700 then Return true
|
|
285
287
|
* Otherwise Return false.
|
|
286
288
|
* `);
|
|
@@ -303,14 +305,15 @@ export function extractSchema(source, options) {
|
|
|
303
305
|
tokens = translator.translateTokens(tokens);
|
|
304
306
|
}
|
|
305
307
|
// Parse to AST
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
+
const effectiveLexForSchema = lexicon ? attachTypeInferenceRules(lexicon) : undefined;
|
|
309
|
+
const parseResult = parse(tokens, effectiveLexForSchema);
|
|
310
|
+
if (parseResult.diagnostics.length > 0 && parseResult.ast.decls.length === 0) {
|
|
308
311
|
return {
|
|
309
312
|
success: false,
|
|
310
|
-
error:
|
|
313
|
+
error: parseResult.diagnostics[0]?.message ?? 'Parse failed',
|
|
311
314
|
};
|
|
312
315
|
}
|
|
313
|
-
const module = ast;
|
|
316
|
+
const module = parseResult.ast;
|
|
314
317
|
const moduleName = module.name ?? 'unknown';
|
|
315
318
|
// Find all Data declarations (for struct field resolution)
|
|
316
319
|
const dataDecls = new Map();
|
package/dist/src/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ function compileToJson(inputPath, outputPath) {
|
|
|
39
39
|
// 编译管线:CNL → Canonical → Tokens → AST → Core IR
|
|
40
40
|
const canonical = canonicalize(source);
|
|
41
41
|
const tokens = lex(canonical);
|
|
42
|
-
const ast = parse(tokens);
|
|
42
|
+
const { ast } = parse(tokens);
|
|
43
43
|
const coreIR = lowerModule(ast);
|
|
44
44
|
// 序列化为 JSON
|
|
45
45
|
const metadata = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-converter.js","sourceRoot":"","sources":["../../../src/cli/policy-converter.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE7E;;GAEG;AACH,SAAS,SAAS,CAAC,SAAiB;IAClC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,aAAa;QACb,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ;IACR,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,SAAiB,EAAE,UAAmB;IAC3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAEpC,gDAAgD;QAChD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"policy-converter.js","sourceRoot":"","sources":["../../../src/cli/policy-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 语言特定的诊断消息翻译(overlay 模式)
|
|
3
|
+
*
|
|
4
|
+
* 不修改 @generated 的 lexicon 文件,而是通过 attach 函数
|
|
5
|
+
* 在运行时将翻译附加到 Lexicon 对象上。
|
|
6
|
+
*
|
|
7
|
+
* 规则数据来源优先级:
|
|
8
|
+
* 1. 从语言包 JSON overlay 加载(通过 registerOverlay*)
|
|
9
|
+
* 2. 内联 fallback 常量(当 JSON overlay 尚未接入时使用)
|
|
10
|
+
*/
|
|
11
|
+
import type { Lexicon } from './types.js';
|
|
12
|
+
import type { OverlayData } from './overlay-loader.js';
|
|
13
|
+
/**
|
|
14
|
+
* 从 JSON overlay 数据注册诊断消息翻译(覆盖内联 fallback)。
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerOverlayDiagnosticMessages(lexiconId: string, overlay: NonNullable<OverlayData['diagnosticMessages']>): void;
|
|
17
|
+
/**
|
|
18
|
+
* 从 JSON overlay 数据注册诊断帮助文本翻译(覆盖内联 fallback)。
|
|
19
|
+
*/
|
|
20
|
+
export declare function registerOverlayDiagnosticHelp(lexiconId: string, overlay: NonNullable<OverlayData['diagnosticHelp']>): void;
|
|
21
|
+
/** 为 lexicon 附加诊断消息翻译(不修改原对象) */
|
|
22
|
+
export declare function attachDiagnosticMessages(lexicon: Lexicon): Lexicon;
|
|
23
|
+
//# sourceMappingURL=diagnostic-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic-messages.d.ts","sourceRoot":"","sources":["../../../../src/config/lexicons/diagnostic-messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAqGvD;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAElI;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAE1H;AAED,iCAAiC;AACjC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CASlE"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 语言特定的诊断消息翻译(overlay 模式)
|
|
3
|
+
*
|
|
4
|
+
* 不修改 @generated 的 lexicon 文件,而是通过 attach 函数
|
|
5
|
+
* 在运行时将翻译附加到 Lexicon 对象上。
|
|
6
|
+
*
|
|
7
|
+
* 规则数据来源优先级:
|
|
8
|
+
* 1. 从语言包 JSON overlay 加载(通过 registerOverlay*)
|
|
9
|
+
* 2. 内联 fallback 常量(当 JSON overlay 尚未接入时使用)
|
|
10
|
+
*/
|
|
11
|
+
import { loadDiagnosticMessages, loadDiagnosticHelp } from './overlay-loader.js';
|
|
12
|
+
/** 内联 fallback:中文诊断消息 */
|
|
13
|
+
const ZH_CN_MESSAGES = {
|
|
14
|
+
E008: 'If分支返回类型不一致: then分支 {thenType} vs else分支 {elseType}',
|
|
15
|
+
E013: '构造 {type} 缺少必需字段 \'{field}\'',
|
|
16
|
+
E070: '禁止将 PII 数据赋给较低等级目标: {source} -> {target}',
|
|
17
|
+
E072: 'PII 等级 {level} 数据未脱敏即输出到 {sinkKind}',
|
|
18
|
+
E073: 'PII 参数类型不匹配: 期望 {expected}, 实际 {actual}',
|
|
19
|
+
E205: '函数 \'{func}\' 缺少 @io 效果声明,推断要求 IO。',
|
|
20
|
+
E206: '函数 \'{func}\' 缺少 @cpu 效果声明,推断要求 CPU(或 @io)。',
|
|
21
|
+
E207: '函数 \'{func}\' 声明了 @io,但推断未发现 IO 副作用。',
|
|
22
|
+
E208: '函数 \'{func}\' 声明了 @cpu,但推断未发现 CPU 副作用。',
|
|
23
|
+
E209: '函数 \'{func}\' 同时声明 @cpu 和 @io;由于需要 @io,@cpu 可移除。',
|
|
24
|
+
E210: '效应变量 {var} 未声明',
|
|
25
|
+
E211: '效应变量 {vars} 无法推断出具体效果',
|
|
26
|
+
W071: '检测到隐式 PII 等级提升: {source} -> {target}',
|
|
27
|
+
W074: '可能有 PII 数据流向 {sinkKind} 但缺少注解',
|
|
28
|
+
W105: 'Workflow retry 配置可能不合理: {reason}',
|
|
29
|
+
W106: 'Workflow timeout 配置可能不合理: {reason}',
|
|
30
|
+
};
|
|
31
|
+
/** 内联 fallback:中文帮助文本 */
|
|
32
|
+
const ZH_CN_HELP = {
|
|
33
|
+
E001: '检查类型标注与表达式的推断结果是否一致。',
|
|
34
|
+
E002: '确认变量先前绑定的类型与当前赋值结果一致。',
|
|
35
|
+
E003: '检查函数返回语句与声明的返回类型是否一致。',
|
|
36
|
+
E004: '在函数签名的 of 子句中显式声明使用到的类型变量。',
|
|
37
|
+
E005: '移除未使用的类型参数,避免造成误导。',
|
|
38
|
+
E006: '对于看起来像类型变量的名称,务必在 of 子句中声明。',
|
|
39
|
+
E007: '确认类型推断的多个使用点产出相同的具体类型。',
|
|
40
|
+
E008: '确保 if 两个分支返回类型保持一致。',
|
|
41
|
+
E009: '检查 match 每个分支的返回类型是否统一。',
|
|
42
|
+
E010: '仅在 Int 类型的匹配表达式中使用整数模式。',
|
|
43
|
+
E011: '检查构造体或数据类型的字段名称是否正确。',
|
|
44
|
+
E012: '校验字段初始化表达式的类型是否匹配声明。',
|
|
45
|
+
E013: '为数据构造提供声明中的所有必需字段。',
|
|
46
|
+
E014: '调整 not 调用的参数数量为 1。',
|
|
47
|
+
E015: '仅对 Maybe 或 Result 类型调用 await。',
|
|
48
|
+
E016: '移除重复的枚举分支,保持匹配语句简洁。',
|
|
49
|
+
E017: '为 Maybe 匹配补齐 null 与非 null 分支。',
|
|
50
|
+
E018: '补充所有未覆盖的枚举分支,或添加通配符。',
|
|
51
|
+
E019: '统一互操作调用的参数数值类型,避免隐式装箱与拓宽。',
|
|
52
|
+
E020: '确保列表字面量中的所有元素类型一致。',
|
|
53
|
+
E021: '传入 Maybe/Option 类型或显式包装值。',
|
|
54
|
+
E022: '确保补偿块返回 Result<Unit, E>,其中 E 为 step 错误类型。',
|
|
55
|
+
E023: '为包含 IO 副作用的 step 提供 compensate 块以便回滚。',
|
|
56
|
+
E024: '设置 retry.maxAttempts 为正整数。',
|
|
57
|
+
E025: '配置 timeout 秒数为正值,确保补偿逻辑可被触发。',
|
|
58
|
+
E026: '在函数头部添加 @io 效果声明,否则编译器拒绝 workflow 语句。',
|
|
59
|
+
E027: '在函数头部列出实际使用到的能力。',
|
|
60
|
+
E028: 'Compensate 只能重复主体已使用的能力。',
|
|
61
|
+
E029: '仅引用当前 workflow 中已声明的步骤名称,或修正依赖拼写。',
|
|
62
|
+
E030: '移除或重构循环依赖,确保步骤可拓扑排序执行。',
|
|
63
|
+
E070: '使用脱敏函数或为目标变量声明匹配的 @pii 等级。',
|
|
64
|
+
E072: '在输出前调用 redact() 或 tokenize() 以降低敏感度。',
|
|
65
|
+
E073: '检查函数签名,确保 PII 等级与类别一致。',
|
|
66
|
+
E100: '为不同的导入使用唯一别名,避免覆盖。',
|
|
67
|
+
E101: '在使用变量前先声明并初始化。',
|
|
68
|
+
E102: '选择不同的名称或检查是否存在意外的重复声明。',
|
|
69
|
+
E200: '为具有 IO 行为的函数声明 @io 效果。',
|
|
70
|
+
E201: '为 CPU 密集型函数声明 @cpu 或 @io 效果。',
|
|
71
|
+
E202: '若函数仅执行 CPU 工作,可移除多余的 @io 声明。',
|
|
72
|
+
E203: '确认是否需要 @io;若无 IO 行为可移除。',
|
|
73
|
+
E204: '移除多余的 @cpu 声明或增加相应的 CPU 工作。',
|
|
74
|
+
E205: '根据推断结果为函数添加 @io 效果。',
|
|
75
|
+
E206: '根据推断结果补齐 @cpu 或 @io 效果。',
|
|
76
|
+
E207: '确认是否需要保留 @io 声明。',
|
|
77
|
+
E208: '若无 CPU 副作用,可删除 @cpu 声明。',
|
|
78
|
+
E209: '保留 @io 即可满足需求,移除多余的 @cpu。',
|
|
79
|
+
E210: '在函数签名的效果参数列表中添加效应类型参数。',
|
|
80
|
+
E211: '参考调用或声明补充明确的效果(pure/cpu/io/workflow),或移除未使用的效应变量。',
|
|
81
|
+
E300: '更新能力清单或修改函数实现以符合限制。',
|
|
82
|
+
E301: '在函数头部声明实际使用到的能力。',
|
|
83
|
+
E302: '移除未使用的能力声明以保持清晰。',
|
|
84
|
+
E303: '在函数头部声明 @io 效果,或移除相关调用保持纯度。',
|
|
85
|
+
E304: '为函数添加 @cpu 或 @io 效果以覆盖 CPU 能力。',
|
|
86
|
+
E400: '使用加密通道(HTTPS)或脱敏处理后再传输 PII 数据。',
|
|
87
|
+
E401: '为敏感数据添加 @pii 标注以便跟踪。',
|
|
88
|
+
E402: '调整数据的敏感级别或更新流程要求。',
|
|
89
|
+
E403: '在处理 PII 数据前调用 checkConsent() 或添加 @consent_required 注解。',
|
|
90
|
+
E500: '对启动的异步任务调用 wait,确保执行完毕。',
|
|
91
|
+
E501: '确认 wait 的任务名称在 Start 中正确出现。',
|
|
92
|
+
E502: '避免重复启动同名任务,可复用已有任务或改用新名称。',
|
|
93
|
+
E503: '确保每个任务仅等待一次,或使用单独的同步机制。',
|
|
94
|
+
E504: '在 wait for 之前先执行 start,并确保两者位于兼容的控制路径。',
|
|
95
|
+
W071: '为等级变化添加显式类型注解以便审计。',
|
|
96
|
+
W074: '为数据增加 @pii 注解以追踪敏感数据流。',
|
|
97
|
+
W105: '检查 retry 总等待时间、maxAttempts 与 backoff 策略的组合是否合理。',
|
|
98
|
+
W106: '检查 timeout 值是否过大或过小。',
|
|
99
|
+
};
|
|
100
|
+
const MESSAGES_BY_LEXICON = {
|
|
101
|
+
'zh-CN': ZH_CN_MESSAGES,
|
|
102
|
+
};
|
|
103
|
+
const HELP_BY_LEXICON = {
|
|
104
|
+
'zh-CN': ZH_CN_HELP,
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* 从 JSON overlay 数据注册诊断消息翻译(覆盖内联 fallback)。
|
|
108
|
+
*/
|
|
109
|
+
export function registerOverlayDiagnosticMessages(lexiconId, overlay) {
|
|
110
|
+
MESSAGES_BY_LEXICON[lexiconId] = loadDiagnosticMessages(overlay);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* 从 JSON overlay 数据注册诊断帮助文本翻译(覆盖内联 fallback)。
|
|
114
|
+
*/
|
|
115
|
+
export function registerOverlayDiagnosticHelp(lexiconId, overlay) {
|
|
116
|
+
HELP_BY_LEXICON[lexiconId] = loadDiagnosticHelp(overlay);
|
|
117
|
+
}
|
|
118
|
+
/** 为 lexicon 附加诊断消息翻译(不修改原对象) */
|
|
119
|
+
export function attachDiagnosticMessages(lexicon) {
|
|
120
|
+
if (lexicon.diagnosticMessages && lexicon.diagnosticHelp)
|
|
121
|
+
return lexicon;
|
|
122
|
+
const messages = lexicon.diagnosticMessages ?? MESSAGES_BY_LEXICON[lexicon.id];
|
|
123
|
+
const help = lexicon.diagnosticHelp ?? HELP_BY_LEXICON[lexicon.id];
|
|
124
|
+
return {
|
|
125
|
+
...lexicon,
|
|
126
|
+
...(messages !== undefined && { diagnosticMessages: messages }),
|
|
127
|
+
...(help !== undefined && { diagnosticHelp: help }),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=diagnostic-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostic-messages.js","sourceRoot":"","sources":["../../../../src/config/lexicons/diagnostic-messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 语言特定的输入值生成规则(overlay 模式)
|
|
3
|
+
*
|
|
4
|
+
* 不修改 @generated 的 lexicon 文件,而是通过 attach 函数
|
|
5
|
+
* 在运行时将规则附加到 Lexicon 对象上。
|
|
6
|
+
*
|
|
7
|
+
* 规则数据来源优先级:
|
|
8
|
+
* 1. 从语言包 JSON overlay 加载(通过 registerOverlayRules)
|
|
9
|
+
* 2. 内联 fallback 常量(当 JSON overlay 尚未接入时使用)
|
|
10
|
+
*/
|
|
11
|
+
import type { ValueGenerationRule } from '../../parser/input-generator.js';
|
|
12
|
+
import type { Lexicon } from './types.js';
|
|
13
|
+
import type { OverlayData } from './overlay-loader.js';
|
|
14
|
+
/**
|
|
15
|
+
* 从 JSON overlay 数据注册输入生成规则(覆盖内联 fallback)。
|
|
16
|
+
*/
|
|
17
|
+
export declare function registerOverlayInputGenerationRules(lexiconId: string, overlay: NonNullable<OverlayData['inputGenerationRules']>): void;
|
|
18
|
+
/** 获取指定 lexicon 的输入生成规则,回退到英文 */
|
|
19
|
+
export declare function getInputGenerationRules(lexicon?: Lexicon): readonly ValueGenerationRule[];
|
|
20
|
+
/** 为 lexicon 附加输入值生成规则(不修改原对象) */
|
|
21
|
+
export declare function attachInputGenerationRules(lexicon: Lexicon): Lexicon;
|
|
22
|
+
//# sourceMappingURL=input-generation-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-generation-rules.d.ts","sourceRoot":"","sources":["../../../../src/config/lexicons/input-generation-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoHvD;;GAEG;AACH,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAEtI;AAED,iCAAiC;AACjC,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,mBAAmB,EAAE,CAGzF;AAED,kCAAkC;AAClC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAKpE"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 语言特定的输入值生成规则(overlay 模式)
|
|
3
|
+
*
|
|
4
|
+
* 不修改 @generated 的 lexicon 文件,而是通过 attach 函数
|
|
5
|
+
* 在运行时将规则附加到 Lexicon 对象上。
|
|
6
|
+
*
|
|
7
|
+
* 规则数据来源优先级:
|
|
8
|
+
* 1. 从语言包 JSON overlay 加载(通过 registerOverlayRules)
|
|
9
|
+
* 2. 内联 fallback 常量(当 JSON overlay 尚未接入时使用)
|
|
10
|
+
*/
|
|
11
|
+
import { loadInputGenerationRules } from './overlay-loader.js';
|
|
12
|
+
/** 内联 fallback:英文字段名值生成规则 */
|
|
13
|
+
const EN_US_RULES = [
|
|
14
|
+
// 金融领域
|
|
15
|
+
{ pattern: /(?:credit|fico).*?score/i, generate: () => 720, priority: 10 },
|
|
16
|
+
{ pattern: /(?:loan|mortgage|principal).*?amount/i, generate: () => 50000.0, priority: 10 },
|
|
17
|
+
{ pattern: /(?:annual|monthly|yearly)?.*?(?:income|salary|earnings)/i, generate: () => 85000.0, priority: 9 },
|
|
18
|
+
{ pattern: /(?:monthly)?.*?(?:debt|obligation|payment)/i, generate: () => 1500.0, priority: 8 },
|
|
19
|
+
{ pattern: /(?:interest|apr|apy).*?rate/i, generate: () => 5.5, priority: 9 },
|
|
20
|
+
{ pattern: /(?:rate|interest)$/i, generate: () => 5.5, priority: 7 },
|
|
21
|
+
{ pattern: /(?:loan|term).*?(?:months?|years?|term)/i, generate: () => 36, priority: 9 },
|
|
22
|
+
{ pattern: /dti|debt.*?(?:to|income).*?ratio/i, generate: () => 0.35, priority: 10 },
|
|
23
|
+
{ pattern: /ltv|loan.*?(?:to|value).*?ratio/i, generate: () => 0.80, priority: 10 },
|
|
24
|
+
// 保险领域
|
|
25
|
+
{ pattern: /premium/i, generate: () => 1200, priority: 9 },
|
|
26
|
+
{ pattern: /deductible/i, generate: () => 500, priority: 9 },
|
|
27
|
+
{ pattern: /(?:coverage|policy).*?limit/i, generate: () => 100000, priority: 9 },
|
|
28
|
+
{ pattern: /(?:years?)?.*?licensed|driving.*?experience/i, generate: () => 8, priority: 8 },
|
|
29
|
+
{ pattern: /accident.*?(?:count|number)/i, generate: () => 0, priority: 8 },
|
|
30
|
+
{ pattern: /violation.*?(?:count|number)/i, generate: () => 1, priority: 8 },
|
|
31
|
+
// 用户/个人信息
|
|
32
|
+
{ pattern: /^age$|.*?age$/i, generate: () => 35, priority: 10 },
|
|
33
|
+
{ pattern: /(?:applicant|customer|user|member|patient).*?id/i, generate: () => 'USR-2024-001', priority: 10 },
|
|
34
|
+
{ pattern: /(?:policy|claim|order|transaction).*?id/i, generate: () => 'POL-2024-001', priority: 10 },
|
|
35
|
+
{ pattern: /(?:id|identifier)$/i, generate: () => 'ID-001', priority: 6 },
|
|
36
|
+
{ pattern: /(?:applicant|customer|user|patient|member)?.*?name/i, generate: () => 'John Smith', priority: 8 },
|
|
37
|
+
{ pattern: /email/i, generate: () => 'john.smith@example.com', priority: 9 },
|
|
38
|
+
{ pattern: /phone|mobile|tel/i, generate: () => '+1-555-123-4567', priority: 9 },
|
|
39
|
+
{ pattern: /address/i, generate: () => '123 Main Street, Anytown, ST 12345', priority: 8 },
|
|
40
|
+
{ pattern: /(?:years?)?.*?(?:employed|employment|work.*?experience)/i, generate: () => 5, priority: 8 },
|
|
41
|
+
// 车辆信息
|
|
42
|
+
{ pattern: /(?:vehicle)?.*?make/i, generate: () => 'Toyota', priority: 9 },
|
|
43
|
+
{ pattern: /(?:vehicle)?.*?model/i, generate: () => 'Camry', priority: 9 },
|
|
44
|
+
{ pattern: /(?:vehicle|car).*?year/i, generate: () => 2022, priority: 9 },
|
|
45
|
+
{ pattern: /vin/i, generate: () => '1HGBH41JXMN109186', priority: 10 },
|
|
46
|
+
{ pattern: /mileage|odometer/i, generate: () => 35000, priority: 9 },
|
|
47
|
+
// 医疗健康
|
|
48
|
+
{ pattern: /patient.*?id/i, generate: () => 'PAT-2024-001', priority: 11 },
|
|
49
|
+
{ pattern: /(?:diagnosis|icd).*?code/i, generate: () => 'J06.9', priority: 10 },
|
|
50
|
+
{ pattern: /claim.*?amount/i, generate: () => 2500.0, priority: 10 },
|
|
51
|
+
{ pattern: /service.*?(?:type|code)/i, generate: () => 'OFFICE_VISIT', priority: 8 },
|
|
52
|
+
{ pattern: /provider.*?id/i, generate: () => 'PRV-001', priority: 9 },
|
|
53
|
+
// 通用数值
|
|
54
|
+
{ pattern: /amount|price|cost|fee|total|balance|payment/i, generate: () => 1000.0, priority: 5 },
|
|
55
|
+
{ pattern: /percentage|ratio|percent/i, generate: () => 0.25, priority: 6 },
|
|
56
|
+
{ pattern: /count|number|qty|quantity/i, generate: () => 10, priority: 5 },
|
|
57
|
+
{ pattern: /score|rating|level|rank/i, generate: () => 85, priority: 5 },
|
|
58
|
+
{ pattern: /limit|max|min|threshold/i, generate: () => 1000, priority: 5 },
|
|
59
|
+
// 布尔
|
|
60
|
+
{ pattern: /(?:is|has)?.*?(?:approved|verified|valid|active|enabled|confirmed)/i, generate: () => true, priority: 8 },
|
|
61
|
+
{ pattern: /(?:is|has)?.*?(?:rejected|denied|disabled|blocked|suspended)/i, generate: () => false, priority: 8 },
|
|
62
|
+
{ pattern: /^(?:has|is|can|should|does|did|will|was)/i, generate: () => true, priority: 6 },
|
|
63
|
+
{ pattern: /flag$/i, generate: () => true, priority: 5 },
|
|
64
|
+
// 日期时间
|
|
65
|
+
{ pattern: /birth.*?(?:date|day)|birthday/i, generate: () => '1990-01-15', priority: 10 },
|
|
66
|
+
{ pattern: /(?:created|registered|signup|joined).*?(?:date|at|time)/i, generate: () => '2024-01-01T10:00:00Z', priority: 9 },
|
|
67
|
+
{ pattern: /(?:expir|expire|expiry|expires).*?(?:date|at|time)/i, generate: () => '2025-12-31', priority: 9 },
|
|
68
|
+
{ pattern: /(?:updated|modified|changed).*?(?:date|at|time)/i, generate: () => '2024-06-15T14:30:00Z', priority: 9 },
|
|
69
|
+
{ pattern: /(?:date|time|timestamp)$/i, generate: () => new Date().toISOString().split('T')[0], priority: 4 },
|
|
70
|
+
// 状态/枚举
|
|
71
|
+
{ pattern: /account.*?status/i, generate: () => 'ACTIVE', priority: 9 },
|
|
72
|
+
{ pattern: /employment.*?(?:status|type)/i, generate: () => 'EMPLOYED', priority: 9 },
|
|
73
|
+
{ pattern: /marital.*?status/i, generate: () => 'MARRIED', priority: 9 },
|
|
74
|
+
{ pattern: /(?:housing|residence).*?(?:status|type)/i, generate: () => 'OWN', priority: 9 },
|
|
75
|
+
{ pattern: /status/i, generate: () => 'ACTIVE', priority: 4 },
|
|
76
|
+
{ pattern: /type|category|kind/i, generate: () => 'STANDARD', priority: 4 },
|
|
77
|
+
].sort((a, b) => b.priority - a.priority);
|
|
78
|
+
/** 内联 fallback:中文字段名值生成规则 */
|
|
79
|
+
const ZH_CN_RULES = [
|
|
80
|
+
{ pattern: /信用评分|信用分/, generate: () => 720, priority: 10 },
|
|
81
|
+
{ pattern: /贷款金额/, generate: () => 50000.0, priority: 10 },
|
|
82
|
+
{ pattern: /年收入/, generate: () => 85000.0, priority: 9 },
|
|
83
|
+
{ pattern: /月收入/, generate: () => 7000.0, priority: 9 },
|
|
84
|
+
{ pattern: /债务/, generate: () => 1500.0, priority: 8 },
|
|
85
|
+
{ pattern: /利率/, generate: () => 5.5, priority: 9 },
|
|
86
|
+
{ pattern: /贷款期限/, generate: () => 36, priority: 9 },
|
|
87
|
+
{ pattern: /保费/, generate: () => 1200, priority: 9 },
|
|
88
|
+
{ pattern: /免赔额/, generate: () => 500, priority: 9 },
|
|
89
|
+
{ pattern: /保险限额/, generate: () => 100000, priority: 9 },
|
|
90
|
+
{ pattern: /驾龄/, generate: () => 8, priority: 8 },
|
|
91
|
+
{ pattern: /事故次数/, generate: () => 0, priority: 8 },
|
|
92
|
+
{ pattern: /年龄/, generate: () => 35, priority: 10 },
|
|
93
|
+
{ pattern: /姓名|申请人/, generate: () => '张三', priority: 8 },
|
|
94
|
+
{ pattern: /邮箱/, generate: () => 'zhangsan@example.com', priority: 9 },
|
|
95
|
+
{ pattern: /电话|手机/, generate: () => '13800138000', priority: 9 },
|
|
96
|
+
{ pattern: /地址/, generate: () => '北京市朝阳区建国路1号', priority: 8 },
|
|
97
|
+
{ pattern: /评分/, generate: () => 85, priority: 5 },
|
|
98
|
+
{ pattern: /金额/, generate: () => 1000.0, priority: 5 },
|
|
99
|
+
{ pattern: /数量|次数/, generate: () => 10, priority: 5 },
|
|
100
|
+
{ pattern: /额度/, generate: () => 50000, priority: 8 },
|
|
101
|
+
{ pattern: /账龄/, generate: () => 5, priority: 8 },
|
|
102
|
+
{ pattern: /卡数/, generate: () => 3, priority: 8 },
|
|
103
|
+
{ pattern: /百分比|比率|费率/, generate: () => 0.25, priority: 6 },
|
|
104
|
+
];
|
|
105
|
+
/** 内联 fallback:德语字段名值生成规则 */
|
|
106
|
+
const DE_DE_RULES = [
|
|
107
|
+
{ pattern: /Kreditbewertung/i, generate: () => 720, priority: 10 },
|
|
108
|
+
{ pattern: /Darlehensbetrag/i, generate: () => 50000.0, priority: 10 },
|
|
109
|
+
{ pattern: /Alter/i, generate: () => 35, priority: 10 },
|
|
110
|
+
{ pattern: /Name/i, generate: () => 'Max Mustermann', priority: 8 },
|
|
111
|
+
{ pattern: /Adresse/i, generate: () => 'Musterstraße 1, 10115 Berlin', priority: 8 },
|
|
112
|
+
{ pattern: /Telefon/i, generate: () => '+49-30-12345678', priority: 9 },
|
|
113
|
+
{ pattern: /Praemie/i, generate: () => 1200, priority: 9 },
|
|
114
|
+
{ pattern: /Selbstbeteiligung/i, generate: () => 500, priority: 9 },
|
|
115
|
+
];
|
|
116
|
+
const RULES_BY_LEXICON = {
|
|
117
|
+
'en-US': EN_US_RULES,
|
|
118
|
+
'zh-CN': ZH_CN_RULES,
|
|
119
|
+
'de-DE': DE_DE_RULES,
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* 从 JSON overlay 数据注册输入生成规则(覆盖内联 fallback)。
|
|
123
|
+
*/
|
|
124
|
+
export function registerOverlayInputGenerationRules(lexiconId, overlay) {
|
|
125
|
+
RULES_BY_LEXICON[lexiconId] = loadInputGenerationRules(overlay);
|
|
126
|
+
}
|
|
127
|
+
/** 获取指定 lexicon 的输入生成规则,回退到英文 */
|
|
128
|
+
export function getInputGenerationRules(lexicon) {
|
|
129
|
+
if (!lexicon)
|
|
130
|
+
return EN_US_RULES;
|
|
131
|
+
return lexicon.inputGenerationRules ?? RULES_BY_LEXICON[lexicon.id] ?? EN_US_RULES;
|
|
132
|
+
}
|
|
133
|
+
/** 为 lexicon 附加输入值生成规则(不修改原对象) */
|
|
134
|
+
export function attachInputGenerationRules(lexicon) {
|
|
135
|
+
if (lexicon.inputGenerationRules)
|
|
136
|
+
return lexicon;
|
|
137
|
+
const rules = RULES_BY_LEXICON[lexicon.id];
|
|
138
|
+
if (!rules)
|
|
139
|
+
return lexicon;
|
|
140
|
+
return { ...lexicon, inputGenerationRules: rules };
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=input-generation-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-generation-rules.js","sourceRoot":"","sources":["../../../../src/config/lexicons/input-generation-rules.ts"],"names":[],"mappings":"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"}
|