Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

carbone

Package Overview
Dependencies
Maintainers
4
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

carbone - npm Package Compare versions

Comparing version 3.1.0 to 3.2.3

58

CHANGELOG.md

@@ -0,4 +1,60 @@

### v3.2.3
- Release May 21th 2021
- Accepts letter `W` to get the week number in `formatD` formatter
### v3.2.2
- Release May 10th 2021
- Fix broken Excel files. It removes the alert which appears sometime when opening the file with MS Excel.
- Update DayJS dependency from 1.9.6 to 1.10.4.
- Fix date formatters (`formatD`...) and number formatters (`formatN`...) when the country code is used in `options.lang`.
It accepts lower case or upper case for the locale.
Example:
*Data*:
```js
{
date : '20140131 23:45:00',
price : 1000.1234
}
```
*Template*: `{d.date:formatD(dddd)} {d.price:formatN()}`
*Result*:
- `de-DE` => `Friday 1.000,123` (before) `Freitag 1.000,123` (after)
- `fr-fr` => `Friday 1 000,123` (before) `vendredi 1 000,123` (after)
- Fix number formatting for these locales: nl-be, am, ar, ar-dz, ar-bh, ar-eg, ar-iq, ar-jo, ar-kw, ar-lb, ar-ly,
ar-ma, ar-om, ar-qa, ar-sa, ar-sy, ar-tn, ar-ae, ar-ye, az-az, bn, bs, zh-cn, zh-hk, zh-mo, zh-sg, zh-tw, hr,
da, en-au, en-bz, en-ca, en-cb, en-in, en-ie, en-jm, en-nz, en-ph, en-tt, fa, fr-lu, de-li, de-lu, de-ch, el,
he, hi, id, it-it, it-ch, ja, kn, ko, ms-bn, ms-my, ml, mr, ro-mo, ro, ru-mo, sr-sp, sl, es-ar, es-bo, es-cl,
es-co, es-do, es-ec, es-sv, es-gt, es-hn, es-mx, es-ni, es-pa, es-py, es-pe, es-pr, es-es, es-uy, es-ve, sw,
ta, te, th, tr, uz-uz, vi, de, es, it
Example:
- `de` => `Freitag 1,000.123` (before) `Freitag 1.000,123` (after)
### v3.2.1
- Fix locale de-de
- Fix: Do not break documents if the `i+1` row contains some markers coming from parent object or condition blocks (rare)
### v3.1.2
- Release March 4rd 2021
- Fix: v3.1.0 introduced a backward compatibility issue with reports made with v1/v2. Now, filter with boolean works like this (same behavior as numbers)
- data => template => condition result in array
- `data.myBoolean = true` => `d.array[i, myBoolean=true]` => true
- `data.myBoolean = "true"` => `d.array[i, myBoolean=true]` => true
- `data.myBoolean = "false"` => `d.array[i, myBoolean=true]` => false
- `data.myBoolean = false` => `d.array[i, myBoolean=true]` => false
- `data.myBoolean = "true"` => `d.array[i, myBoolean='true']` => true
- `data.myBoolean = true` => `d.array[i, myBoolean='true']` => false
### v3.1.1
- Release March 4rd 2021
- [EE] fixes
### v3.1.0
- Release March 3rd 2021
- Accepts boolean in array filters `d.array[i, myBoolean=true]`
- Accepts boolean in array filters `d.array[i, myBoolean=true]`

@@ -5,0 +61,0 @@ ### v3.0.1

301

formatters/_locale.js

@@ -77,3 +77,3 @@ /* eslint-disable camelcase */

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -117,4 +117,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -129,5 +129,18 @@ },

},
ar : {
number : {
separator : ',',
decimal : '.',
group : 3
},
currency : {
L : commonFormatFn.v_S,
LL : commonFormatFn.v_M,
M : commonFormatFn.M,
code : 'DZD'
}
},
'ar-dz' : {
number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -145,4 +158,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -159,4 +172,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -173,4 +186,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -187,4 +200,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -201,4 +214,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -215,4 +228,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -229,3 +242,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -243,3 +256,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -257,4 +270,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -271,4 +284,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -285,4 +298,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -299,4 +312,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -313,3 +326,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -327,4 +340,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -341,4 +354,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -368,4 +381,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -395,4 +408,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -409,4 +422,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -449,4 +462,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -463,4 +476,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -477,4 +490,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -491,4 +504,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -505,4 +518,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -519,3 +532,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -546,3 +559,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -560,4 +573,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -574,4 +587,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -588,4 +601,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -602,4 +615,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -616,4 +629,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -630,4 +643,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -644,4 +657,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -658,4 +671,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -672,4 +685,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -699,4 +712,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -752,4 +765,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : '٬',
decimal : '٫',
group : 3

@@ -805,3 +818,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -858,3 +871,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -872,4 +885,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : '’',
decimal : '.',
group : 3

@@ -886,3 +899,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -900,3 +913,3 @@ group : 3

number : {
separator : '\'',
separator : '’',
decimal : '.',

@@ -914,3 +927,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -941,4 +954,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -955,4 +968,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -995,3 +1008,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1009,3 +1022,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1023,4 +1036,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : '’',
decimal : '.',
group : 3

@@ -1037,4 +1050,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1051,4 +1064,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1091,4 +1104,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1144,3 +1157,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1158,4 +1171,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1172,4 +1185,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1212,4 +1225,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1317,3 +1330,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1331,3 +1344,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1384,3 +1397,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1424,3 +1437,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1451,3 +1464,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1465,3 +1478,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1479,3 +1492,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1493,3 +1506,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1520,4 +1533,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1534,3 +1547,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1548,4 +1561,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1562,4 +1575,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1576,4 +1589,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1590,4 +1603,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1604,4 +1617,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1618,4 +1631,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1632,3 +1645,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1646,4 +1659,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1660,4 +1673,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1674,3 +1687,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1688,3 +1701,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1702,3 +1715,3 @@ group : 3

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1716,4 +1729,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1769,4 +1782,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1783,4 +1796,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1797,4 +1810,4 @@ },

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1837,3 +1850,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1890,4 +1903,4 @@ group : 3

number : {
separator : ' ',
decimal : ',',
separator : ',',
decimal : '.',
group : 3

@@ -1904,3 +1917,3 @@ },

number : {
separator : ' ',
separator : '.',
decimal : ',',

@@ -1971,2 +1984,6 @@ group : 3

// for compatibility with main language
locales.az = locales['az-az'];
locales.de = locales['de-de'];
locales.es = locales['es-es'];
locales.it = locales['it-it'];
locales.fr = locales['fr-fr'];

@@ -1973,0 +1990,0 @@ locales.nl = locales['nl-nl'];

@@ -182,13 +182,8 @@ var extracter = require('./extracter');

}
_str += getSafeVar(_objName)+'['+getSafeValue(_attr)+']'+_condition.operator;
// Check if right operator is a boolean
if (_condition.right === 'true') {
_str += true;
_str += getSafeVar(_objName)+'['+getSafeValue(_attr)+']';
if (_condition.right === 'true' || _condition.right === 'false') {
// for boolean, convert data to string to accept both cases ('true' == true) and (true == true) for backward compatibility with Carbone v1 & v2
_str += "+''";
}
else if (_condition.right === 'false') {
_str += false;
}
else {
_str += getSafeValue(helper.removeQuote(_condition.right));
}
_str += _condition.operator + getSafeValue(helper.removeQuote(_condition.right));
}

@@ -195,0 +190,0 @@ if (c < conditions.length - 1) {

@@ -465,3 +465,10 @@ var parser = require('./parser');

if (!_prevPart.array && _part.array !== 'end') {
_prevPart.after = xml.slice(_prevPos, _pos ).replace(MARKER_PRESENCE_CHAR_REGEX,'');
let _xmlPart = xml.slice(_prevPos, _pos ).replace(MARKER_PRESENCE_CHAR_REGEX,'');
// if toDelete = true, we are in the odd part of the array. This xml part will be removed
if (_prevPart.toDelete !== true) {
_prevPart.after = _xmlPart;
}
else if (_part.toDelete !== true) {
_part.before = _xmlPart;
}
}

@@ -468,0 +475,0 @@ if (_prevPart.array && _prevPart.array === 'end') {

@@ -15,2 +15,3 @@ var fs = require('fs');

var dayjs = require('dayjs');
var locales = require('../formatters/_locale');

@@ -307,5 +308,5 @@ var carbone = {

});
}
},
formatters : input.formatters
};

@@ -592,2 +593,14 @@

// if DayJS does not have a locale defined with country code, define it
// For example "de-de" does not exists in DaysJS, but "de" exists.
// So add locale "de-de" in DaysJS
for (let _locale in locales) {
if (dayjs.Ls[_locale] === undefined) {
let _localeWithoutCountry = _locale.replace(/-\S+/g, '');
if (dayjs.Ls[_localeWithoutCountry] !== undefined) {
dayjs.locale(_locale, dayjs.Ls[_localeWithoutCountry]);
}
}
}
dayjs.extend(require('dayjs/plugin/advancedFormat')); // Support Quarter, ...

@@ -598,2 +611,3 @@ dayjs.extend(require('dayjs/plugin/localizedFormat')); // Support L LL LLLL

dayjs.extend(require('dayjs/plugin/timezone'));
dayjs.extend(require('dayjs/plugin/isoWeek'));

@@ -600,0 +614,0 @@ dayjs.tz.setDefault('Europe/Paris');

@@ -34,3 +34,3 @@ const params = require('./params');

currency : {},
lang : (userDefinedOptions.lang || params.lang).toLowerCase(), // TODO test toLowerCase
lang : (userDefinedOptions.lang || params.lang).toLowerCase(),
timezone : (userDefinedOptions.timezone || params.timezone),

@@ -37,0 +37,0 @@ translations : userDefinedOptions.translations || params.translations,

@@ -35,2 +35,3 @@ var path = require('path');

case 'xlsx':
preprocessor.removeCalcChain(template, _parentFilter);
preprocessor.convertSharedStringToInlineString(template, _parentFilter);

@@ -125,2 +126,31 @@ break;

/**
* Removes uselss calc chain file.
*
* https://docs.microsoft.com/en-us/office/open-xml/working-with-the-calculation-chain
*
* This file is a sort of "cache" for Excel. The Calculation Chain part specifies the order in
* which cells in the workbook were last calculated.
*
* As Carbone will modify the Excel file, this file may become incorrect.
* We can safely remove this file to force Excel to recompute this file on opening.
*
* It removes the "alert" when opening the generated report with Excel
*
* @param {<type>} template The template
* @param {<type>} parentFilter The parent filter
* @return {<type>} { description_of_the_return_value }
*/
removeCalcChain : function (template, parentFilter) {
// parse all files and find shared strings first
for (var i = 0; i < template.files.length; i++) {
var _file = template.files[i];
if (_file.parent === parentFilter && /xl\/calcChain\.xml$/.test(_file.name) === true) {
preprocessor.removeOneFile(template, i, parentFilter);
break;
}
}
return template;
},
/**
* [XLSX] Remove one file in the template and its relations

@@ -127,0 +157,0 @@ * @param {Object} template

{
"name": "carbone",
"description": "Fast, Simple and Powerful report generator. Injects JSON and produces PDF, DOCX, XLSX, ODT, PPTX, ODS, ...!",
"version": "3.1.0",
"version": "3.2.3",
"bin": "bin/carbone",

@@ -27,3 +27,3 @@ "main": "./lib",

"dependencies": {
"dayjs": "=1.9.6",
"dayjs": "=1.10.4",
"debug": "=4.1.1",

@@ -30,0 +30,0 @@ "timsort": "=0.3.0",

@@ -24,6 +24,6 @@ <p align="center">

<a href="https://hub.docker.com/r/carbone/carbone-env-docker">
<img src="https://badgen.net/docker/pulls/ideolys/carbone-env-docker?icon=docker" alt="docker badge">
<img src="https://badgen.net/docker/pulls/carbone/carbone-env-docker?icon=docker" alt="docker badge">
</a>
<a href="https://github.com/Ideolys/carbone">
<img src="https://badgen.net/github/forks/ideolys/carbone?icon=github" alt="github fork badge">
<a href="https://github.com/carboneio/carbone">
<img src="https://badgen.net/github/forks/carboneio/carbone?icon=github" alt="github fork badge">
</a>

@@ -37,7 +37,7 @@ </p>

> ⚡️ Breaking news :
>
>
> **Carbone v3.1.0 🚀 is here :**
>
>
> - Carbone Render Enterprise Edition **On-Premise** is officially available. Please contact us.
> - Changelog : https://github.com/Ideolys/carbone/blob/master/CHANGELOG.md
> - Changelog : https://github.com/carboneio/carbone/blob/master/CHANGELOG.md

@@ -270,3 +270,3 @@ README language: 🇨🇳 [简体中文](./doc/README.zh-cn.md), 🇺🇸 [English](README.md)

If you're facing any issues, search a similar issue to ensure it doesn't already exist on [Github](https://github.com/Ideolys/carbone/issues). Otherwhise, [create an issue to help us](https://github.com/Ideolys/carbone/issues/new/choose).
If you're facing any issues, search a similar issue to ensure it doesn't already exist on [Github](https://github.com/carboneio/carbone/issues). Otherwhise, [create an issue to help us](https://github.com/carboneio/carbone/issues/new/choose).

@@ -309,3 +309,3 @@ ## Roadmap

Thanks to all Ideolys's direct contributors (random order)
Thanks to all Carbone contributors (random order)

@@ -325,4 +325,2 @@ - Florian Bezagu

- Aurélien Kermabon
- [Steeve Payraudeau](https://github.com/steevepay)
Thanks to all French citizens (Crédit Impôt Recherche, Jeune Entreprise Innovante, BPI)!
- [Steeve Payraudeau](https://github.com/steevepay)
# Security Policy
Ideolys takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations.
CarboneIO SAS takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations.

@@ -32,2 +32,2 @@ While the discovery of new vulnerabilities is rare, we also recommend always using the latest versions of CarboneJS to ensure your application remains as secure as possible.

If you have suggestions on how this process could be improved please submit a
[pull request](https://github.com/Ideolys/carbone/issues/new) to discuss.
[pull request](https://github.com/carboneio/carbone/issues/new) to discuss.
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