@intlify/eslint-plugin-vue-i18n
Advanced tools
Comparing version 3.0.0-next.10 to 3.0.0-next.11
@@ -13,2 +13,3 @@ "use strict"; | ||
const no_deprecated_i18n_places_prop_1 = __importDefault(require("./rules/no-deprecated-i18n-places-prop")); | ||
const no_deprecated_modulo_syntax_1 = __importDefault(require("./rules/no-deprecated-modulo-syntax")); | ||
const no_duplicate_keys_in_locale_1 = __importDefault(require("./rules/no-duplicate-keys-in-locale")); | ||
@@ -40,2 +41,3 @@ const no_dynamic_keys_1 = __importDefault(require("./rules/no-dynamic-keys")); | ||
'no-deprecated-i18n-places-prop': no_deprecated_i18n_places_prop_1.default, | ||
'no-deprecated-modulo-syntax': no_deprecated_modulo_syntax_1.default, | ||
'no-duplicate-keys-in-locale': no_duplicate_keys_in_locale_1.default, | ||
@@ -42,0 +44,0 @@ 'no-dynamic-keys': no_dynamic_keys_1.default, |
@@ -5,5 +5,6 @@ "use strict"; | ||
}; | ||
const path_1 = require("path"); | ||
const node_path_1 = require("node:path"); | ||
const debug_1 = __importDefault(require("debug")); | ||
const rule_1 = require("../utils/rule"); | ||
const index_1 = require("../utils/index"); | ||
const debug_1 = __importDefault(require("debug")); | ||
const utils_1 = require("../utils/message-compiler/utils"); | ||
@@ -13,3 +14,2 @@ const parser_1 = require("../utils/message-compiler/parser"); | ||
const traverser_1 = require("../utils/message-compiler/traverser"); | ||
const rule_1 = require("../utils/rule"); | ||
const compat_1 = require("../utils/compat"); | ||
@@ -118,64 +118,5 @@ const debug = (0, debug_1.default)('eslint-plugin-vue-i18n:prefer-linked-key-with-paren'); | ||
} | ||
function createVisitorForJson() { | ||
function verifyExpression(node) { | ||
if (node.type !== 'JSONLiteral' || typeof node.value !== 'string') { | ||
return; | ||
} | ||
verifyMessage(node.value, node, offset => (0, utils_1.getReportIndex)(node, offset)); | ||
} | ||
return { | ||
JSONProperty(node) { | ||
verifyExpression(node.value); | ||
}, | ||
JSONArrayExpression(node) { | ||
for (const element of node.elements) { | ||
if (element) | ||
verifyExpression(element); | ||
} | ||
} | ||
}; | ||
} | ||
function createVisitorForYaml() { | ||
const yamlKeyNodes = new Set(); | ||
function withinKey(node) { | ||
for (const keyNode of yamlKeyNodes) { | ||
if (keyNode.range[0] <= node.range[0] && | ||
node.range[0] < keyNode.range[1]) { | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
function verifyContent(node) { | ||
const valueNode = node.type === 'YAMLWithMeta' ? node.value : node; | ||
if (!valueNode || | ||
valueNode.type !== 'YAMLScalar' || | ||
typeof valueNode.value !== 'string') { | ||
return; | ||
} | ||
verifyMessage(valueNode.value, valueNode, offset => (0, utils_1.getReportIndex)(valueNode, offset)); | ||
} | ||
return { | ||
YAMLPair(node) { | ||
if (withinKey(node)) { | ||
return; | ||
} | ||
if (node.key != null) { | ||
yamlKeyNodes.add(node.key); | ||
} | ||
if (node.value) | ||
verifyContent(node.value); | ||
}, | ||
YAMLSequence(node) { | ||
if (withinKey(node)) { | ||
return; | ||
} | ||
for (const entry of node.entries) { | ||
if (entry) | ||
verifyContent(entry); | ||
} | ||
} | ||
}; | ||
} | ||
if ((0, path_1.extname)(filename) === '.vue') { | ||
const createVisitorForJson = (0, rule_1.defineCreateVisitorForJson)(verifyMessage); | ||
const createVisitorForYaml = (0, rule_1.defineCreateVisitorForYaml)(verifyMessage); | ||
if ((0, node_path_1.extname)(filename) === '.vue') { | ||
return (0, index_1.defineCustomBlocksVisitor)(context, createVisitorForJson, createVisitorForYaml); | ||
@@ -192,6 +133,6 @@ } | ||
if (sourceCode.parserServices.isJSON) { | ||
return createVisitorForJson(); | ||
return createVisitorForJson(context); | ||
} | ||
else if (sourceCode.parserServices.isYAML) { | ||
return createVisitorForYaml(); | ||
return createVisitorForYaml(context); | ||
} | ||
@@ -198,0 +139,0 @@ return {}; |
@@ -138,2 +138,5 @@ "use strict"; | ||
const namedNode = Object.assign({ type: utils_1.NodeTypes.Named, key: trimmedKeyValue }, ctx.getNodeLoc(endOffset - 1, placeholderEndOffset)); | ||
if (key === '%{') { | ||
namedNode.modulo = true; | ||
} | ||
if (!/^[a-zA-Z][a-zA-Z0-9_$]*$/.test(namedNode.key)) { | ||
@@ -140,0 +143,0 @@ errors.push(ctx.createCompileError('Unexpected placeholder key', endOffset)); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.createRule = void 0; | ||
exports.defineCreateVisitorForYaml = exports.defineCreateVisitorForJson = exports.createRule = void 0; | ||
const utils_1 = require("../utils/message-compiler/utils"); | ||
function createRule(module) { | ||
@@ -8,1 +9,68 @@ return module; | ||
exports.createRule = createRule; | ||
function defineCreateVisitorForJson(verifyMessage) { | ||
return function () { | ||
function verifyExpression(node) { | ||
if (node.type !== 'JSONLiteral' || typeof node.value !== 'string') { | ||
return; | ||
} | ||
verifyMessage(node.value, node, offset => (0, utils_1.getReportIndex)(node, offset)); | ||
} | ||
return { | ||
JSONProperty(node) { | ||
verifyExpression(node.value); | ||
}, | ||
JSONArrayExpression(node) { | ||
for (const element of node.elements) { | ||
if (element) | ||
verifyExpression(element); | ||
} | ||
} | ||
}; | ||
}; | ||
} | ||
exports.defineCreateVisitorForJson = defineCreateVisitorForJson; | ||
function defineCreateVisitorForYaml(verifyMessage) { | ||
return function () { | ||
const yamlKeyNodes = new Set(); | ||
function withinKey(node) { | ||
for (const keyNode of yamlKeyNodes) { | ||
if (keyNode.range[0] <= node.range[0] && | ||
node.range[0] < keyNode.range[1]) { | ||
return true; | ||
} | ||
} | ||
return false; | ||
} | ||
function verifyContent(node) { | ||
const valueNode = node.type === 'YAMLWithMeta' ? node.value : node; | ||
if (!valueNode || | ||
valueNode.type !== 'YAMLScalar' || | ||
typeof valueNode.value !== 'string') { | ||
return; | ||
} | ||
verifyMessage(valueNode.value, valueNode, offset => (0, utils_1.getReportIndex)(valueNode, offset)); | ||
} | ||
return { | ||
YAMLPair(node) { | ||
if (withinKey(node)) { | ||
return; | ||
} | ||
if (node.key != null) { | ||
yamlKeyNodes.add(node.key); | ||
} | ||
if (node.value) | ||
verifyContent(node.value); | ||
}, | ||
YAMLSequence(node) { | ||
if (withinKey(node)) { | ||
return; | ||
} | ||
for (const entry of node.entries) { | ||
if (entry) | ||
verifyContent(entry); | ||
} | ||
} | ||
}; | ||
}; | ||
} | ||
exports.defineCreateVisitorForYaml = defineCreateVisitorForYaml; |
{ | ||
"name": "@intlify/eslint-plugin-vue-i18n", | ||
"description": "ESLint plugin for Vue I18n", | ||
"version": "3.0.0-next.10", | ||
"version": "3.0.0-next.11", | ||
"license": "MIT", | ||
@@ -32,3 +32,3 @@ "homepage": "https://github.com/intlify/eslint-plugin-vue-i18n#readme", | ||
}, | ||
"packageManager": "pnpm@8.15.6", | ||
"packageManager": "pnpm@8.15.7", | ||
"type": "commonjs", | ||
@@ -41,4 +41,4 @@ "files": [ | ||
"@eslint/eslintrc": "^3.0.0", | ||
"@intlify/core-base": "beta", | ||
"@intlify/message-compiler": "beta", | ||
"@intlify/core-base": "^9.12.0", | ||
"@intlify/message-compiler": "^9.12.0", | ||
"debug": "^4.3.4", | ||
@@ -137,3 +137,3 @@ "eslint-compat-utils": "^0.5.0", | ||
"release": "changeset publish", | ||
"test": "mocha --require jiti/register \"./tests/lib/**/*.ts\"", | ||
"test": "mocha --require jiti/register \"./tests/lib/**/*.ts\" --timeout 5000", | ||
"test:debug": "mocha --require jiti/register \"./tests/lib/**/*.ts\"", | ||
@@ -140,0 +140,0 @@ "test:coverage": "nyc mocha --require jiti/register \"./tests/lib/**/*.ts\" --timeout 60000", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
224036
62
5742
0
+ Added@intlify/core-base@9.14.2(transitive)
+ Added@intlify/message-compiler@9.14.2(transitive)
+ Added@intlify/shared@9.14.2(transitive)
- Removed@intlify/core-base@9.3.0-beta.27(transitive)
- Removed@intlify/devtools-if@9.3.0-beta.27(transitive)
- Removed@intlify/message-compiler@9.3.0-beta.27(transitive)
- Removed@intlify/shared@9.3.0-beta.27(transitive)
- Removed@intlify/vue-devtools@9.3.0-beta.27(transitive)
Updated@intlify/core-base@^9.12.0