- Run
file.download
after storing file in Firebase Storage bucket to get the download URL. #30
- Fix generated event channels not matching with the plugins defined channels. #27
- Convert all string booleans
"true"
/"false"
or"yes"
/"no"
in JSON objects to actual booleans. #26 - Add
returnPdfInResponse
POST parameter for HTTP version to overrideRETURN_PDF_IN_RESPONSE
extension parameter. - Add stored location of the PDF file to the even payload. #23
- Migrate from
GET
method with query string toPOST
method with JSON payload. #19 - Only accept
POST
method. - Only accept
application/json
content type. - Add both
method
andbody
to theerrorHandler.context
. - Update documents.
- Add
outputStoragePrefix
GET parameter for http-pdf-generator. #18 - Add
outputStoragePrefix
key in_pdfplum_config
parameters of firestore-pdf-generator. #18 - Add
OUTPUT_STORAGE_PREFIX
extension parameter. #18
- Add
outputStorageBucket
GET parameter for http-pdf-generator. #18 - Add
outputStorageBucket
key in_pdfplum_config
parameters of firestore-pdf-generator. #18
- Rename
availableMemoryMB
toavailableMemoryMb
#14
- Fix minor issues in
POSTINSTALL.md
files #13
- Remove function parameters as Firebase now handles these parameters itself.
- Fix URLs in the documents.
- Update the README.md file's contribution section.
- Listen to
document.write
instead ofdocument.create
so that the extension is triggered both with document creations as wells as document modifications.
- Read
_pdfplum_config
key of Firestore documents in firestore-pdf-generator. #10 - List parameters provided by
_pdfplum_config
inPARAMETERS.md
. - Move GET parameters and extension parameters to
PARAMETERS.md
. - Improve documents (fix some invalid links, etc).
- The name of the root directory inside the ZIP file containing
index.html
is no longer needed to match with the filename of the ZIP file.
- Fix the value of
main
entry in package.json. #8
- Update NPM packages to their latest versions.
- Update
PREINSTALL.md
files. - Fix typo in
wget
sample inhttp-pdf-generator/POSTINSTALL.md
. #7
- Remove parameters section from
PREINSTALL.md
files. - Add billing section to
PREINSTALL.md
files. - Shorten extension names.
- Revise and enhance documentation content.
- Upgrade
publish
andupdate:docs
scripts to put the generatedCHANGELOG.md
of the extensions in the repository. Previously they were just added to the published bundle. - Add tags to
extension.yaml
. - Temporarily copy
lib
fromcommon-stuff
to each extension's directory as firebase needs it in the automatic publish procedure. - Update npm libraries to their latest versions (including updating TypeScript to version 5.0.4).
- Improve publish script to provide
--repo
,--root
and--ref
options to firebase cli.
- Resize icons to better fit in the icon circle
- Add icons to extension.yaml files
- New icon
- Add icons to the published extension bundle
- Add icons
- Fine tune yaml linter settings
- Rename function names from
executePdfGeneratorHttp
andexecutePdfGeneratorFirestore
toexecutePdfGenerator
- Downgrade Puppeteer to
^18
again as version 19 still has problems with Google Cloud functions.
- Workaround for an issue in Puppeteer not being able to reach the downloaded binary.
- Move
module-alias
from development dependency to production dependency as it is needed in production environment.
- Make
firestore-pdf-generator
extension parameterFIRESTORE_COLLECTION
a mandatory parameter. CHANGELOG.md
has<!--subject:<EXTENSION_ID>-->
comments in front of each version entry to determine which extensions each entry applies to.update:versions
will update the version of each extension to the latest version inCHANGELOG.md
that applies to that particular extension.publish
will put a filtered version ofCHANGELOG.md
in each extension before publishing. This filtered version only contains entries relevant to that particular extension.- Clean extensions' build directory before building them to avoid unused compiled files in the publishing bundle.
- Separate the extension into two extensions
firestore-pdf-generator
andhttp-pdf-generator
. - Update documents accordingly.
- Avoid duplicated code by extracting common parts in two extensions and putting them in
common-stuff/
directory. - Add
datastore.user
role and reducestorage.admin
tostorage.objectAdmin
.
- Remove "Update security rules" section from
POSTINSTALL.md
as after usingstorage.admin
role for the extension it is no longer required to set security rules.
- Fix dropping last part of template prefix when extracting it from
templatePath
parameter which caused the extension to try to download the template from a wrong url.
- Add
storage.admin
role to extension so that it can work with private Firebase Storage buckets. - Rename the extension from
pdfplum/pdfplum
topdfplum/pdf-generator
to match Firebase extensions naming pattern. - Use
firebase-admin/storage
to directly download the file content instead of first getting its url and thenfetch
ing it.
- Downgrade Puppeteer to
^18
to workaround issue as suggested in its comments.
- Workaround for an issue in Puppeteer not being able to reach the downloaded binary.
- Update Puppeteer to version
19.6.3
. - Move Puppeteer cache to
__dirname
.
- Add
--open-pdf
option torun
script, if not provided, PDF file won't be opened after being generated.
- Drop dashes in the extension name and repository name
pdf-plum
->pdfplum
.
- Add
networkIdleTime
(milliseconds) GET parameter. PDFPlum will only start rendering the PDF file, as soon as the specified duration passes without any network activity.
- Rename the extension to pdfplum.
- Add link to the website.
package.json
script entriesdev:run
anddev:run:headful
to run the extension for a template provided as the argument.- Update docs
- New usage: run function when
document.create
event of Firestore is triggered. - Add "invoice-1" template sample.
- Add handlebars helpers provided by handlebars-helpers for
array
,collection
,comparison
,date
,math
,number
string
andurl
. - Add
run.js
script to make testing template samples easier by running the feedback loop faster. - Change
true
/false
extension variable values toyes
/no
. - Add a script to generate extension variables section of
PREINSTALL.md
document (it used to be written manually) so that it can be used in git precommit hooks. - Add a script to update all template samples ZIP files and PDF files so that it can be used in git precommit hooks.
- Add GET parameters of each template sample as JSON data in a file with the same name as the template sample with
.json
extension.
- Log all console messages and errors reported by Puppeteer.
- Remove "basic-example" and add "demo" template sample instead. This new template sample better shows different features of the extension and is expected to get updated with the new features coming in the future.
- Avoid http requests time out and return http response with status code 404. Instead when a resource is not available in the bundle.
- Move usage section from
README.md
toPREINSTALL.md
. - Add sample curl request to
POSTINSTALL.md
. - Add demo section in
PREINSTALL.md
.
- Setup testing infrastructure. (
jest
, setting up environment, etc) (Darren Ackers - PR) - Configure GitHub actions for the repository.
- Bugfix:
json
handlebars helper was returning urlencoded version of the json string. It is now marked as safe string and is returning something that can be consumed in JavaScript.
- Add
shouldWaitForIsReady
in GET parameters. Setting this parameter will cause the function to wait forwindow.isReady
to be set to true before rendering the PDF.
- Format documentation markdown files in the repository using Prettier.
- Add
json
helper to handlebars so that data can be passed through js script in tags in template files as JSON. reference
- Drop 512MB option for
FUNCTION_MEMORY
parameter. - Add links to parameters documentation and sample invocations in
POSTINSTALL.md
. - Format documentation markdown files in the repository using remark.
- Improve documentation (Darren Ackers - PR)
- Change boolean extension parameters values to yes/no instead of true/false (Darren Ackers - PR)
- Update regular expression of
TEMPLATE_PATH
to allow zip extensions for template paths (Darren Ackers - PR) - Set actual version number in package.json (instead of
<VERSION>
placeholder) and check if it matches with CHANGELOG.md version instead of setting it in publish script. This is to help local development where a placeholder version in package.json makes initial setup inconvenient. - Update regular expression of
TEMPLATE_PATH
to allow nested paths.
- Fix for when
OUTPUT_STORAGE_BUCKET
is not set and yet the extension tries to save the PDF to Firebase Storage.
- Merge
TEMPLATE_STORAGE_BUCKET
andTEMPLATE_ID
intoTEMPLATE_PATH
.
- Apply markdown validation on markdown files using remark.
- Set actual version number in extension.yaml (instead of
<VERSION>
placeholder) and check if it matches with CHANGELOG.md version instead of setting it in publish script. This is to help local development where a version number is needed in extension.yaml file. - Fix links in markdown files
- Provide instructions for settings storage rules.
- Add default value for Firebase Storage bucket names and template id in extension parameters.
- Allow both "template-id.zip" and "template-id" (with and without ".zip" extension) values for TEMPLATE_ID parameter.
- Fixed FUNCTION_TIMEOUT's regular expression to only allow values less than or equal 540.
- Add
admin.initializeApp()
before initializing event arc channel. - Remove
console.log
s
- Add events for when the PDF generation finishes, one for when it finishes successfully and another for when an error occurs.
- Minor cleanup
- Add a markdown template example so that everyone can easily copy it and put their own markdown in case they prefer Markdown over HTML/CSS.
- Add
adjustHeightToFit
to automatically set the page height to the height of content so that everything can fit in a single page. Useful for generating single page PDF files. - Introduce
chromiumPdfOptions
in GET parameters to control the PDF generation. Options described here. - Instead of providing template values directly in GET parameters, now they should be provided as keys of
data
GET parameter. _
prefix is eliminated for all GET parameters.- Add detailed installation and usage instructions in
README.md
.
- Update documents
- Install Puppeteer for local test
- Use chrome-aws-lambda instead of Puppeteer to improve performance
- Make most parameters mutable
- Add
FUNCTION_TIMEOUT
parameter - Add
FUNCTION_MEMORY
parameter - Add
LOCATION
parameter - Add fetch polyfill to support NodeJS 16 runtime
- Add description for parameters
- Provide sample templates in the repository.
- Organize code structure.
- Accept Microsoft Office Template files (dotx, potx and xltx) as input.
- Initial release. Supports templating via Google Docs Editors documents and Microsoft Office documents and exports to PDF.