Skip to content

Releases: jsreport/jsreport

4.2.0

07 Dec 22:44
Compare
Choose a tag to compare

highlights of updates

general updates

  • fix memory usage when using large timeouts
  • localization: support with nested objects
  • pdf-utils: initial support of the pdf/ua
  • docx: docxImage new options (fallbackSrc, failurePlaceholderAction) and support for svg, docxChild evaluates handlebars content as part of the caller document, docxRaw support to get xml from inline string
  • pptx: add pptxStyle and pptxChart support
  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases

core

  • fix memory being held when timeouts are large
  • fix node.js 21 compatibility when sandbox is used (trustUserCode: false
  • support using different cache key per template engine if it supports it

studio

  • fix "was modified previously by another source" dialogs when updating an entity in studio a second time

handlebars

  • use different cache key for async handlebars

localization

  • support localization with nested objects

pdf-utils

  • initial support of the pdf/ua

docx

  • fix data access to @root data variables
  • fix handling of heading titles that dont have prefix (style ids that use just numbers, like the case when docx is generated when chinese is the default language)
  • docxRaw support to get xml from inline string in docx
  • docxImage add support for fallbackSrc, failurePlaceholderAction options
  • add support for svg images in docxImage
  • allow docxChild handlebars content to be evaluated as part of the caller document

pptx

  • add pptxStyle support
  • add pptxChart support

4.1.0

05 Oct 21:14
Compare
Choose a tag to compare

highlights of updates

general updates

  • optimizations to studio when working with a large number of entities
  • fix store methods to avoid unexpected mutations
  • office recipes (docx, pptx, xlsx) support handlebars partials and NUL, VERTICAL TAB characters are normalized (invalid xml characters)
  • fixes for xlsx nested loops and normalize data when it contains characters that are xml entities
  • fix import issue when exporting a folder and trying to import it back inside the same folder
  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases
  • the default chrome that comes with jsreport and the chrome versions installed in docker were updated to use Chrome 117

core

  • fix parameter mutations passed to store methods producing unexpected changes in store

studio

  • fix deleting entity inside a folder does not refresh EntityTree
  • multiple optimizations for studio when working with a large number of entities

tags

  • updates to make possible the optimizations for studio

fs-store

  • fix parameter mutations passed to store methods producing unexpected changes in store
  • add indexes to fs store to improve big import performance
  • fix too many open files open error on windows with big import

xlsx

  • fix nested loops with closing tags on single line
  • fix xlsxChart not working when copy/paste charts found
  • fix xml/html entities encode
  • make handlebars partials to work

pdf-utils

  • fix hyperlinks not working when adding password to pdf

docx

  • remove NUL, VERTICAL TAB characters

pptx

  • make handlebars partials to work
  • remove NUL, VERTICAL TAB characters

import-export

  • fix issues when importing an export that contain folder (and nested entities) inside the same folder

4.0.0

01 Sep 17:46
Compare
Choose a tag to compare

highlights of updates

general updates

  • the sandbox, the main component jsreport uses for evaluating potentially unsafe user code for secure installations (servers using trustUserCode: false or not using an explicit value for it in the configuration) is now using Secure Ecmascript in favor of vm2 (which is now insecure and deprecated). see the blog post for the full details about this change
  • add support for creating multiple admin users
  • add initial optimizations to studio when working with a large number of entities
  • xlsx generation phase improvements to formulas and working with references to cells from different sheets
  • the deprecated xlsxTemplates entitySet is now removed, also options migrateXlsxTemplatesToAssets, migrateResourcesToAssets for old migrations are also removed
  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases
  • the default chrome that comes with jsreport and the chrome versions installed in docker were updated to use Chrome 116
  • minimal node.js version required to run jsreport and extensions is now 18.15.0

core

  • remove old migration options migrateXlsxTemplatesToAssets, migrateResourcesToAssets
  • sandbox now uses SES instead of vm2 for evaluating user code

studio

  • initial optimizations when working with a large number of entities
  • update build dependencies (monaco-editor, babel, webpack)
  • avoid http basic authentication error dialog when authorization errors happen from studio actions

express

  • avoid http basic authentication error dialog when authorization errors happen from studio actions

npm

  • fix text in validation error

freeze

  • cache freeze option for single request to improve import performance

localization

  • cache localization calls to improve performance

authentication

  • avoid http basic authentication error dialog when authorization errors happen from studio actions
  • add support for multi admin users

authorization

  • add support for multi admin users

xlsx

  • remove deprecated xlsxTemplates entity set
  • xlsx generation improvements when working with formulas
  • xlsx generation should not throw error when formula's cell ref point to different sheet
  • fix for calcChain generation when using loops and formulas in more than one sheet

chrome-pdf

  • update puppeteer to work with chrome 116

docx

  • fix docxHtml should not normalize space of elements that have siblings in the content

3.13.0

16 Jun 17:05
Compare
Choose a tag to compare

highlights of updates

general updates

  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases
  • the default chrome that comes with jsreport and the chrome versions installed in docker were updated to use Chrome 114
  • node.js version was updated to 18.16 for docker images

html-to-xlsx

  • fix passing chrome launchOptions to chrome-page-eval

chrome-pdf

  • empty values '' for pdf width, height and other options throw errors on recent versions of puppeteer, we now normalize options and don't pass empty values
  • set explicit launchOptions.headless: old to avoid warnings, for now we use the old headless mode until the new mode gets stable

3.12.0

08 Jun 21:27
Compare
Choose a tag to compare

highlights of updates

general updates

  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases
  • improve memory usage when receiving lot of requests that require external modules
  • npm require now supports scoped modules @packageName/module and sub paths module/subpath
  • xlsx now supports multi-row loops and nested loops
  • docx improvement to support conditional table cells and async image src

core

  • render requests are now rotated across not busy workers but considering its last usage too
  • require in sandbox now uses a custom require implementation that takes care of isolate module resolving and that uses our own cache (different to built in require.cache) to avoid using a lot of memory when there are a lot of requests. if module isolation is not needed (because user can trust the templates) then it can be disabled by using sandbox.isolateModules: false

studio

  • remove title (the one that appears when you put mouse over it for some seconds) of log messages, to prevent them showing when trying to read the log and scrolling

browser-client

  • fix url normalization. it was breaking playground serverUrl

assets

  • fix resolving assets as links

components

  • fix components cache

npm

  • allow jsreport.npm.require to require sub paths await jsreport.npm.require('yargs@17.7.2/package.json')
  • allow jsreport.npm.require to require @ scoped packages

xlsx

  • add support for nested loops (row/block loops nested)
  • remove VERTICAL TAB character (\u000b) and prevent bad xml to be generated
  • improve performance (and prevent hang) by not using regexp for the auto detect content feature
  • cells outside of loop should not access data from loop
  • add support for block loop (loop that repeats cells across multiple rows)

docx

  • fix table cells not being well-formed when user uses conditions (#if) across table rows and cells
  • support setting docxImage src from async result

3.11.3

21 Apr 22:11
Compare
Choose a tag to compare

highlights of updates

general updates

  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases

core

  • update deps to fix security issue
  • automatically disable full profiling after some time to avoid performance degradation
  • improvements to full profile serialization (prevent blocking)
  • fix profiles cleaning and calculate timeout in beforeRender

studio

  • show full profile duration limit on profile UI

docx

  • fix docx rendering with handlebars partials

3.11.2

05 Apr 17:48
Compare
Choose a tag to compare

highlights of updates

general updates

  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases

core

  • add options.onReqReady to be able to receive the parsed req values

express

  • postpone setting http response timeout until the req.options.timeout is parsed

3.11.1

03 Apr 17:57
Compare
Choose a tag to compare

highlights of updates

general updates

  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases

core

  • fix error when trying to read req.options on reporter main code when enableRequestReportTimeout is enabled

3.11.0

24 Mar 23:16
Compare
Choose a tag to compare

highlights of updates

general updates

  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases
  • add support for <img>, <table> tags in docxHtml helper
  • fixes and improvements to render profiles
  • improve the support of external pdfs when working with pdf-utils

core

  • log when worker returns bad res.content
  • fix profiler leaks
  • remove settings sync API and avoid loading all items to memory
  • throw weak error when validating duplicated entity
  • ensure we end with profiles with error state when there is server or req timeout

studio

  • throw error when opening an orphan profile

express

  • add support for odata ne operator

scripts

  • fix issue with beforeRender/afterRender scripts not being able to merge/replace existing buffers

localization

  • use old req.options.language when req.template.localization is empty

pdf-utils

  • improve the support for parsing and working with external pdfs
  • support new option appendAfterPageNumber in jsreport-proxy pdfUtils.append to allowing appending new pages starting at specific index

docx

  • fix template.docx.templateAsset from payload not overwriting the template.docx.templateAssetShortid
  • fix parsing of end of if and start of another if in same line
  • add support for table tag in docxHtml helper
  • add support for img tag in docxHtml helper

3.10.0

09 Jan 22:02
Compare
Choose a tag to compare

highlights of updates

general updates

  • all extensions dependencies were updated to ensure that we don't use vulnerable packages, so npm audit now reports 0 vulnerabilities in most cases
  • text search across entities content was added to the studio
  • improvements to pdf utils (support copy outlines when doing merge/append, add studio UI to handle pdfMeta custom metadata)
  • component helper now supports propagating hash parameters to component data
  • fixes for xlsx and pptx

core

  • mainReporter.executeWorkerAction now supports cancellation with AbortController.signal
  • add support for specifying what are the main document properties of templates entitySet

studio

  • add support for text search across entities content
  • closing a main editor tab now also closes all dependant tabs (like pdf utils, chrome header/footer)
  • .openTab method now supports opening dependant editor tabs (like chrome header/footer tabs) with the option docProp
  • define /studio/hierarchyMove api endpoint as post route explicitly

data

  • add support for specifying what are the main document properties of data entitySet

express

  • update deps to fix npm audit

assets

  • add support for specifying what are the main document properties of assets entitySet

scripts

  • add support for specifying what are the main document properties of scripts entitySet

components

  • component helper hash data is not propagated/merged to component data
  • add support for specifying what are the main document properties of components entitySet

xlsx

  • add support for specifying what are the main document properties of xlsxTemplates entitySet
  • do not fail parsing cell found with error and no formula definition found

chrome-pdf

  • use Studio.openTab with docProp option to open chrome header/footer tabs

pdf-utils

  • support copy outlines when doing merge/append
  • add studio UI to handle pdfMeta custom metadata
  • fix typo in definition of sandbox hidden property

pptx

  • fix pptxSlides issues with updates after xmldom dep update