@aster-cloud/aster-lang-ts 0.0.32 → 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.
- package/CHANGELOG.md +46 -0
- package/README.md +4 -4
- package/dist/peg/headers-parser.js +233 -468
- package/dist/scripts/cleanup-examples.js +1 -1
- package/dist/scripts/cleanup-examples.js.map +1 -1
- package/dist/scripts/emit-classfiles.js +0 -49
- package/dist/scripts/emit-classfiles.js.map +1 -1
- package/dist/scripts/golden.js +0 -3
- package/dist/scripts/golden.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/src/ast/ast.js +1 -1
- package/dist/src/ast/ast.js.map +1 -1
- package/dist/src/browser.d.ts +6 -18
- package/dist/src/browser.d.ts.map +1 -1
- package/dist/src/browser.js +14 -24
- package/dist/src/browser.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/diagnostics/diagnostics.d.ts +1 -7
- package/dist/src/diagnostics/diagnostics.d.ts.map +1 -1
- package/dist/src/diagnostics/diagnostics.js +2 -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 +8 -23
- 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 +3 -3
- package/dist/src/index.js +3 -3
- 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 +15 -83
- 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/hover.d.ts +2 -1
- package/dist/src/lsp/navigation/hover.d.ts.map +1 -1
- package/dist/src/lsp/navigation/hover.js +22 -35
- 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/workspace/document-indexer.js +1 -1
- 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 +1 -1
- package/dist/src/parser/decl-parser.js +3 -3
- 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 +1 -1
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +6 -3
- 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/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/type-checker/pii-propagation.test.js +1 -2
- package/dist/test/type-checker/pii-propagation.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/lowering/lowering.test.js +1 -1
- 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/type-inference.test.js +50 -32
- package/dist/test/unit/parser/type-inference.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-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 +2 -2
- package/dist/test/unit/typecheck/typecheck-advanced.test.js.map +1 -1
- package/package.json +1 -1
package/dist/src/browser.d.ts
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) {
|
|
@@ -102,8 +102,8 @@ export interface CompileOptions {
|
|
|
102
102
|
* @example
|
|
103
103
|
* ```typescript
|
|
104
104
|
* const result = compile(`
|
|
105
|
-
*
|
|
106
|
-
*
|
|
105
|
+
* Module pricing.
|
|
106
|
+
* Rule calculate_discount given amount as Number, produce Number:
|
|
107
107
|
* If amount > 100 then Return amount * 0.1
|
|
108
108
|
* Otherwise Return 0.
|
|
109
109
|
* `);
|
|
@@ -153,18 +153,6 @@ export interface ValidationError {
|
|
|
153
153
|
* @returns Array of validation errors with position information
|
|
154
154
|
*/
|
|
155
155
|
export declare function validateSyntaxWithSpan(source: string, lexicon?: Lexicon): ValidationError[];
|
|
156
|
-
/**
|
|
157
|
-
* Validate CNL source code syntax without full compilation
|
|
158
|
-
*
|
|
159
|
-
* This is a lightweight validation that only runs lexer and parser,
|
|
160
|
-
* useful for real-time editor validation.
|
|
161
|
-
*
|
|
162
|
-
* @param source - CNL source code
|
|
163
|
-
* @param lexicon - CNL lexicon (optional, defaults to EN_US)
|
|
164
|
-
* @returns Array of error messages (empty if valid)
|
|
165
|
-
* @deprecated Use validateSyntaxWithSpan for position information
|
|
166
|
-
*/
|
|
167
|
-
export declare function validateSyntax(source: string, lexicon?: Lexicon): string[];
|
|
168
156
|
/**
|
|
169
157
|
* Get tokens from CNL source (for syntax highlighting)
|
|
170
158
|
*
|
|
@@ -211,9 +199,9 @@ export interface SchemaOptions {
|
|
|
211
199
|
* @example
|
|
212
200
|
* ```typescript
|
|
213
201
|
* const result = extractSchema(`
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
202
|
+
* Module loan.
|
|
203
|
+
* Define LoanApplication has creditScore as Int, amount as Float, term as Int.
|
|
204
|
+
* Rule evaluate given application as LoanApplication, produce Bool:
|
|
217
205
|
* If application.creditScore >= 700 then Return true
|
|
218
206
|
* Otherwise Return false.
|
|
219
207
|
* `);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,QAAQ,EACR,SAAS,EACT,aAAa,GACd,MAAM,6BAA6B,CAAC;AAGrC,mBAAmB,YAAY,CAAC;AAIhC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC7G,YAAY,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAU1D,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"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"}
|
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) {
|
|
@@ -51,6 +51,7 @@ import { parse } from './parser.js';
|
|
|
51
51
|
import { lowerModule } from './lower_to_core.js';
|
|
52
52
|
import { typecheckBrowser as _typecheckBrowser } from './typecheck/browser.js';
|
|
53
53
|
import { createKeywordTranslator, needsKeywordTranslation } from './frontend/keyword-translator.js';
|
|
54
|
+
import { attachTypeInferenceRules } from './config/lexicons/type-inference-rules.js';
|
|
54
55
|
import { DiagnosticError } from './diagnostics/diagnostics.js';
|
|
55
56
|
/**
|
|
56
57
|
* Compile CNL source code to Core IR
|
|
@@ -66,8 +67,8 @@ import { DiagnosticError } from './diagnostics/diagnostics.js';
|
|
|
66
67
|
* @example
|
|
67
68
|
* ```typescript
|
|
68
69
|
* const result = compile(`
|
|
69
|
-
*
|
|
70
|
-
*
|
|
70
|
+
* Module pricing.
|
|
71
|
+
* Rule calculate_discount given amount as Number, produce Number:
|
|
71
72
|
* If amount > 100 then Return amount * 0.1
|
|
72
73
|
* Otherwise Return 0.
|
|
73
74
|
* `);
|
|
@@ -102,7 +103,8 @@ export function compile(source, options) {
|
|
|
102
103
|
tokens = translator.translateTokens(tokens);
|
|
103
104
|
}
|
|
104
105
|
// Step 4: Parse to AST (now with English tokens)
|
|
105
|
-
const
|
|
106
|
+
const effectiveLex = lexicon ? attachTypeInferenceRules(lexicon) : undefined;
|
|
107
|
+
const ast = parse(tokens, effectiveLex);
|
|
106
108
|
// Check for parse errors
|
|
107
109
|
if ('error' in ast || !ast) {
|
|
108
110
|
const result = {
|
|
@@ -116,7 +118,7 @@ export function compile(source, options) {
|
|
|
116
118
|
}
|
|
117
119
|
return result;
|
|
118
120
|
}
|
|
119
|
-
// Step
|
|
121
|
+
// Step 5: Lower to Core IR
|
|
120
122
|
const core = lowerModule(ast);
|
|
121
123
|
const result = {
|
|
122
124
|
success: true,
|
|
@@ -166,7 +168,8 @@ export function validateSyntaxWithSpan(source, lexicon) {
|
|
|
166
168
|
const translator = createKeywordTranslator(lexicon);
|
|
167
169
|
tokens = translator.translateTokens(tokens);
|
|
168
170
|
}
|
|
169
|
-
const
|
|
171
|
+
const effectiveLexForValidation = lexicon ? attachTypeInferenceRules(lexicon) : undefined;
|
|
172
|
+
const ast = parse(tokens, effectiveLexForValidation);
|
|
170
173
|
if ('error' in ast) {
|
|
171
174
|
return [{ message: ast.error }];
|
|
172
175
|
}
|
|
@@ -184,20 +187,6 @@ export function validateSyntaxWithSpan(source, lexicon) {
|
|
|
184
187
|
return [{ message: error instanceof Error ? error.message : String(error) }];
|
|
185
188
|
}
|
|
186
189
|
}
|
|
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
190
|
/**
|
|
202
191
|
* Get tokens from CNL source (for syntax highlighting)
|
|
203
192
|
*
|
|
@@ -278,9 +267,9 @@ function typeToString(type) {
|
|
|
278
267
|
* @example
|
|
279
268
|
* ```typescript
|
|
280
269
|
* const result = extractSchema(`
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
*
|
|
270
|
+
* Module loan.
|
|
271
|
+
* Define LoanApplication has creditScore as Int, amount as Float, term as Int.
|
|
272
|
+
* Rule evaluate given application as LoanApplication, produce Bool:
|
|
284
273
|
* If application.creditScore >= 700 then Return true
|
|
285
274
|
* Otherwise Return false.
|
|
286
275
|
* `);
|
|
@@ -303,7 +292,8 @@ export function extractSchema(source, options) {
|
|
|
303
292
|
tokens = translator.translateTokens(tokens);
|
|
304
293
|
}
|
|
305
294
|
// Parse to AST
|
|
306
|
-
const
|
|
295
|
+
const effectiveLexForSchema = lexicon ? attachTypeInferenceRules(lexicon) : undefined;
|
|
296
|
+
const ast = parse(tokens, effectiveLexForSchema);
|
|
307
297
|
if ('error' in ast || !ast) {
|
|
308
298
|
return {
|
|
309
299
|
success: false,
|
package/dist/src/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,sCAAsC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,mDAAmD;AACnD,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAO1C,uBAAuB;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,gDAAgD;AAChD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAUrC,sCAAsC;AACtC,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAG7G,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AA6C/D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,OAAO,CAAC,MAAc,EAAE,OAAwB;IAC9D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAE/B,+EAA+E;QAC/E,qFAAqF;QACrF,IAAI,SAAiB,CAAC;QACtB,IAAI,MAAM,EAAE,CAAC;YACX,sEAAsE;YACtE,MAAM,gBAAgB,GAAG,OAAO,IAAI,CAAC,yBAAyB,EAAE,EAAE,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;YAChG,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,2BAA2B;QAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAErC,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,iDAAiD;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.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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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP 用户界面文本注册表(overlay 模式)
|
|
3
|
+
*
|
|
4
|
+
* 集中管理 LSP handler 中的用户可见文本。
|
|
5
|
+
*
|
|
6
|
+
* 规则数据来源优先级:
|
|
7
|
+
* 1. 从语言包 JSON overlay 加载(通过 registerOverlayLspUiTexts)
|
|
8
|
+
* 2. 内联 fallback 常量(当 JSON overlay 尚未接入时使用)
|
|
9
|
+
*/
|
|
10
|
+
import type { Lexicon } from './types.js';
|
|
11
|
+
import type { OverlayData } from './overlay-loader.js';
|
|
12
|
+
/** LSP 用户界面文本 */
|
|
13
|
+
export interface LspUiTexts {
|
|
14
|
+
readonly effectsLabel: string;
|
|
15
|
+
readonly moduleDeclaration: string;
|
|
16
|
+
readonly moduleDeclarationDoc: string;
|
|
17
|
+
readonly typeDefinition: string;
|
|
18
|
+
readonly typeDefinitionDoc: string;
|
|
19
|
+
readonly functionDefinition: string;
|
|
20
|
+
readonly functionDefinitionDoc: string;
|
|
21
|
+
readonly functionLabel: string;
|
|
22
|
+
readonly typeLabel: string;
|
|
23
|
+
readonly enumLabel: string;
|
|
24
|
+
readonly localLabel: string;
|
|
25
|
+
readonly parameterLabel: string;
|
|
26
|
+
readonly patternBindingLabel: string;
|
|
27
|
+
readonly piiWarningHeader: string;
|
|
28
|
+
readonly piiL3Hint: string;
|
|
29
|
+
readonly piiL2Hint: string;
|
|
30
|
+
readonly piiL1Hint: string;
|
|
31
|
+
readonly piiRedactHint: string;
|
|
32
|
+
readonly hintPrefix: string;
|
|
33
|
+
readonly fixPrefix: string;
|
|
34
|
+
readonly missingModuleHeader: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 从 JSON overlay 数据注册 LSP UI 文本(覆盖内联 fallback)。
|
|
38
|
+
*/
|
|
39
|
+
export declare function registerOverlayLspUiTexts(lexiconId: string, overlay: NonNullable<OverlayData['lspUiTexts']>): void;
|
|
40
|
+
/** 获取指定 lexicon 的 UI 文本,回退到英文 */
|
|
41
|
+
export declare function getLspUiTexts(lexicon?: Lexicon): Readonly<LspUiTexts>;
|
|
42
|
+
//# sourceMappingURL=lsp-ui-texts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-ui-texts.d.ts","sourceRoot":"","sources":["../../../../src/config/lexicons/lsp-ui-texts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,iBAAiB;AACjB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAErC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAiED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAElH;AAED,iCAAiC;AACjC,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAGrE"}
|