Projects
Mega:23.09
nodejs-sprintf-js
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 3
View file
_service:tar_scm:nodejs-sprintf-js.spec
Changed
@@ -2,12 +2,12 @@ %global packagename sprintf-js %global enable_tests 1 Name: nodejs-sprintf-js -Version: 1.1.0 -Release: 2 +Version: 1.1.2 +Release: 1 Summary: JavaScript sprintf implementation License: BSD-3-Clause URL: https://github.com/alexei/sprintf.js.git -Source0: https://registry.npmjs.org/sprintf-js/-/sprintf-js-%{version}.tgz +Source0: https://github.com/alexei/sprintf.js/archive/%{version}.tar.gz ExclusiveArch: %{nodejs_arches} noarch BuildArch: noarch BuildRequires: nodejs-packaging @@ -19,7 +19,7 @@ JavaScript sprintf implementation %prep -%setup -q -n package +%setup -q -n sprintf.js-%{version} rm -rf dist/ %build @@ -45,6 +45,9 @@ %{nodejs_sitelib}/%{packagename} %changelog +* Thu Nov 02 2023 wulei <wu_lei@hoperun.com> - 1.1.2-1 +- Update to 1.1.2 + * Tue May 10 2022 liyanan <liyanan32@h-partners.com> - 1.1.0-2 - License compliance rectification
View file
_service
Changed
@@ -2,7 +2,7 @@ <service name="tar_scm"> <param name="url">git@gitee.com:src-openeuler/nodejs-sprintf-js.git</param> <param name="scm">git</param> - <param name="revision">openEuler-23.09</param> + <param name="revision">master</param> <param name="exclude">*</param> <param name="extract">*</param> </service>
View file
_service:tar_scm:1.1.2.tar.gz/.
Added
+(directory)
View file
_service:tar_scm:1.1.2.tar.gz/.eslintignore
Added
@@ -0,0 +1,2 @@ +dist/* +node_modules/*
View file
_service:tar_scm:1.1.2.tar.gz/.eslintrc.js
Added
@@ -0,0 +1,17 @@ +module.exports = { + extends: 'eslint:recommended', + env: { + node: true, + es6: true + }, + rules: { + indent: 'error', 4, {SwitchCase: 1}, + 'quote-props': 'error', 'as-needed', + 'no-cond-assign': 0, + 'no-console': 0, + 'no-control-regex': 0, + 'no-undef': 'error', + 'no-unused-vars': 'error', + semi: 'error', 'never' + } +}
View file
_service:tar_scm:1.1.2.tar.gz/.gitignore
Added
@@ -0,0 +1,1 @@ +/node_modules/ \ No newline at end of file
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/.npmignore -> _service:tar_scm:1.1.2.tar.gz/.npmignore
Changed
@@ -1,1 +1,15 @@ -/node_modules/ \ No newline at end of file +.editorconfig +.eslintignore +.eslintrc.js +/.git/ +.gitignore +.npmignore +.travis.yml +CHANGELOG.md +CONTRIBUTORS +/benchmark/ +bower.json +/demo/ +gulpfile.js +/node_modules/ +/test/
View file
_service:tar_scm:1.1.2.tar.gz/.travis.yml
Added
@@ -0,0 +1,11 @@ +language: node_js + +node_js: + - "node" + - "10" + - "8" + - "6" + +script: + - npm run lint + - npm test
View file
_service:tar_scm:1.1.2.tar.gz/CHANGELOG.md
Added
@@ -0,0 +1,17 @@ +## 1.1.2 (NOT YET RELEASED) + +* Update Travis config to test on all LTE Node versions (i.e. 6+) +* Reorganize README; add instructions re polyfills +* Refactor the code +* Upgrade dependencies +* Fix minifying issue with missing semicolons +* Configure .npmignore to reduce package size + + +## 1.1.1 (2017-05-29) + +* This CHANGELOG +* Various optimizations for modern browsers +* Fix %g, %o, %x and %X specifiers +* Use ESLint instead of JSHint +* Add CONTRIBUTORS file
View file
_service:tar_scm:1.1.2.tar.gz/CONTRIBUTORS.md
Added
@@ -0,0 +1,25 @@ +Alexander Rose @arose(https://github.com/arose) +Alexandru Mărășteanu @alexei(https://github.com/alexei) +Andras @andrasq(https://github.com/andrasq) +Benoit Giannangeli @giann(https://github.com/giann) +Branden Visser @mrvisser(https://github.com/mrvisser) +David Baird +daurnimator @daurnimator(https://github.com/daurnimator) +Doug Beck @beck(https://github.com/beck) +Dzmitry Litskalau @litmit(https://github.com/litmit) +Fred Ludlow @fredludlow(https://github.com/fredludlow) +Hans Pufal +Henry @alograg(https://github.com/alograg) +Johnny Shields @johnnyshields(https://github.com/johnnyshields) +Kamal Abdali +Matt Simerson @msimerson(https://github.com/msimerson) +Maxime Robert @marob(https://github.com/marob) +MeriemKhelifi @MeriemKhelifi(https://github.com/MeriemKhelifi) +Michael Schramm @wodka(https://github.com/wodka) +Nazar Mokrynskyi @nazar-pc(https://github.com/nazar-pc) +Oliver Salzburg @oliversalzburg(https://github.com/oliversalzburg) +Pablo @ppollono(https://github.com/ppollono) +Rabehaja Stevens @RABEHAJA-STEVENS(https://github.com/RABEHAJA-STEVENS) +Raphael Pigulla @pigulla(https://github.com/pigulla) +rebeccapeltz @rebeccapeltz(https://github.com/rebeccapeltz) +Stefan Tingström @stingstrom(https://github.com/stingstrom)
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/LICENSE -> _service:tar_scm:1.1.2.tar.gz/LICENSE
Changed
@@ -1,4 +1,4 @@ -Copyright (c) 2007-2016, Alexandru Marasteanu <hello at) alexei (dot ro> +Copyright (c) 2007-present, Alexandru Mărășteanu <hello@alexei.ro> All rights reserved. Redistribution and use in source and binary forms, with or without
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/README.md -> _service:tar_scm:1.1.2.tar.gz/README.md
Changed
@@ -1,4 +1,9 @@ -# sprintf.js !NPM Versionnpm-imagenpm-url !Dependency Statusdependencies-imagedependencies-url !devDependency Statusdev-dependencies-imagedev-dependencies-url +# sprintf-js + +!Build Statustravisci-imagetravisci-url !NPM Versionnpm-imagenpm-url !Dependency Statusdependencies-imagedependencies-url !devDependency Statusdev-dependencies-imagedev-dependencies-url + +travisci-image: https://travis-ci.org/alexei/sprintf.js.svg?branch=master +travisci-url: https://travis-ci.org/alexei/sprintf.js npm-image: https://badge.fury.io/js/sprintf-js.svg npm-url: https://badge.fury.io/js/sprintf-js @@ -9,18 +14,50 @@ dev-dependencies-image: https://david-dm.org/alexei/sprintf.js/dev-status.svg dev-dependencies-url: https://david-dm.org/alexei/sprintf.js#info=devDependencies -**sprintf.js** is a complete open source JavaScript sprintf implementation for the *browser* and *node.js*. +**sprintf-js** is a complete open source JavaScript `sprintf` implementation for the **browser** and **Node.js**. + +**Note: as of v1.1.1 you might need some polyfills for older environments. See Support(#support) section below.** + +## Usage + + var sprintf = require('sprintf-js').sprintf, + vsprintf = require('sprintf-js').vsprintf + + sprintf('%2$s %3$s a %1$s', 'cracker', 'Polly', 'wants') + vsprintf('The first 4 letters of the english alphabet are: %s, %s, %s and %s', 'a', 'b', 'c', 'd') + +## Installation + +### NPM + + npm install sprintf-js + +### Bower + + bower install sprintf + +## API -Its prototype is simple: +### `sprintf` - string sprintf(string format , mixed arg1 , mixed arg2 ,...) +Returns a formatted string: + + string sprintf(string format, mixed arg1?, mixed arg2?, ...) + +### `vsprintf` + +Same as `sprintf` except it takes an array of arguments, rather than a variable number of arguments: + + string vsprintf(string format, array arguments?) + +## Format specification The placeholders in the format string are marked by `%` and are followed by one or more of these elements, in this order: * An optional number followed by a `$` sign that selects which argument index to use for the value. If not specified, arguments will be placed in the same order as the placeholders in the input string. * An optional `+` sign that forces to preceed the result with a plus or minus sign on numeric values. By default, only the `-` sign is used on negative numbers. * An optional padding specifier that says what character to use for padding (if specified). Possible values are `0` or any other character precedeed by a `'` (single quote). The default is to pad with *spaces*. -* An optional `-` sign, that causes sprintf to left-align the result of this placeholder. The default is to right-align the result. +* An optional `-` sign, that causes `sprintf` to left-align the result of this placeholder. The default is to right-align the result. * An optional number, that says how many characters the result should have. If the value to be returned is shorter than this number, the result will be padded. When used with the `j` (JSON) type specifier, the padding length specifies the tab size used for indentation. * An optional precision modifier, consisting of a `.` (dot) followed by a number, that says how many digits should be displayed for floating point numbers. When used with the `g` type specifier, it specifies the number of significant digits. When used on a string, it causes the result to be truncated. * A type specifier that can be any of: @@ -41,66 +78,66 @@ * `X` — yields an integer as a hexadecimal number (upper-case) * `j` — yields a JavaScript object or array as a JSON encoded string +## Features -## JavaScript `vsprintf` -`vsprintf` is the same as `sprintf` except that it accepts an array of arguments, rather than a variable number of arguments: - - vsprintf("The first 4 letters of the english alphabet are: %s, %s, %s and %s", "a", "b", "c", "d") +### Argument swapping -## Argument swapping You can also swap the arguments. That is, the order of the placeholders doesn't have to match the order of the arguments. You can do that by simply indicating in the format string which arguments the placeholders refer to: - sprintf("%2$s %3$s a %1$s", "cracker", "Polly", "wants") + sprintf('%2$s %3$s a %1$s', 'cracker', 'Polly', 'wants') + And, of course, you can repeat the placeholders without having to increase the number of arguments. -## Named arguments +### Named arguments + Format strings may contain replacement fields rather than positional placeholders. Instead of referring to a certain argument, you can now refer to a certain key within an object. Replacement fields are surrounded by rounded parentheses - `(` and `)` - and begin with a keyword that refers to a key: var user = { - name: "Dolly" + name: 'Dolly', } - sprintf("Hello %(name)s", user) // Hello Dolly + sprintf('Hello %(name)s', user) // Hello Dolly + Keywords in replacement fields can be optionally followed by any number of keywords or indexes: var users = - {name: "Dolly"}, - {name: "Molly"}, - {name: "Polly"} + {name: 'Dolly'}, + {name: 'Molly'}, + {name: 'Polly'}, - sprintf("Hello %(users0.name)s, %(users1.name)s and %(users2.name)s", {users: users}) // Hello Dolly, Molly and Polly + sprintf('Hello %(users0.name)s, %(users1.name)s and %(users2.name)s', {users: users}) // Hello Dolly, Molly and Polly + Note: mixing positional and named placeholders is not (yet) supported -## Computed values -You can pass in a function as a dynamic value and it will be invoked (with no arguments) in order to compute the value on-the-fly. +### Computed values - sprintf("Current timestamp: %d", Date.now) // Current timestamp: 1398005382890 - sprintf("Current date and time: %s", function() { return new Date().toString() }) +You can pass in a function as a dynamic value and it will be invoked (with no arguments) in order to compute the value on the fly. -# AngularJS -You can now use `sprintf` and `vsprintf` (also aliased as `fmt` and `vfmt` respectively) in your AngularJS projects. See `demo/`. + sprintf('Current date and time: %s', function() { return new Date().toString() }) -# Installation +### AngularJS -## Via Bower +You can use `sprintf` and `vsprintf` (also aliased as `fmt` and `vfmt` respectively) in your AngularJS projects. See `demo/`. - bower install sprintf +## Support -## Or as a node.js module +### Node.js - npm install sprintf-js +`sprintf-js` runs in all active Node versions (4.x+). + +### Browser -### Usage +`sprintf-js` should work in all modern browsers. As of v1.1.1, you might need polyfills for the following: - var sprintf = require("sprintf-js").sprintf, - vsprintf = require("sprintf-js").vsprintf + - `String.prototype.repeat()` (any IE) + - `Array.isArray()` (IE < 9) + - `Object.create()` (IE < 9) - sprintf("%2$s %3$s a %1$s", "cracker", "Polly", "wants") - vsprintf("The first 4 letters of the english alphabet are: %s, %s, %s and %s", "a", "b", "c", "d") +YMMV -# License +## License -**sprintf.js** is licensed under the terms of the 3-clause BSD license. +**sprintf-js** is licensed under the terms of the 3-clause BSD license. -# Notes +## Notes <small><sup><a href="#fn-ref-1" name="fn-1">1</a></sup> `sprintf` doesn't use the `typeof` operator. As such, the value `null` is a `null`, an array is an `array` (not an `object`), a date value is a `date` etc.</small>
View file
_service:tar_scm:1.1.2.tar.gz/benchmark
Added
+(directory)
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/benchmark/benchmark.js -> _service:tar_scm:1.1.2.tar.gz/benchmark/benchmark.js
Changed
@@ -1,8 +1,7 @@ var Benchmark = require('benchmark'), suite = new Benchmark.Suite, - sprintfjs = require("../src/sprintf.js"), - sprintf = sprintfjs.sprintf, - vsprintf = sprintfjs.vsprintf + sprintfjs = require('../src/sprintf.js'), + sprintf = sprintfjs.sprintf suite .add('%8d', function() {
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/bower.json -> _service:tar_scm:1.1.2.tar.gz/bower.json
Changed
@@ -1,7 +1,7 @@ { "name": "sprintf", "description": "JavaScript sprintf implementation", - "version": "1.0.3", + "version": "1.1.2", "main": "dist/sprintf.min.js", "dist/angular-sprintf.min.js"
View file
_service:tar_scm:1.1.2.tar.gz/demo
Added
+(directory)
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/demo/angular.html -> _service:tar_scm:1.1.2.tar.gz/demo/angular.html
Changed
@@ -14,7 +14,7 @@ <pre>{{ "I've got %(apples)d apples and %(oranges)d oranges."|fmt:{apples: 2, oranges: 4} }}</pre> <script> - angular.module("app", "sprintf") + angular.module('app', 'sprintf') </script> </body> </html>
View file
_service:tar_scm:1.1.2.tar.gz/dist
Added
+(directory)
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/dist/angular-sprintf.min.js -> _service:tar_scm:1.1.2.tar.gz/dist/angular-sprintf.min.js
Changed
@@ -1,3 +1,3 @@ -/*! sprintf-js v1.1.0 | Copyright (c) 2007-present, Alexandru Marasteanu <hello@alexei.ro> | BSD-3-Clause */ +/*! sprintf-js v1.1.2 | Copyright (c) 2007-present, Alexandru Mărășteanu <hello@alexei.ro> | BSD-3-Clause */ !function(){"use strict";angular.module("sprintf",).filter("sprintf",function(){return function(){return sprintf.apply(null,arguments)}}).filter("fmt","$filter",function(t){return t("sprintf")}).filter("vsprintf",function(){return function(t,n){return vsprintf(t,n)}}).filter("vfmt","$filter",function(t){return t("vsprintf")})}(); //# sourceMappingURL=angular-sprintf.min.js.map
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/dist/angular-sprintf.min.js.map -> _service:tar_scm:1.1.2.tar.gz/dist/angular-sprintf.min.js.map
Changed
@@ -1,1 +1,1 @@ -{"version":3,"sources":"angular-sprintf.js","names":"angular","module","filter","sprintf","apply","arguments","$filter","format","argv","vsprintf","mappings":";CAEA,WACI,YAEAA,SACIC,OAAO,cACPC,OAAO,UAAW,WACd,MAAO,YACH,MAAOC,SAAQC,MAAM,KAAMC,cAGnCH,OAAO,OAAQ,UAAW,SAASI,GAC/B,MAAOA,GAAQ,cAEnBJ,OAAO,WAAY,WACf,MAAO,UAASK,EAAQC,GACpB,MAAOC,UAASF,EAAQC,MAGhCN,OAAO,QAAS,UAAW,SAASI,GAChC,MAAOA,GAAQ","file":"angular-sprintf.min.js","sourcesContent":"/* globals angular, sprintf, vsprintf */\n\n(function () {\n 'use strict'\n\n angular.\n module('sprintf', ).\n filter('sprintf', function() {\n return function() {\n return sprintf.apply(null, arguments)\n }\n }).\n filter('fmt', '$filter', function($filter) {\n return $filter('sprintf')\n }).\n filter('vsprintf', function() {\n return function(format, argv) {\n return vsprintf(format, argv)\n }\n }).\n filter('vfmt', '$filter', function($filter) {\n return $filter('vsprintf')\n })\n})();\n"} \ No newline at end of file +{"version":3,"sources":"angular-sprintf.js","names":"angular","module","filter","sprintf","apply","arguments","$filter","format","argv","vsprintf","mappings":";CAEC,WACG,aAEAA,QACIC,OAAO,UAAW,IAClBC,OAAO,UAAW,WACd,OAAO,WACH,OAAOC,QAAQC,MAAM,KAAMC,cAGnCH,OAAO,MAAO,CAAC,UAAW,SAASI,GAC/B,OAAOA,EAAQ,cAEnBJ,OAAO,WAAY,WACf,OAAO,SAASK,EAAQC,GACpB,OAAOC,SAASF,EAAQC,MAGhCN,OAAO,OAAQ,CAAC,UAAW,SAASI,GAChC,OAAOA,EAAQ,eAnB1B","file":"angular-sprintf.min.js","sourcesContent":"/* global angular, sprintf, vsprintf */\n\n!function() {\n 'use strict'\n\n angular.\n module('sprintf', ).\n filter('sprintf', function() {\n return function() {\n return sprintf.apply(null, arguments)\n }\n }).\n filter('fmt', '$filter', function($filter) {\n return $filter('sprintf')\n }).\n filter('vsprintf', function() {\n return function(format, argv) {\n return vsprintf(format, argv)\n }\n }).\n filter('vfmt', '$filter', function($filter) {\n return $filter('vsprintf')\n })\n}(); // eslint-disable-line\n"} \ No newline at end of file
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/dist/sprintf.min.js -> _service:tar_scm:1.1.2.tar.gz/dist/sprintf.min.js
Changed
@@ -1,3 +1,3 @@ -/*! sprintf-js v1.1.0 | Copyright (c) 2007-present, Alexandru Marasteanu <hello@alexei.ro> | BSD-3-Clause */ -!function(e){"use strict";function t(){var e=arguments0,r=t.cache;return re||(re=t.parse(e)),t.format.call(null,re,arguments)}function r(e){return"number"==typeof e?"number":"string"==typeof e?"string":Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function n(e,t){return t>=0&&t<=7&&ie?iet:Array(t+1).join(e)}var s={not_string:/^s/,not_bool:/^t/,not_type:/^T/,not_primitive:/^v/,number:/diefg/,numeric_arg:/bcdiefguxX/,json:/j/,not_json:/^j/,text:/^^\x25+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:(1-9\d*)\$|\((^\)+)\))?(\+)?(0|'^$)?(-)?(\d+)?(?:\.(\d+))?(b-gijostTuvxX)/,key:/^(a-z_a-z_\d*)/i,key_access:/^\.(a-z_a-z_\d*)/i,index_access:/^\(\d+)\/,sign:/^\+\-/};t.format=function(e,a){var i,o,l,c,p,f,u,g=1,_=e.length,d="",b=,h=!0,x="";for(o=0;o<_;o++)if("string"===(d=r(eo)))bb.length=eo;else if("array"===d){if(c=eo,c2)for(i=ag,l=0;l<c2.length;l++){if(!i.hasOwnProperty(c2l))throw new Error(t('sprintf property "%s" does not exist',c2l));i=ic2l}else i=c1?ac1:ag++;if(s.not_type.test(c8)&&s.not_primitive.test(c8)&&"function"==r(i)&&(i=i()),s.numeric_arg.test(c8)&&"number"!=r(i)&&isNaN(i))throw new TypeError(t("sprintf expecting number but found %s",r(i)));switch(s.number.test(c8)&&(h=i>=0),c8){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,c6?parseInt(c6):0);break;case"e":i=c7?parseFloat(i).toExponential(c7):parseFloat(i).toExponential();break;case"f":i=c7?parseFloat(i).toFixed(c7):parseFloat(i);break;case"g":i=c7?parseFloat(i).toPrecision(c7):parseFloat(i);break;case"o":i=i.toString(8);break;case"s":i=String(i),i=c7?i.substring(0,c7):i;break;case"t":i=String(!!i),i=c7?i.substring(0,c7):i;break;case"T":i=r(i),i=c7?i.substring(0,c7):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=c7?i.substring(0,c7):i;break;case"x":i=parseInt(i,10).toString(16);break;case"X":i=parseInt(i,10).toString(16).toUpperCase()}s.json.test(c8)?bb.length=i:(!s.number.test(c8)||h&&!c3?x="":(x=h?"+":"-",i=i.toString().replace(s.sign,"")),f=c4?"0"===c4?"0":c4.charAt(1):" ",u=c6-(x+i).length,p=c6&&u>0?n(f,u):"",bb.length=c5?x+i+p:"0"===f?x+p+i:p+x+i)}return b.join("")},t.cache=Object.create(null),t.parse=function(e){for(var t=e,r=,n=,a=0;t;){if(null!==(r=s.text.exec(t)))nn.length=r0;else if(null!==(r=s.modulo.exec(t)))nn.length="%";else{if(null===(r=s.placeholder.exec(t)))throw new SyntaxError("sprintf unexpected placeholder");if(r2){a|=1;var i=,o=r2,l=;if(null===(l=s.key.exec(o)))throw new SyntaxError("sprintf failed to parse named argument key");for(ii.length=l1;""!==(o=o.substring(l0.length));)if(null!==(l=s.key_access.exec(o)))ii.length=l1;else{if(null===(l=s.index_access.exec(o)))throw new SyntaxError("sprintf failed to parse named argument key");ii.length=l1}r2=i}else a|=2;if(3===a)throw new Error("sprintf mixing positional and named placeholders is not (yet) supported");nn.length=r}t=t.substring(r0.length)}return n};var a=function(e,r,n){return n=(r||).slice(0),n.splice(0,0,e),t.apply(null,n)},i={0:"","0","00","000","0000","00000","000000","0000000"," ":""," "," "," "," "," "," "," ",_:"","_","__","___","____","_____","______","_______"};"undefined"!=typeof exports&&(exports.sprintf=t,exports.vsprintf=a),void 0!==e&&(e.sprintf=t,e.vsprintf=a,"function"==typeof define&&define.amd&&define(function(){return{sprintf:t,vsprintf:a}}))}("undefined"==typeof window?this:window); +/*! sprintf-js v1.1.2 | Copyright (c) 2007-present, Alexandru Mărășteanu <hello@alexei.ro> | BSD-3-Clause */ +!function(){"use strict";var g={not_string:/^s/,not_bool:/^t/,not_type:/^T/,not_primitive:/^v/,number:/diefg/,numeric_arg:/bcdiefguxX/,json:/j/,not_json:/^j/,text:/^^\x25+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:(1-9\d*)\$|\((^)+)\))?(\+)?(0|'^$)?(-)?(\d+)?(?:\.(\d+))?(b-gijostTuvxX)/,key:/^(a-z_a-z_\d*)/i,key_access:/^\.(a-z_a-z_\d*)/i,index_access:/^\(\d+)\/,sign:/^+-/};function y(e){return function(e,t){var r,n,i,s,a,o,p,c,l,u=1,f=e.length,d="";for(n=0;n<f;n++)if("string"==typeof en)d+=en;else if("object"==typeof en){if((s=en).keys)for(r=tu,i=0;i<s.keys.length;i++){if(null==r)throw new Error(y('sprintf Cannot access property "%s" of undefined value "%s"',s.keysi,s.keysi-1));r=rs.keysi}else r=s.param_no?ts.param_no:tu++;if(g.not_type.test(s.type)&&g.not_primitive.test(s.type)&&r instanceof Function&&(r=r()),g.numeric_arg.test(s.type)&&"number"!=typeof r&&isNaN(r))throw new TypeError(y("sprintf expecting number but found %T",r));switch(g.number.test(s.type)&&(c=0<=r),s.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,s.width?parseInt(s.width):0);break;case"e":r=s.precision?parseFloat(r).toExponential(s.precision):parseFloat(r).toExponential();break;case"f":r=s.precision?parseFloat(r).toFixed(s.precision):parseFloat(r);break;case"g":r=s.precision?String(Number(r.toPrecision(s.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}g.json.test(s.type)?d+=r:(!g.number.test(s.type)||c&&!s.sign?l="":(l=c?"+":"-",r=r.toString().replace(g.sign,"")),o=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",p=s.width-(l+r).length,a=s.width&&0<p?o.repeat(p):"",d+=s.align?l+r+a:"0"===o?l+a+r:a+l+r)}return d}(function(e){if(pe)return pe;var t,r=e,n=,i=0;for(;r;){if(null!==(t=g.text.exec(r)))n.push(t0);else if(null!==(t=g.modulo.exec(r)))n.push("%");else{if(null===(t=g.placeholder.exec(r)))throw new SyntaxError("sprintf unexpected placeholder");if(t2){i|=1;var s=,a=t2,o=;if(null===(o=g.key.exec(a)))throw new SyntaxError("sprintf failed to parse named argument key");for(s.push(o1);""!==(a=a.substring(o0.length));)if(null!==(o=g.key_access.exec(a)))s.push(o1);else{if(null===(o=g.index_access.exec(a)))throw new SyntaxError("sprintf failed to parse named argument key");s.push(o1)}t2=s}else i|=2;if(3===i)throw new Error("sprintf mixing positional and named placeholders is not (yet) supported");n.push({placeholder:t0,param_no:t1,keys:t2,sign:t3,pad_char:t4,align:t5,width:t6,precision:t7,type:t8})}r=r.substring(t0.length)}return pe=n}(e),arguments)}function e(e,t){return y.apply(null,e.concat(t||))}var p=Object.create(null);"undefined"!=typeof exports&&(exports.sprintf=y,exports.vsprintf=e),"undefined"!=typeof window&&(window.sprintf=y,window.vsprintf=e,"function"==typeof define&&define.amd&&define(function(){return{sprintf:y,vsprintf:e}}))}(); //# sourceMappingURL=sprintf.min.js.map
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/dist/sprintf.min.js.map -> _service:tar_scm:1.1.2.tar.gz/dist/sprintf.min.js.map
Changed
@@ -1,1 +1,1 @@ -{"version":3,"sources":"sprintf.js","names":"window","sprintf","key","arguments","cache","parse","format","call","get_type","variable","Object","prototype","toString","slice","toLowerCase","str_repeat","input","multiplier","preformattedPadding","Array","join","re","not_string","not_bool","not_type","not_primitive","number","numeric_arg","json","not_json","text","modulo","placeholder","key_access","index_access","sign","parse_tree","argv","arg","i","k","match","pad","pad_character","pad_length","cursor","tree_length","length","node_type","output","is_positive","hasOwnProperty","Error","test","isNaN","TypeError","parseInt","String","fromCharCode","JSON","stringify","parseFloat","toExponential","toFixed","toPrecision","substring","valueOf","toUpperCase","replace","charAt","create","fmt","_fmt","arg_names","exec","SyntaxError","field_list","replacement_field","field_match","vsprintf","_argv","splice","apply","0"," ","_","exports","define","amd","this","mappings":"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","file":"sprintf.min.js","sourcesContent":"/* globals window, exports, define */\n\n(function(window) {\n 'use strict'\n\n var re = {\n not_string: /^s/,\n not_bool: /^t/,\n not_type: /^T/,\n not_primitive: /^v/,\n number: /diefg/,\n numeric_arg: /bcdiefguxX/,\n json: /j/,\n not_json: /^j/,\n text: /^^\\x25+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:(1-9\\d*)\\$|\\((^\\)+)\\))?(\\+)?(0|'^$)?(-)?(\\d+)?(?:\\.(\\d+))?(b-gijostTuvxX)/,\n key: /^(a-z_a-z_\\d*)/i,\n key_access: /^\\.(a-z_a-z_\\d*)/i,\n index_access: /^\\(\\d+)\\/,\n sign: /^\\+\\-/\n }\n\n function sprintf() {\n var key = arguments0, cache = sprintf.cache\n if (!(cachekey)) {\n cachekey = sprintf.parse(key)\n }\n return sprintf.format.call(null, cachekey, arguments)\n }\n\n sprintf.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = , i, k, match, pad, pad_character, pad_length, is_positive = true, sign = ''\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_treei)\n if (node_type === 'string') {\n outputoutput.length = parse_treei\n }\n else if (node_type === 'array') {\n match = parse_treei // convenience purposes only\n if (match2) { // keyword argument\n arg = argvcursor\n for (k = 0; k < match2.length; k++) {\n if (!arg.hasOwnProperty(match2k)) {\n throw new Error(sprintf('sprintf property \"%s\" does not exist', match2k))\n }\n arg = argmatch2k\n }\n }\n else if (match1) { // positional argument (explicit)\n arg = argvmatch1\n }\n else { // positional argument (implicit)\n arg = argvcursor++\n }\n\n if (re.not_type.test(match8) && re.not_primitive.test(match8) && get_type(arg) == 'function') {\n arg = arg()\n }\n\n if (re.numeric_arg.test(match8) && (get_type(arg) != 'number' && isNaN(arg))) {\n throw new TypeError(sprintf(\"sprintf expecting number but found %s\", get_type(arg)))\n }\n\n if (re.number.test(match8)) {\n is_positive = arg >= 0\n }\n\n switch (match8) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, match6 ? parseInt(match6) : 0)\n break\n case 'e':\n arg = match7 ? parseFloat(arg).toExponential(match7) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = match7 ? parseFloat(arg).toFixed(match7) : parseFloat(arg)\n break\n case 'g':\n arg = match7 ? parseFloat(arg).toPrecision(match7) : parseFloat(arg)\n break\n case 'o':\n arg = arg.toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (match7 ? arg.substring(0, match7) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (match7 ? arg.substring(0, match7) : arg)\n break\n case 'T':\n arg = get_type(arg)\n arg = (match7 ? arg.substring(0, match7) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (match7 ? arg.substring(0, match7) : arg)\n break\n case 'x':\n arg = parseInt(arg, 10).toString(16)\n break\n case 'X':\n arg = parseInt(arg, 10).toString(16).toUpperCase()\n break\n }\n if (re.json.test(match8)) {\n outputoutput.length = arg\n }\n else {\n if (re.number.test(match8) && (!is_positive || match3)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = match4 ? match4 === '0' ? '0' : match4.charAt(1) : ' '\n pad_length = match6 - (sign + arg).length\n pad = match6 ? (pad_length > 0 ? str_repeat(pad_character, pad_length) : '') : ''\n outputoutput.length = match5 ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output.join('')\n }\n\n sprintf.cache = Object.create(null)\n\n sprintf.parse = function(fmt) {\n var _fmt = fmt, match = , parse_tree = , arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_treeparse_tree.length = match0\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_treeparse_tree.length = '%'\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match2) {\n arg_names |= 1\n var field_list = , replacement_field = match2, field_match = \n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_listfield_list.length = field_match1\n while ((replacement_field = replacement_field.substring(field_match0.length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_listfield_list.length = field_match1\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_listfield_list.length = field_match1\n }\n else {\n throw new SyntaxError(\"sprintf failed to parse named argument key\")\n }\n }\n }\n else {\n throw new SyntaxError(\"sprintf failed to parse named argument key\")\n }\n match2 = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error(\"sprintf mixing positional and named placeholders is not (yet) supported\")\n }\n parse_treeparse_tree.length = match\n }\n else {\n throw new SyntaxError(\"sprintf unexpected placeholder\")\n }\n _fmt = _fmt.substring(match0.length)\n }\n return parse_tree\n }\n\n var vsprintf = function(fmt, argv, _argv) {\n _argv = (argv || ).slice(0)\n _argv.splice(0, 0, fmt)\n return sprintf.apply(null, _argv)\n }\n\n /**\n * helpers\n */\n function get_type(variable) {\n if (typeof variable === 'number') {\n return 'number'\n }\n else if (typeof variable === 'string') {\n return 'string'\n }\n else {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase()\n }\n }\n\n var preformattedPadding = {\n '0': '', '0', '00', '000', '0000', '00000', '000000', '0000000',\n ' ': '', ' ', ' ', ' ', ' ', ' ', ' ', ' ',\n '_': '', '_', '__', '___', '____', '_____', '______', '_______',\n }\n function str_repeat(input, multiplier) {\n if (multiplier >= 0 && multiplier <= 7 && preformattedPaddinginput) {\n return preformattedPaddinginputmultiplier\n }\n return Array(multiplier + 1).join(input)\n }\n\n /**\n * export to either browser or node.js\n */\n if (typeof exports !== 'undefined') {\n exports.sprintf = sprintf\n exports.vsprintf = vsprintf\n }\n if (typeof window !== 'undefined') {\n window.sprintf = sprintf\n window.vsprintf = vsprintf\n\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return {\n sprintf: sprintf,\n vsprintf: vsprintf\n }\n })\n }\n }\n})(typeof window === 'undefined' ? this : window);\n"} \ No newline at end of file +{"version":3,"sources":"sprintf.js","names":"re","not_string","not_bool","not_type","not_primitive","number","numeric_arg","json","not_json","text","modulo","placeholder","key","key_access","index_access","sign","sprintf","parse_tree","argv","arg","i","k","ph","pad","pad_character","pad_length","is_positive","cursor","tree_length","length","output","keys","undefined","Error","param_no","test","type","Function","isNaN","TypeError","parseInt","toString","String","fromCharCode","JSON","stringify","width","precision","parseFloat","toExponential","toFixed","Number","toPrecision","substring","Object","prototype","call","slice","toLowerCase","valueOf","toUpperCase","replace","pad_char","charAt","repeat","align","sprintf_format","fmt","sprintf_cache","match","_fmt","arg_names","exec","push","SyntaxError","field_list","replacement_field","field_match","sprintf_parse","arguments","vsprintf","apply","concat","create","exports","window","define","mappings":"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","file":"sprintf.min.js","sourcesContent":"/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /^s/,\n not_bool: /^t/,\n not_type: /^T/,\n not_primitive: /^v/,\n number: /diefg/,\n numeric_arg: /bcdiefguxX/,\n json: /j/,\n not_json: /^j/,\n text: /^^\\x25+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:(1-9\\d*)\\$|\\((^)+)\\))?(\\+)?(0|'^$)?(-)?(\\d+)?(?:\\.(\\d+))?(b-gijostTuvxX)/,\n key: /^(a-z_a-z_\\d*)/i,\n key_access: /^\\.(a-z_a-z_\\d*)/i,\n index_access: /^\\(\\d+)\\/,\n sign: /^+-/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, fmt.concat(argv || ))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_treei === 'string') {\n output += parse_treei\n }\n else if (typeof parse_treei === 'object') {\n ph = parse_treei // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argvcursor\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('sprintf Cannot access property \"%s\" of undefined value \"%s\"', ph.keysk, ph.keysk-1))\n }\n arg = argph.keysk\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argvph.param_no\n }\n else { // positional argument (implicit)\n arg = argvcursor++\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('sprintf expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cachefmt) {\n return sprintf_cachefmt\n }\n\n var _fmt = fmt, match, parse_tree = , arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match0)\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match2) {\n arg_names |= 1\n var field_list = , replacement_field = match2, field_match = \n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match1)\n while ((replacement_field = replacement_field.substring(field_match0.length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match1)\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match1)\n }\n else {\n throw new SyntaxError('sprintf failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('sprintf failed to parse named argument key')\n }\n match2 = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('sprintf mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match0,\n param_no: match1,\n keys: match2,\n sign: match3,\n pad_char: match4,\n align: match5,\n width: match6,\n precision: match7,\n type: match8\n }\n )\n }\n else {\n throw new SyntaxError('sprintf unexpected placeholder')\n }\n _fmt = _fmt.substring(match0.length)\n }\n return sprintf_cachefmt = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports'sprintf' = sprintf\n exports'vsprintf' = vsprintf\n }\n if (typeof window !== 'undefined') {\n window'sprintf' = sprintf\n window'vsprintf' = vsprintf\n\n if (typeof define === 'function' && define'amd') {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n"} \ No newline at end of file
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/gulpfile.js -> _service:tar_scm:1.1.2.tar.gz/gulpfile.js
Changed
@@ -6,7 +6,7 @@ rename = require('gulp-rename'), sourcemaps = require('gulp-sourcemaps'), header = require('gulp-header'), - jshint = require('gulp-jshint'), + eslint = require('gulp-eslint'), mocha = require('gulp-mocha'), benchmark = require('gulp-benchmark'), banner = '/*! <%= pkg.name %> v<%= pkg.version %> | Copyright (c) 2007-present, <%= pkg.author %> | <%= pkg.license %> */\n' @@ -15,25 +15,25 @@ return gulp .src('benchmark/*.js', {read: false}) .pipe(benchmark()) -}); +}) gulp.task('lint', function() { return gulp .src('src/*.js') - .pipe(jshint()) - .pipe(jshint.reporter('default')) + .pipe(eslint()) + .pipe(eslint.format()) }) gulp.task('test', 'lint', function() { return gulp .src('test/*.js', {read: false}) - .pipe(mocha({reporter: 'nyan'})); + .pipe(mocha({reporter: 'nyan'})) }) gulp.task('dist', 'test', function() { return gulp.src( - 'src/*.js' - ) + 'src/*.js' + ) .pipe(sourcemaps.init()) .pipe(uglify()) .pipe(rename({ suffix: '.min' }))
View file
_service:tar_scm:1.1.2.tar.gz/package-lock.json
Added
@@ -0,0 +1,3830 @@ +{ + "name": "sprintf-js", + "version": "1.1.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@gulp-sourcemaps/identity-map": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", + "integrity": "sha512-ciiioYMLdo16ShmfHBXJBOFm3xPC4AuwO4xeRpFeHz7WK9PYsWCmigagG2XyzZpubK4a3qNKoUBDhbzHfa50LQ==", + "dev": true, + "requires": { + "acorn": "^5.0.3", + "css": "^2.2.1", + "normalize-path": "^2.1.1", + "source-map": "^0.6.0", + "through2": "^2.0.3" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "requires": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + } + }, + "acorn": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", + "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", + "dev": true + }, + "acorn-jsx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true + }, + "ajv": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", + "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/package.json -> _service:tar_scm:1.1.2.tar.gz/package.json
Changed
@@ -1,11 +1,14 @@ { "name": "sprintf-js", - "version": "1.1.0", + "version": "1.1.2", "description": "JavaScript sprintf implementation", - "author": "Alexandru Marasteanu <hello@alexei.ro>", + "author": "Alexandru Mărășteanu <hello@alexei.ro>", "main": "src/sprintf.js", "scripts": { - "test": "mocha test/test.js" + "test": "mocha test/*.js", + "pretest": "npm run lint", + "lint": "eslint .", + "lint:fix": "eslint --fix ." }, "repository": { "type": "git", @@ -15,15 +18,15 @@ "readmeFilename": "README.md", "devDependencies": { "benchmark": "^2.1.4", - "gulp": "^3.9.0", + "eslint": "^5.10.0", + "gulp": "^3.9.1", "gulp-benchmark": "^1.1.1", - "gulp-header": "^1.7.1", - "gulp-jshint": "^2.0.0", - "gulp-mocha": "^4.3.1", - "gulp-rename": "^1.2.2", - "gulp-sourcemaps": "^2.6.0", - "gulp-uglify": "^2.1.2", - "jshint": "^2.9.1", - "mocha": "^3.3.0" + "gulp-eslint": "^5.0.0", + "gulp-header": "^2.0.5", + "gulp-mocha": "^6.0.0", + "gulp-rename": "^1.4.0", + "gulp-sourcemaps": "^2.6.4", + "gulp-uglify": "^3.0.1", + "mocha": "^5.2.0" } }
View file
_service:tar_scm:1.1.2.tar.gz/src
Added
+(directory)
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/src/angular-sprintf.js -> _service:tar_scm:1.1.2.tar.gz/src/angular-sprintf.js
Changed
@@ -1,6 +1,6 @@ -/* globals angular, sprintf, vsprintf */ +/* global angular, sprintf, vsprintf */ -(function () { +!function() { 'use strict' angular. @@ -21,4 +21,4 @@ filter('vfmt', '$filter', function($filter) { return $filter('vsprintf') }) -})(); +}(); // eslint-disable-line
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/src/sprintf.js -> _service:tar_scm:1.1.2.tar.gz/src/sprintf.js
Changed
@@ -1,6 +1,6 @@ -/* globals window, exports, define */ +/* global window, exports, define */ -(function(window) { +!function() { 'use strict' var re = { @@ -14,162 +14,166 @@ not_json: /^j/, text: /^^\x25+/, modulo: /^\x25{2}/, - placeholder: /^\x25(?:(1-9\d*)\$|\((^\)+)\))?(\+)?(0|'^$)?(-)?(\d+)?(?:\.(\d+))?(b-gijostTuvxX)/, + placeholder: /^\x25(?:(1-9\d*)\$|\((^)+)\))?(\+)?(0|'^$)?(-)?(\d+)?(?:\.(\d+))?(b-gijostTuvxX)/, key: /^(a-z_a-z_\d*)/i, key_access: /^\.(a-z_a-z_\d*)/i, index_access: /^\(\d+)\/, - sign: /^\+\-/ + sign: /^+-/ } - function sprintf() { - var key = arguments0, cache = sprintf.cache - if (!(cachekey)) { - cachekey = sprintf.parse(key) - } - return sprintf.format.call(null, cachekey, arguments) + function sprintf(key) { + // `arguments` is not an array, but should be fine for this call + return sprintf_format(sprintf_parse(key), arguments) + } + + function vsprintf(fmt, argv) { + return sprintf.apply(null, fmt.concat(argv || )) } - sprintf.format = function(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = , i, k, match, pad, pad_character, pad_length, is_positive = true, sign = '' + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign for (i = 0; i < tree_length; i++) { - node_type = get_type(parse_treei) - if (node_type === 'string') { - outputoutput.length = parse_treei + if (typeof parse_treei === 'string') { + output += parse_treei } - else if (node_type === 'array') { - match = parse_treei // convenience purposes only - if (match2) { // keyword argument + else if (typeof parse_treei === 'object') { + ph = parse_treei // convenience purposes only + if (ph.keys) { // keyword argument arg = argvcursor - for (k = 0; k < match2.length; k++) { - if (!arg.hasOwnProperty(match2k)) { - throw new Error(sprintf('sprintf property "%s" does not exist', match2k)) + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('sprintf Cannot access property "%s" of undefined value "%s"', ph.keysk, ph.keysk-1)) } - arg = argmatch2k + arg = argph.keysk } } - else if (match1) { // positional argument (explicit) - arg = argvmatch1 + else if (ph.param_no) { // positional argument (explicit) + arg = argvph.param_no } else { // positional argument (implicit) arg = argvcursor++ } - if (re.not_type.test(match8) && re.not_primitive.test(match8) && get_type(arg) == 'function') { + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { arg = arg() } - if (re.numeric_arg.test(match8) && (get_type(arg) != 'number' && isNaN(arg))) { - throw new TypeError(sprintf("sprintf expecting number but found %s", get_type(arg))) + if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) { + throw new TypeError(sprintf('sprintf expecting number but found %T', arg)) } - if (re.number.test(match8)) { + if (re.number.test(ph.type)) { is_positive = arg >= 0 } - switch (match8) { + switch (ph.type) { case 'b': arg = parseInt(arg, 10).toString(2) - break + break case 'c': arg = String.fromCharCode(parseInt(arg, 10)) - break + break case 'd': case 'i': arg = parseInt(arg, 10) - break + break case 'j': - arg = JSON.stringify(arg, null, match6 ? parseInt(match6) : 0) - break + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0) + break case 'e': - arg = match7 ? parseFloat(arg).toExponential(match7) : parseFloat(arg).toExponential() - break + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential() + break case 'f': - arg = match7 ? parseFloat(arg).toFixed(match7) : parseFloat(arg) - break + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg) + break case 'g': - arg = match7 ? parseFloat(arg).toPrecision(match7) : parseFloat(arg) - break + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg) + break case 'o': - arg = arg.toString(8) - break + arg = (parseInt(arg, 10) >>> 0).toString(8) + break case 's': arg = String(arg) - arg = (match7 ? arg.substring(0, match7) : arg) - break + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break case 't': arg = String(!!arg) - arg = (match7 ? arg.substring(0, match7) : arg) - break + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break case 'T': - arg = get_type(arg) - arg = (match7 ? arg.substring(0, match7) : arg) - break + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase() + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break case 'u': arg = parseInt(arg, 10) >>> 0 - break + break case 'v': arg = arg.valueOf() - arg = (match7 ? arg.substring(0, match7) : arg) - break + arg = (ph.precision ? arg.substring(0, ph.precision) : arg) + break case 'x': - arg = parseInt(arg, 10).toString(16) - break + arg = (parseInt(arg, 10) >>> 0).toString(16) + break case 'X': - arg = parseInt(arg, 10).toString(16).toUpperCase() - break + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase() + break } - if (re.json.test(match8)) { - outputoutput.length = arg + if (re.json.test(ph.type)) { + output += arg } else { - if (re.number.test(match8) && (!is_positive || match3)) { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { sign = is_positive ? '+' : '-' arg = arg.toString().replace(re.sign, '') } else { sign = '' } - pad_character = match4 ? match4 === '0' ? '0' : match4.charAt(1) : ' ' - pad_length = match6 - (sign + arg).length - pad = match6 ? (pad_length > 0 ? str_repeat(pad_character, pad_length) : '') : '' - outputoutput.length = match5 ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) + pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' ' + pad_length = ph.width - (sign + arg).length + pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : '' + output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg) } } } - return output.join('') + return output }
View file
_service:tar_scm:1.1.2.tar.gz/test
Added
+(directory)
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/test/test.js -> _service:tar_scm:1.1.2.tar.gz/test/test.js
Changed
@@ -1,109 +1,112 @@ -'use strict'; +/* global describe, it */ -var assert = require("assert"), - sprintfjs = require("../src/sprintf.js"), - sprintf = sprintfjs.sprintf, - vsprintf = sprintfjs.vsprintf +'use strict' -describe("sprintfjs", function() { +var assert = require('assert'), + sprintfjs = require('../src/sprintf.js'), + sprintf = sprintfjs.sprintf + +describe('sprintfjs', function() { var pi = 3.141592653589793 - it("should return formated strings for simple placeholders", function() { - assert.equal("%", sprintf("%%")) - assert.equal("10", sprintf("%b", 2)) - assert.equal("A", sprintf("%c", 65)) - assert.equal("2", sprintf("%d", 2)) - assert.equal("2", sprintf("%i", 2)) - assert.equal("2", sprintf("%d", "2")) - assert.equal("2", sprintf("%i", "2")) - assert.equal('{"foo":"bar"}', sprintf("%j", {foo: "bar"})) - assert.equal('"foo","bar"', sprintf("%j", "foo", "bar")) - assert.equal("2e+0", sprintf("%e", 2)) - assert.equal("2", sprintf("%u", 2)) - assert.equal("4294967294", sprintf("%u", -2)) - assert.equal("2.2", sprintf("%f", 2.2)) - assert.equal("3.141592653589793", sprintf("%g", pi)) - assert.equal("10", sprintf("%o", 8)) - assert.equal("%s", sprintf("%s", "%s")) - assert.equal("ff", sprintf("%x", 255)) - assert.equal("FF", sprintf("%X", 255)) - assert.equal("Polly wants a cracker", sprintf("%2$s %3$s a %1$s", "cracker", "Polly", "wants")) - assert.equal("Hello world!", sprintf("Hello %(who)s!", {"who": "world"})) - assert.equal("true", sprintf("%t", true)) - assert.equal("t", sprintf("%.1t", true)) - assert.equal("true", sprintf("%t", "true")) - assert.equal("true", sprintf("%t", 1)) - assert.equal("false", sprintf("%t", false)) - assert.equal("f", sprintf("%.1t", false)) - assert.equal("false", sprintf("%t", "")) - assert.equal("false", sprintf("%t", 0)) + it('should return formated strings for simple placeholders', function() { + assert.equal('%', sprintf('%%')) + assert.equal('10', sprintf('%b', 2)) + assert.equal('A', sprintf('%c', 65)) + assert.equal('2', sprintf('%d', 2)) + assert.equal('2', sprintf('%i', 2)) + assert.equal('2', sprintf('%d', '2')) + assert.equal('2', sprintf('%i', '2')) + assert.equal('{"foo":"bar"}', sprintf('%j', {foo: 'bar'})) + assert.equal('"foo","bar"', sprintf('%j', 'foo', 'bar')) + assert.equal('2e+0', sprintf('%e', 2)) + assert.equal('2', sprintf('%u', 2)) + assert.equal('4294967294', sprintf('%u', -2)) + assert.equal('2.2', sprintf('%f', 2.2)) + assert.equal('3.141592653589793', sprintf('%g', pi)) + assert.equal('10', sprintf('%o', 8)) + assert.equal('37777777770', sprintf('%o', -8)) + assert.equal('%s', sprintf('%s', '%s')) + assert.equal('ff', sprintf('%x', 255)) + assert.equal('ffffff01', sprintf('%x', -255)) + assert.equal('FF', sprintf('%X', 255)) + assert.equal('FFFFFF01', sprintf('%X', -255)) + assert.equal('Polly wants a cracker', sprintf('%2$s %3$s a %1$s', 'cracker', 'Polly', 'wants')) + assert.equal('Hello world!', sprintf('Hello %(who)s!', {who: 'world'})) + assert.equal('true', sprintf('%t', true)) + assert.equal('t', sprintf('%.1t', true)) + assert.equal('true', sprintf('%t', 'true')) + assert.equal('true', sprintf('%t', 1)) + assert.equal('false', sprintf('%t', false)) + assert.equal('f', sprintf('%.1t', false)) + assert.equal('false', sprintf('%t', '')) + assert.equal('false', sprintf('%t', 0)) assert.equal('undefined', sprintf('%T', undefined)) assert.equal('null', sprintf('%T', null)) assert.equal('boolean', sprintf('%T', true)) assert.equal('number', sprintf('%T', 42)) - assert.equal('string', sprintf('%T', "This is a string")) + assert.equal('string', sprintf('%T', 'This is a string')) assert.equal('function', sprintf('%T', Math.log)) assert.equal('array', sprintf('%T', 1, 2, 3)) assert.equal('object', sprintf('%T', {foo: 'bar'})) - assert.equal('regexp', sprintf('%T', /<("^"*"|'^'*'|^'">)*>/)) + assert.equal('regexp', sprintf('%T', /<('^'*'|'^'*'|^''>)*>/)) assert.equal('true', sprintf('%v', true)) assert.equal('42', sprintf('%v', 42)) - assert.equal('This is a string', sprintf('%v', "This is a string")) + assert.equal('This is a string', sprintf('%v', 'This is a string')) assert.equal('1,2,3', sprintf('%v', 1, 2, 3)) assert.equal('object Object', sprintf('%v', {foo: 'bar'})) assert.equal('/<("^"*"|\'^\'*\'|^\'">)*>/', sprintf('%v', /<("^"*"|'^'*'|^'">)*>/)) }) - it("should return formated strings for complex placeholders", function() { + it('should return formated strings for complex placeholders', function() { // sign - assert.equal("2", sprintf("%d", 2)) - assert.equal("-2", sprintf("%d", -2)) - assert.equal("+2", sprintf("%+d", 2)) - assert.equal("-2", sprintf("%+d", -2)) - assert.equal("2", sprintf("%i", 2)) - assert.equal("-2", sprintf("%i", -2)) - assert.equal("+2", sprintf("%+i", 2)) - assert.equal("-2", sprintf("%+i", -2)) - assert.equal("2.2", sprintf("%f", 2.2)) - assert.equal("-2.2", sprintf("%f", -2.2)) - assert.equal("+2.2", sprintf("%+f", 2.2)) - assert.equal("-2.2", sprintf("%+f", -2.2)) - assert.equal("-2.3", sprintf("%+.1f", -2.34)) - assert.equal("-0.0", sprintf("%+.1f", -0.01)) - assert.equal("3.14159", sprintf("%.6g", pi)) - assert.equal("3.14", sprintf("%.3g", pi)) - assert.equal("3", sprintf("%.1g", pi)) - assert.equal("-000000123", sprintf("%+010d", -123)) - assert.equal("______-123", sprintf("%+'_10d", -123)) - assert.equal("-234.34 123.2", sprintf("%f %f", -234.34, 123.2)) + assert.equal('2', sprintf('%d', 2)) + assert.equal('-2', sprintf('%d', -2)) + assert.equal('+2', sprintf('%+d', 2)) + assert.equal('-2', sprintf('%+d', -2)) + assert.equal('2', sprintf('%i', 2)) + assert.equal('-2', sprintf('%i', -2)) + assert.equal('+2', sprintf('%+i', 2)) + assert.equal('-2', sprintf('%+i', -2)) + assert.equal('2.2', sprintf('%f', 2.2)) + assert.equal('-2.2', sprintf('%f', -2.2)) + assert.equal('+2.2', sprintf('%+f', 2.2)) + assert.equal('-2.2', sprintf('%+f', -2.2)) + assert.equal('-2.3', sprintf('%+.1f', -2.34)) + assert.equal('-0.0', sprintf('%+.1f', -0.01)) + assert.equal('3.14159', sprintf('%.6g', pi)) + assert.equal('3.14', sprintf('%.3g', pi)) + assert.equal('3', sprintf('%.1g', pi)) + assert.equal('-000000123', sprintf('%+010d', -123)) + assert.equal('______-123', sprintf("%+'_10d", -123)) + assert.equal('-234.34 123.2', sprintf('%f %f', -234.34, 123.2)) // padding - assert.equal("-0002", sprintf("%05d", -2)) - assert.equal("-0002", sprintf("%05i", -2)) - assert.equal(" <", sprintf("%5s", "<")) - assert.equal("0000<", sprintf("%05s", "<")) - assert.equal("____<", sprintf("%'_5s", "<")) - assert.equal("> ", sprintf("%-5s", ">")) - assert.equal(">0000", sprintf("%0-5s", ">")) - assert.equal(">____", sprintf("%'_-5s", ">")) - assert.equal("xxxxxx", sprintf("%5s", "xxxxxx")) - assert.equal("1234", sprintf("%02u", 1234)) - assert.equal(" -10.235", sprintf("%8.3f", -10.23456)) - assert.equal("-12.34 xxx", sprintf("%f %s", -12.34, "xxx")) - assert.equal('{\n "foo": "bar"\n}', sprintf("%2j", {foo: "bar"})) - assert.equal('\n "foo",\n "bar"\n', sprintf("%2j", "foo", "bar")) + assert.equal('-0002', sprintf('%05d', -2)) + assert.equal('-0002', sprintf('%05i', -2)) + assert.equal(' <', sprintf('%5s', '<')) + assert.equal('0000<', sprintf('%05s', '<')) + assert.equal('____<', sprintf("%'_5s", '<')) + assert.equal('> ', sprintf('%-5s', '>')) + assert.equal('>0000', sprintf('%0-5s', '>')) + assert.equal('>____', sprintf("%'_-5s", '>')) + assert.equal('xxxxxx', sprintf('%5s', 'xxxxxx')) + assert.equal('1234', sprintf('%02u', 1234)) + assert.equal(' -10.235', sprintf('%8.3f', -10.23456)) + assert.equal('-12.34 xxx', sprintf('%f %s', -12.34, 'xxx')) + assert.equal('{\n "foo": "bar"\n}', sprintf('%2j', {foo: 'bar'})) + assert.equal('\n "foo",\n "bar"\n', sprintf('%2j', 'foo', 'bar')) // precision - assert.equal("2.3", sprintf("%.1f", 2.345)) - assert.equal("xxxxx", sprintf("%5.5s", "xxxxxx")) - assert.equal(" x", sprintf("%5.1s", "xxxxxx")) + assert.equal('2.3', sprintf('%.1f', 2.345)) + assert.equal('xxxxx', sprintf('%5.5s', 'xxxxxx')) + assert.equal(' x', sprintf('%5.1s', 'xxxxxx')) }) - it("should return formated strings for callbacks", function() { - assert.equal("foobar", sprintf("%s", function() { return "foobar" })) - assert.equal(Date.now(), sprintf("%s", Date.now)) // should pass... + it('should return formated strings for callbacks', function() { + assert.equal('foobar', sprintf('%s', function() { return 'foobar' })) }) })
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/test/test_validation.js -> _service:tar_scm:1.1.2.tar.gz/test/test_validation.js
Changed
@@ -1,4 +1,6 @@ -'use strict'; +/* global describe, it */ + +'use strict' var assert = require('assert'), sprintfjs = require('../src/sprintf.js'), @@ -13,46 +15,70 @@ assert.doesNotThrow(function() { vsprintf(format,args) }) } -describe("sprintfjs cache", function() { +describe('sprintfjs cache', function() { - it("should not throw Error (cache consistency)", function() { + it('should not throw Error (cache consistency)', function() { // redefine object properties to ensure that is not affect to the cache - sprintf("hasOwnProperty") - sprintf("constructor") - should_not_throw("%s", "caching...") - should_not_throw("%s", "crash?") + sprintf('hasOwnProperty') + sprintf('constructor') + should_not_throw('%s', 'caching...') + should_not_throw('%s', 'crash?') }) }) -describe("sprintfjs", function() { - - it("should throw SyntaxError for placeholders", function() { - should_throw("%", , SyntaxError) - should_throw("%A", , SyntaxError) - should_throw("%s%", , SyntaxError) - should_throw("%(s", , SyntaxError) - should_throw("%)s", , SyntaxError) - should_throw("%$s", , SyntaxError) - should_throw("%()s", , SyntaxError) - should_throw("%(12)s", , SyntaxError) +describe('sprintfjs', function() { + + it('should throw SyntaxError for placeholders', function() { + should_throw('%', , SyntaxError) + should_throw('%A', , SyntaxError) + should_throw('%s%', , SyntaxError) + should_throw('%(s', , SyntaxError) + should_throw('%)s', , SyntaxError) + should_throw('%$s', , SyntaxError) + should_throw('%()s', , SyntaxError) + should_throw('%(12)s', , SyntaxError) }) - var numeric = "bcdiefguxX".split("") + var numeric = 'bcdiefguxX'.split('') numeric.forEach(function(specifier) { - var fmt = sprintf("%%%s",specifier) - it(fmt + " should throw TypeError for invalid numbers", function() { + var fmt = sprintf('%%%s',specifier) + it(fmt + ' should throw TypeError for invalid numbers', function() { should_throw(fmt, , TypeError) - should_throw(fmt, "str", TypeError) + should_throw(fmt, 'str', TypeError) should_throw(fmt, {}, TypeError) - should_throw(fmt, "s", TypeError) + should_throw(fmt, 's', TypeError) }) - it(fmt + " should not throw TypeError for something implicitly castable to number", function() { + it(fmt + ' should not throw TypeError for something implicitly castable to number', function() { should_not_throw(fmt, 1/0) should_not_throw(fmt, true) should_not_throw(fmt, 1) - should_not_throw(fmt, "200") + should_not_throw(fmt, '200') should_not_throw(fmt, null) }) }) + + it('should not throw Error for expression which evaluates to undefined', function() { + should_not_throw("%(x.y)s", {x : {}}) + }) + + it('should throw own Error when expression evaluation would raise TypeError', function() { + var fmt = "%(x.y)s" + try { + sprintf(fmt, {}) + } catch (e) { + assert(e.message.indexOf('sprintf') !== -1) + } + }) + + it('should not throw when accessing properties on the prototype', function() { + function C() { } + C.prototype = { + get x() { return 2 }, + set y(v) { /*Noop */} + } + var c = new C() + should_not_throw("%(x)s", c) + should_not_throw("%(y)s", c) + }) })
View file
_service:tar_scm:sprintf-js-1.1.0.tgz/.jshintrc
Deleted
@@ -1,5 +0,0 @@ -{ - "asi": true, - "unused": true, - "undef": true -}
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2