Jsreport Versions Save

javascript based business reporting platform :rocket:

4.4.0

1 week ago

highlights of updates

general updates

  • docx: docxHtml support for padding, margin and border for table and cells, docxStyle can now be used in loops
  • pdf-utils: improve support for external pdfs
  • authenticated logged user can now be accessed in sandbox using req.context.user
  • fixes for component recursive rendering
  • fix set res.meta.fileExtension without starting . in office related extensions
  • 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 waitForAsyncHelper, waitForAsyncHelpers not working with trustUserCode: true
  • expose safe properties of req.context.user in sandbox
  • fix component execution when wrapped with async helper
  • fix jsdom require in sandbox

studio

  • fix getting studio preview as dark theme when using light theme

components

  • fix recursive components async rendering when wrapped in async helper

authentication

  • expose safe properties of req.context.user in sandbox

docx

  • add support for using docxStyle in loop
  • docxHtml: fix icon used in third level of lists and don't break when rendering list with level greater than max level (9)
  • improve error message when fetching images, include url to image in the message
  • docxHtml: add padding, margin support for cells
  • docxHtml: add border support for table, cell
  • docxHtml: fix rendering multiple paragraphs in single cell

pdf-utils

  • stop using pdfjs-dist for test parsing and use our implementation
  • support external pdf with missing EOL after endstream improve merging pdf outlines

4.3.1

2 months ago

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 recursive component rendering

reports

  • fix url in the async response text

fs-store

  • fix bug with transactions that takes long and locks

cli

  • dont use console.error(e.stack) and just console.error(e) to avoid loosing e.cause inner error

docx

  • docxHtml: fix title and list not working when having a wrapping <p> tag

express

  • update express, body-parser to fix npm audit

authentication

  • update express, body-parser to fix npm audit

4.3.0

2 months ago

highlights of updates

general updates

 

  • internal architecture changes to support working with streams, that in future will allow producing and handling more bigger reports 
  • extensions were updated to support the changes in the architecture
  • docx: docxImage optimization for remote images and support for customizing bookmark of images, docxHtml fix ul/li order, docxStyle can now target paragraph, cell, row which allows giving background styles for table cells
  • pptx: fix render when using pptxSlides with one item array
  • pdf-utils: support for merging/appending pdf with outlines
  • performance optimizations for xlsx, html-to-xlsx recipes
  • 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 122

core

  • add jsreport.templatingEngines.createStream api to allow creating content from engines (like handlebars) as a stream which allows creating big content without getting out of memory errors
  • the internal architecture has been updated to support working with template content and report output as streams, this means that the render will be able to handle and produce bigger reports without getting hit by out of memory errors

licensing

  • dont log failed usage check

html-to-xlsx

  • performance optimizations

xlsx

  • performance optimizations
  • remove the xlsxColAutofit comment also if there is no more text in the comment
  • fix concat tags logic in some cases
  • fix xlsx with formulas stored with ' string delimiters

chrome-pdf

  • save generated pdf chrome as file streams to avoid keeping whole pdf in memory

pdf-utils

  • support merging/appending pdf with outlines

docx

  • add support for docxStyle to target paragraph, cell, row so styles can be applied to container instead of just text
  • docxHtml: fix case when nested ul/li not rendering in the correct order
  • allow customizing bookmark of docxImage and general normalization of bookmarks
  • fix concat tags logic
  • optimization when rending a lot of remote images
  • internal changes to support new response.output api

pptx

  • fix concat tags logic
  • fix can not render report using pptxSlides with one item array
  • throw better error when pptxSlides is used as a block helper call
  • internal changes to support new response.output api

4.2.0

5 months ago

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

7 months ago

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

9 months ago

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

11 months ago

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

11 months ago

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('[email protected]/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

1 year ago

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

1 year ago

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