Skip to content

Releases: jsreport/jsreport

4.11.0

26 Nov 22:34

Choose a tag to compare

highlights of updates

general updates

  • we currently don't provide compiled binaries for the latest release, we will try to bring back the compiled versions in the next release
  • pdf-utils: updates to comply with pdf/UA after changes in pdfs shapes generated by latest chrome
  • authorization: add option to control if insert is allowed in the root for users with no explicit permissions
  • html-to-xlsx: fix support for more colspan/rowspan based layouts
  • docx: docxChild can now merge images, new helper docxRemove, docxStyle can modify shapes properties and docxImage now reads exif orientation metadata to apply defaults
  • minimum node.js version is now 22.18
  • update Chrome to 142.0.7444.175
  • all extensions dependencies were updated to ensure that we do our best to not use vulnerable packages, npm audit may or may not report 0 vulnerabilities in most cases

schema changes

(none)

core

  • expose version to the jsreport-proxy

components

  • studio: highlight components in template source and allow ctrl+click to open them

authorization

  • add option to control if insert is allowed in the root for users with no explicit permissions

html-to-xlsx

  • better error for invalid base xlsx template
  • fix support for more colspan/rowspan based layouts

pdf-utils

  • use native js implementation for images compression to support aws lambda
  • adapt pdfjs and pdf/UA for the latest shape of pdfs in chrome

version-control

  • add concurrency limit to tasks that work with multiple items to avoid hitting max database connections

docx

  • add support for docxChild to merge images
  • modify shapes properties with docxStyle
  • fix TOC processing on specific template
  • read exif orientation metadata of images used in docxImage for default display
  • fix generating broken document when same image is used in different footers
  • add new helper docxRemove to allow removing content

import-export

  • fix visibilityPermissions not getting preserved after import

4.10.1

13 Aug 22:55

Choose a tag to compare

📢 The >=4.10.0 includes updated Chromium 138 that changed the CSS flexbox calculations. This has effect on CSS you typically use to position PDF footers. Check the following for the forum topic details.

highlights of updates

general updates

  • add guided autofix for the flexbox change in chromium 138 (introduced in jsreport 4.10.0)
  • express: fix trying to write on http response when client abort the request early
  • html-to-xlsx: fix rowspan/colspan based layout not working
  • pdf-utils: adapt to work with uncompressed content streams produced by latest chromium
  • all extensions dependencies were updated to ensure that we do our best to not use vulnerable packages, npm audit may or may not report 0 vulnerabilities in most cases
  • the default chrome that comes with jsreport and the chrome versions installed in docker : Chrome 138

schema changes

(none)

express

  • dont visit common error handler when response streaming fails, end immediately

html-to-xlsx

  • fix rowspan/colspan based layout not working

xlsx

  • xlsxCType helper normalize input "s" type to internal "inlineStr"

pdf-utils

  • reflect and add guided autofix for the chromium 138 flexbox change
  • adapt to work with uncompressed content streams produced by latest chromium

sample-template

  • update style in Orders sample needed to work after the Chromium 138 update

4.10.0

24 Jul 18:35

Choose a tag to compare

📢 The 4.10.0 includes updated Chromium 138 that changed the CSS flexbox calculations. This has effect on CSS you typically use to position PDF footers. Check the following for the forum topic details.

highlights of updates

general updates

  • docx: make document with section breaks to work properly with conditional content
  • html-to-xlsx: fix regression in table borders when colspan is used, fix xlsx viewer clipping content
  • xlsx: support for generating dynamic cells in a loop (vertically and horizontally), preserve rich text in cell, support for setting explicit cell type, fix xlsx viewer clipping content
  • pdf-utils: add support for pdf compression
  • all extensions dependencies were updated to ensure that we do our best to not use vulnerable packages, npm audit may or may not report 0 vulnerabilities in most cases
  • the default chrome that comes with jsreport and the chrome versions installed in docker were updated to use Chrome 138

schema changes

added columns
jsreport_TemplateType.pdfCompression_enabled as boolean
jsreport_TemplateType.pdfCompression_jpegQuality as decimal
jsreport_TemplateType.pdfCompression_removeAccessibility as boolean
jsreport_TemplateType.pdfCompression_useObjectStreams as boolean
jsreport_TemplateType.pdfCompression_recompressStreams as boolean
jsreport_TemplateType.pdfCompression_convertImagesToJpeg as boolean
jsreport_TemplateType.pdfCompression_removeEffects as boolean

npm

  • use fs based lockfile to avoid parallel npm install

reports

  • fix logging

html-to-xlsx

  • fix regression in table borders for specific colspan layout
  • fix xlsx viewer clipping content. generate empty cell (no child <v>) if cell does not have value

xlsx

  • fix xlsx viewer clipping content. generate empty cell (no child <v>) if handlebars returns empty value
  • support for generating dynamic cells in a loop
  • support for preserving rich text in cell
  • support for setting explicit cell type

chrome-pdf

  • allow to use default docker image without extra flags

pdf-utils

  • add support for pdf compression

docx

  • make document with section breaks to work properly with conditional content
  • fix block_helper_container recognition not working for single block that start and end in single text nodes

4.9.0

07 May 23:38

Choose a tag to compare

highlights of updates

general updates

  • docx: add support for using a custom loader function to load images (for docxHtml, docxImage helpers) to get the images from a custom implementation but without loading all images in memory, support for getting content and inline parameters from async execution, fix some regressions when conditional blocks were used in the docx template
  • chrome: add chromeResourceWithTimeout helper to load resources with a custom timeout and prevent non-critical resources to make the render to fail, add new strategy connect to use a remote chrome for rendering
  • xlsx: fix using string literals in handlebars helper calls
  • reports: fix async reports handling when user group is logged in
  • all extensions dependencies were updated to ensure that we do our best to not use vulnerable packages, npm audit may or may not report 0 vulnerabilities in most cases
  • the default chrome that comes with jsreport and the chrome versions installed in docker were updated to use Chrome 136

schema changes

none

core

  • expose methods to create temporary files in jsreport-proxy
  • add support for taking nested errors from error.cause
  • add worker id to worker creation

studio

  • migrate from Enzyme to @testing-library/react to fix running tests

reports

  • fix async reports handling when user group is logged in

xlsx

  • dont remove xmlns from elements
  • fix passing strings as values to handlebars helpers

chrome-pdf

  • implement chrome connect strategy
  • add resources timeout for chrome

cli

  • print nested errors from error.cause

docx

  • docxHtml images now supports passing a custom loader function to allow a custom method to fetch images without loading all images in memory.
  • docxImage now supports using a loader function for src, fallbackSrc to allow a custom method to fetch images without loading all images in memory.
  • docxHtml support for getting content and inline parameters from async execution
  • fix regression when multiple docxTable are used with docxHtml content
  • dont remove xmlns from elements
  • refactor some internals to fix break dynamic templates that use conditional html calls
  • improve error message when there is handlebars syntax issues in the docx template
  • fix case with template with multiple docxHtml calls and conditionals producing broken document

4.8.0

28 Feb 19:22

Choose a tag to compare

highlights of updates

general updates

  • file system store operations were optimized for big workspaces
  • sql and mongo stores now create indexes during schema creation (speeding queries)
  • html-to-xlsx: support for vertical text, border styles are now normalized according to html table border collapsing rules
  • docx: fix regression in docxImage when reading jpg with CMYK color code, fix lists numbering, fix border left normalization, support for <colgroup>, <col> tags in table, and col width customization
  • xlsx: vertical loop complete support with formulas
  • pptx: support for col width customization
  • you can now cancel render request from profiler page in studio
  • all extensions dependencies were updated to ensure that we do our best to not use vulnerable packages, npm audit may or may not report 0 vulnerabilities in most cases
  • the default chrome that comes with jsreport and the chrome versions installed in docker were updated to use Chrome 133

schema changes

  • added column jsreport_ReportType.meta as string

core

  • optimize fs store operations for big workspaces
  • reimplement and optimize fs transactions
  • fix async reports with mongo store
  • create store indexes during schema creation fix
  • implement canceling requests from profiler

studio

  • implement canceling requests from profiler
  • add duration column to the profiler page

express

  • propagate res.meta.headers to the Location responses
  • implement canceling requests from profiler

scripts

  • modify script entity type to support creating store indexes

reports

  • propagate res.meta.headers to the Location responses

authentication

  • fix login of non admin user in sql based stores

fs-store

  • remove external sync modifications code based on old transactions model
  • optimizations for big workspaces
  • reimplement and optimize fs transactions

authorization

  • create store indexes during schema creation
  • fix inconsistency between permissions check for insert into folder when logged in as normal and user as group (from SSO)

scheduling

  • update cron-parser dep to support nth weekday of month like 0 0 * * 1#1
  • create store indexes during schema creation
  • implement canceling requests from profiler

html-to-xlsx

  • fix htmlToXlsxEachRows not working with using empty array as data
  • support for vertical text (transform: rotate() to rotate text at certain angles, using together writing-mode and text-orientation)
  • border styles now are normalized according to html table border collapsing rules

xlsx

  • vertical loop complete support test cases with formulas

chrome-pdf

  • set chrome protocolTimeout based on reportTimeout

cli

  • add graceful shutdown to the server.js

pdf-utils

  • support chrome 133 generated structures
  • improve perf processSMask pdfA
  • copy aria tags for chrome 131 generated pdfs

version-control

  • move not so much used "commits" button to the settings toolbar
  • add clear all commits button

sample-template

  • fix demo chart

docx

  • fix regression in docxImage when reading jpg with CMYK color code
  • docxHtml: fix lists numbering not getting generated properly when there is more than one docxhtml call
  • docxHtml support for <colgroup>, <col> tags in table
  • fix docxHtml border left normalization
  • fix docxHtml condition for possible null value
  • docxTable support col width customization

pptx

  • pptxTable support col width customization

4.7.0

29 Oct 20:46

Choose a tag to compare

highlights of updates

general updates

  • blobStorage now support saving reports bigger than 1gb,
  • support for using a custom favicon in studio
  • assets now support a new encoding buffer to work better with binary data in scripts/helpers
  • pdf-utils now supports working with more cases of external pdf files
  • xlsx: add vertical loop support to generation step (beta), fix for loop with handlebars block parameters
  • docx: add docxObject helper to allow embedding docx file into another docx, docxHtml ol lists now support the start attribute, fix docxStyle working with tables
  • all extensions dependencies were updated to ensure that we do our best to not use vulnerable packages, npm audit may or may not report 0 vulnerabilities in most cases
  • the default chrome that comes with jsreport and the chrome versions installed in docker were updated to use Chrome 127

core

  • fix blobStorage failing to save reports bigger than 1gb
  • decrease default value of options.profile.maxDiffSize to 10mb
  • fix logs metadata for main logs
  • fix support for using of async helper that returns a value other than string in template engines
  • improve support for jsreport.templateEngines.waitForAsyncHelpers when used in async helper

studio

  • add option favicon (path to a file) to allow changing the favicon used in studio
  • fix firefox bug triggering click event after mouseup event caused by user selecting text
  • fix middle click to close tab not working on firefox

assets

  • add support for encoding buffer (handy when working in scripts/helpers that work directly with binary data)

authorization

  • fix visibilityPermissions permission on folder not preserved if changes are made to grandchildren folders

xlsx

  • generation step: add vertical loop support as beta
  • fix generation step not working when the using loop with block parameters
  • fix using folder scoped asset helpers in xlsx generation

pdf-utils

  • improve manipulation support for more cases of external pdf files

docx

  • docxHtml ol lists now support the start attribute
  • fix docxStyle working with tables
  • add docxObject helper to allow embedding docx file into another docx

4.6.0

13 Aug 19:07

Choose a tag to compare

highlights of updates

general updates

  • fix chrome-pdf hanging on Windows
  • fix regression with users with "allow read all entities" option set not working
  • xlsx: performance improvements when processing templates with lots of cells
  • docx: table cell support for vertical-align style, fix error when having a div as sibling of two inline elements
  • all extensions dependencies were updated to ensure that we do our best to not use vulnerable packages, npm audit may or may not report 0 vulnerabilities in most cases
  • the default chrome that comes with jsreport and the chrome versions installed in docker were updated to use Chrome 127

core

  • fix timestamp shown in logging

text

  • fix typo in label content disposition

authentication

  • fix regression with user with "allow read all entities" not working
  • update passport to 0.7.0 and fix npm audit

xlsx

  • keep existing dimension when appropriate
  • fix escaping issue in formulas
  • optimization for autofit cols and cell type auto detection helpers
  • performance improvement for templates with lots of cells in calcChain (using lot of formulas)

docx

  • docxHtml table cell support for vertical-align style
  • fix docxHtml throwing error when table have a div as sibling with two inline elements
  • usage of Handlebars.createFrame should inherit existing data to ensure it correctly propagates existing values

pptx

  • usage of Handlebars.createFrame should inherit existing data to ensure it correctly propagates existing values

4.5.0

19 Jun 00:06

Choose a tag to compare

highlights of updates

general updates

  • docx: docxHtml now supports generating nested tables, and table, row and cells support setting background color and color styles
  • pptx: pptx now supports dynamic rows and columns generation, and hyperlinks in loop
  • docx, pptx: improve compatibility with target urls from template document being stored as string that is encoded multiple times
  • import-export: export performance improved
  • improve queuing and responsiveness of workers for async reports requests
  • fix require('..') and require('.') in sandbox
  • fix component rendering in loop with async helpers
  • 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 126

core

  • trigger async report using header to avoid allocating worker
  • fix require('..') and require('.') in sandbox
  • fix component rendering in loop with async work on helpers
  • update @jsreport/ses to 1.1.0

express

  • trigger async report using header to avoid allocating worker

components

  • fix component rendering in loop with async helpers

reports

  • trigger async report using header to avoid allocating worker

docx

  • use decodeURIComponentRecursive helper to handle better different cases of MS Programs storing target urls encoded multiple times
  • docxHtml: add support for generating nested tables
  • docxHtml: support for table, row, cell background color and color styles

pptx

  • support for dynamic rows, columns generation
  • add support for hyperlinks in loop
  • use decodeURIComponentRecursive helper to handle better different cases of MS Programs storing encoding target urls

import-export

  • make export to not commit transaction to improve performance in stores

4.4.0

20 May 18:33

Choose a tag to compare

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

28 Mar 17:51

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 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