Skip to content

Releases: Zilero232/gulp-plugins-hub

@zilero/gulp-text-replace@2.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:45
19dba07

Minor Changes

  • #11 27a02d3 Thanks @Zilero232! - Every package now shares one version, and each README is a complete reference: options with types, hooks, source maps, errors, recipes and migration from the popular alternative.

    Factory

    • createPlugin takes extensions (only these extensions, in lowercase, are transformed), binary (refuses files read as UTF-8 text) and dispose (runs once when the stream ends, fails or is destroyed).
    • New helpers: runContentHook (names a hook that returns no text), syncSourceMapFile, createPathMatcher({ patterns, ignoreCase }), isUrl, and the FileHookInput type.
    • applySourceMap({ chain: true }) chains only the source that is the file itself; other sources keep their mappings.
    • isRelativePathInside rejects drive-relative paths such as C:x; parseOptions detects any thenable schema result.

    Plugins

    • Every content hook that returns something other than a string fails with an error naming the option.
    • image-squeezer: PNG output is lossless by default (sharp's effort had turned on palette quantisation); opt in with encoderOptions.png.palette and quality.png. Widths larger than the image are replaced by its real width, so names match the pixels. Asking for the source's own format counts as 'original'. Unknown encoderOptions keys are rejected.
    • asset-revision: robots.txt, favicon.ico, sitemaps, service workers, web manifests and .well-known/** keep their names by default, and files without an extension are never renamed. Two files with the same path from different bases fail with a clear error. Unchanged text files keep their bytes. Renamed files get revOrigPath, revOrigBase and revHash.
    • font-switcher: formats defaults to ['woff2']; two sources writing the same file fail with a clear error.
    • archive-creator: new modifiedTime; entries without a date get a fixed one, so archives are reproducible. A name whose extension contradicts format is rejected.
    • js-squeezer: .mjs is minified as a module unless terserOptions.module is set; empty terser output fails instead of writing an empty file.
    • css-squeezer: new onWarning hook for Lightning CSS warnings.
    • html-squeezer: a source map the file arrives with is dropped, since it no longer matches.
    • scss-compiler: the file's input map is chained into Sass's map; the compiler stops when the stream is destroyed.
    • pug-compiler: file.data (gulp-data, front matter) is merged into the locals, with data winning; skipPartials also skips folders starting with _.
    • conditional: condition also takes a glob, a RegExp or an array of them; a handler that returns no stream fails with a clear error.
    • file-changed: new extra globs (Sass partials, configs) that count as dependencies of every file; a dest that is a file counts as not built.
    • file-concat: inputs with the same name get unique source names, the bundle takes the newest input's stat, and a BOM is stripped from each input.
    • file-exclude: new invert keeps only the matching files.
    • folder-clone: a copy renamed in onClone gets the right source map name; repeated dirs are rejected.
    • refilename: gulp-rename style functions that change parts and return nothing work; unknown keys fail with a hint (basename → stem); prefix and suffix work in function results; directories keep their names.
    • text-replace: replacer results are converted with String() like String.prototype.replace, and undefined fails with a clear error; a header goes after a BOM.

Patch Changes

  • Updated dependencies [27a02d3]:
    • @zilero/gulp-plugin-factory@2.1.0

@zilero/gulp-text-replace@2.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:24
eb3d9cc

Major Changes

  • #5 433e124 Thanks @Zilero232! - Rewrite every package for gulp 5 and Node.js 22.13: ES modules built with tsdown, options validated when the plugin is created, flat hooks that get the file, errors emitted as PluginErrors with the file, and files without contents passed through. See the migration guide: https://zilero232.github.io/gulp-plugins-hub/guide/migration

    New plugins: css-squeezer (Lightning CSS), image-squeezer (sharp), file-concat, text-replace, asset-revision and file-changed.

Patch Changes

  • Updated dependencies [433e124]:
    • @zilero/gulp-plugin-factory@2.0.0

@zilero/gulp-scss-compiler@2.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:45
19dba07

Minor Changes

  • #11 27a02d3 Thanks @Zilero232! - Every package now shares one version, and each README is a complete reference: options with types, hooks, source maps, errors, recipes and migration from the popular alternative.

    Factory

    • createPlugin takes extensions (only these extensions, in lowercase, are transformed), binary (refuses files read as UTF-8 text) and dispose (runs once when the stream ends, fails or is destroyed).
    • New helpers: runContentHook (names a hook that returns no text), syncSourceMapFile, createPathMatcher({ patterns, ignoreCase }), isUrl, and the FileHookInput type.
    • applySourceMap({ chain: true }) chains only the source that is the file itself; other sources keep their mappings.
    • isRelativePathInside rejects drive-relative paths such as C:x; parseOptions detects any thenable schema result.

    Plugins

    • Every content hook that returns something other than a string fails with an error naming the option.
    • image-squeezer: PNG output is lossless by default (sharp's effort had turned on palette quantisation); opt in with encoderOptions.png.palette and quality.png. Widths larger than the image are replaced by its real width, so names match the pixels. Asking for the source's own format counts as 'original'. Unknown encoderOptions keys are rejected.
    • asset-revision: robots.txt, favicon.ico, sitemaps, service workers, web manifests and .well-known/** keep their names by default, and files without an extension are never renamed. Two files with the same path from different bases fail with a clear error. Unchanged text files keep their bytes. Renamed files get revOrigPath, revOrigBase and revHash.
    • font-switcher: formats defaults to ['woff2']; two sources writing the same file fail with a clear error.
    • archive-creator: new modifiedTime; entries without a date get a fixed one, so archives are reproducible. A name whose extension contradicts format is rejected.
    • js-squeezer: .mjs is minified as a module unless terserOptions.module is set; empty terser output fails instead of writing an empty file.
    • css-squeezer: new onWarning hook for Lightning CSS warnings.
    • html-squeezer: a source map the file arrives with is dropped, since it no longer matches.
    • scss-compiler: the file's input map is chained into Sass's map; the compiler stops when the stream is destroyed.
    • pug-compiler: file.data (gulp-data, front matter) is merged into the locals, with data winning; skipPartials also skips folders starting with _.
    • conditional: condition also takes a glob, a RegExp or an array of them; a handler that returns no stream fails with a clear error.
    • file-changed: new extra globs (Sass partials, configs) that count as dependencies of every file; a dest that is a file counts as not built.
    • file-concat: inputs with the same name get unique source names, the bundle takes the newest input's stat, and a BOM is stripped from each input.
    • file-exclude: new invert keeps only the matching files.
    • folder-clone: a copy renamed in onClone gets the right source map name; repeated dirs are rejected.
    • refilename: gulp-rename style functions that change parts and return nothing work; unknown keys fail with a hint (basename → stem); prefix and suffix work in function results; directories keep their names.
    • text-replace: replacer results are converted with String() like String.prototype.replace, and undefined fails with a clear error; a header goes after a BOM.

Patch Changes

  • Updated dependencies [27a02d3]:
    • @zilero/gulp-plugin-factory@2.1.0

@zilero/gulp-scss-compiler@2.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:24
eb3d9cc

Major Changes

  • #5 433e124 Thanks @Zilero232! - Rewrite every package for gulp 5 and Node.js 22.13: ES modules built with tsdown, options validated when the plugin is created, flat hooks that get the file, errors emitted as PluginErrors with the file, and files without contents passed through. See the migration guide: https://zilero232.github.io/gulp-plugins-hub/guide/migration

    New plugins: css-squeezer (Lightning CSS), image-squeezer (sharp), file-concat, text-replace, asset-revision and file-changed.

Patch Changes

  • Updated dependencies [433e124]:
    • @zilero/gulp-plugin-factory@2.0.0

@zilero/gulp-refilename@2.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:45
19dba07

Minor Changes

  • #11 27a02d3 Thanks @Zilero232! - Every package now shares one version, and each README is a complete reference: options with types, hooks, source maps, errors, recipes and migration from the popular alternative.

    Factory

    • createPlugin takes extensions (only these extensions, in lowercase, are transformed), binary (refuses files read as UTF-8 text) and dispose (runs once when the stream ends, fails or is destroyed).
    • New helpers: runContentHook (names a hook that returns no text), syncSourceMapFile, createPathMatcher({ patterns, ignoreCase }), isUrl, and the FileHookInput type.
    • applySourceMap({ chain: true }) chains only the source that is the file itself; other sources keep their mappings.
    • isRelativePathInside rejects drive-relative paths such as C:x; parseOptions detects any thenable schema result.

    Plugins

    • Every content hook that returns something other than a string fails with an error naming the option.
    • image-squeezer: PNG output is lossless by default (sharp's effort had turned on palette quantisation); opt in with encoderOptions.png.palette and quality.png. Widths larger than the image are replaced by its real width, so names match the pixels. Asking for the source's own format counts as 'original'. Unknown encoderOptions keys are rejected.
    • asset-revision: robots.txt, favicon.ico, sitemaps, service workers, web manifests and .well-known/** keep their names by default, and files without an extension are never renamed. Two files with the same path from different bases fail with a clear error. Unchanged text files keep their bytes. Renamed files get revOrigPath, revOrigBase and revHash.
    • font-switcher: formats defaults to ['woff2']; two sources writing the same file fail with a clear error.
    • archive-creator: new modifiedTime; entries without a date get a fixed one, so archives are reproducible. A name whose extension contradicts format is rejected.
    • js-squeezer: .mjs is minified as a module unless terserOptions.module is set; empty terser output fails instead of writing an empty file.
    • css-squeezer: new onWarning hook for Lightning CSS warnings.
    • html-squeezer: a source map the file arrives with is dropped, since it no longer matches.
    • scss-compiler: the file's input map is chained into Sass's map; the compiler stops when the stream is destroyed.
    • pug-compiler: file.data (gulp-data, front matter) is merged into the locals, with data winning; skipPartials also skips folders starting with _.
    • conditional: condition also takes a glob, a RegExp or an array of them; a handler that returns no stream fails with a clear error.
    • file-changed: new extra globs (Sass partials, configs) that count as dependencies of every file; a dest that is a file counts as not built.
    • file-concat: inputs with the same name get unique source names, the bundle takes the newest input's stat, and a BOM is stripped from each input.
    • file-exclude: new invert keeps only the matching files.
    • folder-clone: a copy renamed in onClone gets the right source map name; repeated dirs are rejected.
    • refilename: gulp-rename style functions that change parts and return nothing work; unknown keys fail with a hint (basename → stem); prefix and suffix work in function results; directories keep their names.
    • text-replace: replacer results are converted with String() like String.prototype.replace, and undefined fails with a clear error; a header goes after a BOM.

Patch Changes

  • Updated dependencies [27a02d3]:
    • @zilero/gulp-plugin-factory@2.1.0

@zilero/gulp-refilename@2.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:24
eb3d9cc

Major Changes

  • #5 433e124 Thanks @Zilero232! - Rewrite every package for gulp 5 and Node.js 22.13: ES modules built with tsdown, options validated when the plugin is created, flat hooks that get the file, errors emitted as PluginErrors with the file, and files without contents passed through. See the migration guide: https://zilero232.github.io/gulp-plugins-hub/guide/migration

    New plugins: css-squeezer (Lightning CSS), image-squeezer (sharp), file-concat, text-replace, asset-revision and file-changed.

Patch Changes

  • Updated dependencies [433e124]:
    • @zilero/gulp-plugin-factory@2.0.0

@zilero/gulp-pug-compiler@2.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:45
19dba07

Minor Changes

  • #11 27a02d3 Thanks @Zilero232! - Every package now shares one version, and each README is a complete reference: options with types, hooks, source maps, errors, recipes and migration from the popular alternative.

    Factory

    • createPlugin takes extensions (only these extensions, in lowercase, are transformed), binary (refuses files read as UTF-8 text) and dispose (runs once when the stream ends, fails or is destroyed).
    • New helpers: runContentHook (names a hook that returns no text), syncSourceMapFile, createPathMatcher({ patterns, ignoreCase }), isUrl, and the FileHookInput type.
    • applySourceMap({ chain: true }) chains only the source that is the file itself; other sources keep their mappings.
    • isRelativePathInside rejects drive-relative paths such as C:x; parseOptions detects any thenable schema result.

    Plugins

    • Every content hook that returns something other than a string fails with an error naming the option.
    • image-squeezer: PNG output is lossless by default (sharp's effort had turned on palette quantisation); opt in with encoderOptions.png.palette and quality.png. Widths larger than the image are replaced by its real width, so names match the pixels. Asking for the source's own format counts as 'original'. Unknown encoderOptions keys are rejected.
    • asset-revision: robots.txt, favicon.ico, sitemaps, service workers, web manifests and .well-known/** keep their names by default, and files without an extension are never renamed. Two files with the same path from different bases fail with a clear error. Unchanged text files keep their bytes. Renamed files get revOrigPath, revOrigBase and revHash.
    • font-switcher: formats defaults to ['woff2']; two sources writing the same file fail with a clear error.
    • archive-creator: new modifiedTime; entries without a date get a fixed one, so archives are reproducible. A name whose extension contradicts format is rejected.
    • js-squeezer: .mjs is minified as a module unless terserOptions.module is set; empty terser output fails instead of writing an empty file.
    • css-squeezer: new onWarning hook for Lightning CSS warnings.
    • html-squeezer: a source map the file arrives with is dropped, since it no longer matches.
    • scss-compiler: the file's input map is chained into Sass's map; the compiler stops when the stream is destroyed.
    • pug-compiler: file.data (gulp-data, front matter) is merged into the locals, with data winning; skipPartials also skips folders starting with _.
    • conditional: condition also takes a glob, a RegExp or an array of them; a handler that returns no stream fails with a clear error.
    • file-changed: new extra globs (Sass partials, configs) that count as dependencies of every file; a dest that is a file counts as not built.
    • file-concat: inputs with the same name get unique source names, the bundle takes the newest input's stat, and a BOM is stripped from each input.
    • file-exclude: new invert keeps only the matching files.
    • folder-clone: a copy renamed in onClone gets the right source map name; repeated dirs are rejected.
    • refilename: gulp-rename style functions that change parts and return nothing work; unknown keys fail with a hint (basename → stem); prefix and suffix work in function results; directories keep their names.
    • text-replace: replacer results are converted with String() like String.prototype.replace, and undefined fails with a clear error; a header goes after a BOM.

Patch Changes

  • Updated dependencies [27a02d3]:
    • @zilero/gulp-plugin-factory@2.1.0

@zilero/gulp-pug-compiler@2.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:24
eb3d9cc

Major Changes

  • #5 433e124 Thanks @Zilero232! - Rewrite every package for gulp 5 and Node.js 22.13: ES modules built with tsdown, options validated when the plugin is created, flat hooks that get the file, errors emitted as PluginErrors with the file, and files without contents passed through. See the migration guide: https://zilero232.github.io/gulp-plugins-hub/guide/migration

    New plugins: css-squeezer (Lightning CSS), image-squeezer (sharp), file-concat, text-replace, asset-revision and file-changed.

Patch Changes

  • Updated dependencies [433e124]:
    • @zilero/gulp-plugin-factory@2.0.0

@zilero/gulp-plugin-factory@2.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:45
19dba07

Minor Changes

  • #11 27a02d3 Thanks @Zilero232! - Every package now shares one version, and each README is a complete reference: options with types, hooks, source maps, errors, recipes and migration from the popular alternative.

    Factory

    • createPlugin takes extensions (only these extensions, in lowercase, are transformed), binary (refuses files read as UTF-8 text) and dispose (runs once when the stream ends, fails or is destroyed).
    • New helpers: runContentHook (names a hook that returns no text), syncSourceMapFile, createPathMatcher({ patterns, ignoreCase }), isUrl, and the FileHookInput type.
    • applySourceMap({ chain: true }) chains only the source that is the file itself; other sources keep their mappings.
    • isRelativePathInside rejects drive-relative paths such as C:x; parseOptions detects any thenable schema result.

    Plugins

    • Every content hook that returns something other than a string fails with an error naming the option.
    • image-squeezer: PNG output is lossless by default (sharp's effort had turned on palette quantisation); opt in with encoderOptions.png.palette and quality.png. Widths larger than the image are replaced by its real width, so names match the pixels. Asking for the source's own format counts as 'original'. Unknown encoderOptions keys are rejected.
    • asset-revision: robots.txt, favicon.ico, sitemaps, service workers, web manifests and .well-known/** keep their names by default, and files without an extension are never renamed. Two files with the same path from different bases fail with a clear error. Unchanged text files keep their bytes. Renamed files get revOrigPath, revOrigBase and revHash.
    • font-switcher: formats defaults to ['woff2']; two sources writing the same file fail with a clear error.
    • archive-creator: new modifiedTime; entries without a date get a fixed one, so archives are reproducible. A name whose extension contradicts format is rejected.
    • js-squeezer: .mjs is minified as a module unless terserOptions.module is set; empty terser output fails instead of writing an empty file.
    • css-squeezer: new onWarning hook for Lightning CSS warnings.
    • html-squeezer: a source map the file arrives with is dropped, since it no longer matches.
    • scss-compiler: the file's input map is chained into Sass's map; the compiler stops when the stream is destroyed.
    • pug-compiler: file.data (gulp-data, front matter) is merged into the locals, with data winning; skipPartials also skips folders starting with _.
    • conditional: condition also takes a glob, a RegExp or an array of them; a handler that returns no stream fails with a clear error.
    • file-changed: new extra globs (Sass partials, configs) that count as dependencies of every file; a dest that is a file counts as not built.
    • file-concat: inputs with the same name get unique source names, the bundle takes the newest input's stat, and a BOM is stripped from each input.
    • file-exclude: new invert keeps only the matching files.
    • folder-clone: a copy renamed in onClone gets the right source map name; repeated dirs are rejected.
    • refilename: gulp-rename style functions that change parts and return nothing work; unknown keys fail with a hint (basename → stem); prefix and suffix work in function results; directories keep their names.
    • text-replace: replacer results are converted with String() like String.prototype.replace, and undefined fails with a clear error; a header goes after a BOM.

@zilero/gulp-plugin-factory@2.0.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:24
eb3d9cc

Major Changes

  • #5 433e124 Thanks @Zilero232! - Rewrite every package for gulp 5 and Node.js 22.13: ES modules built with tsdown, options validated when the plugin is created, flat hooks that get the file, errors emitted as PluginErrors with the file, and files without contents passed through. See the migration guide: https://zilero232.github.io/gulp-plugins-hub/guide/migration

    New plugins: css-squeezer (Lightning CSS), image-squeezer (sharp), file-concat, text-replace, asset-revision and file-changed.