Skip to content

Bump asciidoctor from 4.0.2 to 4.0.6 in /scripts - #631

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/scripts/asciidoctor-4.0.6
Open

Bump asciidoctor from 4.0.2 to 4.0.6 in /scripts#631
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/scripts/asciidoctor-4.0.6

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 27, 2026

Copy link
Copy Markdown
Contributor

Bumps asciidoctor from 4.0.2 to 4.0.6.

Release notes

Sourced from asciidoctor's releases.

v4.0.6

Summary

Release meta

Released on: 2026-07-26 Released by: ggrossetie Published by: GitHub

Logs: full diff

Changelog

Bug Fixes

  • Fix AbstractNode#imageUri() no longer percent-encoding spaces in a data: URI image target (e.g. image::data:image/svg+xml,<svg ...><text>a b</text></svg>[]), a regression from the data URI image target support added for inline SVG embedding. That change short-circuited imageUri() for any data: target by returning it unchanged, bypassing the space-encoding that normalizeWebPath() still applies for every other URI-ish target — and that upstream Asciidoctor (Ruby) also applies, since image_uri has no data:-specific early return at all. imageUri() now runs data: targets through encodeSpacesInUri() before returning them, matching Ruby’s output byte-for-byte, while still avoiding the spurious could not retrieve image data from URI warning the earlier fix was meant to prevent
  • Fix tasks/changelog.js notes (used to generate GitHub release notes) leaving AsciiDoc attribute references such as [#1857](https://github.com/asciidoctor/asciidoctor.js/issues/1857) unresolved in the generated Markdown. extractReleaseNotes used to extract the raw AsciiDoc section for a release and convert only that fragment to Markdown, losing the :uri-repo: attribute definition from the changelog header in the process. The whole changelog is now converted to Markdown once, and the release section is extracted from the resulting Markdown instead, so attribute references resolve correctly
  • Type Logger#warn()/#debug()/#info()/#error()/#fatal()/#unknown()/#log() (and the matching MemoryLogger methods) with an optional progname/pn parameter instead of a required one. The generated .d.ts previously declared both arguments as mandatory, so calling doc.getLogger().warn(doc.messageWithContext(...)) with a single argument — the documented pattern for logging from an extension — was flagged by editors as "expected 2 arguments" even though it is valid at runtime; the error surfaced because getLogger() resolves to the LoggerLike union (Logger | MemoryLogger | NullLogger | Console) and TypeScript requires a call to satisfy every member’s signature
  • Type messageWithContext()/createLogMessage() on Document, ConverterBase, PathResolver, and Table.ParserContext (and the static equivalents on Parser). These are installed at runtime by the applyLogging() mixin (logging.js) after the class body closes, so tsc’s JSDoc-based declaration emit never picked them up — doc.messageWithContext(...)`, the pattern shown in the extensions guide, previously had no type at all on the public API surface

Infrastructure

  • Add compile-only type tests for the Logger/MemoryLogger/NullLogger API and the LoggerLike union (test/types/logging.test-d.ts, run by npm run test:types), covering every shorthand log method across single- and two-argument call forms, the applyLogging() consumers listed above, and negative @ts-expect-error checks (e.g. fatal()/unknown() are intentionally unavailable on the raw LoggerLike union because Console has neither, but resolve once narrowed away from Console)

v4.0.5

Summary

Release meta

Released on: 2026-07-21 Released by: ggrossetie Published by: GitHub

Logs: full diff

Changelog

Bug Fixes

  • Fix Document#getLogger() (and getLogger() on any prototype augmented by applyLogging(): Converter, Parser, PathResolver, Table.ParserContext) silently ignoring a per-instance override of the logger getter, even though its own JSDoc describes it as "a method alias for the logger getter". applyLogging() (logging.js) installed getLogger as a fixed arrow function with no this binding, so it always fell back to the global LoggerManager.logger instead of resolving through this.logger — breaking the logger option to convert()/load() once the async-local-storage scope from load() had closed (i.e. during doc.convert(), when most block/inline converters and extensions run). Extensions/converters that follow the documented doc.getLogger() pattern (e.g. to log a warning with messageWithContext()) would have those messages silently escape a caller-supplied logger such as a MemoryLogger
  • Fix inline macro extensions ignoring the contentModel/positionalAttrs (or the DSL contentModel()/positionalAttributes()/resolveAttributes() setters) configuration, so the macro’s bracket content was never parsed into named/positional attributes and always ended up as a raw string in attributes.text instead — e.g. registry.inlineMacro(function () { this.named('emoji'); this.positionalAttributes('size'); this.process(...) }) produced { text: '2x' } instead of { '1': '2x', size: '2x' } for emoji:smile[2x]. Substitutors#subMacros (the inline macro substitution path in substitutors.js) read the extension config with keys that were never populated by the DSL/static config (asciidoctor/asciidoctor.js#1857)

Improvements

  • Extension Processor config keys (contentModel, positionalAttrs, defaultAttrs) now use camelCase consistently across every registration style — the DSL setters, class-based static config, and the block/inline macro substitution code that reads them. The legacy Ruby-style snake_case keys (content_model, positional_attrs, pos_attrs, default_attrs) are still accepted for backward compatibility when a processor class declares its config directly (static config = { content_model: 'attributes' } or MyProcessor.config = { content_model: 'attributes' }). Processor.config also gained a static setter, so assigning a static config object after the class declaration (as shown in the BlockMacroProcessor/InlineMacroProcessor JSDoc examples) no longer throws a TypeError
  • Type AbstractNode#logger/#getLogger() and Reader/PreprocessorReader#logger/#getLogger()/#createLogMessage() with the new LoggerLike union (Logger | MemoryLogger | NullLogger | Console, exported from logging.js) instead of a bare object. In reader.js, fields and helper methods that are only ever touched within the class that declares them (Reader’s cursor mark, PreprocessorReader’s include/conditional-directive bookkeeping) are now real JS #private members instead of _-prefixed by convention; the remaining _-prefixed fields that PreprocessorReader must read/reassign (_dir, _document, _lines, …) are annotated @internal so they’re stripped from the generated public .d.ts without changing runtime access

v4.0.4

Summary

... (truncated)

Changelog

Sourced from asciidoctor's changelog.

== v4.0.6 (2026-07-26)

Bug Fixes::

  • Fix AbstractNode#imageUri() no longer percent-encoding spaces in a data: URI image target (e.g. image::data:image/svg+xml,<svg ...><text>a b</text></svg>[]), a regression from the data URI image target support added for inline SVG embedding. That change short-circuited imageUri() for any data: target by returning it unchanged, bypassing the space-encoding that normalizeWebPath() still applies for every other URI-ish target — and that upstream Asciidoctor (Ruby) also applies, since image_uri has no data:-specific early return at all. imageUri() now runs data: targets through encodeSpacesInUri() before returning them, matching Ruby's output byte-for-byte, while still avoiding the spurious could not retrieve image data from URI warning the earlier fix was meant to prevent
  • Fix tasks/changelog.js notes (used to generate GitHub release notes) leaving AsciiDoc attribute references such as {uri-repo}/issues/1857[#1857](https://github.com/asciidoctor/asciidoctor.js/issues/1857) unresolved in the generated Markdown. extractReleaseNotes used to extract the raw AsciiDoc section for a release and convert only that fragment to Markdown, losing the :uri-repo: attribute definition from the changelog header in the process. The whole changelog is now converted to Markdown once, and the release section is extracted from the resulting Markdown instead, so attribute references resolve correctly
  • Type Logger#warn()/#debug()/#info()/#error()/#fatal()/#unknown()/#log() (and the matching MemoryLogger methods) with an optional progname/pn parameter instead of a required one. The generated .d.ts previously declared both arguments as mandatory, so calling doc.getLogger().warn(doc.messageWithContext(...)) with a single argument — the documented pattern for logging from an extension — was flagged by editors as "expected 2 arguments" even though it is valid at runtime; the error surfaced because getLogger() resolves to the LoggerLike union (Logger | MemoryLogger | NullLogger | Console) and TypeScript requires a call to satisfy every member's signature
  • Type messageWithContext()/createLogMessage() on Document, ConverterBase, PathResolver, and Table.ParserContext (and the static equivalents on Parser). These are installed at runtime by the applyLogging() mixin (logging.js) after the class body closes, so tsc's JSDoc-based declaration emit never picked them up — doc.messageWithContext(...), the pattern shown in the extensions guide, previously had no type at all on the public API surface

Infrastructure::

  • Add compile-only type tests for the Logger/MemoryLogger/NullLogger API and the LoggerLike union (test/types/logging.test-d.ts, run by npm run test:types), covering every shorthand log method across single- and two-argument call forms, the applyLogging() consumers listed above, and negative @ts-expect-error checks (e.g. fatal()/unknown() are intentionally unavailable on the raw LoggerLike union because Console has neither, but resolve once narrowed away from Console)

== v4.0.5 (2026-07-21)

Bug Fixes::

  • Fix Document#getLogger() (and getLogger() on any prototype augmented by applyLogging(): Converter, Parser, PathResolver, Table.ParserContext) silently ignoring a per-instance override of the logger getter, even though its own JSDoc describes it as "a method alias for the logger getter". applyLogging() (logging.js) installed getLogger as a fixed arrow function with no this binding, so it always fell back to the global LoggerManager.logger instead of resolving through this.logger — breaking the logger option to convert()/load() once the async-local-storage scope from load() had closed (i.e. during doc.convert(), when most block/inline converters and extensions run). Extensions/converters that follow the documented doc.getLogger() pattern (e.g. to log a warning with messageWithContext()) would have those messages silently escape a caller-supplied logger such as a MemoryLogger
  • Fix inline macro extensions ignoring the contentModel/positionalAttrs (or the DSL contentModel()/positionalAttributes()/resolveAttributes() setters) configuration, so the macro's bracket content was never parsed into named/positional attributes and always ended up as a raw string in attributes.text instead — e.g. registry.inlineMacro(function () { this.named('emoji'); this.positionalAttributes('size'); this.process(...) }) produced { text: '2x' } instead of { '1': '2x', size: '2x' } for emoji:smile[2x]. Substitutors#subMacros (the inline macro substitution path in substitutors.js) read the extension config with keys that were never populated by the DSL/static config ({uri-repo}/issues/1857#1857)

Improvements::

  • Extension Processor config keys (contentModel, positionalAttrs, defaultAttrs) now use camelCase consistently across every registration style — the DSL setters, class-based static config, and the block/inline macro substitution code that reads them. The legacy Ruby-style snake_case keys (content_model, positional_attrs, pos_attrs, default_attrs) are still accepted for backward compatibility when a processor class declares its config directly (static config = { content_model: 'attributes' } or MyProcessor.config = { content_model: 'attributes' }). Processor.config also gained a static setter, so assigning a static config object after the class declaration (as shown in the BlockMacroProcessor/InlineMacroProcessor JSDoc examples) no longer throws a TypeError
  • Type AbstractNode#logger/#getLogger() and Reader/PreprocessorReader#logger/#getLogger()/#createLogMessage() with the new LoggerLike union (Logger | MemoryLogger | NullLogger | Console, exported from logging.js) instead of a bare object. In reader.js, fields and helper methods that are only ever touched within the class that declares them (Reader's cursor mark, PreprocessorReader's include/conditional-directive bookkeeping) are now real JS #private members instead of _-prefixed by convention; the remaining _-prefixed fields that PreprocessorReader must read/reassign (_dir, _document, _lines, …) are annotated @internal so they're stripped from the generated public .d.ts without changing runtime access

== v4.0.4 (2026-07-15)

Improvements::

  • Declare the instance form ("style 3") of the Registry extension registration methods in the TypeScript typings. The runtime has always accepted an already-constructed processor (registry.includeProcessor(new MyIncludeProcessor())) in addition to the class and registration-function forms, but the 4.0 typings only declared the latter two, forcing consumers such as the VS Code AsciiDoc extension to augment the module by hand. preprocessor, treeProcessor, postprocessor, includeProcessor, docinfoProcessor, block, blockMacro and inlineMacro now expose an overload accepting a processor instance (the syntax processor methods also accept the optional explicit name), and the compile-only type tests cover the instance form
  • Type the filter callback accepted by AbstractBlock#findBy (and its query alias) as (node: AbstractBlock) => boolean | string instead of the bare Function, so the candidate node passed to the callback resolves as an AbstractBlock without casts — both in the two-argument form and in the findBy(callback) shorthand
  • Type the reader received by preprocessor and include processor callbacks as PreprocessorReader instead of Reader, and export PreprocessorReader from the package root. Preprocessor#process, IncludeProcessor#process and the matching DSL process(fn) callbacks actually receive a PreprocessorReader at runtime, so its members (pushInclude, getIncludeDepth, …) now resolve without casts or manual module augmentation

Infrastructure::

  • Display the package version number in the generated TypeDoc API documentation (includeVersion option), so both the @asciidoctor/core API docs and the asciidoctor CLI docs show which release they document (e.g. @asciidoctor/core - v4.0.3)
  • Publish a major.minor alias of the TypeDoc API documentation on each stable release — e.g. releasing v4.0.4 (re)deploys the docs to both 4.0.4/ and 4.0/ on GitHub Pages, so the 4.0 URL always points to the documentation of the latest 4.0.x release
  • Simplify the release workflow: the intermediate "Bump version for release" workflow (release-bump.yml) is gone — the Release workflow is now dispatched directly with the version to release and performs the whole chain (bump + tag, build, npm publish, GitHub release, docs) in a single run, from main or from a maintenance branch (e.g. 4.0.x or v4.0.x). The git commands (commit, tag, push) live in the workflow itself; the release scripts are reduced to three focused tools: tasks/version.js <version> (sets both package versions and keeps the asciidoctor@asciidoctor/core dependency in sync), tasks/changelog.js release <version> (rolls the Unreleased section into a dated release section) / tasks/changelog.js notes <version> (prints the Markdown release notes of a version to stdout), and tasks/publish.js (publishes both packages to npmjs). tasks/release.js, scripts/publish.sh, the npm run release script and the skip_publish input are gone (use GitHub's "Re-run failed jobs" to resume a partially failed release). The reusable build and native-image workflows accept a ref input so the release builds the tagged commit (with the bumped version) rather than the pre-bump branch head
  • Publishing a maintenance release no longer steals the npm latest dist-tag: when the version being published is older than the currently published latest (e.g. releasing 4.0.5 while 4.1.0 is out), the packages are published under a latest-<major>.<minor> dist-tag (e.g. latest-4.0, following the latest-2 convention already used for the 2.x line) instead

== v4.0.3 (2026-07-13)

Bug Fixes::

  • Fix AsciiDoc table cells (a) losing their content when they belong to a table that is itself nested inside another AsciiDoc cell — the deeper cells rendered as an empty <div class="content"></div> (text became invisible). Document#convert computes each AsciiDoc cell's inner content in _convertAsciiDocCells, but that pass only ran on the root document (guarded by !parentDocument) and, when it converted an AsciiDoc cell's inner document, never recursed into the tables inside that inner document. So a nested table's own AsciiDoc cells were rendered before their _innerContent was ever set. The pass now recurses into a cell's inner document before rendering it, so AsciiDoc cells at any nesting depth have their content computed first
Commits
  • 4c53894 4.0.6
  • 8dc9784 fix(core): encode spaces in data: URI image targets
  • f1c93e5 fix(core): type Logger progname as optional, close applyLogging() type gaps
  • 08b4092 fix(tasks): resolve AsciiDoc attribute references in generated release notes
  • 28ab8b2 4.0.5
  • ce1b732 refactor(core): use real #private fields in reader.js, type logger APIs with ...
  • 29af7d6 fix(logging): make Document#getLogger() honor per-instance logger override
  • 37eb46d test(extensions): cover legacy config aliases and every macro/block registrat...
  • 71f113a fix(extensions): parse inline macro content into attributes per contentModel ...
  • a33f87e 4.0.4
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [asciidoctor](https://github.com/asciidoctor/asciidoctor.js) from 4.0.2 to 4.0.6.
- [Release notes](https://github.com/asciidoctor/asciidoctor.js/releases)
- [Changelog](https://github.com/asciidoctor/asciidoctor.js/blob/main/CHANGELOG.adoc)
- [Commits](asciidoctor/asciidoctor.js@v4.0.2...v4.0.6)

---
updated-dependencies:
- dependency-name: asciidoctor
  dependency-version: 4.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jul 27, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner July 27, 2026 18:42
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants