diff --git a/lib/moduleEncoding.js b/lib/moduleEncoding.js index 11665f5..c26c566 100644 --- a/lib/moduleEncoding.js +++ b/lib/moduleEncoding.js @@ -1682,13 +1682,14 @@ async function createProtectedModule(module, certificate) { * @param {String|Buffer} snapshot.hash Snapshot hash. Can be a buffer or hex-encoded string. * @param {String|Number} snapshot.updatedAt Snapshot creation time. Can be a string in a format * supported by `Date.parse()` or a numeric timestamp. + * @param {Number} [maxSize=MAX_ENV_SIZE] Maximum allowed size of the resulting module. * @returns {Promise} Asset data. */ -async function encodeEnvVarsAsset(vars, snapshot = undefined) { +async function encodeEnvVarsAsset(vars, snapshot = undefined, maxSize = MAX_ENV_SIZE) { if (!vars || typeof vars !== 'object') { throw new Error('Expected variable values to be an object'); } - if (JSON.stringify(vars).length > MAX_ENV_SIZE) { + if (JSON.stringify(vars).length > maxSize) { throw new Error('Asset exceeds the maximum size'); } for (const [name, val] of Object.entries(vars)) { @@ -1743,9 +1744,10 @@ async function encodeEnvVarsAsset(vars, snapshot = undefined) { * @param {String|Buffer} snapshot.hash Snapshot hash. Can be a buffer or hex-encoded string. * @param {String|Number} snapshot.updatedAt Snapshot creation time. Can be a string in a format * supported by `Date.parse()` or a numeric timestamp. + * @param {Number} [maxSize=MAX_ENV_SIZE] Maximum allowed size of the resulting module. * @returns {Promise} Module binary. */ -async function createEnvVarsAssetModule(vars, snapshot = undefined) { +async function createEnvVarsAssetModule(vars, snapshot = undefined, maxSize = MAX_ENV_SIZE) { let assetData; if (Buffer.isBuffer(vars)) { if (snapshot) { @@ -1753,7 +1755,7 @@ async function createEnvVarsAssetModule(vars, snapshot = undefined) { } assetData = vars; } else { - assetData = await encodeEnvVarsAsset(vars, snapshot); + assetData = await encodeEnvVarsAsset(vars, snapshot, maxSize); } const assetModule = await createAssetModule(assetData, ENV_ASSET_NAME, { diff --git a/package-lock.json b/package-lock.json index 17f5f1a..3a45580 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "binary-version-reader", - "version": "4.0.0", + "version": "4.0.1-rc.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "binary-version-reader", - "version": "4.0.0", + "version": "4.0.1-rc.1", "license": "Apache-2.0", "dependencies": { "@particle/device-os-protobuf": "^2.7.0", diff --git a/package.json b/package.json index 9bff643..f41c7d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "binary-version-reader", - "version": "4.0.0", + "version": "4.0.1-rc.1", "main": "main.js", "license": "Apache-2.0", "engines": {