Socket
Socket
Sign inDemoInstall

svelte-i18n

Package Overview
Dependencies
Maintainers
1
Versions
79
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

svelte-i18n - npm Package Compare versions

Comparing version 2.2.1 to 2.2.2

dist/i18n.cjs.js

10

CHANGELOG.md

@@ -0,1 +1,11 @@

## [2.2.2](https://github.com/kaisermann/svelte-i18n/compare/v2.2.0...v2.2.2) (2020-01-14)
### Bug Fixes
* 🐛 lookup message not caching correctly ([bb8c68f](https://github.com/kaisermann/svelte-i18n/commit/bb8c68f2eb7bbe658a40dc528b471ffadd5f92df))
* 🐛 mjs causing an elusive bug in webpack module resolution ([b2dc782](https://github.com/kaisermann/svelte-i18n/commit/b2dc7828c55b23be05adb0791816cc7bc9910af2)), closes [#36](https://github.com/kaisermann/svelte-i18n/issues/36)
## [2.2.1](https://github.com/kaisermann/svelte-i18n/compare/v2.2.0...v2.2.1) (2020-01-08)

@@ -2,0 +12,0 @@

4

dist/cli.js
#!/usr/bin/env node
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}function _interopNamespace(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t.default=e,t}var fs=_interopDefault(require("fs")),path=require("path"),program=_interopDefault(require("commander")),glob=_interopDefault(require("tiny-glob")),compiler=require("svelte/compiler"),delve=_interopDefault(require("dlv")),estreeWalker=require("estree-walker");
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=e(require("fs")),r=require("path"),n=e(require("commander")),i=e(require("tiny-glob")),o=require("svelte/compiler"),a=e(require("dlv")),l=require("estree-walker");
/*! *****************************************************************************

@@ -17,2 +17,2 @@ Copyright (c) Microsoft Corporation. All rights reserved.

***************************************************************************** */
function __values(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}function __asyncValues(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,i){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,i,(t=e[r](t)).done,t.value)}))}}}const isNumberString=e=>!Number.isNaN(parseInt(e));function deepSet(e,t,r){const n=t.replace(/\[(\w+)\]/gi,".$1").split(".");return n.reduce((e,t,i)=>{return t in e?e[t]:i<n.length-1?(a=n[i+1],Number.isNaN(parseInt(a))?e[t]={}:e[t]=[]):e[t]=r;var a},e)}function getObjFromExpression(e){return e.properties.reduce((e,t)=>{if("Literal"===t.value.type&&t.value.value!==Object(t.value.value)){const r=t.key.name;e.meta[r]=t.value.value}return e},{node:e,meta:{}})}const LIB_NAME="svelte-i18n",DEFINE_MESSAGES_METHOD_NAME="defineMessages",FORMAT_METHOD_NAMES=new Set(["format","_","t"]),IGNORED_UTILITIES=new Set(["number","date","time"]);function isFormatCall(e,t){if("CallExpression"!==e.type)return!1;let r;if("MemberExpression"!==e.callee.type||"Identifier"!==e.callee.property.type||IGNORED_UTILITIES.has(e.callee.property.name)?"Identifier"===e.callee.type&&(r=e.callee):r=e.callee.object,!r||"Identifier"!==r.type)return!1;const n=r.name.slice(1);return t.has(n)}function isMessagesDefinitionCall(e,t){return"CallExpression"===e.type&&(e.callee&&"Identifier"===e.callee.type&&e.callee.name===t)}function getLibImportDeclarations(e){return e.instance?e.instance.content.body.filter(e=>"ImportDeclaration"===e.type&&e.source.value===LIB_NAME):[]}function getDefineMessagesSpecifier(e){return e.specifiers.find(e=>"imported"in e&&"defineMessages"===e.imported.name)}function getFormatSpecifiers(e){return e.specifiers.filter(e=>"imported"in e&&FORMAT_METHOD_NAMES.has(e.imported.name))}function collectFormatCalls(e){const t=getLibImportDeclarations(e);if(0===t.length)return[];const r=new Set(t.flatMap(e=>getFormatSpecifiers(e).map(e=>e.local.name)));if(0===r.size)return[];const n=[];function i(e){isFormatCall(e,r)&&(n.push(e),this.skip())}return estreeWalker.walk(e.instance,{enter:i}),estreeWalker.walk(e.html,{enter:i}),n}function collectMessageDefinitions(e){const t=[],r=getLibImportDeclarations(e).find(getDefineMessagesSpecifier);if(null==r)return[];const n=getDefineMessagesSpecifier(r).local.name;return estreeWalker.walk(e.instance,{enter(e){if(!1===isMessagesDefinitionCall(e,n))return;const[r]=e.arguments;"ObjectExpression"===r.type&&(t.push(r),this.skip())}}),t.flatMap(e=>e.properties.map(e=>e.value))}function collectMessages(e){const t=compiler.parse(e),r=collectFormatCalls(t);return[...collectMessageDefinitions(t).map(e=>getObjFromExpression(e)),...r.map(e=>{const[t,r]=e.arguments;if("ObjectExpression"===t.type)return getObjFromExpression(t);const n=t,i=n.value;if(r&&"ObjectExpression"===r.type){const e=getObjFromExpression(r);return e.meta.id=i,e}return{node:n,meta:{id:i}}})].filter(Boolean)}function extractMessages(e,{accumulator:t={},shallow:r=!1,overwrite:n=!1}={}){return collectMessages(e).forEach(e=>{let i=e.meta.default;if(void 0===i&&(i=""),r){if(!1===n&&e.meta.id in t)return;t[e.meta.id]=i}else{if(!1===n&&void 0!==delve(t,e.meta.id))return;deepSet(t,e.meta.id,i)}}),t}const{readFile:readFile,writeFile:writeFile,mkdir:mkdir,access:access}=fs.promises,fileExists=e=>access(e).then(()=>!0).catch(()=>!1);program.command("extract <glob> [output]").description("extract all message definitions from files to a json").option("-s, --shallow","extract to a shallow dictionary (ids with dots interpreted as strings, not paths)",!1).option("--overwrite","overwrite the content of the output file instead of just appending new properties",!1).option("-c, --config <dir>",'path to the "svelte.config.js" file',process.cwd()).action(async(e,t,{shallow:r,overwrite:n,config:i})=>{var a,o;const s=(await glob(e)).filter(e=>e.match(/\.html|svelte$/i)),l=await new Promise((function(e){e(_interopNamespace(require(path.resolve(i,"svelte.config.js"))))})).catch(()=>null);let c={};null!=t&&!1===n&&await fileExists(t)&&(c=await readFile(t).then(e=>JSON.parse(e.toString())).catch(e=>{console.warn(e),c={}}));try{for(var u,p=__asyncValues(s);!(u=await p.next()).done;){const e=u.value;let t=(await readFile(e)).toString();if(l&&l.preprocess){t=(await compiler.preprocess(t,l.preprocess,{filename:e})).code}extractMessages(t,{accumulator:c,shallow:r})}}catch(e){a={error:e}}finally{try{u&&!u.done&&(o=p.return)&&await o.call(p)}finally{if(a)throw a.error}}const f=JSON.stringify(c,null," ");if(null==t)return console.log(f);await mkdir(path.dirname(t),{recursive:!0}),await writeFile(t,f)}),program.parse(process.argv);
function c(e){var t="function"==typeof Symbol&&e[Symbol.iterator],r=0;return t?t.call(e):{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}function s(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=c(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,i){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,i,(t=e[r](t)).done,t.value)}))}}}function u(e,t,r){const n=t.replace(/\[(\w+)\]/gi,".$1").split(".");return n.reduce((e,t,i)=>{return t in e?e[t]:i<n.length-1?(o=n[i+1],Number.isNaN(parseInt(o))?e[t]={}:e[t]=[]):e[t]=r;var o},e)}function f(e){return e.properties.reduce((e,t)=>{if("Literal"===t.value.type&&t.value.value!==Object(t.value.value)){const r=t.key.name;e.meta[r]=t.value.value}return e},{node:e,meta:{}})}const p=new Set(["format","_","t"]),m=new Set(["number","date","time"]);function d(e){return e.instance?e.instance.content.body.filter(e=>"ImportDeclaration"===e.type&&"svelte-i18n"===e.source.value):[]}function y(e){return e.specifiers.find(e=>"imported"in e&&"defineMessages"===e.imported.name)}function v(e){const t=d(e);if(0===t.length)return[];const r=new Set(t.flatMap(e=>function(e){return e.specifiers.filter(e=>"imported"in e&&p.has(e.imported.name))}(e).map(e=>e.local.name)));if(0===r.size)return[];const n=[];function i(e){(function(e,t){if("CallExpression"!==e.type)return!1;let r;if("MemberExpression"!==e.callee.type||"Identifier"!==e.callee.property.type||m.has(e.callee.property.name)?"Identifier"===e.callee.type&&(r=e.callee):r=e.callee.object,!r||"Identifier"!==r.type)return!1;const n=r.name.slice(1);return t.has(n)})(e,r)&&(n.push(e),this.skip())}return l.walk(e.instance,{enter:i}),l.walk(e.html,{enter:i}),n}function w(e){const t=o.parse(e),r=v(t);return[...function(e){const t=[],r=d(e).find(y);if(null==r)return[];const n=y(r).local.name;return l.walk(e.instance,{enter(e){if(!1===function(e,t){return"CallExpression"===e.type&&(e.callee&&"Identifier"===e.callee.type&&e.callee.name===t)}(e,n))return;const[r]=e.arguments;"ObjectExpression"===r.type&&(t.push(r),this.skip())}}),t.flatMap(e=>e.properties.map(e=>e.value))}(t).map(e=>f(e)),...r.map(e=>{const[t,r]=e.arguments;if("ObjectExpression"===t.type)return f(t);const n=t,i=n.value;if(r&&"ObjectExpression"===r.type){const e=f(r);return e.meta.id=i,e}return{node:n,meta:{id:i}}})].filter(Boolean)}function h(e,{accumulator:t={},shallow:r=!1,overwrite:n=!1}={}){return w(e).forEach(e=>{let i=e.meta.default;if(void 0===i&&(i=""),r){if(!1===n&&e.meta.id in t)return;t[e.meta.id]=i}else{if(!1===n&&void 0!==a(t,e.meta.id))return;u(t,e.meta.id,i)}}),t}const{readFile:g,writeFile:b,mkdir:j,access:S}=t.promises;n.command("extract <glob> [output]").description("extract all message definitions from files to a json").option("-s, --shallow","extract to a shallow dictionary (ids with dots interpreted as strings, not paths)",!1).option("--overwrite","overwrite the content of the output file instead of just appending new properties",!1).option("-c, --config <dir>",'path to the "svelte.config.js" file',process.cwd()).action(async(e,t,{shallow:n,overwrite:a,config:l})=>{var c,u;const f=(await i(e)).filter(e=>e.match(/\.html|svelte$/i)),p=await new Promise((function(e){e(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach((function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})})),t.default=e,t}(require(r.resolve(l,"svelte.config.js"))))})).catch(()=>null);let m={};null!=t&&!1===a&&await(e=>S(e).then(()=>!0).catch(()=>!1))(t)&&(m=await g(t).then(e=>JSON.parse(e.toString())).catch(e=>{console.warn(e),m={}}));try{for(var d,y=s(f);!(d=await y.next()).done;){const e=d.value;let t=(await g(e)).toString();if(p&&p.preprocess){t=(await o.preprocess(t,p.preprocess,{filename:e})).code}h(t,{accumulator:m,shallow:n})}}catch(e){c={error:e}}finally{try{d&&!d.done&&(u=y.return)&&await u.call(y)}finally{if(c)throw c.error}}const v=JSON.stringify(m,null," ");if(null==t)return console.log(v);await j(r.dirname(t),{recursive:!0}),await b(t,v)}),n.parse(process.argv);
{
"name": "svelte-i18n",
"version": "2.2.1",
"main": "dist/i18n.js",
"module": "dist/i18n.mjs",
"version": "2.2.2",
"main": "dist/i18n.cjs.js",
"module": "dist/i18n.esm.js",
"bin": {

@@ -7,0 +7,0 @@ "svelte-i18n": "dist/cli.js"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc